{"version":3,"file":"static/js/main.069e16f4.js","mappings":"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,EAAuBC,aACxC,oBAAsBA,GACpBA,EACE13K,EACA,OAASixK,EAAa77B,UAAY,QAAU,SAC5Cs+B,EAAaiE,uBACZ,EAEP,CAAE,MAAO56J,GACPo0J,GAAwBF,EAAcA,EAAah8B,OAAQl4H,EAC7D,CACF,MACEs6J,GACE3D,EACAzC,EACAqG,EACAC,GAEJ,MACF,KAAK,GACH,MACF,KAAK,GACHE,EAAyBxG,EAAa10B,UACtC,OAAS00B,EAAa17B,cACmB,EAArCkiC,EAAuB3nB,YACrBunB,GACE3D,EACAzC,EACAqG,EACAC,GAEFK,GAAwClE,EAAczC,GACnB,EAArCwG,EAAuB3nB,YACrBunB,GACE3D,EACAzC,EACAqG,EACAC,IAEAE,EAAuB3nB,aAAe,EACxC+nB,GACEnE,EACAzC,EACAqG,EACAC,EACA,KAAmC,MAA5BtG,EAAalE,gBAEpB,KAAR1qI,GACE60I,GACEjG,EAAa77B,UACb67B,GAEJ,MACF,KAAK,GACHoG,GACE3D,EACAzC,EACAqG,EACAC,GAEM,KAARl1I,GACE+0I,GAA8BnG,EAAa77B,UAAW67B,GACxD,MACF,QACEoG,GACE3D,EACAzC,EACAqG,EACAC,GAGR,CACA,SAASM,GACPb,EACAvB,EACAqC,EACAC,EACAd,GAIA,IAFAA,EACEA,GAAgC,KAAkC,MAA3BxB,EAAY1I,cAChD0I,EAAcA,EAAYxzD,MAAO,OAASwzD,GAAe,CAC5D,IAAI/B,EAAesD,EACjB/F,EAAewE,EACf6B,EAAiBQ,EACjBP,EAAuBQ,EACvB11I,EAAQ4uI,EAAa5uI,MACvB,OAAQ4uI,EAAanpJ,KACnB,KAAK,EACL,KAAK,GACL,KAAK,GACH+vJ,GACEnE,EACAzC,EACAqG,EACAC,EACAN,GAEFjG,GAA0B,EAAGC,GAC7B,MACF,KAAK,GACH,MACF,KAAK,GACH,IAAIlf,EAAWkf,EAAa10B,UAC5B,OAAS00B,EAAa17B,cACK,EAAvBwc,EAASjC,YACP+nB,GACEnE,EACAzC,EACAqG,EACAC,EACAN,GAEFW,GACElE,EACAzC,IAEFlf,EAASjC,aAAe,EAC1B+nB,GACEnE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A,aACA,UACA,OACA,SACA,iBACA,UACA,WACA,WACA,qBACA,UACA,QACA,cACA,oBACA,UACA,UACA,WACA,WACA,OACA,UACA,SACA,QACA,SACA,UACA,UACA,QACA,SACA,UACA,YACA,SACA,gBACA,SACA,QACA,WACA,UACA,UACA,QACA,YACA,OACA,OACA,UACA,SACA,QACA,UACA,QACA,SACA,aACA,QACA,WACA,SACA,aACA,OACA,SACA,UACA,UACA,UACA,QACA,gBACA,YACA,aACA,aACA,SACA,WACA,WACA,OACA,QACA,mBACA,aACA,YACA,SACA,aACA,UACA,SACA,WACA,aACA,UACA,aACA,kBACA,UACA,QACA,QACA,cACA,cACA,YACA,QACA,UACA,cACA,kBACA,SACA,OACA,WACA,QACA,SACA,mBACA,WACA,OACA,cACA,SACA,WACA,QACA,UACA,SACA,SACA,wBACA,cACA,mCACA,QACA,aACA,wBACA,eACA,UACA,SACA,aACA,eACA,YACA,WACA,WACA,kBACA,UACA,eACA,cACA,cACA,QACA,YACA,QACA,WACA,SACA,cACA,QACA,SACA,aACA,WACA,WACA,cACA,OACA,QACA,sBACA,UACA,SACA,eACA,SACA,SACA,UACA,uBACA,iBACA,gBACA,UACA,aACA,UACA,eACA,YACA,UACA,QACA,SACA,WACA,SAoZgCmE,KAAKmoP,IACjBpJ,EAAAA,GAAAA,KAAA,UAAsB1hP,MAAO8qP,EAAQtsP,SAClCssP,GADUA,WAMnBpJ,EAAAA,GAAAA,KAAA,OAAK5iP,UAAW24D,GAAOkuL,sBAI3BjE,EAAAA,GAAAA,KAAA,OAAK5iP,UAAW24D,GAAO6tL,UAAU9mP,UAC/BmjP,EAAAA,GAAAA,MAAA,OAAK7iP,UAAW24D,GAAO8tL,WAAW/mP,SAAA,EAChCmjP,EAAAA,GAAAA,MAAA,OAAK7iP,UAAW24D,GAAO+tL,WAAWhnP,SAAA,EAChCkjP,EAAAA,GAAAA,KAAA,SAAAljP,SAAO,qBACPkjP,EAAAA,GAAAA,KAAA,KAAG5iP,UAAW24D,GAAOguL,SAASjnP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OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,SAC7D,GAGEo2Z,GAAmB,CAAC,IAAIp2Z,WAAW,CACvC,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,IAC7D,GAEJq2Z,GAAA,SAAAhtK,GAKE,SAAAgtK,EAAY5/U,EAAoBk/U,GAAhC,IAAA7oW,EACEu8L,EAAApoR,KAAA,KAAM00b,IAAY,KAElB7oW,EAAK2pB,OAASA,EAEd,IAAM6/U,EAAM7/U,EAAO49U,UACbkC,EAAM9/U,EAAO49U,UACnB,IAAa,IAATiC,IAAuB,IAATC,EAChB,MAAM,IAAIxna,MAAM,mCAAmCuna,EAAG,KAAKC,GAE7D,GAAqB,KAAV,GAAND,GACH,MAAM,IAAIvna,MACR,+CAA+Cuna,EAAG,KAAKC,GAG3D,KAAMD,GAAO,GAAKC,GAAO,KAAO,EAC9B,MAAM,IAAIxna,MAAM,+BAA+Buna,EAAG,KAAKC,GAEzD,GAAU,GAANA,EACF,MAAM,IAAIxna,MAAM,kCAAkCuna,EAAG,KAAKC,UAG5DzpW,EAAK0pW,SAAW,EAChB1pW,EAAK2pW,QAAU,GACjB,CAkQF,OA/R0Bz4B,GAAAq4B,EAAAhtK,GA+BdgtK,EAAAt1b,UAAAs0b,UAAV,WACE,IAAIp8Y,EACAxrB,EACExb,EAAM5Q,KAAKo1G,OAEbigV,EAAMr1b,KAAKs1b,QAAQ,GAMvB,GALU,EAAND,IACFr1b,KAAK8zb,KAAM,GAID,KAFZuB,IAAQ,GAER,CAgDA,IAAIE,EACAC,EACJ,GAAY,IAARH,EAEFE,EAAeT,GACfU,EAAgBT,OACX,IAAY,IAARM,EAuDT,MAAM,IAAI3na,MAAM,sCArDhB,IAAM+na,EAAcz1b,KAAKs1b,QAAQ,GAAK,IAChCI,EAAe11b,KAAKs1b,QAAQ,GAAK,EACjCK,EAAkB31b,KAAKs1b,QAAQ,GAAK,EAGpCM,EAAqB,IAAItxa,WAAWqwa,GAAer0b,QAErDhB,OAAC,EACL,IAAKA,EAAI,EAAGA,EAAIq2b,IAAmBr2b,EACjCs2b,EAAmBjB,GAAer1b,IAAMU,KAAKs1b,QAAQ,GAEvD,IAAMO,EAAiB71b,KAAK81b,qBAAqBF,GAGjDxpa,EAAM,EACN9sB,EAAI,EAMJ,IALA,IAAMqvC,EAAQ8mZ,EAAcC,EACtBK,EAAc,IAAIzxa,WAAWqqB,GAC/BqnZ,OAAU,EACVC,OAAU,EACVC,OAAI,EACD52b,EAAIqvC,GAAO,CAChB,IAAMgD,EAAO3xC,KAAKm2b,QAAQN,GAC1B,GAAa,KAATlkZ,EACFqkZ,EAAa,EACbC,EAAa,EACbC,EAAO9pa,OACF,GAAa,KAATulB,EACTqkZ,EAAa,EACbC,EAAa,EACbC,EAAO9pa,EAAM,MACR,IAAa,KAATulB,EAIJ,CACLokZ,EAAYz2b,KAAO8sB,EAAMulB,EACzB,SALAqkZ,EAAa,EACbC,EAAa,GACbC,EAAO9pa,EAAM,EAOf,IADA,IAAIgqa,EAAep2b,KAAKs1b,QAAQU,GAAcC,EACvCG,KAAiB,GACtBL,EAAYz2b,KAAO42b,EAIvBX,EAAev1b,KAAK81b,qBAClBC,EAAYh3Z,SAAS,EAAG02Z,IAE1BD,EAAgBx1b,KAAK81b,qBACnBC,EAAYh3Z,SAAS02Z,EAAa9mZ,IAStC,IAFA,IAAIvK,GADJwT,EAAS53C,KAAK43C,QACOA,EAAOt3C,OAAS,EACjC8+B,EAAMp/B,KAAK4wP,eACF,CACX,IAAIylM,EAAQr2b,KAAKm2b,QAAQZ,GACzB,GAAIc,EAAQ,IACNj3Z,EAAM,GAAKgF,IAEbA,GADAwT,EAAS53C,KAAKi0b,aAAa70Z,EAAM,IAClB9+B,QAEjBs3C,EAAOxY,KAASi3Z,MALlB,CAQA,GAAc,MAAVA,EAEF,YADAr2b,KAAK4wP,aAAexxN,GAKtB,IAAIk3Z,GADJD,EAAQzB,GADRyB,GAAS,OAEY,GACjBC,EAAQ,IACVA,EAAQt2b,KAAKs1b,QAAQgB,IAEvBlqa,GAAe,MAARiqa,GAAkBC,EACzBD,EAAQr2b,KAAKm2b,QAAQX,IAErBc,GADAD,EAAQxB,GAAWwB,KACF,IACL,IACVC,EAAQt2b,KAAKs1b,QAAQgB,IAEvB,IAAMprZ,GAAgB,MAARmrZ,GAAkBC,EAC5Bl3Z,EAAMhT,GAAOgY,IAEfA,GADAwT,EAAS53C,KAAKi0b,aAAa70Z,EAAMhT,IAClB9rB,QAEjB,IAAK,IAAIgF,EAAI,EAAGA,EAAI8mB,IAAO9mB,IAAK85B,EAC9BwY,EAAOxY,GAAOwY,EAAOxY,EAAM8L,SApJ/B,CAEE,IAAIhnC,OAAC,EAEL,IAA6B,KAAxBA,EAAI0M,EAAIoib,WACX,MAAM,IAAItla,MAAM,oCAElB,IAAI6oa,EAAWryb,EACf,IAA6B,KAAxBA,EAAI0M,EAAIoib,WACX,MAAM,IAAItla,MAAM,oCAGlB,GADA6oa,GAAYryb,GAAK,GACY,KAAxBA,EAAI0M,EAAIoib,WACX,MAAM,IAAItla,MAAM,oCAElB,IAAIye,EAAQjoC,EACZ,IAA6B,KAAxBA,EAAI0M,EAAIoib,WACX,MAAM,IAAItla,MAAM,oCAGlB,IADAye,GAASjoC,GAAK,MACa,OAAXqyb,KAAoC,IAAbA,GAA4B,IAAVpqZ,GAEvD,MAAM,IAAIze,MAAM,iDAGlB1tB,KAAKo1b,QAAU,EACfp1b,KAAKm1b,SAAW,EAEhB,IAAMvkM,EAAe5wP,KAAK4wP,aAC1Bh5M,EAAS53C,KAAKi0b,aAAarjM,EAAe2lM,GAC1C,IAAMn2a,EAAMwwO,EAAe2lM,EAE3B,GADAv2b,KAAK4wP,aAAexwO,EACH,IAAbm2a,GACsB,IAApB3lb,EAAI0ib,aACNtzb,KAAK8zb,KAAM,QAGb,IAAK,IAAIx2b,EAAIszP,EAActzP,EAAI8iB,IAAO9iB,EAAG,CACvC,IAA6B,KAAxB4G,EAAI0M,EAAIoib,WAAmB,CAC9Bhzb,KAAK8zb,KAAM,EACX,MAEFl8Y,EAAOt6C,GAAK4G,GA6GpB,EAEQ8wb,EAAAt1b,UAAA41b,QAAR,SAAgB3qZ,GAMd,IALA,IAIIzmC,EAJE0M,EAAM5Q,KAAKo1G,OACb+/U,EAAWn1b,KAAKm1b,SAChBC,EAAUp1b,KAAKo1b,QAGZD,EAAWxqZ,GAAM,CACtB,IAA6B,KAAxBzmC,EAAI0M,EAAIoib,WACX,MAAM,IAAItla,MAAM,gCAElB0na,GAAWlxb,GAAKixb,EAChBA,GAAY,EAMd,OAJAjxb,EAAIkxb,GAAY,GAAKzqZ,GAAQ,EAC7B3qC,KAAKo1b,QAAUA,GAAWzqZ,EAC1B3qC,KAAKm1b,SAAWA,GAAYxqZ,EAErBzmC,CACT,EAEQ8wb,EAAAt1b,UAAAy2b,QAAR,SAAgBt0Z,GAQd,IAPA,IAMI39B,EANE0M,EAAM5Q,KAAKo1G,OACXzmE,EAAQ9M,EAAM,GACd6gG,EAAS7gG,EAAM,GACjBszZ,EAAWn1b,KAAKm1b,SAChBC,EAAUp1b,KAAKo1b,QAGZD,EAAWzyT,IACa,KAAxBx+H,EAAI0M,EAAIoib,YAKboC,GAAWlxb,GAAKixb,EAChBA,GAAY,EAEd,IAAMxjZ,EAAOhD,EAAMymZ,GAAY,GAAK1yT,GAAU,GACzB,kBAAV/zF,GACTxd,QAAQylB,IAAI,SAAUjF,GAExB,IAAM6kZ,EAAU7kZ,GAAQ,GAClB8kZ,EAAiB,MAAP9kZ,EAChB,GAAI6kZ,EAAU,GAAKrB,EAAWqB,EAC5B,MAAM,IAAI9oa,MAAM,gCAIlB,OAFA1tB,KAAKo1b,QAAUA,GAAWoB,EAC1Bx2b,KAAKm1b,SAAWA,EAAWqB,EACpBC,CACT,EAEQzB,EAAAt1b,UAAAo2b,qBAAR,SAA6BY,GAC3B,IAIIp3b,EAJEhC,EAAIo5b,EAAQp2b,OAGdoiI,EAAS,EAEb,IAAKpjI,EAAI,EAAGA,EAAIhC,IAAKgC,EACfo3b,EAAQp3b,GAAKojI,IACfA,EAASg0T,EAAQp3b,IAOrB,IAFA,IAAMkD,EAAO,GAAKkgI,EACZ/zF,EAAQ,IAAIhQ,WAAWn8B,GAEvB4pB,EAAM,EAAGulB,EAAO,EAAGwkQ,EAAO,EAC9B/pR,GAAOs2G,IACLt2G,EAAKulB,IAAS,EAAGwkQ,IAAS,EAE5B,IAAK,IAAIltQ,EAAM,EAAGA,EAAM3rC,IAAK2rC,EAC3B,GAAIytZ,EAAQztZ,KAAS7c,EAAK,CAExB,IAAIkqa,EAAQ,EACRj5b,EAAIs0C,EACR,IAAKryC,EAAI,EAAGA,EAAI8sB,IAAO9sB,EACrBg3b,EAASA,GAAS,EAAU,EAAJj5b,EACxBA,IAAM,EAIR,IAAKiC,EAAIg3b,EAAOh3b,EAAIkD,EAAMlD,GAAK62S,EAC7BxnQ,EAAMrvC,GAAM8sB,GAAO,GAAM6c,IAEzB0I,EAKR,MAAO,CAAChD,EAAO+zF,EACjB,EACFsyT,CAAA,CA/RA,CAA0BpB,IAiS1B,YC3YA,IAAA+C,GAAA,SAAA3uK,GAgBE,SAAA2uK,EACEvhV,EACAk/U,EACAsC,GAHF,IAAAnrW,EAKEu8L,EAAApoR,KAAA,KAAM00b,IAAY,KAElB7oW,EAAK2pB,OAASA,EACd3pB,EAAKorW,WAAa,EAClBprW,EAAKqrW,WAAa,EAalB,IAXA,IAAMC,EAAuB,KACvBC,EAAW,CACfJ,YAAWA,EACXK,WAAY,EACZC,SAAU,IACVC,iBAAkB,IAAI7ya,WAAWyya,GACjCK,kBAAmB,IAAI14Z,YAAYq4Z,GACnCM,oBAAqB,IAAI34Z,YAAYq4Z,GACrCO,gBAAiB,IAAIhza,WAAWyya,GAChCQ,sBAAuB,GAEhBj4b,EAAI,EAAGA,EAAI,MAAOA,EACzB03b,EAASG,iBAAiB73b,GAAKA,EAC/B03b,EAASI,kBAAkB93b,GAAK,SAElCmsF,EAAKurW,SAAWA,GAClB,CA2GF,OAtJwBr6B,GAAAg6B,EAAA3uK,GA6CZ2uK,EAAAj3b,UAAAs0b,UAAV,WACE,IAII10b,EACA8K,EACAC,EAJAmtb,EAAuBC,KAMrBT,EAAWh3b,KAAKg3b,SACtB,GAAKA,EAAL,CAIA,IAAMJ,EAAcI,EAASJ,YACzBM,EAAWF,EAASE,SAClBC,EAAmBH,EAASG,iBAC5BC,EAAoBJ,EAASI,kBAC7BC,EAAsBL,EAASK,oBACjCJ,EAAaD,EAASC,WACtBS,EAAWV,EAASU,SAClBJ,EAAkBN,EAASM,gBAC7BC,EAAwBP,EAASO,sBAEjCI,EAAgB,EAChBC,EAAsB53b,KAAK4wP,aAC3Bh5M,EAAS53C,KAAKi0b,aAAaj0b,KAAK4wP,aAAe4mM,GAEnD,IAAKl4b,EAAI,EAAGA,EA3BM,IA2BSA,IAAK,CAC9B,IAAMqyC,EAAO3xC,KAAK63b,SAASZ,GACrB19E,EAAUg+E,EAAwB,EACxC,IAAK5lZ,GAAQA,EAAO,IAClB2lZ,EAAgB,GAAK3lZ,EACrB4lZ,EAAwB,MACnB,MAAI5lZ,GAAQ,KAUZ,IAAa,MAATA,EAAc,CACvBslZ,EAAa,EACbC,EAAW,IACXK,EAAwB,EACxB,SAEAv3b,KAAK8zb,KAAM,SACJ9zb,KAAKg3b,SACZ,MAjBA,GAAIrlZ,EAAOulZ,EAET,IAAK9sb,GADLmtb,EAAwBH,EAAkBzlZ,IACT,EAAGtnC,EAAIsnC,EAAMvnC,GAAK,EAAGA,IACpDktb,EAAgBltb,GAAK+sb,EAAiB9sb,GACtCA,EAAIgtb,EAAoBhtb,QAG1Bitb,EAAgBC,KAA2BD,EAAgB,GA6B/D,GAhBI/9E,IACF89E,EAAoBH,GAAYQ,EAChCN,EAAkBF,GAAYE,EAAkBM,GAAsB,EACtEP,EAAiBD,GAAYI,EAAgB,GAE7CL,IADAC,EAEcN,EAAgBM,EAAWN,EAAc,EACjDK,EAII,EAHJtkb,KAAKC,IACHD,KAAKikC,IAAIsgZ,EAAWN,GAAe,kBAAqB,EACxD,KAGVc,EAAW/lZ,EAGP6lZ,GADJG,GAAiBJ,GACyB,CACxC,GACEC,GAxEY,UAyELA,EAAuBG,GAChC//Y,EAAS53C,KAAKi0b,aAAaj0b,KAAK4wP,aAAe4mM,GAEjD,IAAKptb,EAAI,EAAGA,EAAImtb,EAAuBntb,IACrCwtC,EAAOggZ,KAAyBN,EAAgBltb,GAGpD4sb,EAASE,SAAWA,EACpBF,EAASC,WAAaA,EACtBD,EAASU,SAAWA,EACpBV,EAASO,sBAAwBA,EAEjCv3b,KAAK4wP,aAAegnM,EACtB,EAEQjB,EAAAj3b,UAAAm4b,SAAR,SAAiBv6b,GAGf,IAFA,IAAIw5b,EAAa92b,KAAK82b,WAClBD,EAAa72b,KAAK62b,WACfC,EAAax5b,GAAG,CACrB,IAAMuC,EAAIG,KAAKo1G,OAAO49U,UACtB,IAAW,IAAPnzb,EAEF,OADAG,KAAK8zb,KAAM,EACJ,KAET+C,EAAcA,GAAc,EAAKh3b,EACjCi3b,GAAc,EAIhB,OAFA92b,KAAK82b,WAAaA,GAAcx5b,EAChC0C,KAAK62b,WAAaA,EACVA,IAAeC,GAAgB,GAAKx5b,GAAK,CACnD,EACFq5b,CAAA,CAtJA,CAAwB/C,IAwJxB,YCxJA,IAAAkE,GAAA,SAAA9vK,GAGE,SAAA8vK,EAAY1iV,EAAoBk/U,GAAhC,IAAA7oW,EACEu8L,EAAApoR,KAAA,KAAM00b,IAAY,YAClB7oW,EAAK2pB,OAASA,GAChB,CAmCF,OAzC8BunT,GAAAm7B,EAAA9vK,GAQlB8vK,EAAAp4b,UAAAs0b,UAAV,WAKE,IAAM+D,EAAe/3b,KAAKo1G,OAAO89U,SAAS,GAC1C,IAAK6E,GAAgBA,EAAaz3b,OAAS,GAAyB,MAApBy3b,EAAa,GAC3D/3b,KAAK8zb,KAAM,MADb,CAKA,IAAIl8Y,EACAg5M,EAAe5wP,KAAK4wP,aACpBtzP,EAAIy6b,EAAa,GACrB,GAAIz6b,EAAI,KAIN,IAFAs6C,EAAS53C,KAAKi0b,aAAarjM,EAAetzP,EAAI,IACvCszP,KAAkBmnM,EAAa,GAClCz6b,EAAI,EAAG,CACT,IAAM2sB,EAASjqB,KAAKo1G,OAAO89U,SAAS51b,GACpCs6C,EAAOpoC,IAAIya,EAAQ2mO,GACnBA,GAAgBtzP,OAEb,CACLA,EAAI,IAAMA,EACV,IAAM4G,EAAI6zb,EAAa,GACvBngZ,EAAS53C,KAAKi0b,aAAarjM,EAAetzP,EAAI,GAC9C,IAAK,IAAIgC,EAAI,EAAGA,EAAIhC,EAAGgC,IACrBs4C,EAAOg5M,KAAkB1sP,EAG7BlE,KAAK4wP,aAAeA,EACtB,EACFknM,CAAA,CAzCA,CAA8BlE,IA2C9B,YCrCA,IAAMoE,GAAe,SACnB5iV,EACA59D,EACA0Z,GAEA,GAAI1Z,IAAa60X,GAAQpC,GAAG,eAC1B,OAAO,IAAI+qB,GAAY5/U,GAEzB,GAAI59D,IAAa60X,GAAQpC,GAAG,aAAc,CACxC,IAAI2sB,EAAc,EAClB,GAAI1lY,aAAkBw9W,GAAS,CAC7B,IAAMupB,EAAc/mY,EAAO++L,OAAOo8K,GAAQpC,GAAG,gBACzCguB,aAAuBvuB,KACzBktB,EAAcqB,EAAYjuB,YAG9B,OAAO,IAAI2sB,GAAUvhV,OAAQ3jF,EAAWmla,GAE1C,GAAIp/Y,IAAa60X,GAAQpC,GAAG,iBAC1B,OAAO,IAAIoqB,GAAcj/U,GAE3B,GAAI59D,IAAa60X,GAAQpC,GAAG,kBAC1B,OAAO,IAAIsqB,GAAen/U,GAE5B,GAAI59D,IAAa60X,GAAQpC,GAAG,mBAC1B,OAAO,IAAI6tB,GAAgB1iV,GAE7B,MAAM,IAAIwxT,GAAyBpvX,EAASu1X,WAC9C,EAEamrB,GAAqB,SAAC/iM,OAAE15N,EAAI05N,EAAA15N,KAAE5qB,EAAQskP,EAAAtkP,SAC7CukG,EAAqB,IAAI29U,GAAOlib,GAE9B0ga,EAAS91Y,EAAKw0N,OAAOo8K,GAAQpC,GAAG,WAChCkuB,EAAc18Z,EAAKw0N,OAAOo8K,GAAQpC,GAAG,gBAE3C,GAAIsH,aAAkBlF,GACpBj3T,EAAS4iV,GACP5iV,EACAm8T,EACA4mB,QAEG,GAAI5mB,aAAkBrH,GAC3B,IAAK,IAAIv1N,EAAM,EAAGvoL,EAAMmlZ,EAAO/ua,OAAQmyM,EAAMvoL,EAAKuoL,IAChDv/F,EAAS4iV,GACP5iV,EACAm8T,EAAOthL,OAAOt7C,EAAK03N,IACnB8rB,GAAgBA,EAAyBhuB,YAAYx1N,EAAK+5N,UAGzD,GAAM6C,EACX,MAAM,IAAI9K,GAA0B,CAAC4F,GAASnC,IAAWqH,GAG3D,OAAOn8T,CACT,ECbAgjV,GAAA,WAgBE,SAAAA,EACEhmb,EACAimb,EACAC,GAEAt4b,KAAKoS,KAAOA,EAEZ,IAAMg4a,EAAgB,OAAXiO,QAAW,IAAXA,EAAAA,EA3Ca,SAACjmb,GAC3B,IAAMmmb,EAAWnmb,EAAKq7Z,WAUtB,MAAO,CAAEvha,KAAM,EAAGgM,OAAQ,EAAGkY,MAP3Bmoa,EAAStoM,OAAO,EAAGy5K,IAAWM,WAC9BuuB,EAAStoM,OAAO,EAAGy5K,IAAWM,WAMW/9Z,IAHzCssb,EAAStoM,OAAO,EAAGy5K,IAAWM,WAC9BuuB,EAAStoM,OAAO,EAAGy5K,IAAWM,WAGlC,CA+B8BwuB,CAAoBpmb,GAE9CpS,KAAKgD,MAAQonb,EAAGh6Z,MAAQg6Z,EAAGl+a,KAC3BlM,KAAK8C,OAASsnb,EAAGn+a,IAAMm+a,EAAGlya,OAC1BlY,KAAKq4b,YAAcjO,EACnBpqb,KAAKs4b,qBACiB,OAApBA,QAAoB,IAApBA,EAAAA,EAjC4B,SAChClO,GACyB,OAAC,EAAG,EAAG,EAAG,GAAIA,EAAGl+a,MAAOk+a,EAAGlya,OAA3B,CA+BGugb,CAA0BrO,EACtD,CAiDF,OA9EegO,EAAAr9S,IAAb,SACE3oI,EACAimb,EACAC,wEAEA,MAAO,CAAP,EAAO,IAAIF,EAAgBhmb,EAAMimb,EAAaC,WA0B1CF,EAAA14b,UAAAy8a,iBAAN,SAAuBryW,EAAqBtmE,gGAG1C,GAFM2xP,EAA0Bn1P,KAAKoS,KAAK0ga,oBAAlCxF,EAAQn4K,EAAAm4K,SAAEH,EAASh4K,EAAAg4K,WAEtBG,EAAU,MAAM,IAAIxG,GAazB,OAZM4xB,EAAkB14b,KAAK24b,eAAerrB,GAEtCzsK,EAA+B7gQ,KAAKq4b,YAAlCnsb,EAAI20P,EAAA30P,KAAEgM,EAAM2oP,EAAA3oP,OAAEkY,EAAKywO,EAAAzwO,MAAEnkB,EAAG40P,EAAA50P,IAC1Bg4a,EAAUn6W,EAAQwnW,YAAYonB,EAAiB,CACnDnrB,KAAM,UACNqE,QAAS,OACTgnB,SAAU,EACVlnB,KAAM,CAACxla,EAAMgM,EAAQkY,EAAOnkB,GAC5B0la,OAAQ3xa,KAAKs4b,qBACbnrB,UAASA,IAGP3pa,GACFsmE,EAAQ1pE,OAAOoD,EAAKygb,GACb,CAAP,EAAOzgb,IAEA,CAAP,EAAOsmE,EAAQq6H,SAAS8/O,WAMpBmU,EAAA14b,UAAAi5b,eAAR,SAAuB9nb,GAIrB,IAHA,IAAMgob,EAAUv0a,WAAW2lZ,GAAG3D,GAAUgD,SAClCovB,EAAgC,GAE7B/jP,EAAM,EAAGvoL,EAAMvb,EAASrO,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACzD,IAAMv/F,EAASvkG,EAASo/O,OAAOt7C,EAAKu6N,IAEhCzka,OAAO,EACX,GAAI2qG,aAAkBq6T,GACpBhla,EAAUytb,GAAmB9iV,GAAQt9D,aAChC,MAAIs9D,aAAkBi7T,IAG3B,MAAM,IAAIrJ,GAA4B5xT,GAFtC3qG,EAAU2qG,EAAO+6T,uBAKnBuoB,EAAgBz3b,KAAKwJ,EAASoub,GAGhC,OAAO74B,GAAmBz/Z,WAAC,EAAGm4b,EAChC,EACFN,CAAA,CA/EA,GAiFA,YC/HA,IAQYU,GAoBAC,GAWAC,GAQAC,GA/CNC,GAAS,SACb3hO,EACA4hO,GAEA,QAAiB1na,IAAb8lM,EACJ,OAAO4hO,EAAS5hO,EAClB,GAEA,SAAYuhO,GAKVA,EAAA,kBAGAA,EAAA,0BAGAA,EAAA,sBAMAA,EAAA,aACD,CAlBD,CAAYA,KAAAA,GAAqB,KAoBjC,SAAYC,GAEVA,EAAA,UAMAA,EAAA,SACD,CATD,CAAYA,KAAAA,GAAgB,KAW5B,SAAYC,GAEVA,EAAA,YAGAA,EAAA,uBACD,CAND,CAAYA,KAAAA,GAAY,KAQxB,SAAYC,GAEVA,EAAA,kBAMAA,EAAA,0CAMAA,EAAA,uCACD,CAfD,CAAYA,KAAAA,GAAM,KAoClB,IAAAG,GAAA,WAeE,SAAAA,EAAsB39Z,GACpBz7B,KAAKy7B,KAAOA,CACd,CA+cF,OA7cY29Z,EAAA15b,UAAA25b,WAAV,SAAqBpwb,GACnB,IAAMqwb,EAAYt5b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAGhha,IAC9C,GAAIqwb,aAAqBvuB,GAAS,OAAOuuB,CAE3C,EAEUF,EAAA15b,UAAA65b,WAAV,SAAqBtwb,GACnB,IAAMqwb,EAAYt5b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAGhha,IAC9C,GAAIqwb,aAAqBjtB,GAAS,OAAOitB,CAE3C,EAGAF,EAAA15b,UAAA85b,YAAA,WACE,OAAOx5b,KAAKq5b,WAAW,cACzB,EAGAD,EAAA15b,UAAA+5b,YAAA,WACE,OAAOz5b,KAAKq5b,WAAW,cACzB,EAGAD,EAAA15b,UAAAg6b,aAAA,WACE,OAAO15b,KAAKq5b,WAAW,eACzB,EAGAD,EAAA15b,UAAAi6b,UAAA,WACE,OAAO35b,KAAKq5b,WAAW,YACzB,EAGAD,EAAA15b,UAAAk6b,aAAA,WACE,OAAO55b,KAAKq5b,WAAW,eACzB,EAGAD,EAAA15b,UAAAm6b,gBAAA,WACE,OAAO75b,KAAKq5b,WAAW,kBACzB,EAGAD,EAAA15b,UAAAo5b,sBAAA,WACE,OAAO94b,KAAKu5b,WAAW,wBACzB,EAGAH,EAAA15b,UAAAo6b,UAAA,WACE,OAAO95b,KAAKu5b,WAAW,YACzB,EAGAH,EAAA15b,UAAAs5b,aAAA,WACE,OAAOh5b,KAAKu5b,WAAW,eACzB,EAGAH,EAAA15b,UAAAu5b,OAAA,WACE,OAAOj5b,KAAKu5b,WAAW,SACzB,EAGAH,EAAA15b,UAAAq6b,kBAAA,WACE,OAAO/5b,KAAKq5b,WAAW,oBACzB,EAGAD,EAAA15b,UAAAs6b,eAAA,WACE,IAAMA,EAAiBh6b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,mBACnD,GAAI+vB,aAA0B9vB,GAAU,OAAO8vB,CAEjD,EAGAZ,EAAA15b,UAAAu6b,UAAA,WACE,IAAMA,EAAYj6b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,cAC9C,GAAIgwB,aAAqBvwB,GAAW,OAAOuwB,CAE7C,EAOAb,EAAA15b,UAAAw6b,eAAA,mBACE,OAAoC,QAApCr5L,EAAyB,QAAzB1L,EAAOn1P,KAAKw5b,qBAAa,IAAArkM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CACtC,EAOAu4L,EAAA15b,UAAAy6b,eAAA,mBACE,OAAoC,QAApCt5L,EAAyB,QAAzB1L,EAAOn1P,KAAKy5b,qBAAa,IAAAtkM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CACtC,EAQAu4L,EAAA15b,UAAA06b,gBAAA,mBACE,OAAqC,QAArCv5L,EAA0B,QAA1B1L,EAAOn1P,KAAK05b,sBAAc,IAAAvkM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CACvC,EAOAu4L,EAAA15b,UAAA26b,aAAA,mBACE,OAAkC,QAAlCx5L,EAAuB,QAAvB1L,EAAOn1P,KAAK25b,mBAAW,IAAAxkM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CACpC,EAOAu4L,EAAA15b,UAAA46b,gBAAA,mBACE,OAAqC,QAArCz5L,EAA0B,QAA1B1L,EAAOn1P,KAAK45b,sBAAc,IAAAzkM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CACvC,EASAu4L,EAAA15b,UAAA66b,mBAAA,mBACE,OAAwC,QAAxC15L,EAA6B,QAA7B1L,EAAOn1P,KAAK65b,yBAAiB,IAAA1kM,OAAA,EAAAA,EAAE81K,mBAAS,IAAApqK,GAAAA,CAC1C,EAOAu4L,EAAA15b,UAAA86b,yBAAA,mBACQx+Z,EAAmC,QAA/Bm5N,EAAGn1P,KAAK84b,+BAAuB,IAAA3jM,OAAA,EAAAA,EAAE23K,aAC3C,OAA0C,QAA1CjsK,EAAOq4L,GAAOl9Z,EAAM88Z,WAAsB,IAAAj4L,EAAAA,EAAIi4L,GAAsB2B,OACtE,EAMArB,EAAA15b,UAAAg7b,oBAAA,mBACQ55b,EAA4B,QAAnBq0P,EAAGn1P,KAAK85b,mBAAW,IAAA3kM,OAAA,EAAAA,EAAE23K,aACpC,OAA0C,QAA1CjsK,EAAOq4L,GAAOp4b,EAAWi4b,WAAiB,IAAAl4L,EAAAA,EAAIk4L,GAAiB4B,GACjE,EAOAvB,EAAA15b,UAAAk7b,gBAAA,mBACQC,EAA6B,QAAtB1lM,EAAGn1P,KAAKg5b,sBAAc,IAAA7jM,OAAA,EAAAA,EAAE23K,aACrC,OAAoC,QAApCjsK,EAAOq4L,GAAO2B,EAAS7B,WAAa,IAAAn4L,EAAAA,EAAIm4L,GAAa8B,UACvD,EAOA1B,EAAA15b,UAAAq7b,UAAA,iBACQr4N,EAAsB,QAAhByyB,EAAGn1P,KAAKi5b,gBAAQ,IAAA9jM,OAAA,EAAAA,EAAE23K,aAC9B,OAAOosB,GAAOx2N,EAAQu2N,GACxB,EAQAG,EAAA15b,UAAAs7b,qBAAA,iBACE,OAA+B,QAA/B7lM,EAAOn1P,KAAK+5b,2BAAmB,IAAA5kM,OAAA,EAAAA,EAAE81K,WACnC,EAmBAmuB,EAAA15b,UAAAu7b,kBAAA,WACE,IAAMjqB,EAAMhxa,KAAKg6b,iBACjB,IAAKhpB,EAAK,MAAO,GAGjB,IADA,IAAMkqB,EAA0B,GACvB57b,EAAI,EAAGA,EAAI0xa,EAAIxua,OAAQlD,GAAK,EAAG,CAKtC,IAAMghB,EAAQ0wZ,EAAI/gL,OAAO3wP,EAAGoqa,IAAWM,WACjC5pZ,EAAM4wZ,EAAI/gL,OAAO3wP,EAAI,EAAGoqa,IAAWM,WACzCkxB,EAAWj6b,KAAK,CAAEqf,MAAKA,EAAEF,IAAGA,IAG9B,OAAO86a,CACT,EAOA9B,EAAA15b,UAAAy7b,aAAA,mBACE,OAAiC,QAAjCt6L,EAAuB,QAAvB1L,EAAOn1P,KAAKi6b,mBAAW,IAAA9kM,OAAA,EAAAA,EAAE60K,kBAAQ,IAAAnpK,EAAAA,EAAM,CACzC,EAOAu4L,EAAA15b,UAAA07b,eAAA,SAAeC,GACb,IAAM7B,EAAcx5b,KAAKy7B,KAAKquC,QAAQx/C,IAAI+wa,GAC1Cr7b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,eAAgBuvB,EAC3C,EAOAJ,EAAA15b,UAAA47b,eAAA,SAAeC,GACb,IAAM9B,EAAcz5b,KAAKy7B,KAAKquC,QAAQx/C,IAAIixa,GAC1Cv7b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,eAAgBwvB,EAC3C,EAQAL,EAAA15b,UAAA87b,gBAAA,SAAgBC,GACd,IAAM/B,EAAe15b,KAAKy7B,KAAKquC,QAAQx/C,IAAImxa,GAC3Cz7b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,gBAAiByvB,EAC5C,EAOAN,EAAA15b,UAAAg8b,aAAA,SAAaC,GACX,IAAMhC,EAAY35b,KAAKy7B,KAAKquC,QAAQx/C,IAAIqxa,GACxC37b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,aAAc0vB,EACzC,EAOAP,EAAA15b,UAAAk8b,gBAAA,SAAgBC,GACd,IAAMjC,EAAe55b,KAAKy7B,KAAKquC,QAAQx/C,IAAIuxa,GAC3C77b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,gBAAiB2vB,EAC5C,EAQAR,EAAA15b,UAAAo8b,mBAAA,SAAmBC,GACjB,IAAMlC,EAAkB75b,KAAKy7B,KAAKquC,QAAQx/C,IAAIyxa,GAC9C/7b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,mBAAoB4vB,EAC/C,EAwBAT,EAAA15b,UAAAs8b,yBAAA,SAAyBC,GACvBp3B,GACEo3B,EACA,wBACAnD,IAEF,IAAM98Z,EAAOqwY,GAAQpC,GAAGgyB,GACxBj8b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,yBAA0BjuY,EACrD,EAoBAo9Z,EAAA15b,UAAAw8b,oBAAA,SAAoBC,GAClBt3B,GAAcs3B,EAAkB,mBAAoBpD,IACpD,IAAMj4b,EAAYura,GAAQpC,GAAGkyB,GAC7Bn8b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,aAAcnpa,EACzC,EAiBAs4b,EAAA15b,UAAA08b,gBAAA,SAAgBC,GACdx3B,GAAcw3B,EAAc,eAAgBrD,IAC5C,IAAM6B,EAAUxuB,GAAQpC,GAAGoyB,GAC3Br8b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,gBAAiB4wB,EAC5C,EAiBAzB,EAAA15b,UAAA48b,UAAA,SAAU55N,GACRmiM,GAAcniM,EAAQ,SAAUu2N,IAChC,IAAMsD,EAAMlwB,GAAQpC,GAAGvnM,GACvB1iO,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,UAAWsyB,EACtC,EAeAnD,EAAA15b,UAAA88b,qBAAA,SAAqBC,GACnB,IAAM1C,EAAoB/5b,KAAKy7B,KAAKquC,QAAQx/C,IAAImya,GAChDz8b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,qBAAsB8vB,EACjD,EA4BAX,EAAA15b,UAAAg9b,kBAAA,SAAkBC,GACXl9b,MAAM8rB,QAAQoxa,KAAiBA,EAAiB,CAACA,IAGtD,IADA,IAAMC,EAAsB,GACnBjoP,EAAM,EAAGvoL,EAAMuwa,EAAer8b,OAAQq0M,EAAMvoL,EAAKuoL,IACxDioP,EAAU37b,KAAK07b,EAAehoP,GAAKr0L,OACnCs8a,EAAU37b,KAAK07b,EAAehoP,GAAKv0L,KAGrCslZ,GAAak3B,EAAW,iBAAkB,CAAC,WAE3C,IAAM1B,EAAal7b,KAAKy7B,KAAKquC,QAAQx/C,IAAIsya,GACzC58b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,kBAAmBixB,EAC9C,EAOA9B,EAAA15b,UAAAm9b,aAAA,SAAaC,GACXn3B,GAAYm3B,EAAW,YAAa,EAAGxlZ,OAAOylZ,WvDrWrB,SAACj5b,EAAYgha,GACxC,IAAKxtX,OAAOC,UAAUzzC,GACpB,MAAM,IAAI4pB,MACLk3Y,GAASE,GAAU,yCAAyChha,EAGrE,CuDgWIk5b,CAAcF,EAAW,aACzB,IAAM7C,EAAYj6b,KAAKy7B,KAAKquC,QAAQx/C,IAAIwya,GACxC98b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,aAAcgwB,EACzC,EA1dOb,EAAA6D,SAAW,SAACxha,GACjB,WAAI29Z,EAAkB39Z,EAAtB,EAGK29Z,EAAA57b,OAAS,SAACssE,GAEf,OAAO,IAAIsvX,EADEtvX,EAAQx/C,IAAI,CAAC,GAE5B,EAodF8ua,EAheA,GAkeA,YCnjBA,IAAM8D,GAAU,sEAEhBC,GAAA,WAIE,SAAAA,EAAsB1ha,EAAej4B,GACnCxD,KAAKy7B,KAAOA,EACZz7B,KAAKwD,IAAMA,CACb,CA4IF,OA1IE25b,EAAAz9b,UAAAiG,EAAA,WACE,OAAO3F,KAAKy7B,KAAK0uY,YAAYkC,GAAQpC,GAAG,KAAM6T,GAAWhD,GAC3D,EAEAqiB,EAAAz9b,UAAA09b,GAAA,WACE,IAAM1qB,EAAc1ya,KAAKwya,wBAAwBnG,GAAQpC,GAAG,OAC5D,OAAOjqa,KAAKy7B,KAAKquC,QAAQqgW,YAAYuI,EAAahJ,GACpD,EAEAyzB,EAAAz9b,UAAA8I,EAAA,WACE,IAAM60b,EAAar9b,KAAKwya,wBAAwBnG,GAAQpC,GAAG,MAC3D,OAAOjqa,KAAKy7B,KAAKquC,QAAQmmL,OAAOotM,EAClC,EAEAF,EAAAz9b,UAAA49b,KAAA,WACE,OAAOt9b,KAAKy7B,KAAK0uY,YAAYkC,GAAQpC,GAAG,QAASC,GACnD,EAMAizB,EAAAz9b,UAAA69b,GAAA,WACE,IAAMC,EAAKx9b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIuzB,aAAc1f,IAAa0f,aAAc1iB,GAAc,OAAO0iB,CAEpE,EAEAL,EAAAz9b,UAAA+9b,QAAA,SAAQrzI,GACNpqT,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASjqa,KAAKy7B,KAAKquC,QAAQx/C,IAAI8/R,GAC1D,EAEA+yI,EAAAz9b,UAAA4xL,UAAA,WAKE,IAAMpyK,EAAYlf,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,WAC3C,GAAI/qZ,aAAqBywZ,GAEvB,OAAO,IAAIwtB,EADIn9b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,UAAWyE,IACtBxvZ,EAIpC,EAEAi+a,EAAAz9b,UAAAivE,UAAA,SAAUrE,GACHA,EACAtqE,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,UAAW3/V,GAD5BtqE,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,UAE3C,EAEAkzB,EAAAz9b,UAAAg+b,sBAAA,WACE,IAAMpzX,EAAStqE,KAAKsxL,YACpB,OAAKhnH,EACKA,EAAOozX,wBAAuB,IAAI19b,KAAK29b,iBAD7B39b,KAAK29b,gBAE3B,EAEAR,EAAAz9b,UAAAi+b,eAAA,iBACE,OAAe,QAAfxoM,EAAOn1P,KAAK2F,WAAG,IAAAwvP,OAAA,EAAAA,EAAE23K,YACnB,EAEAqwB,EAAAz9b,UAAAk+b,eAAA,SAAeC,GACRA,EACA79b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAM6Q,GAAaK,SAAS0iB,IADxC79b,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,KAEhD,EAEAkzB,EAAAz9b,UAAAo+b,qBAAA,SAAqBppa,GACnB10B,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAO6T,GAAU7T,GAAGv1Y,GAC/C,EAEAyoa,EAAAz9b,UAAAq+b,qBAAA,WACE,IAAMR,EAAKv9b,KAAKu9b,KAEhB,OAAIA,aAAcziB,GACTyiB,EAAGzwB,aAGH,OAAFywB,QAAE,IAAFA,OAAE,EAAFA,EAAIxwB,UACb,EAEAowB,EAAAz9b,UAAAs+b,YAAA,SAAY7mW,SACJtoF,EAAmC,QAA/BsmP,EAAGn1P,KAAK09b,+BAAuB,IAAAvoM,EAAAA,EAAI,GAEvCqoM,EAAKx9b,KAAK+9b,uBAChB,IAAKP,EAAI,MAAM,IAAI31B,GAAoBh5Z,GAEvC,IAAMovb,EAAUr+B,GAAc49B,EAAIN,IAClC,IAAKe,EAAQvmb,MAAO,MAAM,IAAIowZ,GAAuBj5Z,GAErD,IAAMqvb,EAAUV,EAAGt2b,MAAM,EAAG+2b,EAAQ7+Z,IAAM6+Z,EAAQvmb,MAAM,GAAGpX,QACrD69b,EAAQF,EAAQ7+Z,KAAOo+Z,EAAGl9b,OAASk9b,EAAGt2b,MAAM+2b,EAAQ7+Z,KAAO,GAE3Dg/Z,EAAgBF,EAAO,KADZD,EAAQvmb,MAAM,GACW,IAAIy/E,EAAQ,OAAOgnW,EAE7Dn+b,KAAK89b,qBAAqBM,EAC5B,EAEAjB,EAAAz9b,UAAA2+b,SAAA,mBACE,OAA0B,QAA1Bx9L,EAAgB,QAAhB1L,EAAOn1P,KAAKo9b,YAAI,IAAAjoM,OAAA,EAAAA,EAAE60K,kBAAQ,IAAAnpK,EAAAA,EAAM,CAClC,EAEAs8L,EAAAz9b,UAAA4+b,SAAA,SAASpyZ,GACPlsC,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOP,GAAUO,GAAG/9X,GAC/C,EAEAixZ,EAAAz9b,UAAA6+b,QAAA,SAAQC,GAEN,OAA0B,KADZx+b,KAAKq+b,WACHG,EAClB,EAEArB,EAAAz9b,UAAA++b,QAAA,SAAQD,GACN,IAAMtyZ,EAAQlsC,KAAKq+b,WACnBr+b,KAAKs+b,SAASpyZ,EAAQsyZ,EACxB,EAEArB,EAAAz9b,UAAAg/b,UAAA,SAAUF,GACR,IAAMtyZ,EAAQlsC,KAAKq+b,WACnBr+b,KAAKs+b,SAASpyZ,GAASsyZ,EACzB,EAEArB,EAAAz9b,UAAAi/b,UAAA,SAAUH,EAAc95W,GAClBA,EAAQ1kF,KAAKy+b,QAAQD,GACpBx+b,KAAK0+b,UAAUF,EACtB,EAEArB,EAAAz9b,UAAA8ya,wBAAA,SAAwB3ja,GACtB,IAAImzT,EAIJ,OAHAhiU,KAAK2ya,QAAO,SAAClkZ,GACNuzS,IAAWA,EAAYvzS,EAAKgN,KAAK39B,IAAI+Q,GAC5C,IACOmzT,CACT,EAEAm7H,EAAAz9b,UAAAiza,OAAA,SAAO3+M,GACLA,EAAQh0N,MACR,IAAMsqE,EAAStqE,KAAKsxL,YAChBhnH,GAAQA,EAAOqoW,OAAO3+M,EAC5B,EACFmpO,CAAA,CAnJA,GAqJA,YCjKA,IAAAyB,GAAA,WAKE,SAAAA,EAAsBnja,GACpBz7B,KAAKy7B,KAAOA,CACd,CAgBF,OAdEmja,EAAAl/b,UAAAsK,EAAA,WACE,IAAMA,EAAIhK,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,MACtC,GAAIjga,aAAa0/Z,GAAW,OAAO1/Z,CAErC,EAEA40b,EAAAl/b,UAAAiqZ,SAAA,mBACE,OAAyB,QAAzB9oJ,EAAe,QAAf1L,EAAOn1P,KAAKgK,WAAG,IAAAmrP,OAAA,EAAAA,EAAE60K,kBAAQ,IAAAnpK,EAAAA,EAAM,CACjC,EAEA+9L,EAAAl/b,UAAAm4S,SAAA,SAAS70S,GACP,IAAMgH,EAAIhK,KAAKy7B,KAAKquC,QAAQx/C,IAAItnB,GAChChD,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMjga,EACjC,EAnBO40b,EAAA3B,SAAW,SAACxha,GAA+B,WAAImja,EAAYnja,EAAhB,EAoBpDmja,EAvBA,GAyBA,YCvBA,IAAAC,GAAA,WAKE,SAAAA,EAAsBpja,GACpBz7B,KAAKy7B,KAAOA,CACd,CAmIF,OAhIEoja,EAAAn/b,UAAAo/b,KAAA,WACE,OAAO9+b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,QAASC,GAC9C,EAEA20B,EAAAn/b,UAAAq/b,GAAA,WACE,OAAO/+b,KAAKy7B,KAAK0uY,YAAYkC,GAAQpC,GAAG,MAAOyE,GACjD,EAEAmwB,EAAAn/b,UAAAuG,EAAA,WACE,IAAMysa,EAAc1ya,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,MAChD,OAAOjqa,KAAKy7B,KAAKquC,QAAQqgW,YAAYuI,EAAahJ,GACpD,EAEAm1B,EAAAn/b,UAAAs/b,aAAA,iBACQF,EAAO9+b,KAAK8+b,OAClB,OAAwB,QAAxB3pM,EAAW,OAAJ2pM,QAAI,IAAJA,OAAI,EAAJA,EAAM10B,qBAAW,IAAAj1K,EAAAA,EAAM,CAAE7xP,EAAG,EAAGa,EAAG,EAAGnB,MAAO,EAAGF,OAAQ,EAChE,EAEA+7b,EAAAn/b,UAAAu/b,aAAA,SAAa3sb,GACH,IAAAhP,EAAwBgP,EAAIhP,EAAzBa,EAAqBmO,EAAInO,EAAtBnB,EAAkBsP,EAAItP,MAAfF,EAAWwP,EAAIxP,OAC9Bg8b,EAAO9+b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IACzD9C,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,QAAS60B,EACpC,EAEAD,EAAAn/b,UAAAw/b,mBAAA,WACE,IAAMC,EAAKn/b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIk1B,aAAc9yB,GAAS,OAAO8yB,CAEpC,EAEAN,EAAAn/b,UAAA0/b,mBAAA,SAAmBv8Z,GACjB7iC,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOpnY,EAClC,EAEAg8Z,EAAAn/b,UAAA2/b,eAAA,SAAeC,GACbt/b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOq1B,EAClC,EAEAT,EAAAn/b,UAAA6/b,SAAA,WACE,IAAIR,EAAK/+b,KAAK++b,KAKd,OAJKA,IACHA,EAAK/+b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAAC,GAC5BtqB,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAO80B,IAE3BA,CACT,EAEAF,EAAAn/b,UAAA8/b,oBAAA,WACE,IACMj3b,EADKvI,KAAKu/b,WACHzhc,IAAIuua,GAAQpC,GAAG,MAC5B,GAAI1ha,aAAaona,IAAUpna,aAAamma,GAAS,OAAOnma,EAExD,MAAM,IAAImlB,MAAM,uBAAuB,OAADnlB,QAAC,IAADA,OAAC,EAADA,EAAGtI,YAAY4O,MACvD,EAGAgwb,EAAAn/b,UAAA+/b,oBAAA,SAAoB/qa,GACP10B,KAAKu/b,WACb/vb,IAAI68Z,GAAQpC,GAAG,KAAMv1Y,EAC1B,EAGAmqa,EAAAn/b,UAAAggc,sBAAA,SAAsBhra,GACT10B,KAAKu/b,WACb/vb,IAAI68Z,GAAQpC,GAAG,KAAMv1Y,EAC1B,EAGAmqa,EAAAn/b,UAAAigc,kBAAA,SAAkBjra,GACL10B,KAAKu/b,WACb/vb,IAAI68Z,GAAQpC,GAAG,KAAMv1Y,EAC1B,EAEAmqa,EAAAn/b,UAAAkgc,yBAAA,WACE,IAAMb,EAAK/+b,KAAK++b,KACd,OAAFA,QAAE,IAAFA,GAAAA,EAAIvlY,OAAO6yW,GAAQpC,GAAG,KACxB,EAEA40B,EAAAn/b,UAAAmgc,qBAAA,WACE,IAAMd,EAAK/+b,KAAK++b,KACd,OAAFA,QAAE,IAAFA,GAAAA,EAAIvlY,OAAO6yW,GAAQpC,GAAG,KACxB,EAEA40B,EAAAn/b,UAAAogc,eAAA,WAOE,IAAMf,EAAK/+b,KAAK++b,KAEhB,GAAKA,EAML,MAAO,CAAEgB,OAJChB,EAAG9uM,OAAOo8K,GAAQpC,GAAG,KAAMyE,GAASQ,IAI1B8wB,SAHVjB,EAAG50B,YAAYkC,GAAQpC,GAAG,KAAMyE,GAASQ,IAGlB+wB,KAFvBlB,EAAG50B,YAAYkC,GAAQpC,GAAG,KAAMyE,GAASQ,IAGrD,EAEA2vB,EAAAn/b,UAAA2+b,SAAA,mBACE,OAAyB,QAAzBx9L,EAAe,QAAf1L,EAAOn1P,KAAKiG,WAAG,IAAAkvP,OAAA,EAAAA,EAAE60K,kBAAQ,IAAAnpK,EAAAA,EAAM,CACjC,EAEAg+L,EAAAn/b,UAAA4+b,SAAA,SAASpyZ,GACPlsC,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMP,GAAUO,GAAG/9X,GAC9C,EAEA2yZ,EAAAn/b,UAAA6+b,QAAA,SAAQC,GAEN,OAA0B,KADZx+b,KAAKq+b,WACHG,EAClB,EAEAK,EAAAn/b,UAAA++b,QAAA,SAAQD,GACN,IAAMtyZ,EAAQlsC,KAAKq+b,WACnBr+b,KAAKs+b,SAASpyZ,EAAQsyZ,EACxB,EAEAK,EAAAn/b,UAAAg/b,UAAA,SAAUF,GACR,IAAMtyZ,EAAQlsC,KAAKq+b,WACnBr+b,KAAKs+b,SAASpyZ,GAASsyZ,EACzB,EAEAK,EAAAn/b,UAAAi/b,UAAA,SAAUH,EAAc95W,GAClBA,EAAQ1kF,KAAKy+b,QAAQD,GACpBx+b,KAAK0+b,UAAUF,EACtB,EAtIOK,EAAA5B,SAAW,SAACxha,GAAiC,WAAIoja,EAAcpja,EAAlB,EAuItDoja,EA1IA,GA4IA,YC5IA,IAAAqB,GAAA,WAME,SAAAA,EAAsBzka,GACpBz7B,KAAKy7B,KAAOA,CACd,CAmHF,OAjHEyka,EAAAxgc,UAAAwF,EAAA,WACE,IAAMA,EAAIlF,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,MACtC,GAAI/ka,aAAawka,GAAW,OAAOxka,CAErC,EAEAg7b,EAAAxgc,UAAAygc,GAAA,WACE,IAAMA,EAAKngc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIk2B,aAAcj2B,GAAU,OAAOi2B,CAErC,EAEAD,EAAAxgc,UAAA0gc,GAAA,WACE,IAAMA,EAAKpgc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIm2B,aAAcl2B,GAAU,OAAOk2B,CAErC,EAEAF,EAAAxgc,UAAA2gc,GAAA,WACE,IAAMA,EAAKrgc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIo2B,aAAcvlB,IAAgBulB,aAAcviB,GAAW,OAAOuiB,CAEpE,EAEAH,EAAAxgc,UAAA4gc,GAAA,WACE,IAAMA,EAAKtgc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIq2B,aAAcxlB,IAAgBwlB,aAAcxiB,GAAW,OAAOwiB,CAEpE,EAEAJ,EAAAxgc,UAAA6gc,GAAA,WACE,IAAMA,EAAKvgc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIs2B,aAAczlB,IAAgBylB,aAAcziB,GAAW,OAAOyiB,CAEpE,EAEAL,EAAAxgc,UAAA8gc,YAAA,iBACE,OAAe,QAAfrrM,EAAOn1P,KAAKkF,WAAG,IAAAiwP,OAAA,EAAAA,EAAE60K,UACnB,EAEAk2B,EAAAxgc,UAAA+gc,eAAA,WACE,IAAMN,EAAKngc,KAAKmgc,KAEhB,GAAKA,EAAL,CAGA,IADA,IAAM9yT,EAAuB,GACpBsnE,EAAM,EAAGvoL,EAAQ,OAAF+za,QAAE,IAAFA,OAAE,EAAFA,EAAI39b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACpD,IAAMtkC,EAAY8vR,EAAGric,IAAI62M,GACrBtkC,aAAqBq5P,IAAWr8R,EAAWpsI,KAAKovK,EAAU25P,YAGhE,OAAO38R,CARkB,CAS3B,EAEA6yT,EAAAxgc,UAAAghc,mBAAA,WACE,IAAMN,EAAKpgc,KAAKogc,KAEhB,GAAKA,EAAL,CAGA,IADA,IAAM/yT,EAAuB,GACpBsnE,EAAM,EAAGvoL,EAAQ,OAAFg0a,QAAE,IAAFA,OAAE,EAAFA,EAAI59b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACpD,IAAMtkC,EAAY+vR,EAAGtic,IAAI62M,GACrBtkC,aAAqBq5P,IAAWr8R,EAAWpsI,KAAKovK,EAAU25P,YAGhE,OAAO38R,CARkB,CAS3B,EAEA6yT,EAAAxgc,UAAAihc,YAAA,WACE,IAAMN,EAAKrgc,KAAKqgc,KACVC,EAAKtgc,KAAKsgc,KACVC,EAAKvgc,KAAKugc,KAEhB,MAAO,CACLR,OAAU,OAAFM,QAAE,IAAFA,OAAE,EAAFA,EAAIvzB,aACZkzB,SAAY,OAAFM,QAAE,IAAFA,OAAE,EAAFA,EAAIxzB,aACdmzB,KAAQ,OAAFM,QAAE,IAAFA,OAAE,EAAFA,EAAIzzB,aAEd,EAEAozB,EAAAxgc,UAAAu6H,YAAA,SAAY1gH,GACV,IAAMrU,EAAIlF,KAAKy7B,KAAKquC,QAAQx/C,IAAI/Q,GAChCvZ,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAM/ka,EACjC,EAEAg7b,EAAAxgc,UAAAkhc,eAAA,SAAevtb,GACb,IAAM8sb,EAAKngc,KAAKy7B,KAAKquC,QAAQx/C,IAAIjX,GACjCrT,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOk2B,EAClC,EAEAD,EAAAxgc,UAAAmhc,mBAAA,SAAmBxtb,GACjB,IAAM+sb,EAAKpgc,KAAKy7B,KAAKquC,QAAQx/C,IAAIjX,GACjCrT,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOm2B,EAClC,EAEAF,EAAAxgc,UAAAohc,YAAA,SAAYC,GACV,IAAMV,EAAKvlB,GAAaK,SAAS4lB,EAAShB,QAG1C,GAFA//b,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOo2B,GAE5BU,EAASf,SAAU,CACrB,IAAMM,EAAKxlB,GAAaK,SAAS4lB,EAASf,UAC1Chgc,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOq2B,QAEhCtgc,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,OAG9B,GAAI82B,EAASd,KAAM,CACjB,IAAMM,EAAKzlB,GAAaK,SAAS4lB,EAASd,MAC1Cjgc,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOs2B,QAEhCvgc,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,MAEhC,EAvHOi2B,EAAAjD,SAAW,SAACxha,GACjB,WAAIyka,EAA0Bzka,EAA9B,EAuHJyka,EA3HA,GA6HA,YC1HA,IAAAc,GAAA,SAAAh5K,GAAA,SAAAg5K,kDAmGA,QAnGkCrkC,GAAAqkC,EAAAh5K,GAchCg5K,EAAAthc,UAAAuhc,GAAA,WACE,IAAMA,EAAKjhc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIg3B,aAAcvyB,GAAS,OAAOuyB,CAEpC,EAEAD,EAAAthc,UAAAwhc,GAAA,WACE,IAAMA,EAAKlhc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIi3B,aAAcxyB,GAAS,OAAOwyB,CAEpC,EAEAF,EAAAthc,UAAA69b,GAAA,WACE,IAAMC,EAAKx9b,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,OACvC,GAAIuzB,aAAc1f,IAAa0f,aAAc1iB,GAAc,OAAO0iB,CAEpE,EAEAwD,EAAAthc,UAAAsF,EAAA,WACE,IAAMA,EAAIhF,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,MACnC,GAAIjla,aAAa2qa,GAAQ,OAAO3qa,CAElC,EAEAg8b,EAAAthc,UAAAyhc,KAAA,SAAK/ub,GACHpS,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAM73Z,EACjC,EAEA4ub,EAAAthc,UAAAo+b,qBAAA,SAAqBppa,GACnB10B,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAO6T,GAAU7T,GAAGv1Y,GAC/C,EAEAssa,EAAAthc,UAAAq+b,qBAAA,WACE,IAAMR,EAAKv9b,KAAKu9b,KAEhB,OAAIA,aAAcziB,GACTyiB,EAAGzwB,aAGH,OAAFywB,QAAE,IAAFA,OAAE,EAAFA,EAAIxwB,UACb,EAEAi0B,EAAAthc,UAAA0hc,6BAAA,WACE,IAAMH,EAAKjhc,KAAKihc,KAChB,GAAIA,EAAI,OAAOf,GAA0BjD,SAASgE,EAEpD,EAEAD,EAAAthc,UAAA2hc,qCAAA,WACE,IAAMJ,EAAKjhc,KAAKihc,KAChB,GAAIA,EAAI,OAAOf,GAA0BjD,SAASgE,GAElD,IAAMlW,EAAKmV,GAA0BjD,SAASj9b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAAC,IAErE,OADAtqB,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAO8gB,EAAGtvZ,MAC5BsvZ,CACT,EAEAiW,EAAAthc,UAAA4hc,eAAA,WACE,IAAMJ,EAAKlhc,KAAKkhc,KAChB,GAAIA,EAAI,OAAOtC,GAAY3B,SAASiE,EAEtC,EAEAF,EAAAthc,UAAA6hc,uBAAA,WACE,IAAML,EAAKlhc,KAAKkhc,KAChB,GAAIA,EAAI,OAAOtC,GAAY3B,SAASiE,GAEpC,IAAMM,EAAK5C,GAAY3B,SAASj9b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAAC,IAEvD,OADAtqB,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,MAAOu3B,EAAG/la,MAC5B+la,CACT,EAEAR,EAAAthc,UAAA+hc,WAAA,iBACQ1B,EAA8B,QAAxB5qM,EAAGn1P,KAAK8/b,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,OAEtC,GAAIA,aAAkBrxB,GAEpB,IADA,IAAMjxa,EAAOsic,EAAOtic,OACXk3M,EAAM,EAAGvoL,EAAM3uB,EAAK6C,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACrD,IAAM1rM,EAAMxL,EAAKk3M,GACjB,GAAI1rM,IAAQoja,GAAQpC,GAAG,OAAQ,OAAOhha,EAK5C,EAjGO+3b,EAAA/D,SAAW,SAACxha,GACjB,WAAIula,EAAoBvla,EAAxB,EAEKula,EAAAxjc,OAAS,SAACssE,EAAqBQ,GAOpC,OAAO,IAAI02X,EANEl3X,EAAQx/C,IAAI,CACvBijZ,KAAM,QACNqE,QAAS,SACTktB,KAAM,CAAC,EAAG,EAAG,EAAG,GAChBtxB,OAAQljW,IAGZ,EAuFF02X,EAnGA,CAAkCnC,IAqGlC,YCxGA,IAAA6C,GAAA,SAAA15K,GAAA,SAAA05K,kDA6DA,QA7D8B/kC,GAAA+kC,EAAA15K,GAI5B05K,EAAAhic,UAAAiic,GAAA,WACE,IAAMC,EAAY5hc,KAAKwya,wBAAwBnG,GAAQpC,GAAG,OAC1D,OAAOjqa,KAAKy7B,KAAKquC,QAAQmmL,OAAO2xM,EAAWv1B,GAC7C,EAEAq1B,EAAAhic,UAAAmic,WAAA,WACE,IAAMC,EAAW9hc,KAAKs9b,OAGtB,IAAKwE,EAAU,MAAO,CAACd,GAAoB/D,SAASj9b,KAAKy7B,OAIzD,IADA,IAAMsma,EAAU,IAAItic,MAA2Bqic,EAASt/b,QAC/CmyM,EAAM,EAAGvoL,EAAM01a,EAASt/b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACzD,IAAMl5K,EAAOqma,EAAS7xM,OAAOt7C,EAAK+5N,IAClCqzB,EAAQptP,GAAOqsP,GAAoB/D,SAASxha,GAG9C,OAAOsma,CACT,EAEAL,EAAAhic,UAAAsic,UAAA,SAAUx+b,GACSxD,KAAK8ya,oBAAmBwqB,KACpCr8b,KAAKuC,EACZ,EAEAk+b,EAAAhic,UAAAuic,aAAA,SAAattP,GACX,IAAMmtP,EAAW9hc,KAAKs9b,OAEtB,GAAKwE,EAIE,CAEL,GAAIntP,EAAM,GAAKA,EAAMmtP,EAASt/b,OAC5B,MAAM,IAAIkla,GAAsB/yN,EAAK,EAAGmtP,EAASt/b,QAEnDs/b,EAAS74X,OAAO0rI,OATH,CAEb,GAAY,IAARA,EAAW,MAAM,IAAI+yN,GAAsB/yN,EAAK,EAAG,GACvD30M,KAAKy9b,QAAQ,IAQjB,EAEAiE,EAAAhic,UAAAoza,kBAAA,WACE,IAAIwqB,EAAOt9b,KAAKs9b,OAYhB,OALKA,IACHA,EAAOt9b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAACtqB,KAAKwD,MACnCxD,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASqzB,IAG7B,CAAEA,KAAIA,EACf,EA3DOoE,EAAAzE,SAAW,SAACxha,EAAej4B,GAChC,WAAIk+b,EAAgBjma,EAAMj4B,EAA1B,EA2DJk+b,EA7DA,CAA8BvE,IA+D9B,YC7DA,IAAA+E,GAAA,SAAAl6K,GAAA,SAAAk6K,kDAsGA,QAtG4BvlC,GAAAulC,EAAAl6K,GAC1Bk6K,EAAAxic,UAAAyic,IAAA,WACE,OAAOnic,KAAKy7B,KAAK0uY,YACfkC,GAAQpC,GAAG,OACX6T,GACAhD,GACA5Q,GAEJ,EAEAg4B,EAAAxic,UAAA0ic,OAAA,SAAOrna,GACL/6B,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,OAAQjqa,KAAKy7B,KAAKquC,QAAQx/C,IAAIyQ,GACzD,EAEAmna,EAAAxic,UAAA2ic,gBAAA,WACE,IAAMtna,EAAM/6B,KAAKmic,MAEjB,GAAKpna,EAAL,CAEA,GAAIA,aAAe+iZ,IAAa/iZ,aAAe+/Y,GAC7C,MAAO,CAAC//Y,GAIV,IADA,IAAM+gC,EAAuC,GACpC64I,EAAM,EAAGvoL,EAAM2O,EAAIv4B,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACpD,IAAM7wM,EAAQi3B,EAAIk1N,OAAOt7C,IACrB7wM,aAAiBg6a,IAAah6a,aAAiBg3a,KACjDh/W,EAAO76D,KAAK6C,GAIhB,OAAOg4D,CAdmB,CAe5B,EAEAomY,EAAAxic,UAAA4ic,kBAAA,SAAkB3tP,GAChB,IAAM55K,EAAM/6B,KAAKmic,MAEjB,GAAKpna,EAEL,GAAIA,aAAe+iZ,IAAa/iZ,aAAe+/Y,GAAc,CAC3D,GAAY,IAARnmO,EAAW,MAAM,IAAI+yN,GAAsB/yN,EAAK,EAAG,GACvD30M,KAAKoic,OAAO,QACP,CACL,GAAIztP,EAAM,GAAKA,EAAM55K,EAAIv4B,OACvB,MAAM,IAAIkla,GAAsB/yN,EAAK,EAAG55K,EAAIv4B,QAE9Cu4B,EAAIkuC,OAAO0rI,GAEf,EAGAutP,EAAAxic,UAAA6ic,sBAAA,WAME,gBALMzlU,EAAqC,QAAzBq4H,EAAGn1P,KAAKqic,yBAAiB,IAAAltM,EAAAA,EAAI,GAEzCgtM,EAAoC,GAEpCJ,EAAU/hc,KAAK6hc,aACZltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjB8tP,EACa,QADJ5hM,EACb/jI,EAAa63E,UAAI,IAAAksD,EAAAA,EACjBi6K,GAAaK,SAAwC,QAAhCvvZ,EAAoB,QAApBk1O,EAAC0hM,EAAOf,oBAAY,IAAA3gM,OAAA,EAAAA,EAAEgsK,oBAAU,IAAAlhZ,EAAAA,EAAM,IAC7Du2a,EAAIlhc,KAAKwhc,GAGXzic,KAAKoic,OAAOD,EACd,EAMAD,EAAAxic,UAAAgjc,OAAA,SAAO3na,EAA+B4na,SACpC3ic,KAAKuic,wBAEL,IAEIK,EAFEC,EAAU9na,EAAI+xY,aAGpB,GAAI61B,EAEF,IADA,IAAM7lU,EAAqC,QAAzBq4H,EAAGn1P,KAAKqic,yBAAiB,IAAAltM,EAAAA,EAAI,GACtCxgD,EAAM,EAAGvoL,EAAM0wG,EAAax8H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAC3C73E,EAAa63E,GACjBm4N,eAAiB+1B,IAASD,EAAcjuP,GAI1D,IAAMwtP,EAAMnic,KAAKmic,MAGjB,OAFAA,EAAIlhc,KAAK85B,GAES,OAAX6na,QAAW,IAAXA,EAAAA,EAAeT,EAAI3/b,OAAS,CACrC,EAEA0/b,EAAAxic,UAAAojc,iBAAA,SACEN,EACAzna,EACA4na,GAEA,IAAMI,EAAS/ic,KAAK0ic,OAAO3na,EAAK4na,GAC1BK,EAAe32B,GAAQpC,GAAGlqa,OAAOgjc,IAEvC,OADA/ic,KAAKgic,UAAUQ,GACRQ,CACT,EACFd,CAAA,CAtGA,CAA4BR,IAwG5B,YC1GA,IAAAuB,GAAA,SAAAj7K,GAAA,SAAAi7K,kDAuCA,QAvC8BtmC,GAAAsmC,EAAAj7K,GAa5Bi7K,EAAAvjc,UAAAypE,SAAA,SAASrlE,SAEP,GAAIA,KAD6B,QAApBqxP,EAAGn1P,KAAKyhc,oBAAY,IAAAtsM,EAAAA,EAAIk3K,GAAQpC,GAAG,SACvBnma,IAAUuoa,GAAQpC,GAAG,OAC5C,MAAM,IAAItC,GAGZ3na,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMnma,GAG/B,IADA,IAAMi+b,EAAU/hc,KAAK6hc,aACZltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjB9xK,EAAQ2/Z,EAAOf,eAAiB39b,EAAQA,EAAQuoa,GAAQpC,GAAG,OACjEu4B,EAAOpD,mBAAmBv8Z,GAE9B,EAEAoga,EAAAvjc,UAAAopE,SAAA,WACE,IAAMzmE,EAAIrC,KAAKwI,IACf,OAAInG,aAAagqa,GAAgBhqa,EAC1Bgqa,GAAQpC,GAAG,MACpB,EAEAg5B,EAAAvjc,UAAA+hc,WAAA,WACS,IAAAe,EAAUxic,KAAK6hc,aAAY,GAClC,OAAa,OAANW,QAAM,IAANA,OAAM,EAANA,EAAQf,YACjB,EArCOwB,EAAAhG,SAAW,SAACxha,EAAej4B,GAChC,WAAIy/b,EAAgBxna,EAAMj4B,EAA1B,EAEKy/b,EAAAzlc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,MACJrE,KAAM,KAGR,OAAO,IAAI2F,EAAgBxna,EADfquC,EAAQq6H,SAAS1oK,GAE/B,EA4BFwna,EAvCA,CAA8Bf,IAyC9B,YChDA,IAGYgB,GAwBAC,GA6BAC,GAyDAC,GAjHN7E,GAAO,SAAC8E,GAAqB,UAAKA,CAAL,GAGnC,SAAYJ,GAQVA,EAAAA,EAAA,SAAW1E,GAAK,IAAM,WAMtB0E,EAAAA,EAAA,SAAW1E,GAAK,IAAM,WAMtB0E,EAAAA,EAAA,SAAW1E,GAAK,IAAM,UACvB,CArBD,CAAY0E,KAAAA,GAAc,KAwB1B,SAAYC,GAMVA,EAAAA,EAAA,cAAgB3E,GAAK,KAAO,gBAM5B2E,EAAAA,EAAA,MAAQ3E,GAAK,KAAO,QAKpB2E,EAAAA,EAAA,WAAa3E,GAAK,KAAO,aAQzB2E,EAAAA,EAAA,eAAiB3E,GAAK,KAAO,gBAC9B,CA1BD,CAAY2E,KAAAA,GAAe,KA6B3B,SAAYC,GAKVA,EAAAA,EAAA,UAAY5E,GAAK,KAAO,YAUxB4E,EAAAA,EAAA,SAAW5E,GAAK,KAAO,WAMvB4E,EAAAA,EAAA,WAAa5E,GAAK,KAAO,aAKzB4E,EAAAA,EAAA,gBAAkB5E,GAAK,KAAO,kBAU9B4E,EAAAA,EAAA,YAAc5E,GAAK,KAAO,cAS1B4E,EAAAA,EAAA,KAAO5E,GAAK,KAAO,OAQnB4E,EAAAA,EAAA,SAAW5E,GAAK,KAAO,UACxB,CAtDD,CAAY4E,KAAAA,GAAa,KAyDzB,SAAYC,GAIVA,EAAAA,EAAA,MAAQ7E,GAAK,KAAO,QAOpB6E,EAAAA,EAAA,KAAO7E,GAAK,KAAO,OAQnB6E,EAAAA,EAAA,KAAO7E,GAAK,KAAO,OAMnB6E,EAAAA,EAAA,YAAc7E,GAAK,KAAO,cAM1B6E,EAAAA,EAAA,gBAAkB7E,GAAK,KAAO,kBAgB9B6E,EAAAA,EAAA,kBAAoB7E,GAAK,KAAO,mBACjC,CAhDD,CAAY6E,KAAAA,GAAe,KCtG3B,IAAAE,GAAA,SAAAv7K,GAAA,SAAAu7K,kDA2IA,QA3I4B5mC,GAAA4mC,EAAAv7K,GAC1Bu7K,EAAA7jc,UAAA8jc,UAAA,SAAU1nY,GACR,GACE97D,KAAKu+b,QAAQ8E,GAAgBI,SAC5Bzjc,KAAKu+b,QAAQ8E,GAAgBK,QAC7B1jc,KAAK2jc,eAAe7nY,GAErB,MAAM,IAAI6rW,GASZ,GANsB,IAAlB7rW,EAAOx7D,QACTN,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,MAER,IAAlBnuW,EAAOx7D,QACTN,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMnuW,EAAO,IAEpCA,EAAOx7D,OAAS,EAAG,CACrB,IAAKN,KAAKu+b,QAAQ8E,GAAgBO,aAChC,MAAM,IAAIh8B,GAEZ5na,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMjqa,KAAKy7B,KAAKquC,QAAQx/C,IAAIwxC,IAGvD97D,KAAK6jc,sBAAsB/nY,EAC7B,EAEAynY,EAAA7jc,UAAAikc,eAAA,SAAe7nY,GAEb,IADA,IAAMjrC,EAAU7wB,KAAK8jc,wBACZnvP,EAASvoL,GAChB,IAAM6c,EAAM6yB,EAAO64I,GAAKm4N,aACxB,IAAKj8Y,EAAQ1Z,MAAK,SAACjZ,GAAM,OAAA+qC,KAAS/qC,EAAE0W,SAAW1W,EAAE4F,OAAOgpa,YAA/B,kBAChB,IAHFn4N,EAAM,EAAGvoL,EAAM0vC,EAAOx7D,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,SAAhDA,yCAMT,OAAO,CACT,EAEA4uP,EAAA7jc,UAAAmkc,sBAAA,SAAsB/nY,GACpB,GAAIA,EAAOx7D,OAAS,EAAG,CAGrB,IAFA,IAAMmmI,EAAU,IAAIhnI,MAAcq8D,EAAOx7D,QACnCuwB,EAAU7wB,KAAK8jc,wBACZnvP,EAASvoL,GAChB,IAAM6c,EAAM6yB,EAAO64I,GAAKm4N,aACxBrmS,EAAQkuE,GAAO9jL,EAAQ3K,WACrB,SAAChoB,GAAM,OAAA+qC,KAAS/qC,EAAE0W,SAAW1W,EAAE4F,OAAOgpa,YAA/B,KAHFn4N,EAAM,EAAGvoL,EAAM0vC,EAAOx7D,OAAQq0M,EAAMvoL,EAAKuoL,MAAzCA,GAMT30M,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMjqa,KAAKy7B,KAAKquC,QAAQx/C,IAAIm8G,EAAQkwE,cAE7D32M,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,KAEhC,EAEAs5B,EAAA7jc,UAAAqkc,UAAA,WACE,IAAM1hc,EAAIrC,KAAKwI,IAEf,GAAInG,aAAay7a,IAAaz7a,aAAay4a,GAAc,MAAO,CAACz4a,GAEjE,GAAIA,aAAa6na,GAAU,CAGzB,IAFA,IAAMpuW,EAAuC,GAEpC64I,EAAM,EAAGvoL,EAAM/pB,EAAEG,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CAClD,IAAM7wM,EAAQzB,EAAE4tP,OAAOt7C,IACnB7wM,aAAiBg6a,IAAah6a,aAAiBg3a,KACjDh/W,EAAO76D,KAAK6C,GAIhB,OAAOg4D,EAGT,MAAO,EACT,EAEAynY,EAAA7jc,UAAAyic,IAAA,WACE,OAAOnic,KAAKy7B,KAAK0uY,YACfkC,GAAQpC,GAAG,OACX6T,GACAhD,GACA5Q,GAEJ,EAEAq5B,EAAA7jc,UAAAskc,WAAA,SACEnza,GAMA,IADA,IAAMoza,EAAS,IAAIxkc,MAAgBoxB,EAAQvwB,QAClCq0M,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAClD,IAAAwgD,EAAqBtkO,EAAQ8jL,GAA3B7wM,EAAKqxP,EAAArxP,MAAE8Q,EAAOugP,EAAAvgP,QACtBqvb,EAAOtvP,GAAO30M,KAAKy7B,KAAKquC,QAAQx/C,IAAI,CAACxmB,EAAO8Q,GAAW9Q,IAEzD9D,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,OAAQjqa,KAAKy7B,KAAKquC,QAAQx/C,IAAI25a,GACzD,EAEAV,EAAA7jc,UAAAokc,WAAA,WAIE,IAAM3B,EAAMnic,KAAKmic,MAGjB,GAAIA,aAAerkB,IAAaqkB,aAAernB,GAC7C,MAAO,CAAC,CAAEh3a,MAAOq+b,EAAKvtb,QAASutb,IAGjC,GAAIA,aAAej4B,GAAU,CAM3B,IALA,IAAMt4X,EAGA,GAEG+iK,EAAM,EAAGvoL,EAAM+1a,EAAI3/b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACpD,IAAM1mI,EAAOk0X,EAAIlyM,OAAOt7C,GAUxB,IAPI1mI,aAAgB6vW,IAAa7vW,aAAgB6sW,KAC/ClpY,EAAI3wC,KAAK,CAAE6C,MAAOmqE,EAAMr5D,QAASq5D,IAM/BA,aAAgBi8V,IACdj8V,EAAKzrE,OAAS,EAAG,CACnB,IAAMinD,EAAQwkB,EAAKgiL,OAAO,EAAG6tL,GAAWhD,IAClCpxX,EAASukB,EAAKk8V,YAAY,EAAG2T,GAAWhD,IAC9ClpY,EAAI3wC,KAAK,CAAE6C,MAAO2lD,EAAO70C,QAAS80C,GAAUD,KAKlD,OAAO7X,EAGT,MAAO,EACT,EACF2xZ,CAAA,CA3IA,CAA4B7B,IA6I5B,YCnIA,SAfA,SAAA15K,GAAA,SAAAk8K,kDAaA,QAb8BvnC,GAAAunC,EAAAl8K,GACrBk8K,EAAAjH,SAAW,SAACxha,EAAej4B,GAChC,WAAI0gc,EAAgBzoa,EAAMj4B,EAA1B,EAEK0gc,EAAA1mc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,KACJvE,GAAIiG,GAAgBI,MACpBnG,KAAM,KAGR,OAAO,IAAI4G,EAAgBzoa,EADfquC,EAAQq6H,SAAS1oK,GAE/B,EACFyoa,EAbA,CAA8BX,IC2B9B,SA3BA,SAAAv7K,GAAA,SAAAm8K,kDAyBA,QAzBiCxnC,GAAAwnC,EAAAn8K,GAU/Bm8K,EAAAzkc,UAAA0kc,SAAA,SAASxkU,GACC,IAAA09T,EAASt9b,KAAK8ya,oBAAmBwqB,KACrC,OAAJA,QAAI,IAAJA,GAAAA,EAAMr8b,KAAK2+H,EACb,EAEAukU,EAAAzkc,UAAAoza,kBAAA,WACE,IAAIwqB,EAAOt9b,KAAKs9b,OAOhB,OALKA,IACHA,EAAOt9b,KAAKy7B,KAAKquC,QAAQx/C,IAAI,IAC7BtqB,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASqzB,IAG7B,CAAEA,KAAIA,EACf,EAvBO6G,EAAAlH,SAAW,SAACxha,EAAej4B,GAChC,WAAI2gc,EAAmB1oa,EAAMj4B,EAA7B,EAEK2gc,EAAA3mc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CAAC,GAE1B,OAAO,IAAI65a,EAAmB1oa,EADlBquC,EAAQq6H,SAAS1oK,GAE/B,EAiBF0oa,EAzBA,CAAiChH,ICGjC,SALA,SAAAn1K,GAAA,SAAAq8K,kDAGA,QAH+B1nC,GAAA0nC,EAAAr8K,GACtBq8K,EAAApH,SAAW,SAACxha,EAAej4B,GAChC,WAAI6gc,EAAiB5oa,EAAMj4B,EAA3B,EACJ6gc,EAHA,CAA+B3C,ICK/B,IAAA4C,GAAA,SAAAt8K,GAAA,SAAAs8K,kDAgEA,QAhE0B3nC,GAAA2nC,EAAAt8K,GAYxBs8K,EAAA5kc,UAAA6kc,OAAA,WACE,IAAM7hU,EAAS1iI,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,WAC3C,GAAIvnS,aAAkBgnS,GAAW,OAAOhnS,CAE1C,EAEA4hU,EAAA5kc,UAAAoM,EAAA,WACE,IAAMzB,EAAIrK,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,MACtC,GAAI5/Z,aAAaq/Z,GAAW,OAAOr/Z,CAErC,EAEAi6b,EAAA5kc,UAAA8kc,aAAA,SAAalhU,GACXtjI,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,UAAWP,GAAUO,GAAG3mS,GACnD,EAEAghU,EAAA5kc,UAAA+kc,gBAAA,WACEzkc,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,UAC9B,EAEAq6B,EAAA5kc,UAAAglc,aAAA,iBACE,OAAoB,QAApBvvM,EAAOn1P,KAAKukc,gBAAQ,IAAApvM,OAAA,EAAAA,EAAE60K,UACxB,EAEAs6B,EAAA5kc,UAAAilc,YAAA,SAAYC,GACV5kc,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMP,GAAUO,GAAG26B,GAC9C,EAEAN,EAAA5kc,UAAAmlc,YAAA,iBACE,OAAe,QAAf1vM,EAAOn1P,KAAK8L,WAAG,IAAAqpP,OAAA,EAAAA,EAAE60K,UACnB,EAEAs6B,EAAA5kc,UAAAypE,SAAA,SAASrlE,GACP9D,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMnma,EAQjC,EAEAwgc,EAAA5kc,UAAAolc,YAAA,WACE9kc,KAAKy7B,KAAK+9B,OAAO6yW,GAAQpC,GAAG,KAC9B,EAEAq6B,EAAA5kc,UAAAopE,SAAA,WACE,IAAMzmE,EAAIrC,KAAKwI,IACf,GAAInG,aAAay7a,IAAaz7a,aAAay4a,GAAc,OAAOz4a,CAElE,EA9DOiic,EAAArH,SAAW,SAACxha,EAAej4B,GAAgB,WAAI8gc,EAAY7oa,EAAMj4B,EAAtB,EAE3C8gc,EAAA9mc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,KACJrE,KAAM,KAGR,OAAO,IAAIgH,EAAY7oa,EADXquC,EAAQq6H,SAAS1oK,GAE/B,EAsDF6oa,EAhEA,CAA0B5C,IAkE1B,YCtDA,SAfA,SAAA15K,GAAA,SAAA+8K,kDAaA,QAbgCpoC,GAAAooC,EAAA/8K,GACvB+8K,EAAA9H,SAAW,SAACxha,EAAej4B,GAChC,WAAIuhc,EAAkBtpa,EAAMj4B,EAA5B,EAEKuhc,EAAAvnc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,MACJvE,GAAI+F,GAAgB6B,WACpB1H,KAAM,KAGR,OAAO,IAAIyH,EAAkBtpa,EADjBquC,EAAQq6H,SAAS1oK,GAE/B,EACFspa,EAbA,CAAgC7C,ICEhC,IAAA+C,GAAA,SAAAj9K,GAAA,SAAAi9K,kDA+CA,QA/CiCtoC,GAAAsoC,EAAAj9K,GAc/Bi9K,EAAAvlc,UAAAypE,SAAA,SAASrlE,GAEP,IADiB9D,KAAKklc,cACRh0a,SAASptB,IAAUA,IAAUuoa,GAAQpC,GAAG,OACpD,MAAM,IAAItC,GAGZ3na,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,KAAMnma,GAG/B,IADA,IAAMi+b,EAAU/hc,KAAK6hc,aACZltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjB9xK,EAAQ2/Z,EAAOf,eAAiB39b,EAAQA,EAAQuoa,GAAQpC,GAAG,OACjEu4B,EAAOpD,mBAAmBv8Z,GAE9B,EAEAoia,EAAAvlc,UAAAopE,SAAA,WACE,IAAMzmE,EAAIrC,KAAKwI,IACf,OAAInG,aAAagqa,GAAgBhqa,EAC1Bgqa,GAAQpC,GAAG,MACpB,EAEAg7B,EAAAvlc,UAAAwlc,YAAA,WAIE,IAHA,IAAMnD,EAAU/hc,KAAK6hc,aAEfsD,EAAsB,GACnBxwP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAMywP,EAAUrD,EAAQptP,GAAK8sP,aACzB2D,GAASD,EAASlkc,KAAKmkc,GAG7B,OAAOD,CACT,EA7COF,EAAAhI,SAAW,SAACxha,EAAej4B,GAChC,WAAIyhc,EAAmBxpa,EAAMj4B,EAA7B,EAEKyhc,EAAAznc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,MACJvE,GAAI+F,GAAgBkC,MACpB/H,KAAM,KAGR,OAAO,IAAI2H,EAAmBxpa,EADlBquC,EAAQq6H,SAAS1oK,GAE/B,EAmCFwpa,EA/CA,CAAiC/C,IAiDjC,YCtCA,SAdA,SAAAl6K,GAAA,SAAAs9K,kDAYA,QAZ6B3oC,GAAA2oC,EAAAt9K,GACpBs9K,EAAArI,SAAW,SAACxha,EAAej4B,GAChC,WAAI8hc,EAAe7pa,EAAMj4B,EAAzB,EAEK8hc,EAAA9nc,OAAS,SAACssE,GACf,IAAMruC,EAAOquC,EAAQx/C,IAAI,CACvBq3a,GAAI,KACJrE,KAAM,KAGR,OAAO,IAAIgI,EAAe7pa,EADdquC,EAAQq6H,SAAS1oK,GAE/B,EACF6pa,EAZA,CAA6B/B,ICgBtB,IAAMgC,GAAsB,SACjCzD,GAEA,IAAKA,EAAU,MAAO,GAGtB,IADA,IAAM13I,EAAiC,GAC9Bz1G,EAAM,EAAGvoL,EAAM01a,EAASt/b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACzD,IAAMnxM,EAAMs+b,EAAShkc,IAAI62M,GACnBl5K,EAAOqma,EAAS7xM,OAAOt7C,GAEzBnxM,aAAemsa,IAAUl0Y,aAAgBizY,IAC3CtkH,EAAKnpT,KAAK,CAACukc,GAAmB/pa,EAAMj4B,GAAMA,IAI9C,OAAO4mT,CACT,EAEao7I,GAAqB,SAChC/pa,EACAj4B,GAGA,OADsBiic,GAAuBhqa,GACnB0oa,GAAmBlH,SAASxha,EAAMj4B,GACrDkic,GAAsBjqa,EAAMj4B,EACrC,EAkBMiic,GAAyB,SAAChqa,GAC9B,IAAM2uR,EAAO3uR,EAAKw0N,OAAOo8K,GAAQpC,GAAG,SAEpC,GAAI7/G,aAAgB8/G,GAClB,IAAK,IAAIv1N,EAAM,EAAGvoL,EAAMg+R,EAAK5nT,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACrD,IAAMgxP,EAAMv7I,EAAKn6D,OAAOt7C,GAExB,GADmBgxP,aAAej3B,IAAWi3B,EAAI51b,IAAIs8Z,GAAQpC,GAAG,MAChD,OAAO,EAI3B,OAAO,CACT,EAEMy7B,GAAwB,SAACjqa,EAAej4B,GAC5C,IAAMoic,EAAcpzB,GAAwB/2Y,EAAM4wY,GAAQpC,GAAG,OACvD5ma,EAAOo4B,EAAKquC,QAAQmmL,OAAO21M,EAAav5B,IAE9C,OAAIhpa,IAASgpa,GAAQpC,GAAG,OAAe47B,GAAoBpqa,EAAMj4B,GAC7DH,IAASgpa,GAAQpC,GAAG,MAAc67B,GAAoBrqa,EAAMj4B,GAC5DH,IAASgpa,GAAQpC,GAAG,MAAcq6B,GAAYrH,SAASxha,EAAMj4B,GAC7DH,IAASgpa,GAAQpC,GAAG,OAAeo6B,GAAiBpH,SAASxha,EAAMj4B,GAKhEk+b,GAAgBzE,SAASxha,EAAMj4B,EACxC,EAEMqic,GAAsB,SAACpqa,EAAej4B,SACpCuic,EAAgBvzB,GAAwB/2Y,EAAM4wY,GAAQpC,GAAG,OACzD+7B,EAAWvqa,EAAKquC,QAAQqgW,YAAY47B,EAAer8B,IACnDx9X,EAA0B,QAArBipN,EAAW,OAAR6wM,QAAQ,IAARA,OAAQ,EAARA,EAAUh8B,kBAAQ,IAAA70K,EAAAA,EAAM,EAEtC,OAAI8wM,GAAU/5Z,EAAOi3Z,GAAgB6B,YAC5BD,GAAkB9H,SAASxha,EAAMj4B,GAC/Byic,GAAU/5Z,EAAOi3Z,GAAgBkC,OACnCJ,GAAmBhI,SAASxha,EAAMj4B,GAElCy/b,GAAgBhG,SAASxha,EAAMj4B,EAE1C,EAEMsic,GAAsB,SAACrqa,EAAej4B,SACpCuic,EAAgBvzB,GAAwB/2Y,EAAM4wY,GAAQpC,GAAG,OACzD+7B,EAAWvqa,EAAKquC,QAAQqgW,YAAY47B,EAAer8B,IACnDx9X,EAA0B,QAArBipN,EAAW,OAAR6wM,QAAQ,IAARA,OAAQ,EAARA,EAAUh8B,kBAAQ,IAAA70K,EAAAA,EAAM,EAEtC,OAAI8wM,GAAU/5Z,EAAOm3Z,GAAgBI,OAC5BS,GAAgBjH,SAASxha,EAAMj4B,GAE/B8hc,GAAerI,SAASxha,EAAMj4B,EAEzC,EAEMyic,GAAY,SAAC/5Z,EAAesyZ,GAChC,OAAmB,KAAlBtyZ,EAAQsyZ,EAAT,EAEIhsB,GAA0B,SAAC0zB,EAAoBr3b,GACnD,IAAImzT,EAIJ,OAHA2wG,GAAOuzB,GAAW,SAACz3a,GACZuzS,IAAWA,EAAYvzS,EAAK3wB,IAAI+Q,GACvC,IACOmzT,CACT,EAEM2wG,GAAS,SAACuzB,EAAoBlyO,GAClCA,EAAQkyO,GACR,IAAM14B,EAAS04B,EAAU/7B,YAAYkC,GAAQpC,GAAG,UAAWyE,IACvDlB,GAAQmF,GAAOnF,EAAQx5M,EAC7B,EC1HAmyO,GAAA,WAUE,SAAAA,EAAoB1qa,GAClBz7B,KAAKy7B,KAAOA,CACd,CA2EF,OAzEE0qa,EAAAzmc,UAAA0mc,OAAA,WACE,IAAMxpU,EAAS58H,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,WAC3C,GAAIrtS,aAAkBstS,GAAU,OAAOttS,CAEzC,EAEAupU,EAAAzmc,UAAA4pV,UAAA,WAIE,IAHQ,IAAA88G,EAAWpmc,KAAK8ya,oBAAmBszB,OAErCxpU,EAAS,IAAIn9H,MAAM2mc,EAAO5jc,QACvBmyM,EAAM,EAAGvoL,EAAMg6a,EAAO5jc,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACvD,IAAMnxM,EAAM4ic,EAAOtoc,IAAI62M,GACjBl5K,EAAO2qa,EAAOn2M,OAAOt7C,EAAK+5N,IAChC9xS,EAAO+3E,GAAO,CAAC6wP,GAAmB/pa,EAAMj4B,GAAMA,GAGhD,OAAOo5H,CACT,EAEAupU,EAAAzmc,UAAA2mc,aAAA,WACE,IAAM5mU,EAAsC,GAEtC6mU,EAAa,SAAC1pU,GAClB,GAAKA,EACL,IAAK,IAAI+3E,EAAM,EAAGvoL,EAAMwwG,EAAOt8H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACvD,IAAM/0E,EAAQhD,EAAO+3E,GACrBl1E,EAAUx+H,KAAK2+H,GACR,IAAA2mU,EAAc3mU,EAAK,GACtB2mU,aAAsBpC,IACxBmC,EAAWf,GAAoBgB,EAAWjJ,SAGhD,EAIA,OAFAgJ,EAAWtmc,KAAKspV,aAET7pN,CACT,EAEA0mU,EAAAzmc,UAAA0kc,SAAA,SAASxkU,GACC,IAAAwmU,EAAWpmc,KAAK8ya,oBAAmBszB,OACrC,OAANA,QAAM,IAANA,GAAAA,EAAQnlc,KAAK2+H,EACf,EAEAumU,EAAAzmc,UAAA8mc,YAAA,SAAY5mU,GACV,IAAMt1D,EAASs1D,EAAM0xD,YACf10D,OACOnrG,IAAX64C,EAAuBtqE,KAAK8ya,oBAAoBszB,OAAS97X,EAAOgzX,OAE5Dj9a,EAAc,OAANu8G,QAAM,IAANA,OAAM,EAANA,EAAQpnH,QAAQoqH,EAAMp8H,KACpC,QAAeiuB,IAAXmrG,QAAkCnrG,IAAVpR,EAC1B,MAAM,IAAIqN,MACR,oCAAoCkyG,EAAM89T,yBAI9C9gU,EAAO3zD,OAAO5oD,QAECoR,IAAX64C,GAA0C,IAAlBsyD,EAAOp6H,QACjCxC,KAAKwmc,YAAYl8X,EAErB,EAEA67X,EAAAzmc,UAAAoza,kBAAA,WACE,IAAIszB,EAASpmc,KAAKomc,SAOlB,OALKA,IACHA,EAASpmc,KAAKy7B,KAAKquC,QAAQx/C,IAAI,IAC/BtqB,KAAKy7B,KAAKjsB,IAAI68Z,GAAQpC,GAAG,UAAWm8B,IAG/B,CAAEA,OAAMA,EACjB,EAnFOD,EAAAlJ,SAAW,SAACxha,GAAkB,WAAI0qa,EAAY1qa,EAAhB,EAE9B0qa,EAAA3oc,OAAS,SAACssE,GAEf,OAAO,IAAIq8X,EADEr8X,EAAQx/C,IAAI,CAAE87a,OAAQ,KAErC,EA+EFD,EAvFA,GAyFA,YC7FA,IAAAM,GAAA,SAAAz+K,GAAA,SAAAy+K,kDA0EA,QA1EyB9pC,GAAA8pC,EAAAz+K,GAcvBy+K,EAAA/mc,UAAAgnc,MAAA,WACE,OAAO1mc,KAAKiwP,OAAOo8K,GAAQpC,GAAG,SAAUyE,GAC1C,EAEA+3B,EAAA/mc,UAAAinc,SAAA,WACE,OAAO3mc,KAAKmqa,YAAYkC,GAAQpC,GAAG,YAAayE,GAClD,EAEA+3B,EAAA/mc,UAAAknc,YAAA,WACE,IAAMnra,EAAOz7B,KAAK2mc,WAClB,GAAKlra,EACL,OAAO0qa,GAAYlJ,SAASxha,EAC9B,EAEAgra,EAAA/mc,UAAAmnc,oBAAA,WACE,IAAIC,EAAW9mc,KAAK4mc,cACpB,IAAKE,EAAU,CACbA,EAAWX,GAAY3oc,OAAOwC,KAAK8pE,SACnC,IAAMi9X,EAAc/mc,KAAK8pE,QAAQq6H,SAAS2iQ,EAASrra,MACnDz7B,KAAKwP,IAAI68Z,GAAQpC,GAAG,YAAa88B,GAEnC,OAAOD,CACT,EAEAL,EAAA/mc,UAAA05b,kBAAA,WACE,OAAOp5b,KAAKmqa,YAAYkC,GAAQpC,GAAG,qBAAsByE,GAC3D,EAEA+3B,EAAA/mc,UAAAw1D,qBAAA,WACE,IAAMz5B,EAAOz7B,KAAKo5b,oBAClB,GAAK39Z,EACL,OAAO29Z,GAAkB6D,SAASxha,EACpC,EAEAgra,EAAA/mc,UAAAsnc,6BAAA,WACE,IAAIC,EAAcjnc,KAAKk1D,uBACvB,IAAK+xY,EAAa,CAChBA,EAAc7N,GAAkB57b,OAAOwC,KAAK8pE,SAC5C,IAAMo9X,EAAiBlnc,KAAK8pE,QAAQq6H,SAAS8iQ,EAAYxra,MACzDz7B,KAAKwP,IAAI68Z,GAAQpC,GAAG,qBAAsBi9B,GAE5C,OAAOD,CACT,EASAR,EAAA/mc,UAAAync,eAAA,SAAeC,EAAiB/mb,GAC9B,IAAMgnb,EAAWrnc,KAAKlC,IAAIuua,GAAQpC,GAAG,UAErC,OADuBjqa,KAAK0mc,QAAQS,eAAeC,EAAS/mb,IACnCgnb,CAC3B,EAEAZ,EAAA/mc,UAAA4nc,eAAA,SAAejnb,GACbrgB,KAAK0mc,QAAQY,eAAejnb,EAC9B,EAxEOomb,EAAAc,oBAAsB,SAC3Bz9X,EACA09X,GAEA,IAAM/ra,EAAO,IAAIvsB,IAGjB,OAFAusB,EAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASoC,GAAQpC,GAAG,YACxCxuY,EAAKjsB,IAAI68Z,GAAQpC,GAAG,SAAUu9B,GACvB,IAAIf,EAAWhra,EAAMquC,EAC9B,EAEO28X,EAAAx3B,mBAAqB,SAACxoa,EAAcqjE,GACzC,WAAI28X,EAAWhgc,EAAKqjE,EAApB,EA8DJ28X,EA1EA,CAAyB/3B,IA4EzB,YCzEA,IAAA+4B,GAAA,SAAAz/K,GAAA,SAAAy/K,kDAqLA,QArL0B9qC,GAAA8qC,EAAAz/K,GAaxBy/K,EAAA/nc,UAAA8ta,OAAA,WACE,OAAOxta,KAAKiwP,OAAOo8K,GAAQpC,GAAG,UAChC,EAEAw9B,EAAA/nc,UAAA49b,KAAA,WACE,OAAOt9b,KAAKiwP,OAAOo8K,GAAQpC,GAAG,QAASC,GACzC,EAEAu9B,EAAA/nc,UAAA6na,MAAA,WACE,OAAOvna,KAAKiwP,OAAOo8K,GAAQpC,GAAG,SAAUP,GAC1C,EAEA+9B,EAAA/nc,UAAAgoc,aAAA,SAAaC,GACE3nc,KAAKs9b,OACbr8b,KAAK0mc,EACZ,EAEAF,EAAA/nc,UAAAkoc,aAAA,SAAaR,GACX,IAAM9J,EAAOt9b,KAAKs9b,OAClBt9b,KAAK6nc,cAAcvK,EAAK96b,OAAQ4kc,EAClC,EAWAK,EAAA/nc,UAAAync,eAAA,SAAeC,EAAiB9/B,GAC9B,IAAMg2B,EAAOt9b,KAAKs9b,OACZ/1B,EAAQvna,KAAKuna,QAAQyC,WAE3B,GAAI1C,EAAcC,EAChB,MAAM,IAAIF,GAAwBC,EAAaC,GAIjD,IADA,IAAIugC,EAA4BxgC,EACvB3yN,EAAM,EAAGvoL,EAAMkxa,EAAK96b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACrD,GAAkC,IAA9BmzP,EAGF,YADA9nc,KAAK6nc,cAAclzP,EAAKyyP,GAI1B,IAAMW,EAASzK,EAAKx/b,IAAI62M,GAClBgxP,EAAM3lc,KAAK8pE,QAAQmmL,OAAO83M,GAEhC,GAAIpC,aAAe8B,EAAa,CAC9B,GAAI9B,EAAIp+B,QAAQyC,WAAa89B,EAE3B,OACEnC,EAAIwB,eAAeC,EAASU,IAA8BC,EAI5DD,GAA6BnC,EAAIp+B,QAAQyC,WAIzC27B,aAAetzB,KAEjBy1B,GAA6B,GAIjC,GAAkC,IAA9BA,EAOJ,MAAM,IAAItgC,GAAqBF,EAAa,kBAL1Ctna,KAAK6nc,cAAcvK,EAAK96b,OAAQ4kc,EAMpC,EAUAK,EAAA/nc,UAAA4nc,eAAA,SAAehgC,EAAqB0gC,QAAA,IAAAA,IAAAA,GAAA,GAClC,IAAM1K,EAAOt9b,KAAKs9b,OACZ/1B,EAAQvna,KAAKuna,QAAQyC,WAE3B,GAAI1C,GAAeC,EACjB,MAAM,IAAIF,GAAwBC,EAAaC,GAIjD,IADA,IAAIugC,EAA4BxgC,EACvB3yN,EAAM,EAAGvoL,EAAMkxa,EAAK96b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACrD,IAAMozP,EAASzK,EAAKx/b,IAAI62M,GAClBgxP,EAAM3lc,KAAK8pE,QAAQmmL,OAAO83M,GAEhC,GAAIpC,aAAe8B,EAAa,CAC9B,GAAI9B,EAAIp+B,QAAQyC,WAAa89B,EAI3B,OAFAnC,EAAI2B,eAAeQ,EAA2BE,QAC1CA,GAA+B,IAAtBrC,EAAIrI,OAAO96b,QAAc86b,EAAKr0X,OAAO0rI,IAIlDmzP,GAA6BnC,EAAIp+B,QAAQyC,WAI7C,GAAI27B,aAAetzB,GAAa,CAC9B,GAAkC,IAA9By1B,EAGF,YADA9nc,KAAKioc,UAAUtzP,GAIfmzP,GAA6B,GAMnC,MAAM,IAAItgC,GAAqBF,EAAa,iBAC9C,EAEAmgC,EAAA/nc,UAAAiza,OAAA,SAAO3+M,GACLA,EAAQh0N,MACR,IAAMwta,EAASxta,KAAKwta,SAChBA,GAAQA,EAAOmF,OAAO3+M,EAC5B,EAGAyzO,EAAA/nc,UAAAwoc,SAAA,SAASl0O,GAEP,IADA,IAAMspO,EAAOt9b,KAAKs9b,OACT3oP,EAAM,EAAGvoL,EAAMkxa,EAAK96b,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACrD,IAAMozP,EAASzK,EAAKx/b,IAAI62M,GAClBgxP,EAAM3lc,KAAK8pE,QAAQmmL,OAAO83M,GAC5BpC,aAAe8B,GAAa9B,EAAIuC,SAASl0O,GAC7CA,EAAQ2xO,EAAKoC,GAEjB,EAEQN,EAAA/nc,UAAAmoc,cAAR,SAAsBM,EAAgBf,GACpC,IAAM9J,EAAOt9b,KAAKs9b,OAElBt9b,KAAK2ya,QAAO,SAAClkZ,GACX,IAAM25a,EAAW35a,EAAK84Y,QAAQyC,WAAa,EAC3Cv7Y,EAAKjf,IAAI68Z,GAAQpC,GAAG,SAAUP,GAAUO,GAAGm+B,GAC7C,IAEA9K,EAAKh4Z,OAAO6ia,EAAQf,EACtB,EAEQK,EAAA/nc,UAAAuoc,UAAR,SAAkBE,GAChB,IAAM7K,EAAOt9b,KAAKs9b,OAENA,EAAKrtM,OAAOk4M,aACL91B,IACjBrya,KAAK2ya,QAAO,SAAClkZ,GACX,IAAM25a,EAAW35a,EAAK84Y,QAAQyC,WAAa,EAC3Cv7Y,EAAKjf,IAAI68Z,GAAQpC,GAAG,SAAUP,GAAUO,GAAGm+B,GAC7C,IAGF9K,EAAKr0X,OAAOk/X,EACd,EAnLOV,EAAAj9B,YAAc,SAAC1gW,EAAqBQ,GACzC,IAAM7uC,EAAO,IAAIvsB,IAKjB,OAJAusB,EAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASoC,GAAQpC,GAAG,UACxCxuY,EAAKjsB,IAAI68Z,GAAQpC,GAAG,QAASngW,EAAQx/C,IAAI,KACzCmR,EAAKjsB,IAAI68Z,GAAQpC,GAAG,SAAUngW,EAAQx/C,IAAI,IACtCggD,GAAQ7uC,EAAKjsB,IAAI68Z,GAAQpC,GAAG,UAAW3/V,GACpC,IAAIm9X,EAAYhsa,EAAMquC,EAC/B,EAEO29X,EAAAx4B,mBAAqB,SAACxoa,EAAcqjE,GACzC,WAAI29X,EAAYhhc,EAAKqjE,EAArB,EA0KJ29X,EArLA,CAA0B/4B,IAuL1B,YChMO,IAAM25B,GAAU,IAAI/jb,WAAW,KAEtC+jb,GAAQ/hC,GAAUsG,MAAQ,EAC1By7B,GAAQ/hC,GAAUgiC,KAAO,EACzBD,GAAQ/hC,GAAUiiC,KAAO,EACzBF,GAAQ/hC,GAAUkiC,OAAS,EAC3BH,GAAQ/hC,GAAUmiC,MAAQ,EAC1BJ,GAAQ/hC,GAAUoiC,MAAQ,EAC1BL,GAAQ/hC,GAAUqiC,KAAO,EACzBN,GAAQ/hC,GAAU4X,OAAS,EAC3BmqB,GAAQ/hC,GAAUsiC,OAAS,EAC3BP,GAAQ/hC,GAAUuG,MAAQ,EAEnB,IAAMg8B,GAAkB,IAAIvkb,WAAW,KAE9Cukb,GAAgBviC,GAAU+C,QAAU,EACpCw/B,GAAgBviC,GAAUwiC,MAAQ,EAClCD,GAAgBviC,GAAUyiC,OAAS,EAInC,IAFO,IAAMC,GAAY,IAAI1kb,WAAW,KAE/BqwL,GAAM,EAAcA,GAAL,IAAgBA,KACtCq0P,GAAUr0P,IAAO0zP,GAAQ1zP,KAAQk0P,GAAgBl0P,IAAO,EAAI,ECjBtD,IAAA20N,GAA4BhD,GAASgD,QAA5B0C,GAAmB1F,GAAS0F,eAG7Ci9B,GAAA,WAIE,SAAAA,EAAYtiZ,EAAmBuiZ,QAAA,IAAAA,IAAAA,GAAA,GAC7Blpc,KAAK2mD,MAAQA,EACb3mD,KAAKkpc,WAAaA,CACpB,CAmGF,OAjGYD,EAAAvpc,UAAAypc,YAAV,WAGE,IAFA,IAAIrlc,EAAQ,IAEJ9D,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,IAAK46P,GAAQhgC,GAAO,MACpBvka,GAASg6Z,GAAa99Z,KAAK2mD,MAAM96B,QAGnC,IAAM89Y,EAAcryX,OAAOxzC,GAE3B,IAAKA,IAAU2uN,SAASk3M,GACtB,MAAM,IAAI5B,GAAmB/na,KAAK2mD,MAAMt6C,WAAYvI,GAGtD,OAAO6la,CACT,EAIUs/B,EAAAvpc,UAAA0pc,eAAV,WAIE,IAHA,IAAItlc,EAAQ,IAGJ9D,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,IAAKu7P,GAAU3gC,GAAO,MAEtB,GADAvka,GAASg6Z,GAAa99Z,KAAK2mD,MAAM96B,QAC7Bw8Y,IAAS/B,GAAU+C,OAAQ,MAIjC,MAAQrpa,KAAK2mD,MAAM76B,QAAQ,CACnBu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,IAAK46P,GAAQhgC,GAAO,MACpBvka,GAASg6Z,GAAa99Z,KAAK2mD,MAAM96B,QAGnC,IAAM89Y,EAAcryX,OAAOxzC,GAE3B,IAAKA,IAAU2uN,SAASk3M,GACtB,MAAM,IAAI5B,GAAmB/na,KAAK2mD,MAAMt6C,WAAYvI,GAGtD,GAAI6la,EAAcryX,OAAO6gN,iBAAkB,CACzC,GAAIn4P,KAAKkpc,WAAY,CACnB,IAAM7ua,EAAM,yDAAyDv2B,EAAK,2CAE1E,OADAqtB,QAAQC,KAAKiJ,GACNid,OAAO6gN,iBAER99N,EAAM,yDAAyDv2B,EAAK,iBAC1EqtB,QAAQC,KAAKiJ,GAIjB,OAAOsvY,CACT,EAEUs/B,EAAAvpc,UAAA2pc,eAAV,WACE,MAAQrpc,KAAK2mD,MAAM76B,QAAU8/Y,GAAa5ra,KAAK2mD,MAAM8mJ,SACnDztM,KAAK2mD,MAAM96B,MAEf,EAEUo9a,EAAAvpc,UAAA4pc,SAAV,WACE,MAAQtpc,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,GAAI46N,IAASiB,IAAWjB,IAAS2D,GAAgB,OACjDhsa,KAAK2mD,MAAM96B,OAEf,EAEUo9a,EAAAvpc,UAAA6pc,YAAV,WACE,GAAIvpc,KAAK2mD,MAAM8mJ,SAAW64N,GAAU6C,QAAS,OAAO,EACpD,MAAQnpa,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,GAAI46N,IAASiB,IAAWjB,IAAS2D,GAAgB,OAAO,EACxDhsa,KAAK2mD,MAAM96B,OAEb,OAAO,CACT,EAEUo9a,EAAAvpc,UAAA8pc,0BAAV,WAEE,IADAxpc,KAAKqpc,iBACErpc,KAAKupc,eAAevpc,KAAKqpc,gBAClC,EAEUJ,EAAAvpc,UAAA+pc,aAAV,SAAuB7gC,GAErB,IADA,IAAMM,EAAgBlpa,KAAK2mD,MAAMp6C,SACxBooM,EAAM,EAAGvoL,EAAMw8Y,EAAQtoa,OAAQq0M,EAAMvoL,EAAKuoL,IACjD,GAAI30M,KAAK2mD,MAAM76B,QAAU9rB,KAAK2mD,MAAM96B,SAAW+8Y,EAAQj0N,GAErD,OADA30M,KAAK2mD,MAAM9E,OAAOqnX,IACX,EAGX,OAAO,CACT,EACF+/B,CAAA,CA1GA,GA4GA,YC3CA,SArEA,WAaE,SAAAS,EAAY/iZ,GAJJ,KAAAguJ,IAAM,EACN,KAAAh+E,KAAO,EACP,KAAAspJ,OAAS,EAGfjgR,KAAK2mD,MAAQA,EACb3mD,KAAKM,OAASN,KAAK2mD,MAAMrmD,MAC3B,CAmDF,OAjDEopc,EAAAhqc,UAAAmiD,OAAA,SAAOt1C,GACLvM,KAAK20M,IAAMpoM,CACb,EAEAm9b,EAAAhqc,UAAAmsB,KAAA,WACE,IAAMw8Y,EAAOroa,KAAK2mD,MAAM3mD,KAAK20M,OAO7B,OANI0zN,IAAS/B,GAAUgD,SACrBtpa,KAAK22H,MAAQ,EACb32H,KAAKigR,OAAS,GAEdjgR,KAAKigR,QAAU,EAEVooJ,CACT,EAEAqhC,EAAAhqc,UAAAiqc,WAAA,SAAWjjC,GACT,GAAI1ma,KAAKytM,SAAWi5N,EAClB,MAAM,IAAIuB,GAAuBjoa,KAAKqM,WAAYq6Z,EAAU1ma,KAAKytM,QAEnE,OAAOztM,KAAK6rB,MACd,EAEA69a,EAAAhqc,UAAA+tM,KAAA,WACE,OAAOztM,KAAK2mD,MAAM3mD,KAAK20M,IACzB,EAEA+0P,EAAAhqc,UAAAkqc,UAAA,SAAUzoW,GACR,OAAOnhG,KAAK2mD,MAAM3mD,KAAK20M,IAAMxzG,EAC/B,EAEAuoW,EAAAhqc,UAAAmqc,OAAA,SAAOt9b,GACL,OAAOvM,KAAK2mD,MAAMp6C,EACpB,EAEAm9b,EAAAhqc,UAAAosB,KAAA,WACE,OAAO9rB,KAAK20M,KAAO30M,KAAKM,MAC1B,EAEAopc,EAAAhqc,UAAA6M,OAAA,WACE,OAAOvM,KAAK20M,GACd,EAEA+0P,EAAAhqc,UAAAwH,MAAA,SAAMoZ,EAAeF,GACnB,OAAOpgB,KAAK2mD,MAAMz/C,MAAMoZ,EAAOF,EACjC,EAEAspb,EAAAhqc,UAAA2M,SAAA,WACE,MAAO,CAAEsqH,KAAM32H,KAAK22H,KAAMspJ,OAAQjgR,KAAKigR,OAAQ1zQ,OAAQvM,KAAK20M,IAC9D,EAjEO+0P,EAAAz/B,GAAK,SAACtjX,GAAsB,WAAI+iZ,EAAW/iZ,EAAf,EAE5B+iZ,EAAAI,iBAAmB,SAACC,GACzB,OAAAL,EAAWz/B,GAAGiuB,GAAmB6R,GAAWjyZ,SAA5C,EA+DJ4xZ,EAnEA,GCJQ,IAAA/+B,GAAmCrE,GAASqE,MAArCqB,GAA4B1F,GAAS0F,eAArB1C,GAAYhD,GAASgD,QAE9Cl0T,GAAS,CACbkxT,GAAUpma,EACVoma,GAAUjpa,EACVipa,GAAU3oa,EACV2oa,GAAUnpa,EACVmpa,GAAUnoa,EACVmoa,GAAUpja,GAGN8mc,GAAY,CAChB1jC,GAAUnpa,EACVmpa,GAAUhpa,EACVgpa,GAAUtla,EACVsla,GAAUpma,EACVoma,GAAUjpa,EACVipa,GAAU3oa,EACV2oa,GAAUnpa,EACVmpa,GAAUnoa,EACVmoa,GAAUpja,GAGCkra,GAAW,CACtB9yY,OAAQ,CACNgrY,GAAU6C,QACV7C,GAAUtha,EACVsha,GAAUpga,EACVoga,GAAUrga,EACVqga,GAAU8C,MAEZ0qB,IAAK,CACHxtB,GAAU6C,QACV7C,GAAU6C,QACV7C,GAAUria,EACVqia,GAAUtga,EACVsga,GAAUrga,GAEZqkB,IAAK,CAACg8Y,GAAUpoa,EAAGooa,GAAUpia,EAAGoia,GAAUl8Z,GAC1C6/b,OAAQ,CACN3jC,GAAUnpa,EACVmpa,GAAUhpa,EACVgpa,GAAUtla,EACVsla,GAAUpoa,EACVooa,GAAUpia,EACVoia,GAAUl8Z,GAEZyta,KAAM,CAACvR,GAAUhja,EAAGgja,GAAU3oa,EAAG2oa,GAAUnpa,EAAGmpa,GAAUnla,GACxD42a,QAAS,CACPzR,GAAUjpa,EACVipa,GAAU3oa,EACV2oa,GAAUnoa,EACVmoa,GAAUhna,EACVgna,GAAUnma,EACVmma,GAAUnpa,EACVmpa,GAAU3oa,GAEZusc,UAAW,CACT5jC,GAAUpma,EACVoma,GAAUjpa,EACVipa,GAAUnoa,EACVmoa,GAAU3oa,EACV2oa,GAAUjpa,EACVipa,GAAUhja,EACVgja,GAAU3oa,EACV2oa,GAAUnpa,EACVmpa,GAAUnla,GAEZgpc,KAAM,CAAC7jC,GAAUjpa,EAAGipa,GAAU3oa,EAAG2oa,GAAU5la,EAAG4la,GAAUnpa,GACxDitc,MAAO,CAAC9jC,GAAUnla,EAAGmla,GAAUnoa,EAAGmoa,GAAUnma,EAAGmma,GAAUpma,EAAGoma,GAAUnpa,GACtEktc,KAAM,CAAC/jC,GAAUhpa,EAAGgpa,GAAU5la,EAAG4la,GAAUnma,EAAGmma,GAAUnma,GACxDi1G,OAAMA,GACNk1V,WAAUltC,GAAMhoT,GAAQ,CAAAu1T,GAAOqB,GAAgB1C,KAC/CihC,WAAUntC,GAAMhoT,GAAQ,CAAA42T,GAAgB1C,KACxCkhC,WAAUptC,GAAMhoT,GAAQ,CAAA42T,KACxBy+B,WAAUrtC,GAAMhoT,GAAQ,CAAAk0T,KACxB0gC,UAASA,GACTU,cAAattC,GAAA,CAAG4O,GAAgB1C,IAAY0gC,IAC5CW,cAAavtC,GAAA,CAAG4O,IAAmBg+B,IACnCY,cAAaxtC,GAAA,CAAGkM,IAAY0gC,KCjD9Ba,GAAA,SAAA7iL,GAeE,SAAA6iL,EAAYC,EAAwBhhY,EAAqBo/X,QAAA,IAAAA,IAAAA,GAAA,GAAzD,IAAAz9W,EACEu8L,EAAApoR,KAAA,KAAMkrc,EAAY5B,IAAW,YAC7Bz9W,EAAK3hB,QAAUA,GACjB,CA6NF,OA/O8B6yV,GAAAkuC,EAAA7iL,GAqB5B6iL,EAAAnrc,UAAAqrc,YAAA,WAGE,GAFA/qc,KAAKwpc,4BAEDxpc,KAAKypc,aAAar7B,GAAS+7B,MAAO,OAAOp/B,GAAQG,KACrD,GAAIlra,KAAKypc,aAAar7B,GAASg8B,OAAQ,OAAOr/B,GAAQI,MACtD,GAAInra,KAAKypc,aAAar7B,GAASi8B,MAAO,OAAO77B,GAE7C,IAAMnG,EAAOroa,KAAK2mD,MAAM8mJ,OAExB,GACE46N,IAAS/B,GAAUiF,UACnBvra,KAAK2mD,MAAMijZ,UAAU,KAAOtjC,GAAUiF,SAEtC,OAAOvra,KAAKgrc,oBAEd,GAAI3iC,IAAS/B,GAAUiF,SAAU,OAAOvra,KAAKirc,iBAC7C,GAAI5iC,IAAS/B,GAAU+E,UAAW,OAAOrra,KAAKkrc,cAC9C,GAAI7iC,IAAS/B,GAAUqF,aAAc,OAAO3ra,KAAKmrc,YACjD,GAAI9iC,IAAS/B,GAAUoE,kBAAmB,OAAO1qa,KAAKorc,aACtD,GAAIpC,GAAU3gC,GAAO,OAAOroa,KAAKqrc,mBAEjC,MAAM,IAAIjjC,GAAsBpoa,KAAK2mD,MAAMt6C,WAAYg8Z,EACzD,EAEUwiC,EAAAnrc,UAAA2rc,iBAAV,WACE,IAAMC,EAAWtrc,KAAKopc,iBACtBppc,KAAKwpc,4BAEL,IAAM+B,EAAiBvrc,KAAK2mD,MAAMp6C,SAClC,GAAI87b,GAAQroc,KAAK2mD,MAAM8mJ,QAAS,CAC9B,IAAM+9P,EAAYxrc,KAAKopc,iBAEvB,GADAppc,KAAKwpc,4BACDxpc,KAAK2mD,MAAM8mJ,SAAW64N,GAAUpha,EAElC,OADAlF,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUpha,GACzByqa,GAAO1F,GAAGqhC,EAAUE,GAK/B,OADAxrc,KAAK2mD,MAAM9E,OAAO0pZ,GACX7hC,GAAUO,GAAGqhC,EACtB,EAGUT,EAAAnrc,UAAAurc,eAAV,WACE,IAAInnc,EAAQ,GAGZ,IADA9D,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUiF,WACxBvra,KAAK2mD,MAAM76B,QAAU9rB,KAAK2mD,MAAM8mJ,SAAW64N,GAAUkF,aAC3D1na,GAASg6Z,GAAa99Z,KAAK2mD,MAAM96B,QAInC,OAFA7rB,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUkF,aAEzBsP,GAAa7Q,GAAGnma,EACzB,EAEU+mc,EAAAnrc,UAAAwrc,YAAV,WAKE,IAJA,IAAIO,EAAa,EACbC,GAAY,EACZ5nc,EAAQ,IAEJ9D,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM96B,OAiBxB,GAhBA/nB,GAASg6Z,GAAauK,GAGjBqjC,IACCrjC,IAAS/B,GAAU+E,YAAWogC,GAAc,GAC5CpjC,IAAS/B,GAAUgF,aAAYmgC,GAAc,IAI/CpjC,IAAS/B,GAAU2X,UACrBytB,GAAaA,EACJA,IACTA,GAAY,GAIK,IAAfD,EAEF,OAAO3tB,GAAU7T,GAAGnma,EAAMkjF,UAAU,EAAGljF,EAAMxD,OAAS,IAI1D,MAAM,IAAIkoa,GAA2Bxoa,KAAK2mD,MAAMt6C,WAClD,EAIUw+b,EAAAnrc,UAAAyrc,UAAV,WACEnrc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUqF,cAGhC,IADA,IAAI98Z,EAAO,IACH7O,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMu8Y,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,GAAIm+N,GAAavD,IAAS+C,GAAY/C,GAAO,MAC7Cx5Z,GAAQivZ,GAAauK,GACrBroa,KAAK2mD,MAAM96B,OAGb,OAAOwgZ,GAAQpC,GAAGp7Z,EACpB,EAEUg8b,EAAAnrc,UAAA0rc,WAAV,WACEprc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUoE,mBAChC1qa,KAAKwpc,4BAGL,IADA,IAAMmC,EAAWzhC,GAASM,YAAYxqa,KAAK8pE,SACpC9pE,KAAK2mD,MAAM8mJ,SAAW64N,GAAUsE,oBAAoB,CACzD,IAAMt8Y,EAAUtuB,KAAK+qc,cACrBY,EAAS1qc,KAAKqtB,GACdtuB,KAAKwpc,4BAGP,OADAxpc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUsE,oBACzB+gC,CACT,EAEUd,EAAAnrc,UAAAksc,UAAV,WACE5rc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUiF,UAChCvra,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUiF,UAChCvra,KAAKwpc,4BAIL,IAFA,IAAM/ta,EAAgB,IAAIvsB,KAGvBlP,KAAK2mD,MAAM76B,QACZ9rB,KAAK2mD,MAAM8mJ,SAAW64N,GAAUkF,aAChCxra,KAAK2mD,MAAMijZ,UAAU,KAAOtjC,GAAUkF,aACtC,CACA,IAAMvia,EAAMjJ,KAAKmrc,YACXrnc,EAAQ9D,KAAK+qc,cACnBtva,EAAKjsB,IAAIvG,EAAKnF,GACd9D,KAAKwpc,4BAGPxpc,KAAKwpc,4BACLxpc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUkF,aAChCxra,KAAK2mD,MAAMgjZ,WAAWrjC,GAAUkF,aAEhC,IAAM+B,EAAO9xY,EAAK39B,IAAIuua,GAAQpC,GAAG,SAEjC,OAAIsD,IAASlB,GAAQpC,GAAG,WACfw8B,GAAWx3B,mBAAmBxzY,EAAMz7B,KAAK8pE,SACvCyjW,IAASlB,GAAQpC,GAAG,SACtBw9B,GAAYx4B,mBAAmBxzY,EAAMz7B,KAAK8pE,SACxCyjW,IAASlB,GAAQpC,GAAG,QACtBoI,GAAYpD,mBAAmBxzY,EAAMz7B,KAAK8pE,SAE1C4kW,GAAQO,mBAAmBxzY,EAAMz7B,KAAK8pE,QAEjD,EAEU+gY,EAAAnrc,UAAAsrc,kBAAV,WACE,IAAMa,EAAW7rc,KAAK2mD,MAAMt6C,WAEtBovB,EAAOz7B,KAAK4rc,YAIlB,GAFA5rc,KAAKwpc,6BAGFxpc,KAAKypc,aAAar7B,GAASk8B,cAC3Btqc,KAAKypc,aAAar7B,GAASm8B,cAC3Bvqc,KAAKypc,aAAar7B,GAASo8B,cAC3Bxqc,KAAKypc,aAAar7B,GAASq8B,cAC3Bzqc,KAAKypc,aAAar7B,GAASh5T,QAE5B,OAAO35E,EAGT,IACIrb,EADEE,EAAQtgB,KAAK2mD,MAAMp6C,SAGnB0ga,EAASxxY,EAAK39B,IAAIuua,GAAQpC,GAAG,WAC/BgD,aAAkBvD,IACpBtpZ,EAAME,EAAQ2sZ,EAAOjD,WACrBhqa,KAAK2mD,MAAM9E,OAAOzhC,GAClBpgB,KAAKwpc,4BACAxpc,KAAKypc,aAAar7B,GAAS47B,aAC9Bhqc,KAAK2mD,MAAM9E,OAAOvhC,GAClBF,EAAMpgB,KAAK8rc,wBAAwBD,KAGrCzrb,EAAMpgB,KAAK8rc,wBAAwBD,GAGrC,IAAMh7b,EAAW7Q,KAAK2mD,MAAMz/C,MAAMoZ,EAAOF,GAEzC,OAAOqvZ,GAAaxF,GAAGxuY,EAAM5qB,EAC/B,EAEUg6b,EAAAnrc,UAAAosc,wBAAV,SAAkCD,GAKhC,IAHA,IAAIJ,EAAa,EACbrrb,EAAMpgB,KAAK2mD,MAAMp6C,UAEbvM,KAAK2mD,MAAM76B,SACjB1L,EAAMpgB,KAAK2mD,MAAMp6C,SAEbvM,KAAKypc,aAAar7B,GAASh5T,QAC7Bq2V,GAAc,EAEdzrc,KAAKypc,aAAar7B,GAASs8B,gBAC3B1qc,KAAKypc,aAAar7B,GAASu8B,gBAC3B3qc,KAAKypc,aAAar7B,GAASw8B,gBAC3B5qc,KAAKypc,aAAar7B,GAAS47B,WAE3ByB,GAAc,EAEdzrc,KAAK2mD,MAAM96B,OAGM,IAAf4/a,KAGN,GAAmB,IAAfA,EAAkB,MAAM,IAAIljC,GAAsBsjC,GAEtD,OAAOzrb,CACT,EA7OOyqb,EAAAkB,SAAW,SAChBplZ,EACAmjB,EACAo/X,GACG,WAAI2B,EAAgBnB,GAAWz/B,GAAGtjX,GAAQmjB,EAASo/X,EAAnD,EAEE2B,EAAAmB,cAAgB,SACrBlB,EACAhhY,EACAo/X,GACG,YADH,IAAAA,IAAAA,GAAA,GACG,IAAI2B,EAAgBC,EAAYhhY,EAASo/X,EAAzC,EAoOP2B,EA/OA,CAA8B5B,IAiP9B,YCxQA,IAAAgD,GAAA,SAAAjkL,GAWE,SAAAikL,EAAYlC,EAAyBryB,GAArC,IAAAjsV,EACEu8L,EAAApoR,KAAA,KAAM8pc,GAAWI,iBAAiBC,GAAYA,EAAUtua,KAAKquC,UAAQ,KAE7DruC,EAASsua,EAAStua,YAE1BgwD,EAAKygX,eAAgB,EACrBzgX,EAAKisV,kBAAoBA,GAAsB,WAAM,UACrDjsV,EAAK0gX,YAAc1wa,EAAKw0N,OAAOo8K,GAAQpC,GAAG,SAAUP,IAAWM,WAC/Dv+U,EAAK2gX,YAAc3wa,EAAKw0N,OAAOo8K,GAAQpC,GAAG,KAAMP,IAAWM,YAC7D,CAmCF,OAvDoCrN,GAAAsvC,EAAAjkL,GAsB5BikL,EAAAvsc,UAAA2sc,iBAAN,2HACE,GAAIrsc,KAAKksc,cACP,MAAM,IAAIrlC,GAAa,wBAAyB,oBAElD7ma,KAAKksc,eAAgB,EAEfI,EAA0Btsc,KAAKusc,+BAC5B53P,EAAM,EAAGvoL,EAAMkgb,EAAwBhsc,+BAAQq0M,EAAMvoL,GACtD+oO,EAA2Bm3M,EAAwB33P,GAAjDi7N,EAAYz6K,EAAAy6K,aAAErja,EAAM4oP,EAAA5oP,OAC5BvM,KAAK2mD,MAAM9E,OAAO7hD,KAAKmsc,YAAc5/b,GAC/Bod,EAAS3pB,KAAK+qc,cACdvnc,EAAMmsa,GAAO1F,GAAG2F,EAAc,GACpC5va,KAAK8pE,QAAQ1pE,OAAOoD,EAAKmmB,GACrB3pB,KAAK03a,oBAAqB,GAAMvW,MAAhC,OAN2D,aAMjCtgK,EAAAiC,+BANmCnuD,mCAU7Ds3P,EAAAvsc,UAAA6sc,6BAAR,WAKE,IADA,IAAMD,EAA0B,GACvB33P,EAAM,EAAGvoL,EAAMpsB,KAAKosc,YAAaz3P,EAAMvoL,EAAKuoL,IAAO,CAC1D30M,KAAKwpc,4BACL,IAAM55B,EAAe5va,KAAKmpc,cAE1Bnpc,KAAKwpc,4BACL,IAAMj9b,EAASvM,KAAKmpc,cAEpBmD,EAAwBrrc,KAAK,CAAE2ua,aAAYA,EAAErja,OAAMA,IAErD,OAAO+/b,CACT,EArDOL,EAAAO,UAAY,SACjBzC,EACAryB,GACG,WAAIu0B,EAAsBlC,EAAWryB,EAArC,EAmDPu0B,EAvDA,CAAoCpB,IAyDpC,YCjDA,IAAA4B,GAAA,WAeE,SAAAA,EAAY1C,GACV/pc,KAAKksc,eAAgB,EAErBlsc,KAAKy7B,KAAOsua,EAAUtua,KACtBz7B,KAAK2mD,MAAQ+iZ,GAAWI,iBAAiBC,GACzC/pc,KAAK8pE,QAAU9pE,KAAKy7B,KAAKquC,QAEzB,IAAMouW,EAAOl4a,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,QAASP,IAE5CgjC,EAAQ1sc,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,UAC1C,GAAIyiC,aAAiBxiC,GAAU,CAC7Blqa,KAAKu1a,YAAc,GACnB,IAAK,IAAI5gO,EAAM,EAAGvoL,EAAMsgb,EAAMlqc,OAAQmyM,EAAMvoL,EAAKuoL,GAAO,EAAG,CACzD,IAAMyhO,EAAoBs2B,EAAMz8M,OAAOt7C,EAAM,EAAG+0N,IAAWM,WACrD2iC,EAASD,EAAMz8M,OAAOt7C,EAAM,EAAG+0N,IAAWM,WAChDhqa,KAAKu1a,YAAYt0a,KAAK,CAAEm1a,kBAAiBA,EAAE91a,OAAMqsc,UAGnD3sc,KAAKu1a,YAAc,CAAC,CAAEa,kBAAmB,EAAG91a,OAAQ43a,EAAKlO,aAG3D,IAAMhga,EAAIhK,KAAKy7B,KAAKw0N,OAAOo8K,GAAQpC,GAAG,KAAMC,IAC5Clqa,KAAK+5a,WAAa,EAAE,GAAI,GAAI,GAC5B,IAASplO,EAAM,EAAGvoL,EAAMpiB,EAAExH,OAAQmyM,EAAMvoL,EAAKuoL,IAC3C30M,KAAK+5a,WAAWplO,GAAO3qM,EAAEimP,OAAOt7C,EAAK+0N,IAAWM,UAEpD,CAqEF,OAnEEyiC,EAAA/sc,UAAA2sc,iBAAA,WACE,GAAIrsc,KAAKksc,cACP,MAAM,IAAIrlC,GAAa,sBAAuB,oBAkBhD,OAhBA7ma,KAAKksc,eAAgB,EAErBlsc,KAAK8pE,QAAQgnW,YAAc,CACzBqH,KAAMn4a,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,SAC/BmO,QAASp4a,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,YAClCoO,KAAMr4a,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,SAC/BqO,GAAIt4a,KAAKy7B,KAAK39B,IAAIuua,GAAQpC,GAAG,QAGfjqa,KAAK4sc,cAQvB,EAEQH,EAAA/sc,UAAAktc,aAAR,WAIE,IAHA,IAAMtjY,EAAU,GACV6rL,EAAoDn1P,KAAK+5a,WAAxD8yB,EAAc13M,EAAA,GAAE23M,EAAgB33M,EAAA,GAAE43M,EAAa53M,EAAA,GAGhD63M,EAAgB,EAAGC,EAAgBjtc,KAAKu1a,YAAYj1a,OACxD0sc,EAAgBC,EAChBD,IAIA,IAFM,IAAAnsM,EAAgC7gQ,KAAKu1a,YAAYy3B,GAA/C52B,EAAiBv1K,EAAAu1K,kBAAE82B,EAAMrsM,EAAAvgQ,OAExB6sc,EAAS,EAAGA,EAASD,EAAQC,IAAU,CAE9C,IADA,IAAI9pc,EAAO,EACFsxM,EAAM,EAAGvoL,EAAMygb,EAAgBl4P,EAAMvoL,EAAKuoL,IACjDtxM,EAAQA,GAAQ,EAAKrD,KAAK2mD,MAAM96B,OAGlC,IAAItf,EAAS,EACb,IAASooM,EAAM,EAAGvoL,EAAM0gb,EAAkBn4P,EAAMvoL,EAAKuoL,IACnDpoM,EAAUA,GAAU,EAAKvM,KAAK2mD,MAAM96B,OAGtC,IAAIgkZ,EAAmB,EACvB,IAASl7N,EAAM,EAAGvoL,EAAM2gb,EAAep4P,EAAMvoL,EAAKuoL,IAChDk7N,EAAoBA,GAAoB,EAAK7va,KAAK2mD,MAAM96B,OAInC,IAAnBghb,IAAsBxpc,EAAO,GAEjC,IAAMusa,EAAewG,EAAoB+2B,EACnC9jY,EAAQ,CACZ7lE,IAAKmsa,GAAO1F,GAAG2F,EAAcC,GAC7Btja,OAAMA,EACNmgE,QAAkB,IAATrpE,EACT+pc,eAAyB,IAAT/pc,GAGlBimE,EAAQroE,KAAKooE,GAIjB,OAAOC,CACT,EA5GOmjY,EAAAD,UAAY,SAACzC,GAClB,WAAI0C,EAAoB1C,EAAxB,EA4GJ0C,EA9GA,GAgHA,YCvGA,IAAAY,GAAA,SAAArlL,GAcE,SAAAqlL,EACEC,EACA91B,EACA+1B,EACArE,QAFA,IAAA1xB,IAAAA,EAAA79U,UACA,IAAA4zW,IAAAA,GAAA,QACA,IAAArE,IAAAA,GAAA,GAJF,IAAAz9W,EAMEu8L,EAAApoR,KAAA,KAAM8pc,GAAWz/B,GAAGqjC,GAAW18B,GAAWpza,SAAU0rc,IAAW,YATzDz9W,EAAAygX,eAAgB,EAChBzgX,EAAAgsV,cAAgB,EAqGhBhsV,EAAAisV,kBAAoB,WAE1B,OADAjsV,EAAKgsV,eAAiB,EACfhsV,EAAKgsV,cAAgBhsV,EAAK+rV,iBAAmB,CACtD,EA/FE/rV,EAAK+rV,eAAiBA,EACtB/rV,EAAK8hX,qBAAuBA,GAC9B,CAwTF,OA/UwB5wC,GAAA0wC,EAAArlL,GAyBhBqlL,EAAA3tc,UAAA8tc,cAAN,+GACE,GAAIxtc,KAAKksc,cACP,MAAM,IAAIrlC,GAAa,YAAa,iBAEtC7ma,KAAKksc,eAAgB,EAErBlsc,KAAK8pE,QAAQxuC,OAASt7B,KAAKytc,sCAGnBztc,KAAK2mD,MAAM76B,OAAM,MACvB,GAAM9rB,KAAK0tc,+BAEX,GAFAv4M,EAAA2N,QACMv2P,EAASvM,KAAK2mD,MAAMp6C,YACXohc,EACb,MAAM,IAAIllC,GAAmBzoa,KAAK2mD,MAAMt6C,mBAE1Cshc,EAAaphc,eAUf,OAPAvM,KAAK4tc,mBAED5tc,KAAK8pE,QAAQmmL,OAAO0/K,GAAO1F,GAAG,MAChC94Y,QAAQC,KAAK,iCACbpxB,KAAK8pE,QAAQtQ,OAAOm2W,GAAO1F,GAAG,KAGzB,CAAP,EAAOjqa,KAAK8pE,iBAGNujY,EAAA3tc,UAAAkuc,iBAAR,WACE,IAAMC,EAAiB,SAACvjb,GACtB,OAAAA,aAAeokZ,IACfpkZ,EAAI2lO,OAAOo8K,GAAQpC,GAAG,WAAaoC,GAAQpC,GAAG,UAD9C,EAKF,IAAK4jC,EAFW7tc,KAAK8pE,QAAQmmL,OAAOjwP,KAAK8pE,QAAQgnW,YAAYqH,OAI3D,IADA,IAAMpH,EAAkB/wa,KAAK8pE,QAAQsnW,2BAC5Bz8N,EAAM,EAAGvoL,EAAM2kZ,EAAgBzwa,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAC1D,IAAAwgD,EAAgB47K,EAAgBp8N,GAA/BnxM,EAAG2xP,EAAA,GACN04M,EADc14M,EAAA,MAEhBn1P,KAAK8pE,QAAQgnW,YAAYqH,KAAO30a,GAIxC,EAEQ6pc,EAAA3tc,UAAA+tc,YAAR,WACE,MAAQztc,KAAK2mD,MAAM76B,QAAQ,CACzB,GAAI9rB,KAAKypc,aAAar7B,GAAS9yY,QAAS,CACtC,IAAMwtY,EAAQ9oa,KAAKmpc,cACnBnpc,KAAK2mD,MAAMgjZ,WAAWrjC,GAAU+C,QAChC,IAAMN,EAAQ/oa,KAAKmpc,cACb7ta,EAASutY,GAAUU,WAAWT,EAAOC,GAE3C,OADA/oa,KAAK8tc,0BACExya,EAETt7B,KAAK2mD,MAAM96B,OAGb,MAAM,IAAI68Y,GAAsB1oa,KAAK2mD,MAAMt6C,WAC7C,EAEQghc,EAAA3tc,UAAAquc,0BAAR,WACE/tc,KAAKwpc,4BACL,IAAM55B,EAAe5va,KAAKmpc,cAE1Bnpc,KAAKwpc,4BACL,IAAM35B,EAAmB7va,KAAKmpc,cAG9B,GADAnpc,KAAKwpc,6BACAxpc,KAAKypc,aAAar7B,GAAS9jZ,KAC9B,MAAM,IAAIq+Y,GAAoB3oa,KAAK2mD,MAAMt6C,WAAY+ha,GAAS9jZ,KAGhE,OAAOqlZ,GAAO1F,GAAG2F,EAAcC,EACjC,EAEQw9B,EAAA3tc,UAAAsuc,0BAAR,WACE,IAAM9kC,EAAgBlpa,KAAK2mD,MAAMp6C,SACjC,IAEE,OADAvM,KAAK+tc,6BACE,EACP,MAAO5wc,IAEP,OADA6C,KAAK2mD,MAAM9E,OAAOqnX,IACX,EAEX,EAOcmkC,EAAA3tc,UAAAuuc,oBAAd,sHACQzqc,EAAMxD,KAAK+tc,4BAEjB/tc,KAAKwpc,4BACC7/a,EAAS3pB,KAAK+qc,cAEpB/qc,KAAKwpc,4BAMLxpc,KAAKypc,aAAar7B,GAAS67B,QAGzBtgb,aAAkB8lZ,IAClB9lZ,EAAO8R,KAAKw0N,OAAOo8K,GAAQpC,GAAG,WAAaoC,GAAQpC,GAAG,UAEtD,GAAMgiC,GAAsBO,UAC1B7ib,EACA3pB,KAAK03a,mBACL20B,oBANF,oBAGAl3M,EAAA2N,oBAKAn5O,aAAkB8lZ,IAClB9lZ,EAAO8R,KAAKw0N,OAAOo8K,GAAQpC,GAAG,WAAaoC,GAAQpC,GAAG,QAEtDwiC,GAAoBD,UAAU7ib,GAAQ0ib,mBAEtCrsc,KAAK8pE,QAAQ1pE,OAAOoD,EAAKmmB,oBAG3B,MAAO,CAAP,EAAOnmB,WAID6pc,EAAA3tc,UAAAwuc,gCAAR,WACE,IAAMrC,EAAW7rc,KAAK2mD,MAAMt6C,WAEtBguB,EAAM,mCAAmC6vC,KAAKC,UAAU0hY,GAAS,IACvE,GAAI7rc,KAAKutc,qBAAsB,MAAM,IAAI7/a,MAAM2M,GAC/ClJ,QAAQC,KAAKiJ,GAEb,IAAM72B,EAAMxD,KAAK+tc,4BAEjB58a,QAAQC,KAAK,uBAAuB5tB,GAEpCxD,KAAKwpc,4BAIL,IAHA,IAAMlpb,EAAQtgB,KAAK2mD,MAAMp6C,SAErBgwP,GAAS,GACLv8P,KAAK2mD,MAAM76B,SACb9rB,KAAKypc,aAAar7B,GAAS67B,UAC7B1tM,GAAS,GAENA,IACLv8P,KAAK2mD,MAAM96B,OAGb,GAAI0wO,EAAQ,MAAM,IAAI+rK,GAA6BujC,GAEnD,IAAMzrb,EAAMpgB,KAAK2mD,MAAMp6C,SAAW6ha,GAAS67B,OAAO3pc,OAE5CqpB,EAAS+uZ,GAAiBzO,GAAGjqa,KAAK2mD,MAAMz/C,MAAMoZ,EAAOF,IAG3D,OAFApgB,KAAK8pE,QAAQ1pE,OAAOoD,EAAKmmB,GAElBnmB,CACT,EAEc6pc,EAAA3tc,UAAAyuc,qBAAd,6GACEnuc,KAAKwpc,gDAEGxpc,KAAK2mD,MAAM76B,SAAUu8a,GAAQroc,KAAK2mD,MAAM8mJ,QAAO,YAC/Cy7N,EAAgBlpa,KAAK2mD,MAAMp6C,0BAG/B,gCAAMvM,KAAKiuc,qCAAX94M,EAAA2N,oCAGA9iQ,KAAK2mD,MAAM9E,OAAOqnX,GAClBlpa,KAAKkuc,sDAEPluc,KAAKwpc,4BAGLxpc,KAAKouc,gBAEDpuc,KAAK03a,oBAAqB,GAAMvW,MAAhC,aAA0BhsK,EAAA2N,6DAI1BuqM,EAAA3tc,UAAA2uc,0BAAR,WAEE,GADAruc,KAAKwpc,4BACAxpc,KAAKypc,aAAar7B,GAASyJ,MAAhC,CACA73a,KAAKwpc,4BAKL,IAHA,IAAI55B,GAAgB,EACdiI,EAAOxC,GAAmBlrJ,eAExBnqR,KAAK2mD,MAAM76B,QAAUu8a,GAAQroc,KAAK2mD,MAAM8mJ,SAAS,CACvD,IAAM6gQ,EAAWtuc,KAAKmpc,cACtBnpc,KAAKwpc,4BAEL,IAAM+E,EAAYvuc,KAAKmpc,cACvBnpc,KAAKwpc,4BAEL,IAAMnhC,EAAOroa,KAAK2mD,MAAM8mJ,OACxB,GAAI46N,IAAS/B,GAAUhpa,GAAK+qa,IAAS/B,GAAUnla,EAAG,CAChD,IAAMqC,EAAMmsa,GAAO1F,GAAG2F,EAAc2+B,GAChCvuc,KAAK2mD,MAAM96B,SAAWy6Y,GAAUhpa,EAClCu6a,EAAKpC,SAASjya,EAAK8qc,GAGnBz2B,EAAKnC,gBAAgBlya,EAAK8qc,GAE5B1+B,GAAgB,OAEhBA,EAAe0+B,EAEjBtuc,KAAKwpc,4BAGP,OAAO3xB,CA7BsC,CA8B/C,EAEQw1B,EAAA3tc,UAAA8uc,sBAAR,WAEE,GADAxuc,KAAKwpc,4BACAxpc,KAAKypc,aAAar7B,GAAS2J,SAAhC,CACA/3a,KAAKwpc,4BAEL,IAAM/ta,EAAOz7B,KAAK4rc,YAEV9hY,EAAY9pE,KAAI8pE,QACxBA,EAAQgnW,YAAc,CACpBqH,KAAM18Y,EAAK39B,IAAIuua,GAAQpC,GAAG,UAAYngW,EAAQgnW,YAAYqH,KAC1DC,QAAS38Y,EAAK39B,IAAIuua,GAAQpC,GAAG,aAAengW,EAAQgnW,YAAYsH,QAChEC,KAAM58Y,EAAK39B,IAAIuua,GAAQpC,GAAG,UAAYngW,EAAQgnW,YAAYuH,KAC1DC,GAAI78Y,EAAK39B,IAAIuua,GAAQpC,GAAG,QAAUngW,EAAQgnW,YAAYwH,GAVR,CAYlD,EAEQ+0B,EAAA3tc,UAAA+uc,kBAAR,WAEE,GADAzuc,KAAKwpc,4BACAxpc,KAAKypc,aAAar7B,GAAS87B,WAAhC,CACAlqc,KAAKwpc,4BAEL,IAAMj9b,EAASvM,KAAKmpc,cAQpB,OANAnpc,KAAKqpc,iBACLrpc,KAAKypc,aAAar7B,GAAS0lB,KAC3B9zb,KAAKwpc,4BACLxpc,KAAKypc,aAAar7B,GAAS0lB,KAC3B9zb,KAAKwpc,4BAEE7yB,GAAWE,6BAA6Btqa,EAXG,CAYpD,EAEc8gc,EAAA3tc,UAAAguc,qBAAd,uGACE,SAAM1tc,KAAKmuc,sCAAXh5M,EAAA2N,OACA9iQ,KAAKquc,4BACLruc,KAAKwuc,wBACLxuc,KAAKyuc,oBAGLzuc,KAAKouc,4BASCf,EAAA3tc,UAAA0uc,cAAR,WAEE,IADApuc,KAAKwpc,6BACGxpc,KAAK2mD,MAAM76B,QAAQ,CACzB,IAAMo9Y,EAAgBlpa,KAAK2mD,MAAMp6C,SAC3B87Z,EAAOroa,KAAK2mD,MAAM8mJ,OAExB,GADuB46N,GAAQ/B,GAAUqE,OAAStC,GAAQ/B,GAAUkG,QAGhExsa,KAAKypc,aAAar7B,GAASyJ,OAC3B73a,KAAKypc,aAAar7B,GAAS2J,UAC3B/3a,KAAKypc,aAAar7B,GAAS87B,YAC3Blqc,KAAKguc,6BACL,CACAhuc,KAAK2mD,MAAM9E,OAAOqnX,GAClB,MAGJlpa,KAAK2mD,MAAM96B,OAEf,EAeQwhb,EAAA3tc,UAAAouc,wBAAR,WACE9tc,KAAKwpc,4BACL,IACE,IAAMtgC,EAAgBlpa,KAAK2mD,MAAMp6C,SACjCvM,KAAK+tc,4BACL/tc,KAAK2mD,MAAM9E,OAAOqnX,GAClB,MAAO/ra,IACP6C,KAAK2mD,MAAM96B,OACX7rB,KAAKwpc,4BAET,EA7UO6D,EAAAqB,oBAAsB,SAC3BpB,EACA91B,EACA+1B,EACArE,GAEA,WAAImE,EAAUC,EAAU91B,EAAgB+1B,EAAsBrE,EAA9D,EAwUJmE,EA/UA,CAAwBxC,IAiVxB,YC3WA,IAGY8D,GAHNnQ,GAAO,SAAC8E,GAAqB,UAAKA,CAAL,GAGnC,SAAYqL,GAOVA,EAAAA,EAAA,UAAYnQ,GAAK,IAAM,YAYvBmQ,EAAAA,EAAA,OAASnQ,GAAK,IAAM,SASpBmQ,EAAAA,EAAA,MAAQnQ,GAAK,IAAM,QAQnBmQ,EAAAA,EAAA,OAASnQ,GAAK,IAAM,SAOpBmQ,EAAAA,EAAA,SAAWnQ,GAAK,IAAM,WAQtBmQ,EAAAA,EAAA,OAASnQ,GAAK,IAAM,SAWpBmQ,EAAAA,EAAA,SAAWnQ,GAAK,IAAM,WAQtBmQ,EAAAA,EAAA,OAASnQ,GAAK,IAAM,SAQpBmQ,EAAAA,EAAA,aAAenQ,GAAK,IAAM,eAO1BmQ,EAAAA,EAAA,eAAiBnQ,GAAK,IAAO,gBAC9B,CAtFD,CAAYmQ,KAAAA,GAAe,KCDpB,ICAKC,GDACC,GAAY,SAAChgc,GACxB,OAAAA,aAAgBw9Z,GAAUx9Z,EAAOw9Z,GAAQpC,GAAGp7Z,EAA5C,EAEWigc,GAAc,SAACz/b,GAC1B,OAAAA,aAAeq6Z,GAAYr6Z,EAAMq6Z,GAAUO,GAAG56Z,EAA9C,EAEW26Z,GAAW,SAAC36Z,GACvB,OAAAA,aAAeq6Z,GAAYr6Z,EAAI26Z,WAAa36Z,CAA5C,GCPF,SAAYu/b,GACVA,EAAA,kBACAA,EAAA,iBACD,CAHD,CAAYA,KAAAA,GAAa,KAiBlB,ICqEKG,GDhECC,GAAU,SAACC,GAEtB,OADAzpC,GAASypC,EAAa,cAAe,CAAC,WAC/B,CAAE5rc,KAAMurc,GAAcM,QAASj6X,MAAOg6X,EAC/C,EAEQE,GAAqBP,GAAaO,QAAzBD,GAAYN,GAAaM,QAE7BE,GAAmB,SAACC,GAAmB,OAACA,EAAS18b,KAAK0tC,GAAM,GAArB,EAIvCivZ,GAAY,SAAC/1b,GACtB,OAAAA,EAASlW,OAAS8rc,GAAU51b,EAAS07D,MACrC17D,EAASlW,OAAS6rc,GAAUE,GAAiB71b,EAAS07D,OACtDruD,GAAM,qBAAqBsjD,KAAKC,UAAU5wD,GAF1C,EAKSg2b,GAAY,SAACh2b,GACtB,OAAAA,EAASlW,OAAS8rc,GAVwC,IAUb51b,EAAS07D,MAVWtiE,KAAK0tC,GAWtE9mC,EAASlW,OAAS6rc,GAAU31b,EAAS07D,MACrCruD,GAAM,qBAAqBsjD,KAAKC,UAAU5wD,GAF1C,EAISi2b,GAAiB,SAACP,QAAA,IAAAA,IAAAA,EAAA,GAC7B,IAAMQ,EAAaR,EAAc,GAAM,EACvC,OAAkB,IAAdQ,EAAwB,EACV,IAAdA,EAAwB,GACV,IAAdA,EAAwB,IACV,IAAdA,EAAwB,IACrB,CACT,EAEaC,GAAwB,SACnCC,EACAV,QAAA,IAAAA,IAAAA,EAAA,GAEA,IAAM11b,EAAWi2b,GAAeP,GAChC,OAAoB,KAAb11b,GAAgC,MAAbA,EACtB,CAAEvW,MAAO2sc,EAAK7sc,OAAQA,OAAQ6sc,EAAK3sc,OACnC,CAAEA,MAAO2sc,EAAK3sc,MAAOF,OAAQ6sc,EAAK7sc,OACxC,ECnDa6/C,GAAO,WAAM,OAAAmtX,GAAY7F,GAAG8H,GAAI69B,YAAnB,EAKlBzhV,GAAkBx7G,KAAIw7G,IAAjBD,GAAav7G,KAAIu7G,IAAZ2hV,GAAQl9b,KAAIk9b,IAEjBC,GAA6B,SACxC3xc,EACA+F,EACArE,EACAmB,EACA7D,EACAgE,GAEA,OAAA2ua,GAAY7F,GAAG8H,GAAIg+B,2BAA4B,CAC7CjB,GAAY3wc,GACZ2wc,GAAY5qc,GACZ4qc,GAAYjvc,GACZivc,GAAY9tc,GACZ8tc,GAAY3xc,GACZ2xc,GAAY3tc,IANd,EASWsuE,GAAY,SAACugY,EAA0BC,GAClD,OAAAH,GAA2B,EAAG,EAAG,EAAG,EAAGE,EAAMC,EAA7C,EAEWn5b,GAAQ,SAACk5b,EAA0BC,GAC9C,OAAAH,GAA2BE,EAAM,EAAG,EAAGC,EAAM,EAAG,EAAhD,EAEWC,GAAgB,SAACj7X,GAC5B,OAAA66X,GACE3hV,GAAI67S,GAAS/0V,IACbi5C,GAAI87S,GAAS/0V,KACZi5C,GAAI87S,GAAS/0V,IACdk5C,GAAI67S,GAAS/0V,IACb,EACA,EANF,EASWk7X,GAAgB,SAACl7X,GAC5B,OAAAi7X,GAAcd,GAAiBplC,GAAS/0V,IAAxC,EAEWm7X,GAAc,SACzBC,EACAC,GAEA,OAAAR,GACE,EACAD,GAAI7lC,GAASqmC,IACbR,GAAI7lC,GAASsmC,IACb,EACA,EACA,EANF,EAkBWC,GAAiB,SAC5BhtW,EACAC,GAEA,OAAAssU,GAAY7F,GAAG8H,GAAIy+B,mBAAoB,CACrC,IAAIjtW,EAAU98F,IAAIqoc,IAAa5tc,KAAK,KAAI,IACxC4tc,GAAYtrW,IAFd,GAOF,SAAYurW,GACVA,EAAAA,EAAA,eACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,0BACD,CAJD,CAAYA,KAAAA,GAAY,KAMjB,IAGK0B,GAHCrvZ,GAAa,SAAC39C,GACzB,OAAAqsa,GAAY7F,GAAG8H,GAAI2+B,gBAAiB,CAAC5B,GAAYrrc,IAAjD,GAEF,SAAYgtc,GACVA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,iBACAA,EAAAA,EAAA,gBACD,CAJD,CAAYA,KAAAA,GAAa,KAMlB,IAgIKr1Z,GA7HCu1Z,GAAmB,SAAC9ta,GAC/B,OAAAitY,GAAY7F,GAAG8H,GAAI6+B,uBAAwB,CAAC/B,GAAUhsa,IAAtD,EAEWgua,GAAoB,WAAM,OAAA/gC,GAAY7F,GAAG8H,GAAIC,kBAAnB,EAE1B8+B,GAAmB,WAAM,OAAAhhC,GAAY7F,GAAG8H,GAAII,iBAAnB,EAEzBhxX,GAAe,SAACn+C,GAC3B,OAAA8sa,GAAY7F,GAAG8H,GAAIg/B,aAAc,CAACjC,GAAY9rc,IAA9C,EAIWguc,GAAoB,SAC/B96b,EACAG,EACAD,EACAE,EACAk0C,EACAC,GAEA,OAAAqlX,GAAY7F,GAAG8H,GAAIk/B,kBAAmB,CACpCnC,GAAY54b,GACZ44b,GAAYz4b,GACZy4b,GAAY14b,GACZ04b,GAAYx4b,GACZw4b,GAAYtkZ,GACZskZ,GAAYrkZ,IANd,EASWymZ,GAAuB,SAClCh7b,EACAG,EACAD,EACAE,GAEA,OAAAw5Z,GAAY7F,GAAG8H,GAAIo/B,6BAA8B,CAC/CrC,GAAY54b,GACZ44b,GAAYz4b,GACZy4b,GAAY14b,GACZ04b,GAAYx4b,IAJd,EAOW4rC,GAAY,WAAM,OAAA4tX,GAAY7F,GAAG8H,GAAIq/B,UAAnB,EAElBvvZ,GAAS,SAACmuZ,EAA0BC,GAC/C,OAAAngC,GAAY7F,GAAG8H,GAAIs/B,OAAQ,CAACvC,GAAYkB,GAAOlB,GAAYmB,IAA3D,EAEWnuZ,GAAS,SAACkuZ,EAA0BC,GAC/C,OAAAngC,GAAY7F,GAAG8H,GAAIu/B,OAAQ,CAACxC,GAAYkB,GAAOlB,GAAYmB,IAA3D,EA+BW77b,GAAS,WAAM,OAAA07Z,GAAY7F,GAAG8H,GAAIw/B,WAAnB,EAEf/qc,GAAO,WAAM,OAAAspa,GAAY7F,GAAG8H,GAAIy/B,YAAnB,EAEbC,GAAgB,WAAM,OAAA3hC,GAAY7F,GAAG8H,GAAI2/B,qBAAnB,EAEtBhvZ,GAAU,WAAM,OAAAotX,GAAY7F,GAAG8H,GAAI4/B,QAAnB,EAWhBjuZ,GAAW,SAACxa,GACvB,OAAA4mY,GAAY7F,GAAG8H,GAAI6/B,SAAU,CAAC1oa,GAA9B,EAIW2Z,GAAY,WAAM,OAAAitX,GAAY7F,GAAG8H,GAAI8/B,UAAnB,EAClB/uZ,GAAU,WAAM,OAAAgtX,GAAY7F,GAAG8H,GAAI+/B,QAAnB,EAEhBC,GAAiB,SAC5Bljc,EACArM,GACG,OAAAsta,GAAY7F,GAAG8H,GAAIigC,eAAgB,CAACnD,GAAUhgc,GAAOigc,GAAYtsc,IAAjE,GAkBL,SAAY44C,GACVA,EAAAA,EAAA,eACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,mCACAA,EAAAA,EAAA,yBACAA,EAAAA,EAAA,6BACAA,EAAAA,EAAA,mCACAA,EAAAA,EAAA,iDACAA,EAAAA,EAAA,cACD,CATD,CAAYA,KAAAA,GAAiB,KAWtB,ICxOK62Z,GD4PCC,GAAuC,SAClDC,EACA9B,EACAC,EACAhtc,EACAa,GAEA,OAvBAhG,EAwBEgwH,GAAI67S,GAASmoC,IAvBfjuc,EAwBEgqH,GAAI87S,GAASmoC,IAAkBtC,GAAI7lC,GAASqmC,IAvB9Cxwc,GAwBGquH,GAAI87S,GAASmoC,IAAkBtC,GAAI7lC,GAASsmC,IAvB/Ctvc,EAwBEmtH,GAAI67S,GAASmoC,IAvBfh1c,EAwBEmG,EAvBFnC,EAwBEgD,EAtBF2ra,GAAY7F,GAAG8H,GAAIqgC,cAAe,CAChCtD,GAAY3wc,GACZ2wc,GAAY5qc,GACZ4qc,GAAYjvc,GACZivc,GAAY9tc,GACZ8tc,GAAY3xc,GACZ2xc,GAAY3tc,KAda,IAC3BhD,EACA+F,EACArE,EACAmB,EACA7D,EACAgE,CAkBA,EA0BWkxc,GAAa,SAACxjc,GACzB,OAAAiha,GAAY7F,GAAG8H,GAAIugC,WAAY,CAACzD,GAAUhgc,IAA1C,EA4DWs2C,GAAqB,SAACxzB,GACjC,OAAAm+Y,GAAY7F,GAAG8H,GAAIwgC,mBAAoB,CAAC1D,GAAUl9a,IAAlD,EAEW0zB,GAAmB,WAAM,OAAAyqX,GAAY7F,GAAG8H,GAAIygC,iBAAnB,GC7VtC,SAAYP,GACVA,EAAA,sBACAA,EAAA,UACAA,EAAA,WACD,CAJD,CAAYA,KAAAA,GAAU,KA4Bf,ICtCKQ,GDsCCC,GAAY,SAACC,GAExB,OADAhtC,GAAYgtC,EAAM,OAAQ,EAAK,GACxB,CAAEtvc,KAAM4uc,GAAWW,UAAWD,KAAIA,EAC3C,EAEaj1X,GAAM,SAACk0M,EAAaH,EAAeH,GAI9C,OAHAq0I,GAAY/zI,EAAK,MAAO,EAAG,GAC3B+zI,GAAYl0I,EAAO,QAAS,EAAG,GAC/Bk0I,GAAYr0I,EAAM,OAAQ,EAAG,GACtB,CAAEjuR,KAAM4uc,GAAWr0X,IAAKg0M,IAAGA,EAAEH,MAAKA,EAAEH,KAAIA,EACjD,EAEauhL,GAAO,SAClBrhL,EACAE,EACAI,EACA7oR,GAMA,OAJA08Z,GAAYn0I,EAAM,OAAQ,EAAG,GAC7Bm0I,GAAYj0I,EAAS,UAAW,EAAG,GACnCi0I,GAAY7zI,EAAQ,SAAU,EAAG,GACjC6zI,GAAY18Z,EAAK,MAAO,EAAG,GACpB,CAAE5F,KAAM4uc,GAAWa,KAAMthL,KAAIA,EAAEE,QAAOA,EAAEI,OAAMA,EAAE7oR,IAAGA,EAC5D,EAEQ2pc,GAAyBX,GAAUW,UAAxBh1X,GAAcq0X,GAAUr0X,IAAnBk1X,GAASb,GAAUa,KAG9BC,GAAkB,SAAC1/b,GAC5B,OAAAA,EAAMhQ,OAASuvc,GDyOqB,SAACD,GACvC,OAAA7iC,GAAY7F,GAAG8H,GAAIihC,qBAAsB,CAAClE,GAAY6D,IAAtD,CC1O6BM,CAAyB5/b,EAAMs/b,MAC1Dt/b,EAAMhQ,OAASu6E,GD8Oe,SAChCg0M,EACAH,EACAH,GAEA,OAAAw+I,GAAY7F,GAAG8H,GAAImhC,oBAAqB,CACtCpE,GAAYl9K,GACZk9K,GAAYr9K,GACZq9K,GAAYx9K,IAHd,CCnP6B6hL,CAAmB9/b,EAAMu+Q,IAAKv+Q,EAAMo+Q,MAAOp+Q,EAAMi+Q,MAC5Ej+Q,EAAMhQ,OAASyvc,GDmQgB,SACjCthL,EACAE,EACAI,EACA7oR,GAEA,OAAA6ma,GAAY7F,GAAG8H,GAAIqhC,qBAAsB,CACvCtE,GAAYt9K,GACZs9K,GAAYp9K,GACZo9K,GAAYh9K,GACZg9K,GAAY7lc,IAJd,CCzQ6Boqc,CAAoBhgc,EAAMm+Q,KAAMn+Q,EAAMq+Q,QAASr+Q,EAAMy+Q,OAAQz+Q,EAAMpK,KAC9F2d,GAAM,kBAAkBsjD,KAAKC,UAAU92D,GAHvC,EAMSigc,GAAmB,SAACjgc,GAC7B,OAAAA,EAAMhQ,OAASuvc,GDqOsB,SAACD,GACxC,OAAA7iC,GAAY7F,GAAG8H,GAAIwhC,kBAAmB,CAACzE,GAAY6D,IAAnD,CCtO6Ba,CAA0Bngc,EAAMs/b,MAC3Dt/b,EAAMhQ,OAASu6E,GDkPgB,SACjCg0M,EACAH,EACAH,GAEA,OAAAw+I,GAAY7F,GAAG8H,GAAI0hC,iBAAkB,CACnC3E,GAAYl9K,GACZk9K,GAAYr9K,GACZq9K,GAAYx9K,IAHd,CCvP6BoiL,CAAoBrgc,EAAMu+Q,IAAKv+Q,EAAMo+Q,MAAOp+Q,EAAMi+Q,MAC7Ej+Q,EAAMhQ,OAASyvc,GDyQiB,SAClCthL,EACAE,EACAI,EACA7oR,GAEA,OAAA6ma,GAAY7F,GAAG8H,GAAI4hC,kBAAmB,CACpC7E,GAAYt9K,GACZs9K,GAAYp9K,GACZo9K,GAAYh9K,GACZg9K,GAAY7lc,IAJd,CC/Q6B2qc,CAAqBvgc,EAAMm+Q,KAAMn+Q,EAAMq+Q,QAASr+Q,EAAMy+Q,OAAQz+Q,EAAMpK,KAC/F2d,GAAM,kBAAkBsjD,KAAKC,UAAU92D,GAHvC,EAMSwgc,GAAoB,SAACC,EAAkBh9b,GAAc,YAAd,IAAAA,IAAAA,EAAA,GAC9B,KAAb,OAALg9b,QAAK,IAALA,OAAK,EAALA,EAAOxzc,QAAeoyc,GACpBoB,EAAM,GAAKh9b,GAEK,KAAb,OAALg9b,QAAK,IAALA,OAAK,EAALA,EAAOxzc,QAAeo9E,GACpBo2X,EAAM,GAAKh9b,EACXg9b,EAAM,GAAKh9b,EACXg9b,EAAM,GAAKh9b,GAEK,KAAb,OAALg9b,QAAK,IAALA,OAAK,EAALA,EAAOxzc,QAAeuyc,GACpBiB,EAAM,GAAKh9b,EACXg9b,EAAM,GAAKh9b,EACXg9b,EAAM,GAAKh9b,EACXg9b,EAAM,GAAKh9b,QAEb2a,CAf8D,EAmBrDsib,GAAoB,SAAC1gc,GAC9B,OAAAA,EAAMhQ,OAASuvc,GAAY,CAACv/b,EAAMs/b,MAClCt/b,EAAMhQ,OAASu6E,GAAY,CAACvqE,EAAMu+Q,IAAKv+Q,EAAMo+Q,MAAOp+Q,EAAMi+Q,MAC1Dj+Q,EAAMhQ,OAASyvc,GAAY,CAACz/b,EAAMm+Q,KAAMn+Q,EAAMq+Q,QAASr+Q,EAAMy+Q,OAAQz+Q,EAAMpK,KAC3E2d,GAAM,kBAAkBsjD,KAAKC,UAAU92D,GAHvC,EEtFAsyO,GAAa,EACb1xO,GAAa,EACb+/b,GAAoB,EACpBC,GAAoB,EACpBtqZ,GAAa,EACbC,GAAa,EAEX2hB,GAAa,IAAIr8D,IAAoB,CACzC,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,GACN,CAAC,IAAK,KAqHFglc,GAA6B,CACjC/uc,EAAC,SAAChH,GAMA,OALAwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACP61c,GAAKC,GAAK,KACVtqZ,GAAKg8L,GACL/7L,GAAK31C,GACE4tC,GAAO8jM,GAAI1xO,GACpB,EAEA/Q,EAAC,SAAC/E,GAMA,OALAwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACR61c,GAAKC,GAAK,KACVtqZ,GAAKg8L,GACL/7L,GAAK31C,GACE4tC,GAAO8jM,GAAI1xO,GACpB,EAEA1O,EAAC,SAACpH,GAKA,OAJAwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACP61c,GAAK71c,EAAE,GACP81c,GAAK91c,EAAE,GACA6yc,GAAkB7yc,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAC3D,EAEA0B,EAAC,SAAC1B,GACA,IAAMm4E,EAAM06X,GACV7yc,EAAE,GAAKwnP,GACPxnP,EAAE,GAAK8V,GACP9V,EAAE,GAAKwnP,GACPxnP,EAAE,GAAK8V,GACP9V,EAAE,GAAKwnP,GACPxnP,EAAE,GAAK8V,IAMT,OAJA+/b,GAAKruN,GAAKxnP,EAAE,GACZ81c,GAAKhgc,GAAK9V,EAAE,GACZwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACDm4E,CACT,EAEAlyE,EAAC,SAACjG,GACW,OAAP61c,IAAsB,OAAPC,KACjBD,GAAKruN,GACLsuN,GAAKhgc,IAGP,IAAMqiE,EAAM06X,GACVrrN,IAAMquN,GAAKruN,IACX1xO,IAAMggc,GAAKhgc,IACX9V,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,IAMJ,OAJA61c,GAAK71c,EAAE,GACP81c,GAAK91c,EAAE,GACPwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACAm4E,CACT,EAEAp2E,EAAC,SAAC/B,GACW,OAAP61c,IAAsB,OAAPC,KACjBD,GAAKruN,GACLsuN,GAAKhgc,IAGP,IAAMqiE,EAAM06X,GACVrrN,IAAMquN,GAAKruN,IACX1xO,IAAMggc,GAAKhgc,IACX0xO,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACPwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,IAMT,OAJA61c,GAAKruN,GAAKxnP,EAAE,GACZ81c,GAAKhgc,GAAK9V,EAAE,GACZwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACDm4E,CACT,EAEAxqE,EAAC,SAAC3N,GAKA,OAJA61c,GAAK71c,EAAE,GACP81c,GAAK91c,EAAE,GACPwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACA+yc,GAAqB/yc,EAAE,GAAIA,EAAE,GAAIwnP,GAAI1xO,GAC9C,EAEA5J,EAAC,SAAClM,GACA,IAAMm4E,EAAM46X,GACV/yc,EAAE,GAAKwnP,GACPxnP,EAAE,GAAK8V,GACP9V,EAAE,GAAKwnP,GACPxnP,EAAE,GAAK8V,IAMT,OAJA+/b,GAAKruN,GAAKxnP,EAAE,GACZ81c,GAAKhgc,GAAK9V,EAAE,GACZwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACDm4E,CACT,EAEA3wE,EAAC,SAACxH,GACW,OAAP61c,IAAsB,OAAPC,IACjBD,GAAKruN,GACLsuN,GAAKhgc,KAEL+/b,GAAKruN,IAAMquN,GAAKruN,IAChBsuN,GAAKhgc,IAAMggc,GAAKhgc,KAGlB,IAAMqiE,EAAM46X,GAAqB8C,GAAIC,GAAI91c,EAAE,GAAIA,EAAE,IAKjD,OAJA61c,GAAKruN,IAAMquN,GAAKruN,IAChBsuN,GAAKhgc,IAAMggc,GAAKhgc,IAChB0xO,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACAm4E,CACT,EAEAj5E,EAAC,SAACc,GACW,OAAP61c,IAAsB,OAAPC,IACjBD,GAAKruN,GACLsuN,GAAKhgc,KAEL+/b,GAAKruN,IAAMquN,GAAKruN,IAChBsuN,GAAKhgc,IAAMggc,GAAKhgc,KAGlB,IAAMqiE,EAAM46X,GAAqB8C,GAAIC,GAAItuN,GAAKxnP,EAAE,GAAI8V,GAAK9V,EAAE,IAG3D,OAFAwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACDm4E,CACT,EAEAnuE,EAAC,SAAChK,GACA,IAAM62F,EAAOm/W,GAASxuN,GAAI1xO,GAAI9V,GAG9B,OAFAwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACA62F,CACT,EAEA72F,EAAC,SAACA,GACAA,EAAE,IAAMwnP,GACRxnP,EAAE,IAAM8V,GACR,IAAM+gF,EAAOm/W,GAASxuN,GAAI1xO,GAAI9V,GAG9B,OAFAwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACA62F,CACT,EAEApvF,EAAC,SAACzH,GAIA,OAHAwnP,GAAKxnP,EAAE,GACP8V,GAAK9V,EAAE,GACP61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEA9T,EAAC,SAAChC,GAIA,OAHAwnP,IAAMxnP,EAAE,GACR8V,IAAM9V,EAAE,GACR61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEA3L,EAAC,SAACnK,GAGA,OAFAwnP,GAAKxnP,EAAE,GACP61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEAhR,EAAC,SAAC9E,GAGA,OAFAwnP,IAAMxnP,EAAE,GACR61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEAzL,EAAC,SAACrK,GAGA,OAFA8V,GAAK9V,EAAE,GACP61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEA5R,EAAC,SAAClE,GAGA,OAFA8V,IAAM9V,EAAE,GACR61c,GAAKC,GAAK,KACHnyZ,GAAO6jM,GAAI1xO,GACpB,EAEAzI,EAAC,WACC,IAAM8qE,EAAMp0B,KAGZ,OAFAyjM,GAAKh8L,GACL11C,GAAK21C,GACE0sB,CACT,EAEAttE,EAAC,WACC,IAAMstE,EAAMp0B,KAGZ,OAFAyjM,GAAKh8L,GACL11C,GAAK21C,GACE0sB,CACT,GAGI69X,GAAW,SAAC7wc,EAAWa,EAAWsrG,GAKtC,IAJO,IAAAv7F,EAAqCu7F,EAAM,GAAvCt7F,EAAiCs7F,EAAM,GAAnC2kW,EAA6B3kW,EAAM,GAA9B+5M,EAAwB/5M,EAAM,GAAvB4kW,EAAiB5kW,EAAM,GAAhB13D,EAAU03D,EAAM,GAAZo2P,EAAMp2P,EAAM,GAG5Cza,EAAsB,GACVxpE,EAAA,EAAA8ob,EAHLC,GAAcx8Z,EAAI8tT,EAAI3xV,EAAIC,EAAIq1S,EAAO6qJ,EAAOD,EAAK9wc,EAAGa,GAG/CqnB,EAAA8ob,EAAAh0c,OAAAkrB,IAAM,CAAnB,IAAMgpb,EAAGF,EAAA9ob,GACNipb,EAAMC,GAAen0c,WAAC,EAAGi0c,GAC/Bx/W,EAAK/zF,KAAK+vc,GAAiBzwc,WAAC,EAAGk0c,IAEjC,OAAOz/W,CACT,EAMMu/W,GAAgB,SACpBjxc,EACAa,EACA+P,EACAC,EACAq1S,EACA6qJ,EACAM,EACAC,EACAC,GAEA,IAAMhrB,EAAK8qB,GAAWhic,KAAK0tC,GAAK,KAC1By0Z,EAAQnic,KAAKu7G,IAAI27T,GACjBkrB,EAAQpic,KAAKw7G,IAAI07T,GACvB31a,EAAKvB,KAAKsK,IAAI/I,GACdC,EAAKxB,KAAKsK,IAAI9I,GAGd,IAAI4za,GAFJisB,GAAKe,GAASH,EAAKtxc,GAAK,GAAMwxc,GAASD,EAAK1wc,GAAK,IAElC6vc,IAAO9/b,EAAKA,IAD3B+/b,GAAKc,GAASF,EAAK1wc,GAAK,GAAM2wc,GAASF,EAAKtxc,GAAK,IACV2wc,IAAO9/b,EAAKA,GAC/C4za,EAAK,IAEP7za,GADA6za,EAAKp1a,KAAKmI,KAAKita,GAEf5za,GAAM4za,GAGR,IAAMitB,EAAMD,EAAQ7gc,EACd+gc,EAAMH,EAAQ5gc,EACdghc,GAAOJ,EAAQ3gc,EACfghc,EAAMJ,EAAQ5gc,EACdm2C,EAAK0qZ,EAAMJ,EAAKK,EAAMJ,EACtBtqZ,EAAK2qZ,EAAMN,EAAKO,EAAMN,EACtB3+b,EAAK8+b,EAAM1xc,EAAI2xc,EAAM9wc,EACrBkS,EAAK6+b,EAAM5xc,EAAI6xc,EAAMhxc,EAGvBixc,EAAY,IADLl/b,EAAKo0C,IAAOp0C,EAAKo0C,IAAOj0C,EAAKk0C,IAAOl0C,EAAKk0C,IAC5B,IACpB6qZ,EAAY,IACdA,EAAY,GAEd,IAAIC,EAAU1ic,KAAKmI,KAAKs6b,GACpBf,IAAU7qJ,IACZ6rJ,GAAWA,GAGb,IAAMC,EAAK,IAAOhrZ,EAAKp0C,GAAMm/b,GAAWh/b,EAAKk0C,GACvCgrZ,EAAK,IAAOhrZ,EAAKl0C,GAAMg/b,GAAWn/b,EAAKo0C,GAEvCkrZ,EAAM7ic,KAAK06G,MAAM9iE,EAAKgrZ,EAAIjrZ,EAAKgrZ,GAGjCG,EAFQ9ic,KAAK06G,MAAMh3G,EAAKk/b,EAAIr/b,EAAKo/b,GAEnBE,EACdC,EAAQ,GAAe,IAAVpB,EACfoB,GAAS,EAAI9ic,KAAK0tC,GACTo1Z,EAAQ,GAAe,IAAVpB,IACtBoB,GAAS,EAAI9ic,KAAK0tC,IAMpB,IAHA,IAAM43J,EAAWtlM,KAAKsrF,KAAKtrF,KAAKsK,IAAIw4b,GAAmB,GAAV9ic,KAAK0tC,GAAW,QACvD97B,EAAoB,GAEjBjlB,EAAI,EAAGA,EAAI24M,EAAU34M,IAAK,CACjC,IAAMo2c,EAAMF,EAAOl2c,EAAIm2c,EAASx9P,EAC1B09P,EAAMH,GAAQl2c,EAAI,GAAKm2c,EAASx9P,EACtC1zL,EAAOjlB,GAAK,CAACg2c,EAAIC,EAAIG,EAAKC,EAAKzhc,EAAIC,EAAI2gc,EAAOC,GAGhD,OAAOxwb,CACT,EAEMmwb,GAAkB,SACtBkB,EACAC,EACAL,EACAM,EACA5hc,EACAC,EACA2gc,EACAC,GAEA,IAAMC,EAAMD,EAAQ7gc,EACd+gc,GAAOH,EAAQ3gc,EACf+gc,EAAMJ,EAAQ5gc,EACdihc,EAAMJ,EAAQ5gc,EAEd4hc,EAAS,IAAOD,EAAMN,GACtBn4c,EACF,EAAI,EAAKsV,KAAKu7G,IAAa,GAAT6nV,GAAgBpjc,KAAKu7G,IAAa,GAAT6nV,GAC7Cpjc,KAAKu7G,IAAI6nV,GACL7/b,EAAK0/b,EAAMjjc,KAAKw7G,IAAIqnV,GAAOn4c,EAAIsV,KAAKu7G,IAAIsnV,GACxCn/b,EAAKw/b,EAAMljc,KAAKu7G,IAAIsnV,GAAOn4c,EAAIsV,KAAKw7G,IAAIqnV,GACxChrZ,EAAKorZ,EAAMjjc,KAAKw7G,IAAI2nV,GACpBrrZ,EAAKorZ,EAAMljc,KAAKu7G,IAAI4nV,GACpB1/b,EAAKo0C,EAAKntD,EAAIsV,KAAKu7G,IAAI4nV,GACvBx/b,EAAKm0C,EAAKptD,EAAIsV,KAAKw7G,IAAI2nV,GAU7B,MARuB,CACrBd,EAAM9+b,EAAK++b,EAAM5+b,EACjB6+b,EAAMh/b,EAAKi/b,EAAM9+b,EACjB2+b,EAAM5+b,EAAK6+b,EAAM3+b,EACjB4+b,EAAM9+b,EAAK++b,EAAM7+b,EACjB0+b,EAAMxqZ,EAAKyqZ,EAAMxqZ,EACjByqZ,EAAM1qZ,EAAK2qZ,EAAM1qZ,EAGrB,EAEaurZ,GAAqB,SAACxvW,GAAiB,OAlWtC,SAACyvW,GAEbtwN,GAAK1xO,GAAK+/b,GAAKC,GAAKtqZ,GAAKC,GAAK,EAI9B,IADA,IAAIorC,EAAsB,GACjB11F,EAAI,EAAGA,EAAI22c,EAAS31c,OAAQhB,IAAK,CACxC,IAAMO,EAAIo2c,EAAS32c,GACnB,GAAIO,EAAEy2E,KAAiC,oBAAnB49X,GAAQr0c,EAAEy2E,KAAqB,CACjD,IAAMA,EAAM49X,GAAQr0c,EAAEy2E,KAAKz2E,EAAEs9E,MACzB19E,MAAM8rB,QAAQ+qD,GAChB0e,EAAOA,EAAKtyF,OAAO4zE,GAEnB0e,EAAK/zF,KAAKq1E,IAIhB,OAAO0e,CACT,CAgVoDz0F,CAvbtC,SAACimG,GAQb,IAPA,IAAIlwB,EACE3tC,EAAa,GACfw0C,EAAiB,GACjB+4X,EAAS,GACTC,GAAe,EACfjlZ,EAAS,EAEG1lC,EAAA,EAAA4qb,EAAA5vW,EAAAh7E,EAAA4qb,EAAA91c,OAAAkrB,IAAM,CAAjB,IAAM3rB,EAACu2c,EAAA5qb,GACV,GAAI+/C,GAAWx7D,IAAIlQ,GACjBqxD,EAASqa,GAAWztE,IAAI+B,GACpBy2E,IAEE4/X,EAAO51c,OAAS,IAClB68E,EAAKA,EAAK78E,SAAW41c,GAEvBvta,EAAIA,EAAIroC,QAAU,CAAEg2E,IAAGA,EAAE6G,KAAIA,GAE7BA,EAAO,GACP+4X,EAAS,GACTC,GAAe,GAGjB7/X,EAAMz2E,OACD,GACL,CAAC,IAAK,KAAKqxB,SAASrxB,IACb,MAANA,GAAaq2c,EAAO51c,OAAS,GAAmC,MAA9B41c,EAAOA,EAAO51c,OAAS,IACnD,MAANT,GAAas2c,EACd,CACA,GAAsB,IAAlBD,EAAO51c,OACT,SAGE68E,EAAK78E,SAAW4wD,GAElBvoB,EAAIA,EAAIroC,QAAU,CAAEg2E,IAAGA,EAAE6G,KAAIA,GAC7BA,EAAO,EAAE+4X,GAGG,MAAR5/X,IACFA,EAAM,KAEI,MAARA,IACFA,EAAM,MAGR6G,EAAKA,EAAK78E,SAAW41c,EAGvBC,EAAqB,MAANt2c,EAGfq2c,EAAS,CAAC,IAAK,KAAKhlb,SAASrxB,GAAKA,EAAI,QAEtCq2c,GAAUr2c,EACA,MAANA,IACFs2c,GAAe,GA0BrB,OApBID,EAAO51c,OAAS,IACd68E,EAAK78E,SAAW4wD,GAElBvoB,EAAIA,EAAIroC,QAAU,CAAEg2E,IAAGA,EAAE6G,KAAIA,GAC7BA,EAAO,EAAE+4X,GAGG,MAAR5/X,IACFA,EAAM,KAEI,MAARA,IACFA,EAAM,MAGR6G,EAAKA,EAAK78E,SAAW41c,GAIzBvta,EAAIA,EAAIroC,QAAU,CAAEg2E,IAAGA,EAAE6G,KAAIA,GAEtBx0C,CACT,CAoW0D86C,CAAM+iB,GAAZ,EC/XvCtsB,GAAY,SACvBrrE,EACAgiB,GAWA,OACEggb,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClD5mY,GAAU5+C,EAAQvtB,EAAGutB,EAAQ1sB,GAC7B+rc,GAAcZ,GAAUz+a,EAAQ3L,SAChCpO,GAAM+Z,EAAQ7tB,MAAO6tB,EAAQ/tB,QAC7Bstc,GAAYd,GAAUz+a,EAAQylb,OAAQhH,GAAUz+a,EAAQ0lb,QACxDlE,GAAWxjc,GACXiic,MACA3pc,OAAO8hN,QATT,EA2DWutP,GAAgB,SAAC3lb,WAgB5B,OACEggb,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClDxlb,EAAQxd,OAAS0/b,GAAgBlib,EAAQxd,OACzCwd,EAAQ/d,aAAewgc,GAAiBzib,EAAQ/d,aAChDquC,GAAatwB,EAAQ5d,aACrB4d,EAAQ4lb,eAAiBr1Z,GAAWvwB,EAAQ4lb,eAC5ClG,GAAsC,QAAxBp7M,EAACtkO,EAAQ6lb,uBAAe,IAAAvhN,EAAAA,EAAI,GAA2B,QAAzB0L,EAAEhwO,EAAQ8lb,uBAAe,IAAA91M,EAAAA,EAAI,GACzEpxL,GAAU5+C,EAAQvtB,EAAGutB,EAAQ1sB,GAC7B+rc,GAAcZ,GAAUz+a,EAAQ3L,SAChCkrb,GAAYd,GAAUz+a,EAAQylb,OAAQhH,GAAUz+a,EAAQ0lb,QACxD10Z,GAAO,EAAG,GACVC,GAAO,EAAGjxB,EAAQ/tB,QAClBg/C,GAAOjxB,EAAQ7tB,MAAO6tB,EAAQ/tB,QAC9Bg/C,GAAOjxB,EAAQ7tB,MAAO,GACtBk/C,KAGArxB,EAAQxd,OAASwd,EAAQ5d,YAAcw+b,KACvC5gb,EAAQxd,MAA6B7M,KACrCqqB,EAAQ/d,YAA6BsB,KACrC8tC,KAEA4uZ,MACA3pc,OAAO8hN,UAEL2tP,IAAgBjkc,KAAKmI,KAAK,GAAK,GAAO,EAA9B,EAoED+7b,GAAc,SAAChmb,aAc1B,OAAAusY,GAAA,CACEyzC,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClDxlb,EAAQxd,OAAS0/b,GAAgBlib,EAAQxd,OACzCwd,EAAQ/d,aAAewgc,GAAiBzib,EAAQ/d,aAChDquC,GAAatwB,EAAQ5d,aACrB4d,EAAQ4lb,eAAiBr1Z,GAAWvwB,EAAQ4lb,eAC5ClG,GAAsC,QAAxBp7M,EAACtkO,EAAQ6lb,uBAAe,IAAAvhN,EAAAA,EAAI,GAA2B,QAAzB0L,EAAEhwO,EAAQ8lb,uBAAe,IAAA91M,EAAAA,EAAI,SAIlDpvO,IAAnBZ,EAAQ3L,OA1Fe,SAAC6kL,GAM9B,IAAIzmM,EAAI0ma,GAASjgO,EAAOzmM,GACpBa,EAAI6la,GAASjgO,EAAO5lM,GAClB2yc,EAAS9sC,GAASjgO,EAAO+sQ,QACzBC,EAAS/sC,GAASjgO,EAAOgtQ,QAKzBnC,EAAKkC,EAASF,GACd/B,EAAKkC,EAASH,GACd9lc,GALNxN,GAAKwzc,GAKmB,EAATA,EACTnjc,GALNxP,GAAK4yc,GAKmB,EAATA,EACTC,EAAK1zc,EAAIwzc,EACTG,EAAK9yc,EAAI4yc,EAEf,MAAO,CACLlG,KACAhvZ,GAAOv+C,EAAG2zc,GACVjG,GAAkB1tc,EAAG2zc,EAAKpC,EAAImC,EAAKpC,EAAIzwc,EAAG6yc,EAAI7yc,GAC9C6sc,GAAkBgG,EAAKpC,EAAIzwc,EAAG2M,EAAImmc,EAAKpC,EAAI/jc,EAAImmc,GAC/CjG,GAAkBlgc,EAAImmc,EAAKpC,EAAImC,EAAKpC,EAAIjhc,EAAIqjc,EAAIrjc,GAChDq9b,GAAkBgG,EAAKpC,EAAIjhc,EAAIrQ,EAAG2zc,EAAKpC,EAAIvxc,EAAG2zc,GAC9CnG,KAEJ,CA6DQoG,CAAgB,CACd5zc,EAAGutB,EAAQvtB,EACXa,EAAG0sB,EAAQ1sB,EACX2yc,OAAQjmb,EAAQimb,OAChBC,OAAQlmb,EAAQkmb,SA/DA,SAAChtQ,GAOzB,IAAMp8G,EAAUq8U,GAASjgO,EAAOzmM,GAC1BsqF,EAAUo8U,GAASjgO,EAAO5lM,GAC1B2yc,EAAS9sC,GAASjgO,EAAO+sQ,QACzBC,EAAS/sC,GAASjgO,EAAOgtQ,QAEzBzzc,GAAKwzc,EACL3yc,GAAK4yc,EAELnC,EAAKkC,EAASF,GACd/B,EAAKkC,EAASH,GACd9lc,EAAKxN,EAAa,EAATwzc,EACTnjc,EAAKxP,EAAa,EAAT4yc,EACTC,EAAK1zc,EAAIwzc,EACTG,EAAK9yc,EAAI4yc,EAEf,MAAO,CACLtnY,GAAUke,EAASC,GACnBsiX,GAAcZ,GAAUvlQ,EAAO7kL,SAC/B28B,GAAOv+C,EAAG2zc,GACVjG,GAAkB1tc,EAAG2zc,EAAKpC,EAAImC,EAAKpC,EAAIzwc,EAAG6yc,EAAI7yc,GAC9C6sc,GAAkBgG,EAAKpC,EAAIzwc,EAAG2M,EAAImmc,EAAKpC,EAAI/jc,EAAImmc,GAC/CjG,GAAkBlgc,EAAImmc,EAAKpC,EAAImC,EAAKpC,EAAIjhc,EAAIqjc,EAAIrjc,GAChDq9b,GAAkBgG,EAAKpC,EAAIjhc,EAAIrQ,EAAG2zc,EAAKpC,EAAIvxc,EAAG2zc,GAElD,CAkCQE,CAAkB,CAChB7zc,EAAGutB,EAAQvtB,EACXa,EAAG0sB,EAAQ1sB,EACX2yc,OAAQjmb,EAAQimb,OAChBC,OAAQlmb,EAAQkmb,OAChB7xb,OAAsB,QAAhB47O,EAAEjwO,EAAQ3L,cAAM,IAAA47O,EAAAA,EAAIkuM,GAAQ,KACjC,CAGPn+a,EAAQxd,OAASwd,EAAQ5d,YAAcw+b,KACvC5gb,EAAQxd,MAA6B7M,KACrCqqB,EAAQ/d,YAA6BsB,KACrC8tC,KAEA4uZ,OACA3pc,OAAO8hN,UAyGEmuP,GAAgB,SAACvmb,GAK1B,OAAqB,IAArBA,EAAQtX,SAAiB,CACvBk2D,GAAU,EAAG,GACb0gY,GAAc,IAEK,KAArBt/a,EAAQtX,SAAkB,CACxBk2D,GAAU5+C,EAAQ7tB,MAAO,GACzBmtc,GAAc,KAEK,MAArBt/a,EAAQtX,SAAmB,CACzBk2D,GAAU5+C,EAAQ7tB,MAAO6tB,EAAQ/tB,QACjCqtc,GAAc,MAEK,MAArBt/a,EAAQtX,SAAmB,CACzBk2D,GAAU,EAAG5+C,EAAQ/tB,QACrBqtc,GAAc,MAEhB,EAhBA,EAkBSkH,GAAe,SAACxmb,GAY3B,IAAM0wK,EAAUi1Q,GAAc,CAC5Blzc,EAAGutB,EAAQvtB,EACXa,EAAG0sB,EAAQ1sB,EACXnB,MAAO6tB,EAAQ7tB,MACfF,OAAQ+tB,EAAQ/tB,OAChBmQ,YAAa4d,EAAQ5d,YACrBI,MAAOwd,EAAQxd,MACfP,YAAa+d,EAAQ/d,YACrBoS,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGjB,IAAKn+a,EAAQymb,OAAQ,OAAO/1Q,EAE5B,IAAMv+L,EAAQgna,GAASn5Y,EAAQ7tB,OACzBF,EAASkna,GAASn5Y,EAAQ/tB,QAI1By0c,EAlHqB,SAAC1mb,GAO5B,IAAMruB,EAAOwna,GAASn5Y,EAAQruB,MAwBxBg1c,GAAM,IACNC,GAAM,IAONC,GAAM,KACNC,EAAM,MAA+B,KAAcF,EAGzD,MAAO,CACL5G,KACAhgb,EAAQxd,OAASigc,GAAiBzib,EAAQxd,OAC1C8tC,GAAatwB,EAAQgiH,WAErBpjE,GAAU5+C,EAAQvtB,EAAGutB,EAAQ1sB,GAC7B09C,GAAO61Z,EAAMl1c,EAAMm1c,EAAMn1c,GACzBs/C,GAAO01Z,EAAMh1c,EAAMi1c,EAAMj1c,GACzBs/C,GAfU,IAeGt/C,EAhBH,KAgBeA,GAEzB4R,KACA08b,MACA3pc,OAAO8hN,QACX,CA0DoB2uP,CAAc,CAC9Bt0c,EAAGN,EAAQ,EACXmB,EAAGrB,EAAS,EACZN,KALoBmQ,KAAKC,IAAI5P,EAAOF,GAAU,EAM9C+vI,UAAWhiH,EAAQgiH,UACnBx/H,MAAOwd,EAAQgnb,YAGjB,OAAAz6C,GAAA,CAAQyzC,MAAwBtvQ,EAAYg2Q,EAAW,CAAAzG,MACzD,EAEagH,GAAkB,SAACjnb,GAW9B,IAAM7tB,EAAQgna,GAASn5Y,EAAQ7tB,OACzBF,EAASkna,GAASn5Y,EAAQ/tB,QAE1Bi1c,EAAeplc,KAAKC,IAAI5P,EAAOF,GAAU,EAEzCy+L,EAAUs1Q,GAAY,CAC1Bvzc,EAAGutB,EAAQvtB,EACXa,EAAG0sB,EAAQ1sB,EACX2yc,OAAQiB,EACRhB,OAAQgB,EACR1kc,MAAOwd,EAAQxd,MACfP,YAAa+d,EAAQ/d,YACrBG,YAAa4d,EAAQ5d,cAGvB,IAAK4d,EAAQymb,OAAQ,OAAO/1Q,EAE5B,IAAM6vP,EAAMylB,GAAY,CACtBvzc,EAAGutB,EAAQvtB,EACXa,EAAG0sB,EAAQ1sB,EACX2yc,OAAuB,IAAfiB,EACRhB,OAAuB,IAAfgB,EACR1kc,MAAOwd,EAAQmnb,SACfllc,iBAAa2e,EACbxe,YAAa,IAGf,OAAAmqZ,GAAA,CAAQyzC,MAAwBtvQ,EAAY6vP,EAAK,CAAA0f,MACnD,EAEamH,GAAa,SAACpnb,GAazB,IAAMvtB,EAAI0ma,GAASn5Y,EAAQvtB,GACrBa,EAAI6la,GAASn5Y,EAAQ1sB,GACrBnB,EAAQgna,GAASn5Y,EAAQ7tB,OACzBF,EAASkna,GAASn5Y,EAAQ/tB,QAE1Bm1D,EAAau+Y,GAAc,CAC/Blzc,EAACA,EACDa,EAACA,EACDnB,MAAKA,EACLF,OAAMA,EACNmQ,YAAa4d,EAAQ5d,YACrBI,MAAOwd,EAAQxd,MACfP,YAAa+d,EAAQ/d,YACrBoS,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGXzlU,EAAQ2uU,GAAcrnb,EAAQsnb,UAAW,CAC7C9kc,MAAOwd,EAAQwqG,UACfl3D,KAAMtzC,EAAQszC,KACd3hE,KAAMquB,EAAQsmE,SACdjyE,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGjB,OAAA5xC,GAAA,CAAQyzC,MAAwB54Y,EAAesxE,EAAO,CAAAunU,MACxD,EAWaoH,GAAgB,SAC3B3uU,EACA14G,GAQA,IANA,IAAMy/Y,EAAY,CAChBztX,KACAkwZ,GAAgBlib,EAAQxd,OACxB0+b,GAAelhb,EAAQszC,KAAMtzC,EAAQruB,OAG9BmyM,EAAM,EAAGvoL,EAAMm9G,EAAMjpI,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAChD,IAAAwgD,EAAoB5rH,EAAMorE,GAAxBu8C,EAAOiE,EAAAjE,QAAE5tP,EAAC6xP,EAAA7xP,EAAEa,EAACgxP,EAAAhxP,EACrBmsa,EAAUrva,KACRixc,GACE5C,GAAUz+a,EAAQ3L,QAClBoqb,GAAUz+a,EAAQylb,OAClBhH,GAAUz+a,EAAQ0lb,OAClBjzc,EACAa,GAEFu/C,GAASwtM,IAMb,OAFAo/K,EAAUrva,KAAK6hD,MAERwtX,CACT,EAEa8nC,GAAgB,SAACvnb,GAc5B,IAAMvtB,EAAI0ma,GAASn5Y,EAAQvtB,GACrBa,EAAI6la,GAASn5Y,EAAQ1sB,GACrBnB,EAAQgna,GAASn5Y,EAAQ7tB,OACzBF,EAASkna,GAASn5Y,EAAQ/tB,QAC1BmQ,EAAc+2Z,GAASn5Y,EAAQ5d,aAC/BijH,EAAU8zS,GAASn5Y,EAAQqlG,SAE3BmiV,EAAQ/0c,EAAI2P,EAAc,EAAIijH,EAC9BoiV,EAAQn0c,EAAI8O,EAAc,EAAIijH,EAC9BqiV,EAAYv1c,EAAsC,GAA7BiQ,EAAc,EAAIijH,GACvCsiV,EAAa11c,EAAuC,GAA7BmQ,EAAc,EAAIijH,GAEzCuiV,EAAe,CACnB52Z,GAAOw2Z,EAAOC,GACdx2Z,GAAOu2Z,EAAOC,EAAQE,GACtB12Z,GAAOu2Z,EAAQE,EAAWD,EAAQE,GAClC12Z,GAAOu2Z,EAAQE,EAAWD,GAC1Bp2Z,KACAS,KACAD,MAGIuV,EAAau+Y,GAAc,CAC/Blzc,EAACA,EACDa,EAACA,EACDnB,MAAKA,EACLF,OAAMA,EACNmQ,YAAa4d,EAAQ5d,YACrBI,MAAOwd,EAAQxd,MACfP,YAAa+d,EAAQ/d,YACrBoS,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGXzlU,EAAQ2uU,GAAcrnb,EAAQsnb,UAAW,CAC7C9kc,MAAOwd,EAAQwqG,UACfl3D,KAAMtzC,EAAQszC,KACd3hE,KAAMquB,EAAQsmE,SACdjyE,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGX0J,EAAat7C,GAAA,CACjBj4W,GAAmB,MACnB0rZ,MACGtnU,EAAK,CACRunU,KACAzrZ,OAGF,OAAA+3W,GAAA,CACEyzC,MACG54Y,EACAwgZ,EACAC,EAAa,CAChB5H,MAEJ,ECzrBA6H,GAAA,SAAA3wL,GACE,SAAA2wL,WAGE3wL,EAAApoR,KAAA,KADE,iKACQ,IACZ,CACF,OANuC+8Z,GAAAg8C,EAAA3wL,GAMvC2wL,CAAA,CANA,CAAuCjrb,OASvCkrb,GAAA,SAAA5wL,GACE,SAAA4wL,WAGE5wL,EAAApoR,KAAA,KADE,2MACQ,IACZ,CACF,OAN+C+8Z,GAAAi8C,EAAA5wL,GAM/C4wL,CAAA,CANA,CAA+Clrb,OAS/Cmrb,GAAA,SAAA7wL,GACE,SAAA6wL,WAGE7wL,EAAApoR,KAAA,KADE,8QACQ,IACZ,CACF,OANsC+8Z,GAAAk8C,EAAA7wL,GAMtC6wL,CAAA,CANA,CAAsCnrb,OAStCorb,GAAA,SAAA9wL,GACE,SAAA8wL,WAGE9wL,EAAApoR,KAAA,KADE,0EACQ,IACZ,CACF,OANsD+8Z,GAAAm8C,EAAA9wL,GAMtD8wL,CAAA,CANA,CAAsDprb,OAQtDqrb,GAAA,SAAA/wL,GACE,SAAA+wL,EAAYlqc,GAAZ,IACQwrB,EAAM,gDAAgDxrB,EAAI,WAChEm5Q,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OALsCsiY,GAAAo8C,EAAA/wL,GAKtC+wL,CAAA,CALA,CAAsCrrb,OAOtCsrb,GAAA,SAAAhxL,GACE,SAAAgxL,EAAYnqc,EAAc63Z,EAAeC,WAGjCtsY,EACJ,mBAAmBxrB,EAAI,oBAHI,OAAR63Z,QAAQ,IAARA,OAAQ,EAARA,EAAU73Z,MAG7B,iCAF0C,QAA5BgyP,EAAsB,QAAtB1L,EAAS,OAANwxK,QAAM,IAANA,OAAM,EAANA,EAAQ1ma,mBAAW,IAAAk1P,OAAA,EAAAA,EAAEtmP,YAAI,IAAAgyP,EAAAA,EAAI8lK,UAIhD3+I,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAT8CsiY,GAAAq8C,EAAAhxL,GAS9CgxL,CAAA,CATA,CAA8Ctrb,OAkB9Curb,IAPA,SAAAjxL,GACE,SAAAkxL,EAAY9T,GAAZ,IACQ/qa,EAAM,uDAAuD+qa,EAAO,WAC1Ep9K,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CAJ4CsiY,GAAAu8C,EAAAlxL,EAK9C,CALA,CAA8Ct6P,OAO9C,SAAAs6P,GACE,SAAAixL,EAAYpqc,GAAZ,IACQwrB,EAAM,oDAAoDxrB,EAAI,WACpEm5Q,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL6CsiY,GAAAs8C,EAAAjxL,GAK7CixL,CAAA,CALA,CAA6Cvrb,QAO7Cyrb,GAAA,SAAAnxL,GACE,SAAAmxL,EAAYC,GAAZ,IACQ/+a,EAAM,2CAA2C++a,EAAQ,WAC/DpxL,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL+CsiY,GAAAw8C,EAAAnxL,GAK/CmxL,CAAA,CALA,CAA+Czrb,OAc/C2rb,IAPA,SAAArxL,GACE,SAAAsxL,EAAYzqc,GAAZ,IACQwrB,EAAM,iEAAiExrB,EAAI,WACjFm5Q,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CAJiDsiY,GAAA28C,EAAAtxL,EAKnD,CALA,CAAmDt6P,OAOnD,SAAAs6P,GACE,SAAAqxL,EAAY15U,GAAZ,IACQtlG,EAAM,iFAAiFslG,SAC7FqoJ,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL4CsiY,GAAA08C,EAAArxL,GAK5CqxL,CAAA,CALA,CAA4C3rb,QAO5C6rb,GAAA,SAAAvxL,GACE,SAAAuxL,EAAYC,EAAoBC,GAAhC,IACQp/a,EAAM,8CAA8Cm/a,EAAU,8BAA8BC,SAClGzxL,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL2CsiY,GAAA48C,EAAAvxL,GAK3CuxL,CAAA,CALA,CAA2C7rb,OAO3Cgsb,GAAA,SAAA1xL,GACE,SAAA0xL,EAAYC,EAAoBr2U,EAAmBz0H,GAAnD,IACQwrB,EAAM,qCAAqCs/a,EAAU,iCAAiCr2U,EAAS,aAAaz0H,SAClHm5Q,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL4CsiY,GAAA+8C,EAAA1xL,GAK5C0xL,CAAA,CALA,CAA4Chsb,OAO5Cksb,GAAA,SAAA5xL,GACE,SAAA4xL,EAAYD,EAAoBr2U,EAAmBz0H,GAAnD,IACQwrB,EAAM,8BAA8BipG,EAAS,wBAAwBq2U,EAAU,oDAAoD9qc,EAAI,WAC7Im5Q,EAAApoR,KAAA,KAAMy6B,IAAI,IACZ,CACF,OAL2CsiY,GAAAi9C,EAAA5xL,GAK3C4xL,CAAA,CALA,CAA2Clsb,QHzG3C,SAAY+kb,GACVA,EAAAA,EAAA,eACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,gBACD,CAJD,CAAYA,KAAAA,GAAa,KI6BzB,IAGMoH,GAAkB,SACtBtwU,EACAplE,EACAxZ,EACAmvZ,QAAA,IAAAA,IAAAA,GAAA,GAIA,IAFA,IAAI3iX,EATgB,EAWbA,EAVa,KAUa,CAG/B,IAFA,IAAI4iX,EAAY,EAGVC,EAAU,EAAGC,EAAU1wU,EAAMjpI,OACjC05c,EAAUC,EACVD,IACA,CACAD,GAAa,EAQb,IANA,IACMhwE,EADOxgQ,EAAMywU,GACApoc,MAAM,KAIrBsoc,EAAuBvvZ,EAAO3nD,MACzB2xM,EAAM,EAAGvoL,EAAM29W,EAAMzpY,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACtD,IACMq3I,EADar3I,IAAQvoL,EAAM,EACP29W,EAAMp1L,GAAOo1L,EAAMp1L,GAAO,IAC9CwlQ,EAAch2Y,EAAKu3W,kBAAkB1vF,EAAM70P,IACjD+iX,GAAwBC,IACI,IAC1BJ,GAAa,EACbG,EAAuBvvZ,EAAO3nD,MAAQm3c,IAM5C,IAAKL,GAAaC,EAAYxwU,EAAMjpI,OAAQ,OAAO62F,EAAW,EAE9D,IAAMr0F,EAASqhE,EAAKi2Y,aAAajjX,GAKjC,IAJmBr0F,EAAkB,GAATA,GACKi3c,EAGfpnc,KAAKsK,IAAI0tC,EAAO7nD,QAAS,OAAOq0F,EAAW,EAE7DA,GAAY,EAGd,OAAOA,CACT,EAEMkjX,GAAwB,SAC5B1jV,EACAxyD,EACAxZ,EACA8uZ,GAQA,IANA,IAAMa,EAAY3vZ,EAAO3nD,MAAQy2c,EAC3Bc,EAAa5vZ,EAAO7nD,OAEtBq0F,EAhEgB,EAkEdoR,ExGnBiB,SAACr/D,GAGxB,IAFA,IAAMq/D,EAAkB,GAEfosG,EAAM,EAAGvoL,EAAM8c,EAAK5oC,OAAQq0M,EAAMvoL,GAAO,CAC1C,IAAA+oO,EAAYmpK,GAAYp1X,EAAMyrK,GAA7B90M,EAACs1P,EAAA,GAAEqlN,EAAIrlN,EAAA,GACd5sJ,EAAMtnG,KAAKpB,GACX80M,GAAO6lQ,EAGT,OAAOjyW,CACT,CwGSgBkyW,CAAU9jV,GACjBx/B,EAlEa,KAkEa,CAC/B,IAAK,IAAIw9G,EAAM,EAAGvoL,EAAMm8E,EAAMjoG,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACtD,IAAM90M,EAAI0oG,EAAMosG,GAEhB,GADgBxwI,EAAKu3W,kBAAkB77a,EAAGs3F,GAAwB,IAAZmjX,EACzC,OAAOnjX,EAAW,EAIjC,GADehzB,EAAKi2Y,aAAajjX,EAAU,CAAE2kV,WAAW,IAC3Cy+B,EAAY,OAAOpjX,EAAW,EAE3CA,GAAY,EAGd,OAAOA,CACT,EAgBMujX,GAAwB,SAAC/jV,GAC7B,IAAK,IAAIg+E,EAAMh+E,EAAKr2H,OAAQq0M,EAAM,EAAGA,IACnC,GAAI,KAAKh9L,KAAKg/G,EAAKg+E,IAAO,OAAOA,CAGrC,EAEMgmQ,GAAgB,SACpB7+a,EACAo2C,EACA/N,EACAgzB,GAGA,UADIyjX,EAAoB9+a,EAAMx7B,OACvBs6c,EAAoB,GAAG,CAC5B,IAAMjkV,EAAO76F,EAAMkrD,UAAU,EAAG4zX,GAC1B1pN,EAAU/sL,EAAKm+J,WAAW3rG,GAC1B3zH,EAAQmhE,EAAKu3W,kBAAkB/kT,EAAMx/B,GAC3C,GAAIn0F,EAAQkvE,EAEV,MAAO,CAAEykD,KAAIA,EAAEu6H,QAAOA,EAAEluP,MAAKA,EAAE63c,UADb/+a,EAAMkrD,UAAU4zX,SAAsBnpb,GAG1Dmpb,EAA+C,QAA9BzlN,EAAGulN,GAAsB/jV,UAAK,IAAAw+H,EAAAA,EAAI,EAKrD,MAAO,CACLx+H,KAAM76F,EACNo1N,QAAS/sL,EAAKm+J,WAAWxmM,GACzB94B,MAAOmhE,EAAKu3W,kBAAkB5/Y,EAAOq7D,GACrC0jX,eAAWppb,EAEf,EAEaqpb,GAAsB,SACjC5xa,EACAisN,OAAE4lN,EAAS5lN,EAAA4lN,UAAE5jX,EAAQg+J,EAAAh+J,SAAEhzB,EAAIgxL,EAAAhxL,KAAExZ,EAAMwqM,EAAAxqM,OAE7B4+E,EAAQ60R,GAAUH,GAAU/0X,SAEjBzX,IAAb0lE,GAAuC,IAAbA,IAC5BA,EAAW0iX,GAAgBtwU,EAAOplE,EAAMxZ,GAAQ,IAalD,IAXA,IAAM7nD,EAASqhE,EAAKi2Y,aAAajjX,GAC3B+qC,EAAap/H,EAAkB,GAATA,EAEtBq1c,EAA4B,GAE9Bv/W,EAAOjuC,EAAOrnD,EACdu1F,EAAOluC,EAAOxmD,EACd20F,EAAOnuC,EAAOrnD,EAAIqnD,EAAO3nD,MACzB+1F,EAAOpuC,EAAOxmD,EAAIwmD,EAAO7nD,OAEzBqB,EAAIwmD,EAAOxmD,EAAIwmD,EAAO7nD,OACjB6xM,EAAM,EAAGvoL,EAAMm9G,EAAMjpI,OAAQq0M,EAAMvoL,EAAKuoL,IAE/C,IADA,IAAIqmQ,EAAoCzxU,EAAMorE,QACrBljL,IAAlBupb,GAA6B,CAC5B,IAAAn6M,EAAsC85M,GAC1CK,EACArwZ,EAAO3nD,MACPmhE,EACAgzB,GAJMw/B,EAAIkqI,EAAAlqI,KAAEu6H,EAAO2P,EAAA3P,QAAEluP,EAAK69P,EAAA79P,MAAE63c,EAASh6M,EAAAg6M,UAQjCv3c,EACFy3c,IAActI,GAAczjT,KAASrkG,EAAOrnD,EAC5Cy3c,IAActI,GAAcwI,OAAStwZ,EAAOrnD,EAAKqnD,EAAO3nD,MAAQ,EAAMA,EAAQ,EAC9E+3c,IAActI,GAAcvjT,MAASvkG,EAAOrnD,EAAIqnD,EAAO3nD,MAAQA,EAC/D2nD,EAAOrnD,EAKPA,EAAIs1F,IAAMA,EAAOt1F,IAFrBa,GAAK+9H,GAGGrpC,IAAMA,EAAO10F,GACjBb,EAAIN,EAAQ81F,IAAMA,EAAOx1F,EAAIN,GAC7BmB,EAAIrB,EAASi2F,IAAMA,EAAO50F,EAAIrB,GAElCq1c,EAAUl3c,KAAK,CAAEioC,KAAMytF,EAAMu6H,QAAOA,EAAEluP,MAAKA,EAAEF,OAAMA,EAAEQ,EAACA,EAAEa,EAACA,IAIzD62c,EAAyB,OAATH,QAAS,IAATA,OAAS,EAATA,EAAWpjc,OAI/B,MAAO,CACL0/E,SAAQA,EACR+qC,WAAUA,EACVqH,MAAO4uU,EACPxtZ,OAAQ,CACNrnD,EAAGs1F,EACHz0F,EAAG00F,EACH71F,MAAO81F,EAAOF,EACd91F,OAAQi2F,EAAOF,GAGrB,EAwFaqiX,GAAuB,SAClChya,EACAisN,OAAE4lN,EAAS5lN,EAAA4lN,UAAE5jX,EAAQg+J,EAAAh+J,SAAEhzB,EAAIgxL,EAAAhxL,KAAExZ,EAAMwqM,EAAAxqM,OAE7BgsE,EAAO0nS,GAAWJ,GAAU/0X,SAEjBzX,IAAb0lE,GAAuC,IAAbA,IAC5BA,EAAW0iX,GAAgB,CAACljV,GAAOxyD,EAAMxZ,IAG3C,IAAMumM,EAAU/sL,EAAKm+J,WAAW3rG,GAC1B3zH,EAAQmhE,EAAKu3W,kBAAkB/kT,EAAMx/B,GACrCr0F,EAASqhE,EAAKi2Y,aAAajjX,EAAU,CAAE2kV,WAAW,IAGlDx4a,EACFy3c,IAActI,GAAczjT,KAASrkG,EAAOrnD,EAC5Cy3c,IAActI,GAAcwI,OAAStwZ,EAAOrnD,EAAKqnD,EAAO3nD,MAAQ,EAAMA,EAAQ,EAC9E+3c,IAActI,GAAcvjT,MAASvkG,EAAOrnD,EAAIqnD,EAAO3nD,MAAQA,EAC/D2nD,EAAOrnD,EAGLa,EAAIwmD,EAAOxmD,GAAKwmD,EAAO7nD,OAAS,EAAIA,EAAS,GAEnD,MAAO,CACLq0F,SAAQA,EACRw/B,KAAM,CAAEztF,KAAMytF,EAAMu6H,QAAOA,EAAEluP,MAAKA,EAAEF,OAAMA,EAAEQ,EAACA,EAAEa,EAACA,GAChDwmD,OAAQ,CAAErnD,EAACA,EAAEa,EAACA,EAAEnB,MAAKA,EAAEF,OAAMA,GAEjC,EC9Oaq4c,GAAsB,SACjCzmb,GAEA,MAAI,WAAYA,EAAmBA,EAC5B,CAAEqra,OAAQrra,EACnB,EAKMwoa,GAAU,qEAEVke,GAAqB,SAACx7U,WAGpB49T,EAAiC,QAA/BroM,EAAGv1H,EAAMm+T,8BAAsB,IAAA5oM,EAAAA,EAAI,GACrC8oM,EAA0C,QAAnCp9L,EAAG++J,GAAc49B,EAAIN,IAASxlb,aAAK,IAAAmpP,EAAAA,EAAI,GAC9Cw6M,EAAkB/ja,OAAO2mZ,EAAQ,IACvC,OAAOxrO,SAAS4oP,GAAmBA,OAAkB5pb,CACvD,EAMM6pb,GAAa,kIAEbC,GAAkB,SAAC37U,SAGjB49T,EAAiC,QAA/BroM,EAAGv1H,EAAMm+T,8BAAsB,IAAA5oM,EAAAA,EAAI,GACrC8oM,EAAUr+B,GAAc49B,EAAI8d,IAAY5jc,MAExCmpP,EAAwC,OAAPo9L,QAAO,IAAPA,EAAAA,EAAW,GAAzC1uV,EAAEsxJ,EAAA,GAAEhhO,EAAEghO,EAAA,GAAErxJ,EAAEqxJ,EAAA,GAAE26M,EAAE36M,EAAA,GAAE8iL,EAAU9iL,EAAA,GAEnC,MAAmB,MAAf8iL,GAAsBp0U,EACjBmjW,GAAUp7Z,OAAOi4D,IAEP,OAAfo0U,GAAuBp0U,GAAM1vE,GAAM2vE,EAC9B9xB,GAAIpmC,OAAOi4D,GAAKj4D,OAAOzX,GAAKyX,OAAOk4D,IAEzB,MAAfm0U,GAAsBp0U,GAAM1vE,GAAM2vE,GAAMgsW,EACnC3I,GAAKv7Z,OAAOi4D,GAAKj4D,OAAOzX,GAAKyX,OAAOk4D,GAAKl4D,OAAOkka,SADzD,CAKF,EAEMC,GAA0B,SAC9B77U,EACAvsH,EACA8wD,EACAgzB,cAAA,IAAAA,IAAAA,EAAA,GAEA,IAAMqmW,EAAK,CACTuV,GAAgB1/b,GAAO6Y,WACvB6lb,GAAyB,QAAX58M,EAAK,OAAJhxL,QAAI,IAAJA,OAAI,EAAJA,EAAMt1D,YAAI,IAAAsmP,EAAAA,EAAI,cAAeh+J,GAAUjrE,YACtDhrB,KAAK,MACP0+H,EAAMk+T,qBAAqBN,EAC7B,EAEake,GAAwE,SACnF/jV,EACA6qU,aAGMmZ,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgB5jV,EAASkkV,WAEtC15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBAEZrub,EAA0B,QAAfkiP,EAAK,OAAFqsM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAAx0J,EAAAA,EAAM,EAChC57O,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9B50a,EAAoB8jb,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAK4oB,EAAA5oB,MAAEF,EAAM8oB,EAAA9oB,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAClB5qE,EAAqD,QAA1C+tP,EAAGgzM,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,yBAAiB,IAAA5/L,EAAAA,EAAI7lK,EACzD8gX,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAC9Cqb,EAAsBlI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,qBAAsB,IAGlErlU,EAAqC,QAA5BylI,EAAc,OAAX66M,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAA96M,EAAAA,EAAI9lK,EAE7CygX,GADEE,EACsBnZ,EAEA7qU,EAASkkV,UAFDxgV,GAKlC,IAAMxqG,EAAU,CACdvtB,EAAG,EAAI2P,EAAc,EACrB9O,EAAG,EAAI8O,EAAc,EACrBjQ,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjB4/H,UAAW,IACX5/H,YAAWA,EACXH,YAAWA,EACX+kc,UAAWx8U,GAGb,MAAO,CACL0kU,OAAQ,CACNxwa,GAAE6tY,GACGl4Y,EACAmyb,GAAYz6C,GAAAA,GAAC,CAAC,EACZ/rY,GAAO,CACVxd,MAAOyoc,EACPxE,QAAQ,MAGZ9nb,IAAG4tY,GACEl4Y,EACAmyb,GAAYz6C,GAAAA,GAAC,CAAC,EACZ/rY,GAAO,CACVxd,MAAOyoc,EACPxE,QAAQ,OAIdrX,KAAM,CACJ1wa,GAAE6tY,GACGl4Y,EACAmyb,GAAYz6C,GAAAA,GAAC,CAAC,EACZ/rY,GAAO,CACVxd,MAAO0oc,EACPzE,QAAQ,MAGZ9nb,IAAG4tY,GACEl4Y,EACAmyb,GAAYz6C,GAAAA,GAAC,CAAC,EACZ/rY,GAAO,CACVxd,MAAO0oc,EACPzE,QAAQ,OAKlB,EAEa0E,GAA4E,SACvFC,EACAzZ,aAGMmZ,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgBU,EAAWJ,WAExC15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBAEZrub,EAA0B,QAAfkiP,EAAK,OAAFqsM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAAx0J,EAAAA,EAAM,EAChC57O,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9B50a,EAAoB8jb,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAK4oB,EAAA5oB,MAAEF,EAAM8oB,EAAA9oB,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAClB5qE,EAAqD,QAA1C+tP,EAAGgzM,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,yBAAiB,IAAA5/L,EAAAA,EAAI7lK,EACzD8gX,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAC9Cqb,EAAsBlI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,qBAAsB,IAGlErlU,EAAqC,QAA5BylI,EAAc,OAAX66M,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAA96M,EAAAA,EAAI9lK,EAE7CygX,GADEE,EACsBnZ,EAEAyZ,EAAWJ,UAFHxgV,GAKlC,IAAMxqG,EAAU,CACdvtB,EAAGN,EAAQ,EACXmB,EAAGrB,EAAS,EACZE,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjBA,YAAWA,EACXH,YAAWA,EACXklc,SAAU38U,GAGZ,MAAO,CACL0kU,OAAQ,CACNxwa,GAAE6tY,GACGl4Y,EACA4yb,GAAel7C,GAAAA,GAAC,CAAC,EACf/rY,GAAO,CACVxd,MAAOyoc,EACPxE,QAAQ,MAGZ9nb,IAAG4tY,GACEl4Y,EACA4yb,GAAel7C,GAAAA,GAAC,CAAC,EACf/rY,GAAO,CACVxd,MAAOyoc,EACPxE,QAAQ,OAIdrX,KAAM,CACJ1wa,GAAE6tY,GACGl4Y,EACA4yb,GAAel7C,GAAAA,GAAC,CAAC,EACf/rY,GAAO,CACVxd,MAAO0oc,EACPzE,QAAQ,MAGZ9nb,IAAG4tY,GACEl4Y,EACA4yb,GAAel7C,GAAAA,GAAC,CAAC,EACf/rY,GAAO,CACVxd,MAAO0oc,EACPzE,QAAQ,OAKlB,EAEa4E,GAAoE,SAC/E7pY,EACAmwX,EACAr+X,iBAGMw3Y,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgBlpY,EAAOwpY,WACpCM,EAAiBf,GAAmB5Y,GACpC4Z,EAAgBhB,GAAmB/oY,EAAOwpY,WAE1C15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBACZP,EAAa,OAAF7a,QAAE,IAAFA,OAAE,EAAFA,EAAIya,cACf0b,EAA6B,QAAnBlnN,EAAW,OAAR4rM,QAAQ,IAARA,OAAQ,EAARA,EAAUhB,cAAM,IAAA5qM,EAAAA,EAAI,GACjCmnN,EAAuC,QAA/Bx7M,EAAiB,QAAjBD,EAAW,OAARkgM,QAAQ,IAARA,OAAQ,EAARA,EAAUd,YAAI,IAAAp/L,EAAAA,EAAIw7M,SAAU,IAAAv7M,EAAAA,EAAI,GAE3C7tP,EAA0B,QAAf2Y,EAAK,OAAF41a,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAA/9X,EAAAA,EAAM,EAChCrS,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9B3/I,EAAoB6uJ,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAK69S,EAAA79S,MAAEF,EAAM+9S,EAAA/9S,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAElB5qE,EAAc+gc,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,kBACpCqb,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAC9Cqb,EAAsBlI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,qBAAsB,IAElE/1Y,EAAS,CACbrnD,EAAG2P,EACH9O,EAAG8O,EACHjQ,MAAOA,EAAsB,EAAdiQ,EACfnQ,OAAQA,EAAuB,EAAdmQ,GAEbspc,EAAerB,GAAqBmB,EAAY,CACpDtB,UAAWtI,GAAcwI,OACzB9jX,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,IAEF6xZ,EAAatB,GAAqBoB,EAAU,CAChDvB,UAAWtI,GAAcwI,OACzB9jX,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,IAIFwsC,EAAWxkF,KAAKC,IAAI2pc,EAAaplX,SAAUqlX,EAAWrlX,UACtDkkC,EAAqC,QAA5B/mH,EAAc,OAAXqnc,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAAtnc,EAAAA,EAAI0mF,EAE7CygX,GADEE,QAAkClqb,IAAnB0qb,EACO3Z,EAEAnwX,EAAOwpY,UAFCxgV,EAAWl3D,EAAMgzB,GAKnD,IAAMtmE,EAAU,CACdvtB,EAAG,EAAI2P,EAAc,EACrB9O,EAAG,EAAI8O,EAAc,EACrBjQ,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjBA,YAAWA,EACXH,YAAWA,EACXuoH,UAASA,EACTl3D,KAAMA,EAAKt1D,KACXsoF,SAAQA,GAGV,MAAO,CACL4oW,OAAM3iC,GACDl4Y,EACA+yb,GAAUr7C,GAAAA,GAAC,CAAC,EACV/rY,GAAO,CACVxd,MAAOyoc,EACP3D,UAAW,CAACoE,EAAa5lV,UAG7BspU,KAAI7iC,GACCl4Y,EACA+yb,GAAUr7C,GAAAA,GAAC,CAAC,EACV/rY,GAAO,CACVxd,MAAO0oc,EACP5D,UAAW,CAACqE,EAAW7lV,UAI/B,EAEa8lV,GAA0E,SACrFC,EACAla,EACAr+X,eAwBIg0Y,EACAhhX,EAtBEwkX,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgBmB,EAAUb,WACvCM,EAAiBf,GAAmB5Y,GACpC4Z,EAAgBhB,GAAmBsB,EAAUb,WAE7C15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBACZp4Z,EAA0B,QAAtBisN,EAAGunN,EAAUC,iBAAS,IAAAxnN,EAAAA,EAAI,GAE9BliP,EAA0B,QAAf4tP,EAAK,OAAF2gM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAA9oJ,EAAAA,EAAM,EAChCtnP,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9Blsb,EAAoBo7b,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAKsR,EAAAtR,MAAEF,EAAMwR,EAAAxR,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAElB5qE,EAAc+gc,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,kBACpCqb,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAK9CxqU,EAAUwmV,EAAUE,WAAa,EAAI,EACrCjyZ,EAAS,CACbrnD,EAAG2P,EAAcijH,EACjB/xH,EAAG8O,EAAcijH,EACjBlzH,MAAOA,EAAkC,GAAzBiQ,EAAcijH,GAC9BpzH,OAAQA,EAAmC,GAAzBmQ,EAAcijH,IAElC,GAAIwmV,EAAUG,cAOZ1E,GANMxrV,EAASmuV,GAAoB5xa,EAAM,CACvC6xa,UAAW2B,EAAUI,eACrB3lX,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,KAEW4+E,MACnBpyC,EAAWw1B,EAAOx1B,cACb,GAAIulX,EAAUE,WAAY,CAC/B,IAAMjwV,EDjOsB,SAC9BzjF,EACAisN,OAAEh+J,EAAQg+J,EAAAh+J,SAAEhzB,EAAIgxL,EAAAhxL,KAAExZ,EAAMwqM,EAAAxqM,OAAE8uZ,EAAStkN,EAAAskN,UAE7B9iV,EAAO0nS,GAAWJ,GAAU/0X,IAElC,GAAIytF,EAAKr2H,OAASm5c,EAChB,MAAM,IAAIF,GAAsB5iV,EAAKr2H,OAAQm5c,QAG9Bhob,IAAb0lE,GAAuC,IAAbA,IAC5BA,EAAWkjX,GAAsB1jV,EAAMxyD,EAAMxZ,EAAQ8uZ,IAiBvD,IAdA,IAAMa,EAAY3vZ,EAAO3nD,MAAQy2c,EAE3B32c,EAASqhE,EAAKi2Y,aAAajjX,EAAU,CAAE2kV,WAAW,IAClD33a,EAAIwmD,EAAOxmD,GAAKwmD,EAAO7nD,OAAS,EAAIA,EAAS,GAE7CgqR,EAAwB,GAE1Bl0L,EAAOjuC,EAAOrnD,EACdu1F,EAAOluC,EAAOxmD,EACd20F,EAAOnuC,EAAOrnD,EAAIqnD,EAAO3nD,MACzB+1F,EAAOpuC,EAAOxmD,EAAIwmD,EAAO7nD,OAEzBi6c,EAAa,EACbC,EAAa,EACVD,EAAatD,GAAW,CACvB,IAAA54M,EAAqBy9J,GAAY3nS,EAAMqmV,GAAtCnrR,EAAIgvE,EAAA,GAAEo8M,EAAUp8M,EAAA,GAEjB3P,EAAU/sL,EAAKm+J,WAAWzwC,GAC1B7uL,EAAQmhE,EAAKu3W,kBAAkB7pP,EAAM16F,GAGrC7zF,EADaqnD,EAAOrnD,GAAKg3c,EAAYyC,EAAazC,EAAY,GAC7Ct3c,EAAQ,EAE3BM,EAAIs1F,IAAMA,EAAOt1F,GACjBa,EAAI00F,IAAMA,EAAO10F,GACjBb,EAAIN,EAAQ81F,IAAMA,EAAOx1F,EAAIN,GAC7BmB,EAAIrB,EAASi2F,IAAMA,EAAO50F,EAAIrB,GAElCgqR,EAAM7rR,KAAK,CAAEioC,KAAMytF,EAAMu6H,QAAOA,EAAEluP,MAAKA,EAAEF,OAAMA,EAAEQ,EAACA,EAAEa,EAACA,IAErD44c,GAAc,EACdC,GAAcC,EAGhB,MAAO,CACL9lX,SAAQA,EACR21L,MAAKA,EACLniO,OAAQ,CACNrnD,EAAGs1F,EACHz0F,EAAG00F,EACH71F,MAAO81F,EAAOF,EACd91F,OAAQi2F,EAAOF,GAGrB,CCuKmBqkX,CAAiBh0a,EAAM,CACpCiuD,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,EACN8uZ,UAAmC,QAA1B34M,EAAE47M,EAAUhY,sBAAc,IAAA5jM,EAAAA,EAAI,IAEzCq3M,EAAYxrV,EAAOmgK,MACnB31L,EAAWw1B,EAAOx1B,aACb,CAOLghX,EAAY,EANNxrV,EAASuuV,GAAqBhya,EAAM,CACxC6xa,UAAW2B,EAAUI,eACrB3lX,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,KAEYgsE,MACpBx/B,EAAWw1B,EAAOx1B,SAIpB,IAAMkkC,EAAqC,QAA5BzvG,EAAc,OAAX+vb,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAAhwb,EAAAA,EAAIovE,EAE7CygX,GADEE,QAAkClqb,IAAnB0qb,EACO3Z,EAEAka,EAAUb,UAFFxgV,EAAWl3D,EAAMgzB,GAKnD,IAAMtmE,EAAU,CACdvtB,EAAG,EAAI2P,EAAc,EACrB9O,EAAG,EAAI8O,EAAc,EACrBjQ,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjBA,YAAwB,OAAXA,QAAW,IAAXA,EAAAA,EAAe,EAC5BH,YAAWA,EACXuoH,UAASA,EACTl3D,KAAMA,EAAKt1D,KACXsoF,SAAQA,EACR9jF,MAAOyoc,EACP3D,UAASA,EACTjiV,QAAOA,GAGT,OAAAknS,GAAWl4Y,EAAWkzb,GAAcvnb,GACtC,EAEassb,GAAwE,SACnFhvE,EACAq0D,EACAr+X,aAGMw3Y,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgBptE,EAAS0tE,WACtCM,EAAiBf,GAAmB5Y,GACpC4Z,EAAgBhB,GAAmBjtE,EAAS0tE,WAE5C15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBACZp4Z,EAAgC,QAA5BisN,EAAGg5I,EAASivE,cAAc,UAAE,IAAAjoN,EAAAA,EAAI,GAEpCliP,EAA0B,QAAf4tP,EAAK,OAAF2gM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAA9oJ,EAAAA,EAAM,EAChCtnP,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9B50a,EAAoB8jb,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAK4oB,EAAA5oB,MAAEF,EAAM8oB,EAAA9oB,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAElB5qE,EAAc+gc,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,kBACpCqb,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAG9C/1Y,EAAS,CACbrnD,EAAG2P,EAFW,EAGd9O,EAAG8O,EAHW,EAIdjQ,MAAOA,EAAkC,GAAzBiQ,EAJF,GAKdnQ,OAAQA,EAAmC,GAAzBmQ,EALJ,IAOVqB,EAAqB4mc,GAAqBhya,EAAM,CACpD6xa,UAAWtI,GAAczjT,KACzB73D,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,IAJAgsE,EAAIriH,EAAAqiH,KAAEx/B,EAAQ7iF,EAAA6iF,SAQhBkkC,EAAqC,QAA5BylI,EAAc,OAAX66M,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAA96M,EAAAA,EAAI9lK,EAE7CygX,GADEE,QAAkClqb,IAAnB0qb,EACO3Z,EAEAr0D,EAAS0tE,UAFDxgV,EAAWl3D,EAAMgzB,GAKnD,IAAMtmE,EAAU,CACdvtB,EAAG,EAAI2P,EAAc,EACrB9O,EAAG,EAAI8O,EAAc,EACrBjQ,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjBA,YAAwB,OAAXA,QAAW,IAAXA,EAAAA,EAAe,EAC5BH,YAAWA,EACXuoH,UAASA,EACTl3D,KAAMA,EAAKt1D,KACXsoF,SAAQA,EACR9jF,MAAOyoc,EACP3D,UAAW,CAACxhV,GACZT,QAlCc,GAqChB,OAAAknS,GAAWl4Y,EAAWkzb,GAAcvnb,GACtC,EAEawsb,GAA4E,SACvF5sF,EACA+xE,EACAr+X,WAGMw3Y,EAAcJ,GAAgB/Y,GAC9BoZ,EAAaL,GAAgB9qF,EAAWorF,WACxCM,EAAiBf,GAAmB5Y,GACpC4Z,EAAgBhB,GAAmB3qF,EAAWorF,WAE9C15Z,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBAEZrub,EAA0B,QAAfkiP,EAAK,OAAFqsM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAAx0J,EAAAA,EAAM,EAChC57O,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAC9B1/L,EAAoB4uM,GAAsBvtZ,EAAW5oC,GAAnDvW,EAAK89P,EAAA99P,MAAEF,EAAMg+P,EAAAh+P,OAEfoiB,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/CyhF,EAAQtd,GAAI,EAAG,EAAG,GAElB5qE,EAAc+gc,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIua,kBACpCqb,EAAwBjI,GAAoB,OAAF3tB,QAAE,IAAFA,OAAE,EAAFA,EAAIwa,sBAE9C7va,EAAU4/V,EAAWqzE,aACrBl+T,EAAW6qP,EAAW2sF,cAExB3sF,EAAW6sF,YAAYzsb,EAAQ8lL,OAGnC,IADA,IAAIztK,EAAO,GACFyrK,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IACjDzrK,GAAQrY,EAAQ8jL,GACZA,EAAMvoL,EAAM,IAAG8c,GAAQ,MAG7B,IACMyhB,EAAS,CACbrnD,EAAG2P,EAFW,EAGd9O,EAAG8O,EAHW,EAIdjQ,MAAOA,EAAkC,GAAzBiQ,EAJF,GAKdnQ,OAAQA,EAAmC,GAAzBmQ,EALJ,IAOV2Y,EAAkCkvb,GAAoB5xa,EAAM,CAChE6xa,UAAWtI,GAAczjT,KACzB73D,SAAwB,OAAdglX,QAAc,IAAdA,EAAAA,EAAkBC,EAC5Bj4Y,KAAIA,EACJxZ,OAAMA,IAJA4+E,EAAK39G,EAAA29G,MAAEpyC,EAAQvrE,EAAAurE,SAAE+qC,EAAUt2G,EAAAs2G,WAO7Bq7U,EAA0B,GAChC,IAAS5oQ,EAAM,EAAGvoL,EAAMm9G,EAAMjpI,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACtD,IAAMh+E,EAAO4S,EAAMorE,GACf/uE,EAAS10G,SAASylG,EAAKztF,OAAOq0a,EAAct8c,KAAK0zM,GAGvD,IAAM28E,EAAO5zM,GAAI,GAAW,IAAM,IAAK,IAAM,KAGvC29C,EAAqC,QAA5BwlI,EAAc,OAAX86M,QAAW,IAAXA,EAAAA,EAAeC,SAAU,IAAA/6M,EAAAA,EAAI7lK,EAO/C,OALEygX,GADEE,QAAkClqb,IAAnB0qb,EACO3Z,EAEA/xE,EAAWorF,UAFHxgV,EAAWl3D,EAAMgzB,GAKnDimU,GACKl4Y,EHyDuB,SAAC2L,GAsD7B,IArCA,IAAMvtB,EAAI0ma,GAASn5Y,EAAQvtB,GACrBa,EAAI6la,GAASn5Y,EAAQ1sB,GACrBnB,EAAQgna,GAASn5Y,EAAQ7tB,OACzBF,EAASkna,GAASn5Y,EAAQ/tB,QAC1Bo/H,EAAa8nS,GAASn5Y,EAAQqxG,YAC9BjvH,EAAc+2Z,GAASn5Y,EAAQ5d,aAC/BijH,EAAU8zS,GAASn5Y,EAAQqlG,SAE3BmiV,EAAQ/0c,EAAI2P,EAAc,EAAIijH,EAC9BoiV,EAAQn0c,EAAI8O,EAAc,EAAIijH,EAC9BqiV,EAAYv1c,EAAsC,GAA7BiQ,EAAc,EAAIijH,GACvCsiV,EAAa11c,EAAuC,GAA7BmQ,EAAc,EAAIijH,GAEzCuiV,EAAe,CACnB52Z,GAAOw2Z,EAAOC,GACdx2Z,GAAOu2Z,EAAOC,EAAQE,GACtB12Z,GAAOu2Z,EAAQE,EAAWD,EAAQE,GAClC12Z,GAAOu2Z,EAAQE,EAAWD,GAC1Bp2Z,KACAS,KACAD,MAGIuV,EAAau+Y,GAAc,CAC/Blzc,EAACA,EACDa,EAACA,EACDnB,MAAKA,EACLF,OAAMA,EACNmQ,YAAa4d,EAAQ5d,YACrBI,MAAOwd,EAAQxd,MACfP,YAAa+d,EAAQ/d,YACrBoS,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGXwO,EAA4B,GACzB7oQ,EAAM,EAAGvoL,EAAMyE,EAAQ0sb,cAAcj9c,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACtE,IAAMh+E,EAAO9lG,EAAQsnb,UAAUtnb,EAAQ0sb,cAAc5oQ,IACrD6oQ,EAAWv8c,KAAIV,MAAfi9c,EACKhH,GAAc,CACflzc,EAAGqzH,EAAKrzH,EAAI4yH,EACZ/xH,EAAGwyH,EAAKxyH,GAAK+9H,EAAavL,EAAK7zH,QAAU,EACzCE,MAAOA,EAAQiQ,EACfnQ,OAAQ6zH,EAAK7zH,QAAUo/H,EAAavL,EAAK7zH,QAAU,EACnDmQ,YAAa,EACbI,MAAOwd,EAAQ4sb,cACf3qc,iBAAa2e,EACbvM,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,MAKrB,IAAMzlU,EAAQ2uU,GAAcrnb,EAAQsnb,UAAW,CAC7C9kc,MAAOwd,EAAQwqG,UACfl3D,KAAMtzC,EAAQszC,KACd3hE,KAAMquB,EAAQsmE,SACdjyE,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,KAGX0J,EAAat7C,GAAA,CACjBj4W,GAAmB,MACnB0rZ,MACGtnU,EAAK,CACRunU,KACAzrZ,OAGF,OAAA+3W,GAAA,CACEyzC,MACG54Y,EACAulZ,EACA/E,EACAC,EAAa,CAChB5H,MAEJ,CGzJO4M,CAAe,CAChBp6c,EAAG,EAAI2P,EAAc,EACrB9O,EAAG,EAAI8O,EAAc,EACrBjQ,MAAOA,EAAQiQ,EACfnQ,OAAQA,EAASmQ,EACjBA,YAAwB,OAAXA,QAAW,IAAXA,EAAAA,EAAe,EAC5BH,YAAWA,EACXuoH,UAASA,EACTl3D,KAAMA,EAAKt1D,KACXsoF,SAAQA,EACR9jF,MAAOyoc,EACP3D,UAAW5uU,EACXrH,WAAUA,EACVu7U,cAAensL,EACfisL,cAAaA,EACbrnV,QA/CY,IAkDlB,WChpBA,WA+BE,SAAAynV,EACEn6c,EACA2C,EACAy3c,GANM,KAAAC,iBAAkB,EAQxBr4C,GAAShia,EAAK,MAAO,CAAC,CAACmsa,GAAQ,YAC/BnK,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBACpCt4C,GAASo4C,EAAU,WAAY,CAAC,CAACxlB,GAAiB,qBAElDp4b,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,EACXnG,KAAKgD,MAAQ46c,EAAS56c,MACtBhD,KAAK8C,OAAS86c,EAAS96c,OAEvB9C,KAAK49c,SAAWA,CAClB,CAiDF,OA/BED,EAAAj+c,UAAAoX,MAAA,SAAMyiI,GAEJ,OADAisR,GAASjsR,EAAQ,SAAU,CAAC,WACrB,CAAEv2I,MAAOhD,KAAKgD,MAAQu2I,EAAQz2I,OAAQ9C,KAAK8C,OAASy2I,EAC7D,EASAokU,EAAAj+c,UAAA8C,KAAA,WACE,OAAOxC,KAAK8W,MAAM,EACpB,EAWM6mc,EAAAj+c,UAAAq+c,MAAN,8GACO/9c,KAAK69c,gBAAN,MACF,GAAM79c,KAAK49c,SAASzhC,iBAAiBn8a,KAAKmG,IAAI2jE,QAAS9pE,KAAKwD,aAA5D2xP,EAAA2N,OACA9iQ,KAAK69c,iBAAkB,qCA/EpBF,EAAA1zC,GAAK,SAACzma,EAAa2C,EAAkBy3c,GAC1C,WAAID,EAAgBn6c,EAAK2C,EAAKy3c,EAA9B,EAiFJD,EA/FA,YCOA,WA4BE,SAAAK,EAAoBx6c,EAAa2C,EAAkBy3c,GAH3C,KAAAx0Y,UAAW,EAIjBo8V,GAAShia,EAAK,MAAO,CAAC,CAACmsa,GAAQ,YAC/BnK,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBACpCt4C,GAASo4C,EAAU,WAAY,CAC7B,CAACx/B,GAAoB,sBACrB,CAAC/C,GAAsB,0BAGzBr7a,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,EACXnG,KAAK6O,KAAO+uc,EAAStwV,SAErBttH,KAAK49c,SAAWA,CAClB,CAiGF,OArFEI,EAAAt+c,UAAA4iO,WAAA,SAAWp5L,GAGT,OAFAs8X,GAASt8X,EAAM,OAAQ,CAAC,WACxBlpC,KAAKopE,UAAW,EACTppE,KAAK49c,SAASt7O,WAAWp5L,EAClC,EAaA80a,EAAAt+c,UAAAg8a,kBAAA,SAAkBxyY,EAAc1mC,GAG9B,OAFAgja,GAASt8X,EAAM,OAAQ,CAAC,WACxBs8X,GAAShja,EAAM,OAAQ,CAAC,WACjBxC,KAAK49c,SAASliC,kBAAkBxyY,EAAM1mC,EAC/C,EAeAw7c,EAAAt+c,UAAA06c,aAAA,SAAa53c,EAAcquB,SAGzB,OAFA20Y,GAAShja,EAAM,OAAQ,CAAC,WACxBija,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAASirZ,UAAW,oBAAqB,CAAC,YACrD97a,KAAK49c,SAAS/hC,mBAAmBr5a,EAAM,CAC5Cs5a,UAA6B,QAApB3mL,EAAS,OAAPtkO,QAAO,IAAPA,OAAO,EAAPA,EAASirZ,iBAAS,IAAA3mL,GAAAA,GAEjC,EAUA6oN,EAAAt+c,UAAAu+c,aAAA,SAAan7c,GAEX,OADA0ia,GAAS1ia,EAAQ,SAAU,CAAC,WACrB9C,KAAK49c,SAAS1hC,mBAAmBp5a,EAC1C,EAMAk7c,EAAAt+c,UAAAw+c,gBAAA,WACE,OAAIl+c,KAAK49c,oBAAoBviC,GACpBr7a,KAAK49c,SAASpma,SAAS2sX,oBAEvBnka,KAAK49c,SAASz5Y,KAAKq6W,YAE9B,EAWMw/B,EAAAt+c,UAAAq+c,MAAN,8GAEM/9c,KAAKopE,SACP,GAAMppE,KAAK49c,SAASzhC,iBAAiBn8a,KAAKmG,IAAI2jE,QAAS9pE,KAAKwD,MAD1D,aACF2xP,EAAA2N,OACA9iQ,KAAKopE,UAAW,qCA1Hb40Y,EAAA/zC,GAAK,SAACzma,EAAa2C,EAAkBy3c,GAC1C,WAAII,EAAQx6c,EAAK2C,EAAKy3c,EAAtB,EA4HJI,EA1IA,GCLA,IAAAG,GAAA,WA8BE,SAAAA,EAAoB36c,EAAa2C,EAAkBy3c,GACjDp4C,GAAShia,EAAK,MAAO,CAAC,CAACmsa,GAAQ,YAC/BnK,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBACpCt4C,GAASo4C,EAAU,WAAY,CAC7B,CAACn6B,GAAc,gBACf,CAACkP,GAAa,iBAGhB3yb,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,EACXnG,KAAKgD,MAAQ46c,EAAS56c,MACtBhD,KAAK8C,OAAS86c,EAAS96c,OAEvB9C,KAAK49c,SAAWA,CAClB,CAwFF,OAtEEO,EAAAz+c,UAAAoX,MAAA,SAAMyiI,GAEJ,OADAisR,GAASjsR,EAAQ,SAAU,CAAC,WACrB,CAAEv2I,MAAOhD,KAAKgD,MAAQu2I,EAAQz2I,OAAQ9C,KAAK8C,OAASy2I,EAC7D,EAoBA4kU,EAAAz+c,UAAA0+c,WAAA,SAAWp7c,EAAeF,GACxB0ia,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAE5B,IAAMu7c,EAAgBr7c,EAAQhD,KAAKgD,MAC7Bs7c,EAAiBx7c,EAAS9C,KAAK8C,OAC/BgU,EAAQnE,KAAKC,IAAIyrc,EAAeC,GAEtC,OAAOt+c,KAAK8W,MAAMA,EACpB,EASAqnc,EAAAz+c,UAAA8C,KAAA,WACE,OAAOxC,KAAK8W,MAAM,EACpB,EAWMqnc,EAAAz+c,UAAAq+c,MAAN,iHACE,OAAK/9c,KAAK49c,UAIL59c,KAAKu+c,YACAp4c,GAAFgvP,EAAen1P,MAAVmG,IAAE3C,EAAG2xP,EAAA3xP,IAChBxD,KAAKu+c,UAAYv+c,KAAK49c,SAASzhC,iBAAiBh2a,EAAI2jE,QAAStmE,IAE/D,GAAMxD,KAAKu+c,YARS,kBAQpB19M,EAAAiC,OAKA9iQ,KAAK49c,cAAWnsb,cAtHX0sb,EAAAl0C,GAAK,SAACzma,EAAa2C,EAAkBy3c,GAC1C,WAAIO,EAAS36c,EAAK2C,EAAKy3c,EAAvB,EAuHJO,EApIA,eCVO,IAAKK,IAAZ,SAAYA,GACVA,EAAAA,EAAA,eACAA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,gBACD,CAJD,CAAYA,KAAAA,GAAc,KC2CnB,IAAMC,GAA+B,SAC1C5tb,GAEA40Y,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAASvtB,EAAG,YAAa,CAAC,WAC5Cmia,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS1sB,EAAG,YAAa,CAAC,WAC5Csha,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS7tB,MAAO,gBAAiB,CAAC,WACpDyia,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS/tB,OAAQ,iBAAkB,CAAC,WACtD2ia,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAASwqG,UAAW,oBAAqB,CACzD,CAAC99H,OAAQ,WAEXkoa,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS3O,gBAAiB,0BAA2B,CACrE,CAAC3kB,OAAQ,WAEXkoa,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS/d,YAAa,sBAAuB,CAC7D,CAACvV,OAAQ,WAEXkoa,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,YAAa,sBAAuB,CAAC,WAChEwyZ,GAAyB,OAAP50Y,QAAO,IAAPA,OAAO,EAAPA,EAAS3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,aACjE,EAsBAmhd,GAAA,WAUE,SAAAA,EACE7C,EACAr4c,EACA2C,GAEAq/Z,GAASq2C,EAAW,YAAa,CAAC,CAACna,GAAiB,qBACpDl8B,GAAShia,EAAK,MAAO,CAAC,CAACmsa,GAAQ,YAC/BnK,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBAEpC99c,KAAK67c,UAAYA,EACjB77c,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,CACb,CA+ZF,OAzYEu4c,EAAAh/c,UAAA0jR,QAAA,iBACE,OAA6C,QAA7CjuB,EAAOn1P,KAAK67c,UAAUne,+BAAuB,IAAAvoM,EAAAA,EAAI,EACnD,EAaAupN,EAAAh/c,UAAA86W,WAAA,WACE,OAAOx6W,KAAK67c,UAAUtd,QAAQ2E,GAAeyb,SAC/C,EAaAD,EAAAh/c,UAAAk/c,eAAA,WACE5+c,KAAK67c,UAAUld,UAAUuE,GAAeyb,UAAU,EACpD,EAUAD,EAAAh/c,UAAAm/c,gBAAA,WACE7+c,KAAK67c,UAAUld,UAAUuE,GAAeyb,UAAU,EACpD,EAYAD,EAAAh/c,UAAAkuB,WAAA,WACE,OAAO5tB,KAAK67c,UAAUtd,QAAQ2E,GAAe4b,SAC/C,EAUAJ,EAAAh/c,UAAAq/c,eAAA,WACE/+c,KAAK67c,UAAUld,UAAUuE,GAAe4b,UAAU,EACpD,EAUAJ,EAAAh/c,UAAAs/c,gBAAA,WACEh/c,KAAK67c,UAAUld,UAAUuE,GAAe4b,UAAU,EACpD,EAaAJ,EAAAh/c,UAAAu/c,WAAA,WACE,OAAQj/c,KAAK67c,UAAUtd,QAAQ2E,GAAegc,SAChD,EAUAR,EAAAh/c,UAAAy/c,gBAAA,WACEn/c,KAAK67c,UAAUld,UAAUuE,GAAegc,UAAU,EACpD,EAUAR,EAAAh/c,UAAA0/c,iBAAA,WACEp/c,KAAK67c,UAAUld,UAAUuE,GAAegc,UAAU,EACpD,EAGAR,EAAAh/c,UAAA2/c,uBAAA,WACE,MAAM,IAAI94C,GACRvma,KAAKC,YAAY4O,KACjB,yBAEJ,EAGA6vc,EAAAh/c,UAAA4/c,yBAAA,SAAyBC,GACvB,MAAM,IAAIh5C,GACRvma,KAAKC,YAAY4O,KACjB,2BAEJ,EAEU6vc,EAAAh/c,UAAA8/c,YAAV,WACEx/c,KAAKmG,IAAIg3V,UAAUsiH,iBAAiBz/c,KAAKwD,IAC3C,EAEUk7c,EAAAh/c,UAAAggd,YAAV,WACE1/c,KAAKmG,IAAIg3V,UAAUwiH,iBAAiB3/c,KAAKwD,IAC3C,EAEUk7c,EAAAh/c,UAAAkgd,QAAV,WACE,OAAO5/c,KAAKmG,IAAIg3V,UAAU0iH,aAAa7/c,KAAKwD,IAC9C,EAEUk7c,EAAAh/c,UAAAogd,aAAV,SAAuBjvb,SAcfwqG,EAAYxqG,EAAQwqG,UACpBn5G,EAAkB2O,EAAQ3O,gBAC1BpP,EAAc+d,EAAQ/d,YACtBG,EAAc4d,EAAQ5d,YACtB8sc,EAAexQ,GAAU1+a,EAAQ3L,QACjC86b,EAAUnvb,EAAQmvb,QAClB18c,EAAIutB,EAAQvtB,EACZa,EAAI0sB,EAAQ1sB,EACZnB,EAAQ6tB,EAAQ7tB,MAAQiQ,EACxBnQ,EAAS+tB,EAAQ/tB,OAASmQ,EAC1B8H,EAASkuM,QAAQp4L,EAAQ9V,QACzBklc,EAAUpvb,EAAQze,KAExByzZ,GAAek6C,EAAc,eAAgB,IAG7C,IAAMvd,EAASxB,GAAoBxjc,OAAOwC,KAAKmG,IAAI2jE,QAAS9pE,KAAKwD,KAG3D8O,EbtPqB,SAC7B6vC,EAMAlvC,EACAg8b,QADA,IAAAh8b,IAAAA,EAAA,QACA,IAAAg8b,IAAAA,EAAA,GAEQ,IAAA3rc,EAA8B6+C,EAAS7+C,EAApCa,EAA2Bg+C,EAASh+C,EAA1BT,EAAiBy+C,EAASn/C,MAAfC,EAAMk/C,EAASr/C,OAEzCnF,EAAI6xc,GAAeP,GACnB/qc,EAAI+O,EAAc,EAGxB,OAAU,IAANtV,EAAgB,CAAE2F,EAAGA,EAAIY,EAAGC,EAAGA,EAAID,EAAGlB,MAAOU,EAAGZ,OAAQG,GAC7C,KAANtF,EAAiB,CAAE2F,EAAGA,EAAIL,EAAIiB,EAAGC,EAAGA,EAAID,EAAGlB,MAAOC,EAAGH,OAAQY,GACvD,MAAN/F,EAAkB,CAAE2F,EAAGA,EAAII,EAAIQ,EAAGC,EAAGA,EAAIlB,EAAIiB,EAAGlB,MAAOU,EAAGZ,OAAQG,GAC5D,MAANtF,EAAkB,CAAE2F,EAAGA,EAAIY,EAAGC,EAAGA,EAAIT,EAAIQ,EAAGlB,MAAOC,EAAGH,OAAQY,GAC3D,CAAEJ,EAAGA,EAAIY,EAAGC,EAAGA,EAAID,EAAGlB,MAAOU,EAAGZ,OAAQG,EACtD,CaiOiBi9c,CACX,CAAE58c,EAACA,EAAEa,EAACA,EAAEnB,MAAKA,EAAEF,OAAMA,GACrBmQ,EACA8sc,GAEFvd,EAAOvD,aAAa3sb,GAEhB2tc,GAASzd,EAAOrB,KAAK8e,GAEzB,IAAMl1B,EAAKyX,EAAOnB,uCACdn/a,GACF6oa,EAAG8V,mBAAmBkT,GAAkB7xb,IAE1C6oa,EAAG9wT,YAAY8lV,GACXC,GAASj1B,EAAG+V,YAAY,CAAEf,OAAQigB,IAClCltc,GAAai4a,EAAG6V,eAAemT,GAAkBjhc,IAErD,IAAM0ub,EAAKgB,EAAOjB,yBAQlB,QAPoB9va,IAAhBxe,GAA2Buub,EAAG3pJ,SAAS5kS,GAE3Cuvb,EAAO7D,UAAUgQ,GAAgBwR,OAAO,GACxC3d,EAAO7D,UAAUgQ,GAAgByR,OAAQrlc,GACzCynb,EAAO7D,UAAUgQ,GAAgB0R,WAAW,GAGxChlV,EAAW,CACb,IACMilV,GAD0C,QAAxCnrN,EAAGn1P,KAAK67c,UAAU9d,8BAAsB,IAAA5oM,EAAAA,EAAI,IACjC,KAAO49M,GAAgB13U,GAAWnvG,WACrDlsB,KAAK67c,UAAU/d,qBAAqBwiB,GAGtC,OAAO9d,CACT,EAEUkc,EAAAh/c,UAAA6gd,+BAAV,SACE/d,EACAr+X,EACAgxL,OAAE4qM,EAAM5qM,EAAA4qM,OAAEC,EAAQ7qM,EAAA6qM,SAAEC,EAAI9qM,EAAA8qM,KAExBjgc,KAAKwgd,wBAAwBhe,EAAQ,CACnCzC,OAAQ//b,KAAKygd,uBAAuBje,EAAQzC,EAAQ57X,GACpD67X,SAAUA,GAAYhgc,KAAKygd,uBAAuBje,EAAQxC,EAAU77X,GACpE87X,KAAMA,GAAQjgc,KAAKygd,uBAAuBje,EAAQvC,EAAM97X,IAE5D,EAEUu6Y,EAAAh/c,UAAAghd,4BAAV,SACEle,EACA4C,EACAjwM,OACE4qM,EAAM5qM,EAAA4qM,OACNC,EAAQ7qM,EAAA6qM,SACRC,EAAI9qM,EAAA8qM,KAGNjgc,KAAKwgd,wBAAwBhe,EAAQ,CACnCzC,OAAQ//b,KAAK2gd,qBAAqBne,EAAQzC,EAAQqF,GAClDpF,SACEA,GAAYhgc,KAAK2gd,qBAAqBne,EAAQxC,EAAUoF,GAC1DnF,KAAMA,GAAQjgc,KAAK2gd,qBAAqBne,EAAQvC,EAAMmF,IAE1D,EAEUsZ,EAAAh/c,UAAA8gd,wBAAV,SACEhe,EACArtM,OAAE4qM,EAAM5qM,EAAA4qM,OAAEC,EAAQ7qM,EAAA6qM,SAAEC,EAAI9qM,EAAA8qM,KAExBuC,EAAO/C,oBAAoBM,GAEvBC,EACFwC,EAAO9C,sBAAsBM,GAE7BwC,EAAO5C,2BAGLK,EACFuC,EAAO7C,kBAAkBM,GAEzBuC,EAAO3C,sBAEX,EAiBQ6e,EAAAh/c,UAAA+gd,uBAAR,SACEje,EACA9ta,EACAyvC,SAEQ2F,EAAY9pE,KAAK67c,UAAUpgb,KAAIquC,QACjC+2L,EAAoB2hM,EAAOxD,eAAzBh8b,EAAK69P,EAAA79P,MAAEF,EAAM+9P,EAAA/9P,OASfqqa,EAAYhpW,GAAQ,CAAE2+V,MAAI3tK,EAAA,GAAIA,EAAChxL,EAAKt1D,MAAOs1D,EAAK3gE,IAAG2xP,IACnD//I,EAAStrC,EAAQ2nW,YAAY/8Y,EAAY,CAC7Cy4Y,UAASA,EACTuE,KAAM5nW,EAAQx/C,IAAI,CAAC,EAAG,EAAGtnB,EAAOF,IAChC6ua,OAAQ7nW,EAAQx/C,IAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,MAItC,OAFkBw/C,EAAQq6H,SAAS/uF,EAGrC,EAWUspW,EAAAh/c,UAAAkhd,4BAAV,SACEpe,EACAxoX,EACA+gY,WAOQjxY,EAAY9pE,KAAK67c,UAAUpgb,KAAIquC,QAEjC3nB,EAAYqgZ,EAAOxD,eACnB9Y,EAAKsc,EAAOpB,+BACZI,EAAKgB,EAAOlB,iBAEZrub,EAA0B,QAAf4tP,EAAK,OAAF2gM,QAAE,IAAFA,OAAE,EAAFA,EAAI73C,kBAAQ,IAAA9oJ,EAAAA,EAAM,EAChCtnP,EAAWi2b,GAAiB,OAAFtpB,QAAE,IAAFA,OAAE,EAAFA,EAAIsa,eAE9Bt7a,EAASkyb,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAQA,KAE/Csnc,EAAMnR,GAAsBvtZ,EAAW5oC,GACvCunc,EAAY9mY,EAAMokY,WACtByC,EAAI79c,MAAsB,EAAdiQ,EACZ4tc,EAAI/9c,OAAuB,EAAdmQ,GAIT4d,EAAU,CACdvtB,EAAG2P,EACH9O,EAAG8O,EACHjQ,MAAO89c,EAAU99c,MACjBF,OAAQg+c,EAAUh+c,OAElBoiB,OAAQ8pb,GAAQ,GAChBsH,MAAOtH,GAAQ,GACfuH,MAAOvH,GAAQ,IAGb+L,IAAcyD,GAAevD,QAC/Bpqb,EAAQvtB,IAAMu9c,EAAI79c,MAAsB,EAAdiQ,GAAmB,EAAI6tc,EAAU99c,MAAQ,EACnE6tB,EAAQ1sB,IAAM08c,EAAI/9c,OAAuB,EAAdmQ,GAAmB,EAAI6tc,EAAUh+c,OAAS,GAC5Di4c,IAAcyD,GAAetvT,QACtCr+H,EAAQvtB,EAAIu9c,EAAI79c,MAAQiQ,EAAc6tc,EAAU99c,MAChD6tB,EAAQ1sB,EAAI08c,EAAI/9c,OAASmQ,EAAc6tc,EAAUh+c,QAGnD,IAAMi+c,EAAY/gd,KAAKmG,IAAI2jE,QAAQilW,gBAAgB,QAAS,IACtDr6Y,EAAU0oY,GAAOl4Y,EAAWg1D,GAAU6mY,EAAWlwb,IAGjDs8Y,EAAY,CAAEC,SAAOj4K,EAAA,GAAIA,EAAC4rN,GAAY/mY,EAAMx2E,IAAG2xP,IAC/C//I,EAAStrC,EAAQ2nW,YAAY/8Y,EAAY,CAC7Cy4Y,UAASA,EACTuE,KAAM5nW,EAAQx/C,IAAI,CAAC,EAAG,EAAG63B,EAAUn/C,MAAOm/C,EAAUr/C,SACpD6ua,OAAQ7nW,EAAQx/C,IAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,MAGtC,OAAOw/C,EAAQq6H,SAAS/uF,EAC1B,EAEQspW,EAAAh/c,UAAAihd,qBAAR,SACEne,EACA9ta,EACA0wa,GAEQ,IAAAt7X,EAAY9pE,KAAK67c,UAAUpgb,KAAIquC,QAEjCk3Y,EAAchhd,KAAKygd,uBAAuBje,EAAQ9ta,EAAWnF,IAC7D0xb,EAAejhd,KAAKygd,uBAAuBje,EAAQ9ta,EAAWlF,KAE9D0xb,EAAiBp3Y,EAAQx/C,IAAI,CAAC,GAIpC,OAHA42b,EAAe1xc,IAAI41b,EAAS4b,GAC5BE,EAAe1xc,IAAI68Z,GAAQpC,GAAG,OAAQg3C,GAE/BC,CACT,EACFxC,CAAA,CArbA,eCnDA,IAAAyC,GAAA,SAAAn5L,GAkBE,SAAAm5L,EACEC,EACA59c,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAMwhd,EAAc59c,EAAK2C,IAAI,YAE7Bq/Z,GAAS47C,EAAc,eAAgB,CACrC,CAACne,GAAiB,qBAGpBx3W,EAAKowX,UAAYuF,GACnB,CAuMF,OArOyCzkD,GAAAwkD,EAAAn5L,GAmDvCm5L,EAAAzhd,UAAAysC,MAAA,iBACQi5Z,EAAqC,QAA9BjwM,EAAGn1P,KAAK67c,UAAUpa,oBAAY,IAAAtsM,EAAAA,EAAIk3K,GAAQpC,GAAG,OAC1Djqa,KAAKw/c,cACLx/c,KAAK67c,UAAU1yY,SAASi8X,EAC1B,EAkBA+b,EAAAzhd,UAAA2hd,QAAA,WACErhd,KAAKw/c,cACLx/c,KAAK67c,UAAU1yY,SAASkjW,GAAQpC,GAAG,OACrC,EAWAk3C,EAAAzhd,UAAA4hd,UAAA,WACE,IAAMlc,EAAUplc,KAAK67c,UAAUpa,aAC/B,QAAS2D,GAAWA,IAAYplc,KAAK67c,UAAU/yY,UACjD,EA2BAq4Y,EAAAzhd,UAAA6hd,UAAA,SAAUnvc,EAAeye,mBACvB20Y,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAClC/C,GAA6B5tb,GAExBA,IAASA,EAAU,CAAC,GAEnB,cAAeA,IAAUA,EAAQwqG,UAAY39C,GAAI,EAAG,EAAG,IACvD,oBAAqB7sD,IAAUA,EAAQ3O,gBAAkBw7D,GAAI,EAAG,EAAG,IACnE,gBAAiB7sD,IAAUA,EAAQ/d,YAAc4qE,GAAI,EAAG,EAAG,IAC3D,gBAAiB7sD,IAAUA,EAAQ5d,YAAc,GAGvD,IAAMuvb,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAI,EAChBhxP,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI,EAChB79P,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI,GACxBh+P,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAI,GAC1ByvG,UAAWxqG,EAAQwqG,UACnBn5G,gBAAiB2O,EAAQ3O,gBACzBpP,YAAa+d,EAAQ/d,YACrBG,YAAgC,QAArBqB,EAAEuc,EAAQ5d,mBAAW,IAAAqB,EAAAA,EAAI,EACpC4Q,OAAsB,QAAhB27R,EAAEhwR,EAAQ3L,cAAM,IAAA27R,EAAAA,EAAImuJ,GAAQ,GAClCj0b,OAAQ8V,EAAQ9V,OAChB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAGnDz7B,KAAK67c,UAAU7Z,UAAUyf,GAGzBjf,EAAOpD,mBAAmB/yB,GAAQpC,GAAG,QACrCjqa,KAAK0hd,uBAAuBlf,EAAQn2B,GAAQpC,GAAG,QAG/C73Z,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWAN,EAAAzhd,UAAA2/c,uBAAA,WAEE,UADMtd,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjB9xK,EAAQ2/Z,EAAOtD,qBACfa,EAAgC,QAA1B5qM,EAAGqtM,EAAO1C,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,OAExC,KAAMA,aAAkBrxB,IAAU,OAAO,EACzC,GAAI7rY,IAAUk9Z,EAAOhwb,IAAI8yB,GAAQ,OAAO,EAG1C,OAAO,CACT,EAUAs+a,EAAAzhd,UAAA4/c,yBAAA,WACEt/c,KAAK2hd,mBACP,EAmBAR,EAAAzhd,UAAAiid,kBAAA,SAAkBpzS,SAChBk3P,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjBywP,EAA6B,QAAtBjwM,EAAGqtM,EAAOf,oBAAY,IAAAtsM,EAAAA,EAAIk3K,GAAQpC,GAAG,OAC7Cm7B,GACLplc,KAAK0hd,uBAAuBlf,EAAQ4C,EAAS72R,GAE/CvuK,KAAK0/c,aACP,EAEQyB,EAAAzhd,UAAAgid,uBAAR,SACElf,EACA4C,EACA72R,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAYmtS,IACoB17c,KAAMwic,IACzDxic,KAAK0gd,4BAA4Ble,EAAQ4C,EAAS9F,EACpD,EAxNO6hB,EAAAl3C,GAAK,SAACm3C,EAA+B59c,EAAa2C,GACvD,WAAIg7c,EAAYC,EAAc59c,EAAK2C,EAAnC,EAwNJg7c,EArOA,CAAyCzC,gBCMzC,IAAAkD,GAAA,SAAA55L,GAkBE,SAAA45L,EACEC,EACAr+c,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAMiid,EAAcr+c,EAAK2C,IAAI,YAE7Bq/Z,GAASq8C,EAAc,eAAgB,CACrC,CAAC3d,GAAiB,qBAGpBz4W,EAAKowX,UAAYgG,GACnB,CAukBF,OArmByCllD,GAAAilD,EAAA55L,GA2CvC45L,EAAAlid,UAAAokc,WAAA,WAIE,IAHA,IAAMge,EAAa9hd,KAAK67c,UAAU/X,aAE5Bjza,EAAU,IAAIpxB,MAAcqid,EAAWxhd,QACpCq0M,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAClD,IAAAwgD,EAAqB2sN,EAAWntQ,GAA9B//L,EAAOugP,EAAAvgP,QAAE9Q,EAAKqxP,EAAArxP,MACtB+sB,EAAQ8jL,IAAe,OAAP//L,QAAO,IAAPA,EAAAA,EAAW9Q,GAAOgpa,aAGpC,OAAOj8Y,CACT,EAmBA+wb,EAAAlid,UAAA09c,YAAA,WAIE,IAHA,IAAMthZ,EAAS97D,KAAK67c,UAAU9X,YAExBn+T,EAAW,IAAInmI,MAAcq8D,EAAOx7D,QACjCq0M,EAAM,EAAGvoL,EAAM0vC,EAAOx7D,OAAQq0M,EAAMvoL,EAAKuoL,IAChD/uE,EAAS+uE,GAAO74I,EAAO64I,GAAKm4N,aAG9B,OAAOlnS,CACT,EAeAg8U,EAAAlid,UAAAskc,WAAA,SAAWnza,GACT20Y,GAAS30Y,EAAS,UAAW,CAACpxB,QAG9B,IADA,IAAMsid,EAAgB,IAAItid,MAA+BoxB,EAAQvwB,QACxDq0M,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IACjDotQ,EAAcptQ,GAAO,CAAE7wM,MAAOg3a,GAAaK,SAAStqZ,EAAQ8jL,KAE9D30M,KAAK67c,UAAU7X,WAAW+d,EAC5B,EAcAH,EAAAlid,UAAAsid,WAAA,SAAWnxb,GACT20Y,GAAS30Y,EAAS,UAAW,CAAC,SAAUpxB,QAUxC,IARA,IAAMwid,EAAaxid,MAAM8rB,QAAQsF,GAAWA,EAAU,CAACA,GAEjDqxb,EAGAlid,KAAK67c,UAAU/X,aAEf9ya,EAAa,IAAIvxB,MAA+Bwid,EAAW3hd,QACxDq0M,EAAM,EAAGvoL,EAAM61b,EAAW3hd,OAAQq0M,EAAMvoL,EAAKuoL,IACpD3jL,EAAW2jL,GAAO,CAAE7wM,MAAOg3a,GAAaK,SAAS8mC,EAAWttQ,KAG9D30M,KAAK67c,UAAU7X,WAAWke,EAAgBx/c,OAAOsuB,GACnD,EA6CA4wb,EAAAlid,UAAAq0E,OAAA,SAAOljD,EAA4BmgM,QAAA,IAAAA,IAAAA,GAAA,GACjCw0M,GAAS30Y,EAAS,UAAW,CAAC,SAAUpxB,QACxC+la,GAASx0M,EAAO,QAAS,CAAC,YAE1B,IAAMixP,EAAaxid,MAAM8rB,QAAQsF,GAAWA,EAAU,CAACA,GAEjDsxb,EAAenid,KAAK8jc,aACFme,EAAW9qc,MACjC,SAACwuH,GAAW,OAACw8U,EAAajxb,SAASy0G,EAAvB,KAEO3lI,KAAKw0E,gBAE1Bx0E,KAAKw/c,eAEDyC,EAAW3hd,OAAS,GAA4B,IAAtB2hd,EAAW3hd,QAAgB0wN,IACvDhxN,KAAKoid,oBAIP,IADA,IAAMtmZ,EAAS,IAAIr8D,MAAoBwid,EAAW3hd,QACzCq0M,EAAM,EAAGvoL,EAAM61b,EAAW3hd,OAAQq0M,EAAMvoL,EAAKuoL,IACpD74I,EAAO64I,GAAOmmO,GAAaK,SAAS8mC,EAAWttQ,IAGjD,GAAIqc,EAAO,CACT,IAAMqxP,EAAiBrid,KAAK67c,UAAU9X,YACtC/jc,KAAK67c,UAAUrY,UAAU6e,EAAe3/c,OAAOo5D,SAE/C97D,KAAK67c,UAAUrY,UAAU1nY,EAE7B,EAcA8lZ,EAAAlid,UAAAskB,MAAA,WACEhkB,KAAKw/c,cACLx/c,KAAK67c,UAAUrY,UAAU,GAC3B,EAsBAoe,EAAAlid,UAAAs+b,YAAA,SAAY7mW,GACV4uU,GAAe5uU,EAAU,YACzBn3F,KAAK67c,UAAU7d,YAAY7mW,GAC3Bn3F,KAAKw/c,aACP,EAaAoC,EAAAlid,UAAA4id,WAAA,WACE,OAAOtid,KAAK67c,UAAUtd,QAAQ8E,GAAgBK,KAChD,EAcAke,EAAAlid,UAAA80E,cAAA,WACEx0E,KAAK67c,UAAUld,UAAU0E,GAAgBK,MAAM,EACjD,EAaAke,EAAAlid,UAAA60E,eAAA,WACEv0E,KAAK67c,UAAUld,UAAU0E,GAAgBK,MAAM,EACjD,EAaAke,EAAAlid,UAAA49c,SAAA,WACE,OAAOt9c,KAAK67c,UAAUtd,QAAQ8E,GAAgBkf,KAChD,EAWAX,EAAAlid,UAAA8id,cAAA,WACExid,KAAK67c,UAAUld,UAAU0E,GAAgBkf,MAAM,EACjD,EAWAX,EAAAlid,UAAA+id,eAAA,WACEzid,KAAK67c,UAAUld,UAAU0E,GAAgBkf,MAAM,EACjD,EAYAX,EAAAlid,UAAAgjd,cAAA,WACE,OAAO1id,KAAK67c,UAAUtd,QAAQ8E,GAAgBO,YAChD,EAUAge,EAAAlid,UAAA0id,kBAAA,WACEpid,KAAK67c,UAAUld,UAAU0E,GAAgBO,aAAa,EACxD,EAUAge,EAAAlid,UAAAijd,mBAAA,WACE3id,KAAK67c,UAAUld,UAAU0E,GAAgBO,aAAa,EACxD,EAcAge,EAAAlid,UAAAkjd,eAAA,WACE,OAAQ5id,KAAK67c,UAAUtd,QAAQ8E,GAAgBwf,gBACjD,EAUAjB,EAAAlid,UAAAojd,oBAAA,WACE9id,KAAK67c,UAAUld,UAAU0E,GAAgBwf,iBAAiB,EAC5D,EAUAjB,EAAAlid,UAAAqjd,qBAAA,WACE/id,KAAK67c,UAAUld,UAAU0E,GAAgBwf,iBAAiB,EAC5D,EAgBAjB,EAAAlid,UAAAsjd,gBAAA,WACE,OAAOhjd,KAAK67c,UAAUtd,QAAQ8E,GAAgB4f,kBAChD,EAWArB,EAAAlid,UAAAwjd,oBAAA,WACEljd,KAAK67c,UAAUld,UAAU0E,GAAgB4f,mBAAmB,EAC9D,EAWArB,EAAAlid,UAAAyjd,qBAAA,WACEnjd,KAAK67c,UAAUld,UAAU0E,GAAgB4f,mBAAmB,EAC9D,EA8BArB,EAAAlid,UAAA6hd,UAAA,SAAUnvc,EAAeye,qBACvB20Y,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAClC/C,GAA6B5tb,GAExBA,IAASA,EAAU,CAAC,GAEnB,cAAeA,IAAUA,EAAQwqG,UAAY39C,GAAI,EAAG,EAAG,IACvD,oBAAqB7sD,IAAUA,EAAQ3O,gBAAkBw7D,GAAI,EAAG,EAAG,IACnE,gBAAiB7sD,IAAUA,EAAQ/d,YAAc4qE,GAAI,EAAG,EAAG,IAC3D,gBAAiB7sD,IAAUA,EAAQ5d,YAAc,GAGvD,IAAMuvb,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAI,EAChBhxP,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI,EAChB79P,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI,IACxBh+P,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAI,GAC1ByvG,UAAWxqG,EAAQwqG,UACnBn5G,gBAAiB2O,EAAQ3O,gBACzBpP,YAAa+d,EAAQ/d,YACrBG,YAAgC,QAArBqB,EAAEuc,EAAQ5d,mBAAW,IAAAqB,EAAAA,EAAI,EACpC4Q,OAAsB,QAAhB27R,EAAEhwR,EAAQ3L,cAAM,IAAA27R,EAAAA,EAAImuJ,GAAQ,GAClCj0b,OAAQ8V,EAAQ9V,OAChB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAGnDz7B,KAAK67c,UAAU7Z,UAAUyf,GAGzB,IAAMt9Y,EAAmB,QAAf2tU,EAAGjhX,EAAQszC,YAAI,IAAA2tU,EAAAA,EAAI9xY,KAAKmG,IAAIg3V,UAAUimH,iBAChDpjd,KAAK0hd,uBAAuBlf,EAAQr+X,GAGpC/xD,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWAG,EAAAlid,UAAA2/c,uBAAA,iBACE,GAAIr/c,KAAK4/c,UAAW,OAAO,EAG3B,IADA,IAAM7d,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAIxD,MADyB,QAAvBwgD,EAFa4sM,EAAQptP,GAEdmrP,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,kBAAkB7wB,IACxB,OAAO,EAG9B,OAAO,CACT,EAYA0yC,EAAAlid,UAAA4/c,yBAAA,SAAyBn7Y,GACvBqhW,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCh+c,KAAK2hd,kBAAkBx9Y,EACzB,EAkBAy9Y,EAAAlid,UAAAiid,kBAAA,SACEx9Y,EACAoqG,GAEAi3P,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCv4C,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACvB30M,KAAK0hd,uBAAuBlf,EAAQr+X,EAAMoqG,GAE5CvuK,KAAK0/c,aACP,EASQkC,EAAAlid,UAAAgid,uBAAR,SACElf,EACAr+X,EACAoqG,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAY4uS,IACoBn9c,KAAMwic,EAAQr+X,IACjEnkE,KAAKugd,+BAA+B/d,EAAQr+X,EAAMm7X,EACpD,EAxlBOsiB,EAAA33C,GAAK,SAAC43C,EAA+Br+c,EAAa2C,GACvD,WAAIy7c,EAAYC,EAAcr+c,EAAK2C,EAAnC,EAwlBJy7c,EArmBA,CAAyClD,gBCIzC,IAAA2E,GAAA,SAAAr7L,GAmBE,SAAAq7L,EACEC,EACA9/c,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAM0jd,EAAa9/c,EAAK2C,IAAI,YAE5Bq/Z,GAAS89C,EAAa,cAAe,CAAC,CAAChe,GAAgB,oBAEvD75W,EAAKowX,UAAYyH,GACnB,CAmfF,OAhhB2C3mD,GAAA0mD,EAAAr7L,GA0CzCq7L,EAAA3jd,UAAAokc,WAAA,WAIE,IAHA,IAAMge,EAAa9hd,KAAK67c,UAAU/X,aAE5Bjza,EAAU,IAAIpxB,MAAcqid,EAAWxhd,QACpCq0M,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAClD,IAAAwgD,EAAqB2sN,EAAWntQ,GAA9B//L,EAAOugP,EAAAvgP,QAAE9Q,EAAKqxP,EAAArxP,MACtB+sB,EAAQ8jL,IAAe,OAAP//L,QAAO,IAAPA,EAAAA,EAAW9Q,GAAOgpa,aAGpC,OAAOj8Y,CACT,EAcAwyb,EAAA3jd,UAAA09c,YAAA,WAIE,IAHA,IAAMthZ,EAAS97D,KAAK67c,UAAU9X,YAExBn+T,EAAW,IAAInmI,MAAcq8D,EAAOx7D,QACjCq0M,EAAM,EAAGvoL,EAAM0vC,EAAOx7D,OAAQq0M,EAAMvoL,EAAKuoL,IAChD/uE,EAAS+uE,GAAO74I,EAAO64I,GAAKm4N,aAG9B,OAAOlnS,CACT,EAiCAy9U,EAAA3jd,UAAAskc,WAAA,SAAWnza,GACT20Y,GAAS30Y,EAAS,UAAW,CAACpxB,QAE9BO,KAAKw/c,cAEL,IADA,IAAMuC,EAAgB,IAAItid,MAA+BoxB,EAAQvwB,QACxDq0M,EAAM,EAAGvoL,EAAMyE,EAAQvwB,OAAQq0M,EAAMvoL,EAAKuoL,IACjDotQ,EAAcptQ,GAAO,CAAE7wM,MAAOg3a,GAAaK,SAAStqZ,EAAQ8jL,KAE9D30M,KAAK67c,UAAU7X,WAAW+d,EAC5B,EAgBAsB,EAAA3jd,UAAAsid,WAAA,SAAWnxb,GACT20Y,GAAS30Y,EAAS,UAAW,CAAC,SAAUpxB,QAExCO,KAAKw/c,cAUL,IARA,IAAMyC,EAAaxid,MAAM8rB,QAAQsF,GAAWA,EAAU,CAACA,GAEjDqxb,EAGAlid,KAAK67c,UAAU/X,aAEf9ya,EAAa,IAAIvxB,MAA+Bwid,EAAW3hd,QACxDq0M,EAAM,EAAGvoL,EAAM61b,EAAW3hd,OAAQq0M,EAAMvoL,EAAKuoL,IACpD3jL,EAAW2jL,GAAO,CAAE7wM,MAAOg3a,GAAaK,SAAS8mC,EAAWttQ,KAG9D30M,KAAK67c,UAAU7X,WAAWke,EAAgBx/c,OAAOsuB,GACnD,EAmBAqyb,EAAA3jd,UAAAq0E,OAAA,SAAOljD,EAA4BmgM,QAAA,IAAAA,IAAAA,GAAA,GACjCw0M,GAAS30Y,EAAS,UAAW,CAAC,SAAUpxB,QACxC+la,GAASx0M,EAAO,QAAS,CAAC,YAE1B,IAAMixP,EAAaxid,MAAM8rB,QAAQsF,GAAWA,EAAU,CAACA,IvG5J7B,SAC5BirC,EACAgpW,EACAC,GAEKtla,MAAM8rB,QAAQw5Y,KACjBA,EAAgBC,GAAaD,IAE/B,IAAK,IAAIpwN,EAAM,EAAGvoL,EAAM0vC,EAAOx7D,OAAQq0M,EAAMvoL,EAAKuoL,IAChDkwN,GAAc/oW,EAAO64I,GAAMmwN,EAAWC,EAE1C,CuGoJIw+C,CAAetB,EAAY,SADNjid,KAAK8jc,cAG1B9jc,KAAKw/c,eAEDyC,EAAW3hd,OAAS,GAA4B,IAAtB2hd,EAAW3hd,QAAgB0wN,IACvDhxN,KAAKoid,oBAIP,IADA,IAAMtmZ,EAAS,IAAIr8D,MAAoBwid,EAAW3hd,QACzCq0M,EAAM,EAAGvoL,EAAM61b,EAAW3hd,OAAQq0M,EAAMvoL,EAAKuoL,IACpD74I,EAAO64I,GAAOmmO,GAAaK,SAAS8mC,EAAWttQ,IAGjD,GAAIqc,EAAO,CACT,IAAMqxP,EAAiBrid,KAAK67c,UAAU9X,YACtC/jc,KAAK67c,UAAUrY,UAAU6e,EAAe3/c,OAAOo5D,SAE/C97D,KAAK67c,UAAUrY,UAAU1nY,EAE7B,EAeAunZ,EAAA3jd,UAAAskB,MAAA,WACEhkB,KAAKw/c,cACLx/c,KAAK67c,UAAUrY,UAAU,GAC3B,EAiCA6f,EAAA3jd,UAAAs+b,YAAA,SAAY7mW,GACV4uU,GAAe5uU,EAAU,YACzBn3F,KAAK67c,UAAU7d,YAAY7mW,GAC3Bn3F,KAAKw/c,aACP,EAaA6D,EAAA3jd,UAAA49c,SAAA,WACE,OAAOt9c,KAAK67c,UAAUtd,QAAQ8E,GAAgBkf,KAChD,EAYAc,EAAA3jd,UAAA8id,cAAA,WACExid,KAAK67c,UAAUld,UAAU0E,GAAgBkf,MAAM,EACjD,EAWAc,EAAA3jd,UAAA+id,eAAA,WACEzid,KAAK67c,UAAUld,UAAU0E,GAAgBkf,MAAM,EACjD,EAYAc,EAAA3jd,UAAAgjd,cAAA,WACE,OAAO1id,KAAK67c,UAAUtd,QAAQ8E,GAAgBO,YAChD,EAUAyf,EAAA3jd,UAAA0id,kBAAA,WACEpid,KAAK67c,UAAUld,UAAU0E,GAAgBO,aAAa,EACxD,EAUAyf,EAAA3jd,UAAAijd,mBAAA,WACE3id,KAAK67c,UAAUld,UAAU0E,GAAgBO,aAAa,EACxD,EAgBAyf,EAAA3jd,UAAAsjd,gBAAA,WACE,OAAOhjd,KAAK67c,UAAUtd,QAAQ8E,GAAgB4f,kBAChD,EAWAI,EAAA3jd,UAAAwjd,oBAAA,WACEljd,KAAK67c,UAAUld,UAAU0E,GAAgB4f,mBAAmB,EAC9D,EAWAI,EAAA3jd,UAAAyjd,qBAAA,WACEnjd,KAAK67c,UAAUld,UAAU0E,GAAgB4f,mBAAmB,EAC9D,EA8BAI,EAAA3jd,UAAA6hd,UAAA,SAAUnvc,EAAeye,qBACvB20Y,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAClC/C,GAA6B5tb,GAExBA,IAASA,EAAU,CAAC,GAEnB,cAAeA,IAAUA,EAAQwqG,UAAY39C,GAAI,EAAG,EAAG,IACvD,oBAAqB7sD,IAAUA,EAAQ3O,gBAAkBw7D,GAAI,EAAG,EAAG,IACnE,gBAAiB7sD,IAAUA,EAAQ/d,YAAc4qE,GAAI,EAAG,EAAG,IAC3D,gBAAiB7sD,IAAUA,EAAQ5d,YAAc,GAGvD,IAAMuvb,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAI,EAChBhxP,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI,EAChB79P,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI,IACxBh+P,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAI,IAC1ByvG,UAAWxqG,EAAQwqG,UACnBn5G,gBAAiB2O,EAAQ3O,gBACzBpP,YAAa+d,EAAQ/d,YACrBG,YAAgC,QAArBqB,EAAEuc,EAAQ5d,mBAAW,IAAAqB,EAAAA,EAAI,EACpC4Q,OAAsB,QAAhB27R,EAAEhwR,EAAQ3L,cAAM,IAAA27R,EAAAA,EAAImuJ,GAAQ,GAClCj0b,OAAQ8V,EAAQ9V,OAChB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAGnDz7B,KAAK67c,UAAU7Z,UAAUyf,GAGzB,IAAMt9Y,EAAmB,QAAf2tU,EAAGjhX,EAAQszC,YAAI,IAAA2tU,EAAAA,EAAI9xY,KAAKmG,IAAIg3V,UAAUimH,iBAChDpjd,KAAK0hd,uBAAuBlf,EAAQr+X,GAGpC/xD,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWA4B,EAAA3jd,UAAA2/c,uBAAA,iBACE,GAAIr/c,KAAK4/c,UAAW,OAAO,EAG3B,IADA,IAAM7d,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAIxD,MADyB,QAAvBwgD,EAFa4sM,EAAQptP,GAEdmrP,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,kBAAkB7wB,IACxB,OAAO,EAG9B,OAAO,CACT,EAYAm0C,EAAA3jd,UAAA4/c,yBAAA,SAAyBn7Y,GACvBqhW,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCh+c,KAAK2hd,kBAAkBx9Y,EACzB,EAkBAk/Y,EAAA3jd,UAAAiid,kBAAA,SACEx9Y,EACAoqG,GAEAi3P,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCv4C,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACvB30M,KAAK0hd,uBAAuBlf,EAAQr+X,EAAMoqG,GAE5CvuK,KAAK0/c,aACP,EASQ2D,EAAA3jd,UAAAgid,uBAAR,SACElf,EACAr+X,EACAoqG,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAY8uS,IACoBr9c,KAAMwic,EAAQr+X,IACjEnkE,KAAKugd,+BAA+B/d,EAAQr+X,EAAMm7X,EACpD,EAlgBO+jB,EAAAp5C,GAAK,SAACq5C,EAA6B9/c,EAAa2C,GACrD,WAAIk9c,EAAcC,EAAa9/c,EAAK2C,EAApC,EAkgBJk9c,EAhhBA,CAA2C3E,gBCA3C,IAAA8E,GAAA,SAAAx7L,GAuBE,SAAAw7L,EACEC,EACAjgd,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAM6jd,EAAiBjgd,EAAK2C,IAAI,YAEhCq/Z,GAASi+C,EAAiB,kBAAmB,CAC3C,CAACxe,GAAoB,wBAGvBx5W,EAAKowX,UAAY4H,GACnB,CAyYF,OA5a2C9mD,GAAA6mD,EAAAx7L,GAkDzCw7L,EAAA9jd,UAAAokc,WAAA,WACE,IAAMhnU,EAAe98H,KAAK67c,UAAUxZ,kBACpC,GAAIvlU,EAAc,CAEhB,IADA,IAAM4mV,EAAgB,IAAIjkd,MAAcq9H,EAAax8H,QAC5Cq0M,EAAM,EAAGvoL,EAAM0wG,EAAax8H,OAAQq0M,EAAMvoL,EAAKuoL,IACtD+uQ,EAAc/uQ,GAAO73E,EAAa63E,GAAKm4N,aAEzC,OAAO42C,EAGT,IAAMve,EAAWnlc,KAAK67c,UAAU3W,cAC1Bye,EAAY,IAAIlkd,MAAc0lc,EAAS7kc,QAC7C,IAASq0M,EAAM,EAAGvoL,EAAMu3b,EAAUrjd,OAAQq0M,EAAMvoL,EAAKuoL,IACnDgvQ,EAAUhvQ,GAAOwwP,EAASxwP,GAAKm4N,aAEjC,OAAO62C,CACT,EAeAH,EAAA9jd,UAAA09c,YAAA,WACE,IAAMt5c,EAAQ9D,KAAK67c,UAAU/yY,WAC7B,GAAIhlE,IAAUuoa,GAAQpC,GAAG,OAAzB,CACA,IAAMntS,EAAe98H,KAAK67c,UAAUxZ,kBACpC,GAAIvlU,EAEF,IADA,IAAMqoU,EAAWnlc,KAAK67c,UAAU3W,cACvBvwP,EAAM,EAAGvoL,EAAM+4a,EAAS7kc,OAAQq0M,EAAMvoL,EAAKuoL,IAClD,GAAIwwP,EAASxwP,KAAS7wM,EAAO,OAAOg5H,EAAa63E,GAAKm4N,aAG1D,OAAOhpa,EAAMgpa,YARoC,CASnD,EAkDA02C,EAAA9jd,UAAAq0E,OAAA,SAAO4xD,GACL6/R,GAAS7/R,EAAQ,SAAU,CAAC,WAE5B,IAAMw8U,EAAenid,KAAK8jc,aAC1Bj/B,GAAcl/R,EAAQ,SAAUw8U,GAEhCnid,KAAKw/c,cAEL,IAAMra,EAAWnlc,KAAK67c,UAAU3W,cAC1BpoU,EAAe98H,KAAK67c,UAAUxZ,kBACpC,GAAIvlU,EACF,IAAK,IAAI63E,EAAM,EAAGvoL,EAAM0wG,EAAax8H,OAAQq0M,EAAMvoL,EAAKuoL,IAClD73E,EAAa63E,GAAKm4N,eAAiBnnS,GACrC3lI,KAAK67c,UAAU1yY,SAASg8X,EAASxwP,SAIrC,IAASA,EAAM,EAAGvoL,EAAM+4a,EAAS7kc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACzD,IAAM7wM,EAAQqhc,EAASxwP,GACnB7wM,EAAMgpa,eAAiBnnS,GAAQ3lI,KAAK67c,UAAU1yY,SAASrlE,GAGjE,EAeA0/c,EAAA9jd,UAAAskB,MAAA,WACEhkB,KAAKw/c,cACLx/c,KAAK67c,UAAU1yY,SAASkjW,GAAQpC,GAAG,OACrC,EAaAu5C,EAAA9jd,UAAAkkd,gBAAA,WACE,OAAQ5jd,KAAK67c,UAAUtd,QAAQ4E,GAAgB0gB,cACjD,EAgBAL,EAAA9jd,UAAAokd,kBAAA,WACE9jd,KAAK67c,UAAUld,UAAUwE,GAAgB0gB,eAAe,EAC1D,EAYAL,EAAA9jd,UAAAqkd,mBAAA,WACE/jd,KAAK67c,UAAUld,UAAUwE,GAAgB0gB,eAAe,EAC1D,EAiBAL,EAAA9jd,UAAAskd,oBAAA,WACE,OAAQhkd,KAAK67c,UAAUtd,QAAQ4E,GAAgB8gB,eACjD,EAcAT,EAAA9jd,UAAAwkd,sBAAA,WACElkd,KAAK67c,UAAUld,UAAUwE,GAAgB8gB,gBAAgB,EAC3D,EAcAT,EAAA9jd,UAAAykd,uBAAA,WACEnkd,KAAK67c,UAAUld,UAAUwE,GAAgB8gB,gBAAgB,EAC3D,EA6BAT,EAAA9jd,UAAA0kd,gBAAA,SACEz+U,EACAvzH,EACAye,yBAEA20Y,GAAS7/R,EAAQ,SAAU,CAAC,WAC5B6/R,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAClC/C,GAA6B5tb,GAG7B,IAAM2xa,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,EAAa,QAAZ6xP,EAAS,OAAPtkO,QAAO,IAAPA,OAAO,EAAPA,EAASvtB,SAAC,IAAA6xP,EAAAA,EAAI,EACjBhxP,EAAa,QAAZ08P,EAAS,OAAPhwO,QAAO,IAAPA,OAAO,EAAPA,EAAS1sB,SAAC,IAAA08P,EAAAA,EAAI,EACjB79P,MAAqB,QAAhB89P,EAAS,OAAPjwO,QAAO,IAAPA,OAAO,EAAPA,EAAS7tB,aAAK,IAAA89P,EAAAA,EAAI,GACzBh+P,OAAuB,QAAjB8oB,EAAS,OAAPiF,QAAO,IAAPA,OAAO,EAAPA,EAAS/tB,cAAM,IAAA8oB,EAAAA,EAAI,GAC3ByvG,UAA6B,QAApB/mH,EAAS,OAAPuc,QAAO,IAAPA,OAAO,EAAPA,EAASwqG,iBAAS,IAAA/mH,EAAAA,EAAIopE,GAAI,EAAG,EAAG,GAC3Cx7D,gBAAyC,QAA1B2+R,EAAS,OAAPhwR,QAAO,IAAPA,OAAO,EAAPA,EAAS3O,uBAAe,IAAA2+R,EAAAA,EAAInjO,GAAI,EAAG,EAAG,GACvD5qE,YAAiC,QAAtBg/X,EAAS,OAAPjhX,QAAO,IAAPA,OAAO,EAAPA,EAAS/d,mBAAW,IAAAg/X,EAAAA,EAAIp0T,GAAI,EAAG,EAAG,GAC/CzqE,YAAiC,QAAtB+hR,EAAS,OAAPnkQ,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,mBAAW,IAAA+hR,EAAAA,EAAI,EACrC9vQ,OAAuB,QAAjBm/b,EAAS,OAAPxzb,QAAO,IAAPA,OAAO,EAAPA,EAAS3L,cAAM,IAAAm/b,EAAAA,EAAIrV,GAAQ,GACnCj0b,OAAe,OAAP8V,QAAO,IAAPA,OAAO,EAAPA,EAAS9V,OACjB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAG7Cuna,EAAehjc,KAAK67c,UAAU/Y,iBAClC2e,EACA3mC,GAAaK,SAASx1S,IACrB3lI,KAAKgkd,uBAIRxhB,EAAOpD,mBAAmB/yB,GAAQpC,GAAG,QACrCjqa,KAAK0hd,uBAAuBlf,EAAQQ,GAGpC5wb,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWA+B,EAAA9jd,UAAA2/c,uBAAA,WAEE,UADMtd,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjB9xK,EAAQ2/Z,EAAOtD,qBACfa,EAAgC,QAA1B5qM,EAAGqtM,EAAO1C,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,OAExC,KAAMA,aAAkBrxB,IAAU,OAAO,EACzC,GAAI7rY,IAAUk9Z,EAAOhwb,IAAI8yB,GAAQ,OAAO,EAG1C,OAAO,CACT,EAUA2gb,EAAA9jd,UAAA4/c,yBAAA,WACEt/c,KAAK2hd,mBACP,EAyBA6B,EAAA9jd,UAAAiid,kBAAA,SAAkBpzS,GAChBk3P,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjBywP,EAAU5C,EAAOf,aAClB2D,GACLplc,KAAK0hd,uBAAuBlf,EAAQ4C,EAAS72R,GAEjD,EAEQi1S,EAAA9jd,UAAAgid,uBAAR,SACElf,EACA4C,EACA72R,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAYytS,IACoBh8c,KAAMwic,IACzDxic,KAAK0gd,4BAA4Ble,EAAQ4C,EAAS9F,EACpD,EA7ZOkkB,EAAAv5C,GAAK,SACVw5C,EACAjgd,EACA2C,GACG,WAAIq9c,EAAcC,EAAiBjgd,EAAK2C,EAAxC,EA0ZPq9c,EA5aA,CAA2C9E,yBC7B3C,SAAA12L,GAsBE,SAAAs8L,EACEC,EACA/gd,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAM2kd,EAAe/gd,EAAK2C,IAAI,YAE9Bq/Z,GAAS++C,EAAe,gBAAiB,CACvC,CAAClgB,GAAkB,sBAGrB54W,EAAKowX,UAAY0I,GACnB,CAKF,OAvC0C5nD,GAAA2nD,EAAAt8L,GAoCxCs8L,EAAA5kd,UAAA2/c,uBAAA,WACE,OAAO,CACT,EAzBOiF,EAAAr6C,GAAK,SACVs6C,EACA/gd,EACA2C,GACG,WAAIm+c,EAAaC,EAAe/gd,EAAK2C,EAArC,EAsBPm+c,EAvCA,CAA0C5F,ICmC1C,IAAA8F,GAAA,SAAAx8L,GAkBE,SAAAw8L,EAAoBC,EAAuBjhd,EAAa2C,GAAxD,IAAAslF,EACEu8L,EAAApoR,KAAA,KAAM6kd,EAAUjhd,EAAK2C,IAAI,YAEzBq/Z,GAASi/C,EAAU,WAAY,CAAC,CAACngB,GAAa,iBAE9C74W,EAAKowX,UAAY4I,GACnB,CAivBF,OAzwB0C9nD,GAAA6nD,EAAAx8L,GAsDxCw8L,EAAA9kd,UAAAi9c,QAAA,WACE,IAAM74c,EAAQ9D,KAAK67c,UAAU/yY,WAC7B,IAAKhlE,GAAS9D,KAAK0kd,kBACjB,MAAM,IAAIrL,GAAuBr5c,KAAKojR,WAExC,OAAY,OAALt/Q,QAAK,IAALA,OAAK,EAALA,EAAOgpa,YAChB,EAwCA03C,EAAA9kd,UAAAy1H,QAAA,SAAQjsF,GACNu8X,GAAkBv8X,EAAM,OAAQ,CAAC,WAEjC,IAAMo6F,EAAYtjI,KAAK0kc,eACvB,QAAkBjza,IAAd6xG,GAA2Bp6F,GAAQA,EAAK5oC,OAASgjI,EACnD,MAAM,IAAIo2U,GAAuBxwa,EAAK5oC,OAAQgjI,EAAWtjI,KAAKojR,WAGhEpjR,KAAKw/c,cACLx/c,KAAK2kd,wBAEDz7a,EACFlpC,KAAK67c,UAAU1yY,SAAS2xW,GAAaK,SAASjyY,IAE9ClpC,KAAK67c,UAAU/W,aAEnB,EAeA0f,EAAA9kd,UAAAo9c,aAAA,WACE,IAAMlY,EAAW5kc,KAAK67c,UAAUhX,cAGhC,OACiB,IAAbD,EAAiB6N,GAAczjT,KAClB,IAAb41S,EAAiB6N,GAAcwI,OAClB,IAAbrW,EAAiB6N,GAAcvjT,MAC/BujT,GAAczjT,IAEpB,EAsBAw1T,EAAA9kd,UAAAkld,aAAA,SAAa7J,GACXl2C,GAAck2C,EAAW,YAAatI,IACtCzyc,KAAKw/c,cACLx/c,KAAK67c,UAAUlX,YAAYoW,EAC7B,EAgBAyJ,EAAA9kd,UAAAglc,aAAA,WACE,OAAO1kc,KAAK67c,UAAUnX,cACxB,EAqBA8f,EAAA9kd,UAAA8kc,aAAA,SAAalhU,GAKX,GAJAsiS,GAAuBtiS,EAAW,YAAa,EAAGhsF,OAAO6gN,kBAEzDn4P,KAAKw/c,mBAEa/tb,IAAd6xG,EACFtjI,KAAK67c,UAAUpX,sBACV,CACL,IAAMv7Z,EAAOlpC,KAAK28c,UAClB,GAAIzza,GAAQA,EAAK5oC,OAASgjI,EACxB,MAAM,IAAIs2U,GAAsB1wa,EAAK5oC,OAAQgjI,EAAWtjI,KAAKojR,WAE/DpjR,KAAK67c,UAAUrX,aAAalhU,GAEhC,EAYAkhV,EAAA9kd,UAAA+kc,gBAAA,WACEzkc,KAAKw/c,cACLx/c,KAAK67c,UAAUpX,iBACjB,EAYA+f,EAAA9kd,UAAAmld,SAAA,SAAS7qY,GAUP,IATA,IAAM8qY,EAAiB9kd,KAAK88c,eAGtB/B,EACF+J,IAAmBrS,GAAcwI,OAASuD,GAAevD,OACzD6J,IAAmBrS,GAAcvjT,MAAQsvT,GAAetvT,MACxDsvT,GAAexvT,KAEb+yS,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjBowQ,EAAY/kd,KAAK4gd,4BACrBpe,EACAxoX,EACA+gY,GAEF/6c,KAAKwgd,wBAAwBhe,EAAQ,CAAEzC,OAAQglB,IAGjD/kd,KAAK0/c,aACP,EAsBA8E,EAAA9kd,UAAAs+b,YAAA,SAAY7mW,GACV4uU,GAAe5uU,EAAU,YACzBn3F,KAAK67c,UAAU7d,YAAY7mW,GAC3Bn3F,KAAKw/c,aACP,EAcAgF,EAAA9kd,UAAAm9c,YAAA,WACE,OAAO78c,KAAK67c,UAAUtd,QAAQ6E,GAAc4hB,UAC9C,EAYAR,EAAA9kd,UAAAuld,gBAAA,WACEjld,KAAKw/c,cACLx/c,KAAK67c,UAAUld,UAAUyE,GAAc4hB,WAAW,EACpD,EAYAR,EAAA9kd,UAAAwld,iBAAA,WACElld,KAAKw/c,cACLx/c,KAAK67c,UAAUld,UAAUyE,GAAc4hB,WAAW,EACpD,EAaAR,EAAA9kd,UAAAyld,WAAA,WACE,OAAOnld,KAAK67c,UAAUtd,QAAQ6E,GAAcgiB,SAC9C,EAmBAZ,EAAA9kd,UAAA2ld,eAAA,WACErld,KAAK67c,UAAUld,UAAUyE,GAAcgiB,UAAU,EACnD,EAUAZ,EAAA9kd,UAAA4ld,gBAAA,WACEtld,KAAK67c,UAAUld,UAAUyE,GAAcgiB,UAAU,EACnD,EAYAZ,EAAA9kd,UAAA6ld,eAAA,WACE,OAAOvld,KAAK67c,UAAUtd,QAAQ6E,GAAcoiB,WAC9C,EAWAhB,EAAA9kd,UAAA+ld,oBAAA,WACEzld,KAAK67c,UAAUld,UAAUyE,GAAcoiB,YAAY,EACrD,EAUAhB,EAAA9kd,UAAAgmd,qBAAA,WACE1ld,KAAK67c,UAAUld,UAAUyE,GAAcoiB,YAAY,EACrD,EAYAhB,EAAA9kd,UAAAkjd,eAAA,WACE,OAAQ5id,KAAK67c,UAAUtd,QAAQ6E,GAAcyf,gBAC/C,EAUA2B,EAAA9kd,UAAAojd,oBAAA,WACE9id,KAAK67c,UAAUld,UAAUyE,GAAcyf,iBAAiB,EAC1D,EAUA2B,EAAA9kd,UAAAqjd,qBAAA,WACE/id,KAAK67c,UAAUld,UAAUyE,GAAcyf,iBAAiB,EAC1D,EAaA2B,EAAA9kd,UAAAimd,aAAA,WACE,OAAQ3ld,KAAK67c,UAAUtd,QAAQ6E,GAAcwiB,YAC/C,EAYApB,EAAA9kd,UAAAmmd,gBAAA,WACE7ld,KAAK67c,UAAUld,UAAUyE,GAAcwiB,aAAa,EACtD,EAUApB,EAAA9kd,UAAAomd,iBAAA,WACE9ld,KAAK67c,UAAUld,UAAUyE,GAAcwiB,aAAa,EACtD,EAqBApB,EAAA9kd,UAAAk9c,SAAA,WACE,OACE58c,KAAK67c,UAAUtd,QAAQ6E,GAAc2iB,QACpC/ld,KAAK68c,gBACL78c,KAAKmld,eACLnld,KAAKuld,uBACkB9zb,IAAxBzxB,KAAK0kc,cAET,EAuBA8f,EAAA9kd,UAAAsmd,cAAA,WACE,QAA4Bv0b,IAAxBzxB,KAAK0kc,eAA8B,CAErCvza,QAAQC,KADI,8DAIdpxB,KAAKw/c,cAELx/c,KAAKkld,mBACLlld,KAAKsld,kBACLtld,KAAK0ld,uBAEL1ld,KAAK67c,UAAUld,UAAUyE,GAAc2iB,MAAM,EAC/C,EAcAvB,EAAA9kd,UAAAumd,eAAA,WACEjmd,KAAKw/c,cACLx/c,KAAK67c,UAAUld,UAAUyE,GAAc2iB,MAAM,EAC/C,EAYAvB,EAAA9kd,UAAAgld,gBAAA,WACE,OAAO1kd,KAAK67c,UAAUtd,QAAQ6E,GAAc8iB,SAC9C,EAgBA1B,EAAA9kd,UAAAymd,qBAAA,WACEnmd,KAAK67c,UAAUld,UAAUyE,GAAc8iB,UAAU,EACnD,EAUA1B,EAAA9kd,UAAAild,sBAAA,WACE3kd,KAAK67c,UAAUld,UAAUyE,GAAc8iB,UAAU,EACnD,EA6BA1B,EAAA9kd,UAAA6hd,UAAA,SAAUnvc,EAAeye,qBACvB20Y,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAClC/C,GAA6B5tb,GAExBA,IAASA,EAAU,CAAC,GAEnB,cAAeA,IAAUA,EAAQwqG,UAAY39C,GAAI,EAAG,EAAG,IACvD,oBAAqB7sD,IAAUA,EAAQ3O,gBAAkBw7D,GAAI,EAAG,EAAG,IACnE,gBAAiB7sD,IAAUA,EAAQ/d,YAAc4qE,GAAI,EAAG,EAAG,IAC3D,gBAAiB7sD,IAAUA,EAAQ5d,YAAc,GAGvD,IAAMuvb,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAI,EAChBhxP,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI,EAChB79P,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI,IACxBh+P,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAI,GAC1ByvG,UAAWxqG,EAAQwqG,UACnBn5G,gBAAiB2O,EAAQ3O,gBACzBpP,YAAa+d,EAAQ/d,YACrBG,YAAgC,QAArBqB,EAAEuc,EAAQ5d,mBAAW,IAAAqB,EAAAA,EAAI,EACpC4Q,OAAsB,QAAhB27R,EAAEhwR,EAAQ3L,cAAM,IAAA27R,EAAAA,EAAImuJ,GAAQ,GAClCj0b,OAAQ8V,EAAQ9V,OAChB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAGnDz7B,KAAK67c,UAAU7Z,UAAUyf,GAGzB,IAAMt9Y,EAAmB,QAAf2tU,EAAGjhX,EAAQszC,YAAI,IAAA2tU,EAAAA,EAAI9xY,KAAKmG,IAAIg3V,UAAUimH,iBAChDpjd,KAAK0hd,uBAAuBlf,EAAQr+X,GAGpC/xD,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWA+C,EAAA9kd,UAAA2/c,uBAAA,iBACE,GAAIr/c,KAAK4/c,UAAW,OAAO,EAG3B,IADA,IAAM7d,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAIxD,MADyB,QAAvBwgD,EAFa4sM,EAAQptP,GAEdmrP,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,kBAAkB7wB,IACxB,OAAO,EAG9B,OAAO,CACT,EAYAs1C,EAAA9kd,UAAA4/c,yBAAA,SAAyBn7Y,GACvBqhW,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCh+c,KAAK2hd,kBAAkBx9Y,EACzB,EAkBAqgZ,EAAA9kd,UAAAiid,kBAAA,SACEx9Y,EACAoqG,GAEAi3P,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCv4C,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACvB30M,KAAK0hd,uBAAuBlf,EAAQr+X,EAAMoqG,GAE5CvuK,KAAK0/c,aACP,EAEQ8E,EAAA9kd,UAAAgid,uBAAR,SACElf,EACAr+X,EACAoqG,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAYkuS,IACoBz8c,KAAMwic,EAAQr+X,IACjEnkE,KAAKugd,+BAA+B/d,EAAQr+X,EAAMm7X,EACpD,EA5vBOklB,EAAAv6C,GAAK,SAACw6C,EAAuBjhd,EAAa2C,GAC/C,WAAIq+c,EAAaC,EAAUjhd,EAAK2C,EAAhC,EA4vBJq+c,EAzwBA,CAA0C9F,gBChDnC,IAAK0H,IAAZ,SAAYA,GACVA,EAAA,kBACAA,EAAA,2BACAA,EAAA,iCACAA,EAAA,yCACAA,EAAA,sBACAA,EAAA,+BACAA,EAAA,qCACAA,EAAA,6CACAA,EAAA,yBACAA,EAAA,4BACAA,EAAA,gCACAA,EAAA,wCACAA,EAAA,gBACAA,EAAA,2BACD,CAfD,CAAYA,KAAAA,GAAa,KC4DzB,IAAAC,GAAA,WAuBE,SAAAA,EAAoBvf,EAAuB3gc,GAA3C,IAAAslF,EAAA,KAksBQ,KAAA66X,iBAAmB,WACzB,OAAA76X,EAAKtlF,IAAIogd,kBAAkBH,GAAcI,UAAzC,EAlsBAhhD,GAASshC,EAAU,WAAY,CAAC,CAACX,GAAa,iBAC9C3gC,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBAEpC99c,KAAK8mc,SAAWA,EAChB9mc,KAAKmG,IAAMA,EAEXnG,KAAKymd,YAAc,IAAIxsZ,IACvBj6D,KAAK0md,iBAAmBxgD,GAAMG,YAAYrma,KAAKsmd,iBACjD,CA2rBF,OA3qBED,EAAA3md,UAAAind,OAAA,WACE,OAAO3md,KAAK8mc,SAASrra,KAAK1rB,IAAIs8Z,GAAQpC,GAAG,OAC3C,EAaAo8C,EAAA3md,UAAAknd,UAAA,WACE5md,KAAK8mc,SAASrra,KAAK+9B,OAAO6yW,GAAQpC,GAAG,OACvC,EAeAo8C,EAAA3md,UAAA4pV,UAAA,WAIE,IAHA,IAAM7pN,EAAYz/H,KAAK8mc,SAAST,eAE1BzpU,EAAqB,GAClB+3E,EAAM,EAAGvoL,EAAMqzG,EAAUn/H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACpD,IAAAwgD,EAAmB11H,EAAUk1E,GAA5BknQ,EAAS1mN,EAAA,GAAE3xP,EAAG2xP,EAAA,GACfv1H,EAAQinV,GAAkBhL,EAAWr4c,EAAKxD,KAAKmG,KACjDy5H,GAAOhD,EAAO37H,KAAK2+H,GAGzB,OAAOhD,CACT,EAYAypV,EAAA3md,UAAAond,cAAA,SAAcj4c,GACZ22Z,GAAS32Z,EAAM,OAAQ,CAAC,WAExB,IADA,IAAM+tH,EAAS58H,KAAKspV,YACX30I,EAAM,EAAGvoL,EAAMwwG,EAAOt8H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACvD,IAAM/0E,EAAQhD,EAAO+3E,GACrB,GAAI/0E,EAAMwjJ,YAAcv0Q,EAAM,OAAO+wH,EAGzC,EAYAymV,EAAA3md,UAAAqnd,SAAA,SAASl4c,GACP22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK8md,cAAcj4c,GACjC,GAAI+wH,EAAO,OAAOA,EAClB,MAAM,IAAIm5U,GAAiBlqc,EAC7B,EAaAw3c,EAAA3md,UAAAsnd,UAAA,SAAUn4c,GACR22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiBqnV,GAAW,OAAOrnV,EACvC,MAAM,IAAIo5U,GAAyBnqc,EAAMo4c,GAAWrnV,EACtD,EAeAymV,EAAA3md,UAAAwnd,YAAA,SAAYr4c,GACV22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiBuhV,GAAa,OAAOvhV,EACzC,MAAM,IAAIo5U,GAAyBnqc,EAAMsyc,GAAavhV,EACxD,EAgBAymV,EAAA3md,UAAAynd,YAAA,SAAYt4c,GACV22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiBgiV,GAAa,OAAOhiV,EACzC,MAAM,IAAIo5U,GAAyBnqc,EAAM+yc,GAAahiV,EACxD,EAgBAymV,EAAA3md,UAAA0nd,cAAA,SAAcv4c,GACZ22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiByjV,GAAe,OAAOzjV,EAC3C,MAAM,IAAIo5U,GAAyBnqc,EAAMw0c,GAAezjV,EAC1D,EAgBAymV,EAAA3md,UAAA2nd,cAAA,SAAcx4c,GACZ22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiB4jV,GAAe,OAAO5jV,EAC3C,MAAM,IAAIo5U,GAAyBnqc,EAAM20c,GAAe5jV,EAC1D,EAcAymV,EAAA3md,UAAA4nd,aAAA,SAAaz4c,GACX22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiB0kV,GAAc,OAAO1kV,EAC1C,MAAM,IAAIo5U,GAAyBnqc,EAAMy1c,GAAc1kV,EACzD,EAeAymV,EAAA3md,UAAA6nd,aAAA,SAAa14c,GACX22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM+wH,EAAQ5/H,KAAK+md,SAASl4c,GAC5B,GAAI+wH,aAAiB4kV,GAAc,OAAO5kV,EAC1C,MAAM,IAAIo5U,GAAyBnqc,EAAM21c,GAAc5kV,EACzD,EAkBAymV,EAAA3md,UAAA8nd,aAAA,SAAa34c,GACX22Z,GAAS32Z,EAAM,OAAQ,CAAC,WAExB,IAAM44c,EAAYC,GAAe74c,GAC3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjDv1Y,EAAS0yX,GAAkBvnc,OAAOwC,KAAKmG,IAAI2jE,SAKjD,OAJAuI,EAAOurX,eAAe6pB,EAAUI,UAEhCC,GAAiBx9Y,EAAQ,CAAC+H,EAAQA,EAAO7uE,KAAMikd,EAAUI,UAElDZ,GAAUh9C,GAAG53V,EAAQA,EAAO7uE,IAAKxD,KAAKmG,IAC/C,EAkBAkgd,EAAA3md,UAAAqod,eAAA,SAAel5c,GACb22Z,GAAS32Z,EAAM,OAAQ,CAAC,WAExB,IAAM44c,EAAYC,GAAe74c,GAC3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjDjwV,EAAWsrU,GAAgBzlc,OAAOwC,KAAKmG,IAAI2jE,SAKjD,OAJA6tD,EAASimU,eAAe6pB,EAAUI,UAElCC,GAAiBx9Y,EAAQ,CAACqtD,EAAUA,EAASn0H,KAAMikd,EAAUI,UAEtD1G,GAAYl3C,GAAGtyS,EAAUA,EAASn0H,IAAKxD,KAAKmG,IACrD,EAkBAkgd,EAAA3md,UAAAsod,eAAA,SAAen5c,GACb22Z,GAAS32Z,EAAM,OAAQ,CAAC,WAExB,IAAM44c,EAAYC,GAAe74c,GAC3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjDK,EAAW/jB,GAAgB1mc,OAAOwC,KAAKmG,IAAI2jE,SAKjD,OAJAm+Y,EAASrqB,eAAe6pB,EAAUI,UAElCC,GAAiBx9Y,EAAQ,CAAC29Y,EAAUA,EAASzkd,KAAMikd,EAAUI,UAEtDjG,GAAY33C,GAAGg+C,EAAUA,EAASzkd,IAAKxD,KAAKmG,IACrD,EAkBAkgd,EAAA3md,UAAAwod,iBAAA,SAAiBr5c,GACf22Z,GAAS32Z,EAAM,OAAQ,CAAC,WAExB,IAAM44c,EAAYC,GAAe74c,GAC3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjDO,EAAU7iB,GAAe9nc,OAAOwC,KAAKmG,IAAI2jE,SAK/C,OAJAq+Y,EAAQvqB,eAAe6pB,EAAUI,UAEjCC,GAAiBx9Y,EAAQ,CAAC69Y,EAASA,EAAQ3kd,KAAMikd,EAAUI,UAEpDxE,GAAcp5C,GAAGk+C,EAASA,EAAQ3kd,IAAKxD,KAAKmG,IACrD,EAmBAkgd,EAAA3md,UAAA0od,iBAAA,SAAiBv5c,GACf22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM44c,EAAYC,GAAe74c,GAE3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjDnwV,EAAcwtU,GAAmBznc,OAAOwC,KAAKmG,IAAI2jE,SASvD,OARA2tD,EAAYmmU,eAAe6pB,EAAUI,UAErCC,GACEx9Y,EACA,CAACmtD,EAAaA,EAAYj0H,KAC1Bikd,EAAUI,UAGLrE,GAAcv5C,GAAGxyS,EAAaA,EAAYj0H,IAAKxD,KAAKmG,IAC7D,EAkBAkgd,EAAA3md,UAAA2od,gBAAA,SAAgBx5c,GACd22Z,GAAS32Z,EAAM,OAAQ,CAAC,WACxB,IAAM44c,EAAYC,GAAe74c,GAE3By7D,EAAStqE,KAAK2nd,yBAAyBF,EAAUG,aAEjD1+a,EAAOo7Z,GAAY9mc,OAAOwC,KAAKmG,IAAI2jE,SAKzC,OAJA5gC,EAAK00Z,eAAe6pB,EAAUI,UAE9BC,GAAiBx9Y,EAAQ,CAACphC,EAAMA,EAAK1lC,KAAMikd,EAAUI,UAE9CrD,GAAav6C,GAAG/gY,EAAMA,EAAK1lC,IAAKxD,KAAKmG,IAC9C,EAuBAkgd,EAAA3md,UAAA4od,QAAA,SAAQz3b,QAAA,IAAAA,IAAAA,EAAA,CAA4B03b,wBAAwB,IACtD13b,EAAQ03b,wBACVvod,KAAKuod,yBAKP,IAFA,IAAM3rV,EAAS58H,KAAKspV,YAEXhqV,EAAI,EAAGkpd,EAAY5rV,EAAOt8H,OAAQhB,EAAIkpd,EAAWlpd,IAAK,CAI7D,IAHA,IAAMsgI,EAAQhD,EAAOt9H,GACfyic,EAAUniU,EAAMi8U,UAAUha,aAEvBz3b,EAAI,EAAGq+c,EAAa1mB,EAAQzhc,OAAQ8J,EAAIq+c,EAAYr+c,IAAK,CAChE,IAAMo4b,EAAST,EAAQ33b,GACjBgI,EAAOpS,KAAK0od,eAAelmB,GAC3Bif,EAAYzhd,KAAK2od,wBAAwB/oV,EAAO4iU,GAEhDomB,EAAax2c,EAAKqc,KAAKmlZ,WAAW,aAAc6tC,GAEhDt/Z,EAAYqgZ,EAAOxD,eACnB1uB,EAAYlT,GAAA,CAChByzC,KACAphY,GAAUttB,EAAU7+C,EAAG6+C,EAAUh+C,IAC9Bizc,GAAax6C,GAAAA,GAAC,CAAC,EAAIz6W,GAAS,CAAE5oC,SAAU,KAAI,CAC/C84b,GAAWuW,GACX9X,OACA3pc,OAAO8hN,SAET72M,EAAKy2c,cAAatod,MAAlB6R,EAAsBk+Z,GAGxBtwa,KAAKwmc,YAAY5mU,GAErB,EAYAymV,EAAA3md,UAAA8mc,YAAA,SAAY5mU,GAIV,IAHA,IAAMmiU,EAAUniU,EAAMi8U,UAAUha,aAC1B2F,EAAsB,IAAIvtY,IAEvB36D,EAAI,EAAG8sB,EAAM21a,EAAQzhc,OAAQhB,EAAI8sB,EAAK9sB,IAAK,CAClD,IAAMkjc,EAAST,EAAQzic,GACjBmid,EAAYzhd,KAAK2od,wBAAwB/oV,EAAO4iU,GAEhDpwb,EAAOpS,KAAK0od,eAAelmB,GACjCgF,EAAMlrb,IAAIlK,GAEVA,EAAKqc,KAAK2kZ,YAAYquC,GAGxBja,EAAM9pc,SAAQ,SAAC0U,GAAS,OAAAA,EAAKqc,KAAK2kZ,YAAYxzS,EAAMp8H,IAA5B,IACxBxD,KAAK8mc,SAASN,YAAY5mU,EAAMi8U,WAGhC,IAFA,IAAMiN,EAAYlpV,EAAMi8U,UAAU/oC,oBAAoBwqB,KAChDyrB,EAAYD,EAAUtmd,OACnBwmd,EAAa,EAAGA,EAAaD,EAAWC,IAAc,CAC7D,IAAMl9V,EAAQg9V,EAAUhrd,IAAIkrd,GACxBl9V,aAAiB6jT,IACnB3va,KAAKmG,IAAI2jE,QAAQtQ,OAAOsyD,GAG5B9rH,KAAKmG,IAAI2jE,QAAQtQ,OAAOomE,EAAMp8H,IAChC,EA+BA6id,EAAA3md,UAAA6od,uBAAA,SAAuBpkZ,GACrBshW,GAAkBthW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAE3C75Y,EAAW,OAAJA,QAAI,IAAJA,EAAAA,EAAQnkE,KAAKojd,iBAIpB,IAFA,IAAMxmV,EAAS58H,KAAKspV,YAEX30I,EAAM,EAAGvoL,EAAMwwG,EAAOt8H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACvD,IAAM/0E,EAAQhD,EAAO+3E,GACjB/0E,EAAMy/U,0BACRz/U,EAAM0/U,yBAAyBn7Y,GAGrC,EAYAkiZ,EAAA3md,UAAA+/c,iBAAA,SAAiBwJ,GACfxjD,GAAkBwjD,EAAU,WAAY,CAAC,CAACt5C,GAAQ,YAClD3va,KAAKymd,YAAYnqc,IAAI2sc,EACvB,EAYA5C,EAAA3md,UAAAigd,iBAAA,SAAiBsJ,GACfxjD,GAAkBwjD,EAAU,WAAY,CAAC,CAACt5C,GAAQ,YAClD3va,KAAKymd,YAAYjtZ,OAAOyvZ,EAC1B,EAYA5C,EAAA3md,UAAAmgd,aAAA,SAAaoJ,GAEX,OADAxjD,GAAkBwjD,EAAU,WAAY,CAAC,CAACt5C,GAAQ,YAC3C3va,KAAKymd,YAAY12c,IAAIk5c,EAC9B,EAEA5C,EAAA3md,UAAA0jd,eAAA,WACE,OAAOpjd,KAAK0md,iBAAiBtgD,QAC/B,EAEQigD,EAAA3md,UAAAgpd,eAAR,SAAuBlmB,GACrB,IAAMyd,EAAUzd,EAAOx9b,IACnBoN,EAAOpS,KAAKmG,IAAI+id,WAAW/xc,MAAK,SAAC7T,GAAM,OAAAA,EAAEE,MAAQy8c,CAAV,IAC3C,QAAaxub,IAATrf,EAAoB,CACtB,IAAMqvc,EAAYzhd,KAAKmG,IAAI2jE,QAAQonW,aAAasxB,EAAO/ma,MACvD,QAAkBhK,IAAdgwb,EACF,MAAM,IAAI/zb,MAAM,uCAKlB,QAAa+D,KAFbrf,EAAOpS,KAAKmG,IAAIgjd,yBAAyB1H,IAGvC,MAAM,IAAI/zb,MAAM,kCAAkC+zb,GAItD,OAAOrvc,CACT,EAEQi0c,EAAA3md,UAAAipd,wBAAR,SACE/oV,EACA4iU,SAEI4mB,EAAY5mB,EAAOhD,sBAEvB,GACE4pB,aAAqB16C,KACpB9uS,aAAiBuhV,IAAevhV,aAAiB4jV,IAClD,CACA,IAAM1/c,EAAQ87H,EAAMi8U,UAAU/yY,WACxBtlE,EAA0B,QAAvB2xP,EAAGi0N,EAAUtrd,IAAIgG,UAAM,IAAAqxP,EAAAA,EAAIi0N,EAAUtrd,IAAIuua,GAAQpC,GAAG,QAEzDzma,aAAemsa,KACjBy5C,EAAY5ld,GAIhB,KAAM4ld,aAAqBz5C,IAAS,CAClC,IAAM05C,EAAOzpV,EAAMwjJ,UACnB,MAAM,IAAI11P,MAAM,yCAAyC27b,GAG3D,OAAOD,CACT,EAEQ/C,EAAA3md,UAAAiod,yBAAR,SAAiC2B,GAI/B,IAHA,IAAI1B,EAA4D,CAC9D5nd,KAAK8mc,UAEEnyP,EAAM,EAAGvoL,EAAMk9b,EAAahpd,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAC7D,IAAMykQ,EAAWkQ,EAAa30Q,GAC9B,IAAKykQ,EAAU,MAAM,IAAID,GAA0BC,GAC5C,IAAAmQ,EAAqB3B,EAAW,GAAxB1oc,EAAa0oc,EAAW,GACjCh2a,EAAM5xC,KAAKwpd,gBAAgBpQ,EAAUmQ,GAE3C,GAAI33a,EACFg2a,EAAch2a,MACT,CACL,IAAMnjB,EAAO01a,GAAmB3mc,OAAOwC,KAAKmG,IAAI2jE,SAChDr7C,EAAKmva,eAAewb,GACpB3qb,EAAKkgD,UAAUzvD,GACf,IAAM2sN,EAAU7rO,KAAKmG,IAAI2jE,QAAQq6H,SAAS11K,EAAKgN,MAC/C8tb,EAAOnlB,SAASv4N,GAChB+7O,EAAc,CAACn5b,EAAMo9M,IAGzB,OAAO+7O,CACT,EAEQvB,EAAA3md,UAAA8pd,gBAAR,SACE3rB,EACAvzX,GAOA,IALA,IAAMsyD,EACJtyD,aAAkB67X,GACdnmc,KAAK8mc,SAASx9G,YACdi8G,GAAoBj7X,EAAOgzX,QAExB3oP,EAAM,EAAGvoL,EAAMwwG,EAAOt8H,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACjD,IAAAwgD,EAAev4H,EAAO+3E,GAArB/0E,EAAKu1H,EAAA,GAAE3xP,EAAG2xP,EAAA,GACjB,GAAIv1H,EAAM+9T,mBAAqBE,EAAa,CAC1C,GAAIj+T,aAAiBukU,GAAoB,MAAO,CAACvkU,EAAOp8H,GACxD,MAAM,IAAIy1c,GAAwBpb,IAKxC,EA5sBOwoB,EAAAp8C,GAAK,SAAC68B,EAAuB3gc,GAClC,WAAIkgd,EAAQvf,EAAU3gc,EAAtB,EA+sBJkgd,EA3tBA,eA6tBA,ICtxBYoD,GDsxBN5C,GAAoB,SACxBjnV,EACAp8H,EACA2C,GAEA,OAAIy5H,aAAiBmlU,GAA0BkiB,GAAUh9C,GAAGrqS,EAAOp8H,EAAK2C,GACpEy5H,aAAiBqjU,GAAwBke,GAAYl3C,GAAGrqS,EAAOp8H,EAAK2C,GACpEy5H,aAAiBskU,GAAwB0d,GAAY33C,GAAGrqS,EAAOp8H,EAAK2C,GACpEy5H,aAAiB0lU,GAAuB+d,GAAcp5C,GAAGrqS,EAAOp8H,EAAK2C,GACrEy5H,aAAiB0kU,GAAoBkgB,GAAav6C,GAAGrqS,EAAOp8H,EAAK2C,GACjEy5H,aAAiBqlU,GACZue,GAAcv5C,GAAGrqS,EAAOp8H,EAAK2C,GAElCy5H,aAAiBykU,GACZigB,GAAar6C,GAAGrqS,EAAOp8H,EAAK2C,QADrC,CAIF,EAEMuhd,GAAiB,SAACgC,GACtB,GAAkC,IAA9BA,EAAmBppd,OACrB,MAAM,IAAIotB,MAAM,6CAKlB,IAFA,IAAMoxF,EAAQ4qW,EAAmB93c,MAAM,KAE9B+iM,EAAM,EAAGvoL,EAAM0yF,EAAMx+G,OAAQq0M,EAAMvoL,EAAKuoL,IAC/C,GAAmB,KAAf71F,EAAM61F,GACR,MAAM,IAAIjnL,MACR,4EAA4Eg8b,EAAkB,KAKpG,OAAqB,IAAjB5qW,EAAMx+G,OAAqB,CAAEsnd,YAAa,GAAIC,SAAU/oW,EAAM,IAE3D,CACL8oW,YAAa9oW,EAAM53G,MAAM,EAAG43G,EAAMx+G,OAAS,GAC3Cund,SAAU/oW,EAAMA,EAAMx+G,OAAS,GAEnC,EAEMwnd,GAAmB,SACvB3yN,EACA0L,EACAg9L,GAMA,QARCvzX,EAAM6qL,EAAA,GAAEj2O,EAASi2O,EAAA,GACjBv1H,EAAKihI,EAAA,GAAEooN,EAAQpoN,EAAA,GAGVv3L,EAAUgB,EAAOwoW,oBACjBl2S,GAAS2oU,GACb,SAAUj8X,EAAUA,EAAQg0X,KAAOh0X,EAAQ88X,SAEpCzxP,EAAM,EAAGvoL,EAAMwwG,EAAOt8H,OAAQq0M,EAAMvoL,EAAKuoL,IAChD,GAAI/3E,EAAO+3E,GAAK,GAAGgpP,mBAAqBE,EACtC,MAAM,IAAIob,GAAwBpb,GAGtCvzX,EAAO85X,SAAS6kB,GAChBrpV,EAAMjxD,UAAUzvD,EAClB,EEn1Bayqc,GAAY,CACvB,MAAO,CAAC,QAAS,SACjB,MAAO,CAAC,QAAS,SACjBC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,OAAQ,SACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,IAAK,CAAC,KAAM,QACZC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,OAAQ,SACbC,GAAI,CAAC,MAAO,QACZC,GAAI,CAAC,OAAQ,OACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbC,GAAI,CAAC,QAAS,SACdt6X,GAAI,CAAC,QAAS,SACdC,GAAI,CAAC,QAAS,SACds6X,GAAI,CAAC,OAAQ,SACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,GAAI,CAAC,OAAQ,QACbC,IAAK,CAAC,MAAO,QACbC,IAAK,CAAC,OAAQ,SACdC,IAAK,CAAC,QAAS,QACfC,IAAK,CAAC,OAAQ,SACdC,IAAK,CAAC,OAAQ,QACdC,IAAK,CAAC,OAAQ,QACdC,KAAM,CAAC,QAAS,SAChBC,KAAM,CAAC,QAAS,SAChBC,KAAM,CAAC,QAAS,SAChBC,KAAM,CAAC,OAAQ,SACfC,KAAM,CAAC,MAAO,QACdC,UAAW,CAAC,OAAQ,KACpBC,MAAO,CAAC,IAAO,KACfC,MAAO,CAAC,IAAO,MACfC,OAAQ,CAAC,IAAO,KAChBC,QAAS,CAAC,IAAO,QD/CnB,SAAYhD,GACVA,EAAAA,EAAA,QAAA9vX,KAAA,UACA8vX,EAAAA,EAAA,kBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,gBACD,CALD,CAAYA,KAAAA,GAAW,cEKvB,WAwBE,SAAAiD,EAAoBlpd,EAAa2C,EAAkBy3c,GAH3C,KAAAC,iBAAkB,EAIxB79c,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,EACXnG,KAAK49c,SAAWA,CAClB,CAqDF,OA1CQ8O,EAAAhtd,UAAAq+c,MAAN,0HACO/9c,KAAK69c,gBAAN,MACU,GAAM79c,KAAK49c,SAASzhC,iBAC9Bn8a,KAAKmG,IAAI2jE,QACT9pE,KAAKwD,aAFDA,EAAM2xP,EAAA2N,OAKP9iQ,KAAKmG,IAAIwmd,QAAQ58c,IAAIs8Z,GAAQpC,GAAG,WACnCjqa,KAAKmG,IAAIwmd,QAAQn9c,IAAI68Z,GAAQpC,GAAG,SAAUjqa,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAC,KAE5Dsic,EAAQ5sd,KAAKmG,IAAIwmd,QAAQ18N,OAAOo8K,GAAQpC,GAAG,SAAUyE,KAEhD3+Z,IAAIs8Z,GAAQpC,GAAG,mBACxB2iD,EAAMp9c,IAAI68Z,GAAQpC,GAAG,iBAAkBjqa,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAC,KAEzDuic,EAAgBD,EAAM38N,OAAOo8K,GAAQpC,GAAG,iBAAkByE,KAE7C3+Z,IAAIs8Z,GAAQpC,GAAG,WAChC4iD,EAAcr9c,IAAI68Z,GAAQpC,GAAG,SAAUjqa,KAAKmG,IAAI2jE,QAAQx/C,IAAI,MAExDwic,EAAUD,EAAc58N,OAAOo8K,GAAQpC,GAAG,SAAUC,KAElDjpa,KAAK65a,GAAaK,SAASn7a,KAAK49c,SAASvqP,WACjDy5P,EAAQ7rd,KAAKuC,GAURxD,KAAKmG,IAAIwmd,QAAQ58c,IAAIs8Z,GAAQpC,GAAG,QACnCjqa,KAAKmG,IAAIwmd,QAAQn9c,IAAI68Z,GAAQpC,GAAG,MAAOjqa,KAAKmG,IAAI2jE,QAAQx/C,IAAI,KAEnDtqB,KAAKmG,IAAIwmd,QAAQ18N,OAAOo8K,GAAQpC,GAAG,MAAOC,IAClDjpa,KAAKuC,GAERxD,KAAK69c,iBAAkB,qCAlEpB6O,EAAAziD,GAAK,SAACzma,EAAa2C,EAAkBy3c,GAC1C,WAAI8O,EAAgBlpd,EAAK2C,EAAKy3c,EAA9B,EAoEJ8O,EAjFA,YCAA,WAwBE,SAAAK,EACEvpd,EACA2C,EACAy3c,GANM,KAAAC,iBAAkB,EAQxB79c,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,EACXnG,KAAK49c,SAAWA,CAClB,CAyCF,OA9BQmP,EAAArtd,UAAAq+c,MAAN,gIACO/9c,KAAK69c,gBAAN,OACI1oN,EAAuBn1P,KAAKmG,IAA1Bwmd,EAAOx3N,EAAAw3N,QAAE7iZ,EAAOqrL,EAAArrL,QAEZ,GAAM9pE,KAAK49c,SAASzhC,iBAC9Bn8a,KAAKmG,IAAI2jE,QACT9pE,KAAKwD,cAFDA,EAAMq9P,EAAAiC,OAKP6pN,EAAQ58c,IAAIs8Z,GAAQpC,GAAG,WAC1B0iD,EAAQn9c,IAAI68Z,GAAQpC,GAAG,SAAUngW,EAAQx/C,IAAI,CAAC,KAE1Csic,EAAQD,EAAQ18N,OAAOo8K,GAAQpC,GAAG,SAAUyE,KAEvC3+Z,IAAIs8Z,GAAQpC,GAAG,gBACxB2iD,EAAMp9c,IAAI68Z,GAAQpC,GAAG,cAAengW,EAAQx/C,IAAI,CAAC,KAE7C0ic,EAAaJ,EAAM38N,OAAOo8K,GAAQpC,GAAG,cAAeyE,KAE1C3+Z,IAAIs8Z,GAAQpC,GAAG,WAC7B+iD,EAAWx9c,IAAI68Z,GAAQpC,GAAG,SAAUngW,EAAQx/C,IAAI,MAE5C2ic,EAAUD,EAAW/8N,OAAOo8K,GAAQpC,GAAG,SAAUC,KAE/Cjpa,KAAK65a,GAAaK,SAASn7a,KAAK49c,SAASsP,aACjDD,EAAQhsd,KAAKuC,GAEbxD,KAAK69c,iBAAkB,qCA1DpBkP,EAAA9iD,GAAK,SAACzma,EAAa2C,EAAkBy3c,GAC1C,WAAImP,EAAcvpd,EAAK2C,EAAKy3c,EAA5B,EA4DJmP,EAzEA,GCyBA,SA7BA,WAQE,SAAAI,EAAoBxlY,EAAgBulY,GAClCltd,KAAK2nF,OAASA,EACd3nF,KAAKktd,WAAaA,CACpB,CAgBF,OA1BSC,EAAApyU,IAAP,SAAWpzD,EAAgBulY,GACzB,OAAO,IAAIC,EAAmBxlY,EAAQulY,EACxC,EAUMC,EAAAztd,UAAAy8a,iBAAN,SAAuBryW,EAAqBtmE,8EAO1C,OANM4pd,EAAetjZ,EAAQx/C,IAAI,CAC/BijZ,KAAM,SACNnpa,EAAG,aACHipd,GAAIvyC,GAAaK,SAASn7a,KAAK2nF,UAG7BnkF,GACFsmE,EAAQ1pE,OAAOoD,EAAK4pd,GACb,CAAP,EAAO5pd,IAEA,CAAP,EAAOsmE,EAAQq6H,SAASipR,WAG9BD,CAAA,CA3BA,GCoEA,IAAArP,GAAA,WAuHE,SAAAA,EACEh0Y,EACAwjZ,EACAC,GAHF,IAAA9hY,EAAA,KAqBE,GAlCF,KAAA+hY,kBAA8B,CAAC,KAiqCvB,KAAAC,aAAe,WACrB,IAAMjmB,EAAmB,GAWzB,OAVA/7W,EAAKkhY,QAAQjmB,QAAQwB,UAAS,SAACz5a,EAAMjrB,GACnC,GAAIirB,aAAgB4jZ,GAAa,CAC/B,IAAIjga,EAAOq5E,EAAKiiY,QAAQ5vd,IAAI2wB,GACvBrc,IACHA,EAAOovc,GAAQv3C,GAAGx7Y,EAAMjrB,EAAKioF,GAC7BA,EAAKiiY,QAAQl+c,IAAIif,EAAMrc,IAEzBo1b,EAAMvmc,KAAKmR,GAEf,IACOo1b,CACT,EAEQ,KAAAmmB,gBAAkB,WACxB,IAAM7mB,EAAWr7W,EAAKkhY,QAAQ9lB,sBAC9B,OAAOwf,GAAQp8C,GAAG68B,EAAUr7W,EAC9B,EAjqCE+5U,GAAS17V,EAAS,UAAW,CAAC,CAAC8mW,GAAY,gBAC3CpL,GAAS8nD,EAAkB,mBAAoB,CAAC,YAEhDttd,KAAK8pE,QAAUA,EACf9pE,KAAK2sd,QAAU7iZ,EAAQmmL,OAAOnmL,EAAQgnW,YAAYqH,MAClDn4a,KAAK4td,cAAgB9jZ,EAAQmmL,OAAOnmL,EAAQgnW,YAAYsH,SAExDp4a,KAAK6td,UAAY3nD,GAAMG,YAAYrma,KAAKytd,cACxCztd,KAAK0td,QAAU,IAAIx+c,IACnBlP,KAAK8td,UAAY5nD,GAAMG,YAAYrma,KAAK2td,iBACxC3td,KAAKuxF,MAAQ,GACbvxF,KAAK4sG,OAAS,GACd5sG,KAAK+td,cAAgB,GACrB/td,KAAKgud,cAAgB,GACrBhud,KAAKiud,YAAc,IAEdX,GAAoBttd,KAAK4td,YAAa,MAAM,IAAIjV,GAEjD4U,GAAgBvtd,KAAKkud,gBAC3B,CA+oCF,OAzuCepQ,EAAA1rX,KAAb,SACE+7X,EACAt9b,eAAA,IAAAA,IAAAA,EAAA,mHAgBgB,OAbdskO,EAKEtkO,EAAOy8b,iBALTA,OAAgB,IAAAn4N,GAAQA,EACxB0L,EAIEhwO,EAAOu9b,WAJTA,OAAU,IAAAvtN,EAAG4oN,GAAY4E,KAAIxtN,EAC7BC,EAGEjwO,EAAO08a,qBAHTA,OAAoB,IAAAzsM,GAAQA,EAC5Bl1O,EAEEiF,EAAO08b,eAFTA,OAAc,IAAA3hc,GAAOA,EACrBtX,EACEuc,EAAOq4a,WADTA,OAAU,IAAA50b,GAAQA,EAGpBkxZ,GAAS2oD,EAAK,MAAO,CAAC,SAAU7pc,WAAYk+C,cAC5CgjW,GAAS8nD,EAAkB,mBAAoB,CAAC,YAChD9nD,GAAS4oD,EAAY,aAAc,CAAC,WACpC5oD,GAAS+nC,EAAsB,uBAAwB,CAAC,YAElD5mZ,EAAQm6W,GAAaqtD,GACX,GAAM9gB,GAAUqB,oBAC9B/nZ,EACAyna,EACA7gB,EACArE,GACAsE,wBACF,MAAO,CAAP,EAAO,IAAIsQ,EANKj9J,EAAA/9C,OAMgBwqN,EAAkBC,YAOvCzP,EAAAtgd,OAAb,SAAoBqzB,eAAA,IAAAA,IAAAA,EAAA,kFASlB,OARQskO,EAA0BtkO,EAAO08b,eAAjCA,OAAc,IAAAp4N,GAAOA,EAEvBrrL,EAAU8mW,GAAWpza,SACrB8wd,EAAW7mB,GAAYj9B,YAAY1gW,GACnCykZ,EAAczkZ,EAAQq6H,SAASmqR,GAC/B3B,EAAUlmB,GAAWc,oBAAoBz9X,EAASykZ,GACxDzkZ,EAAQgnW,YAAYqH,KAAOruW,EAAQq6H,SAASwoR,GAErC,CAAP,EAAO,IAAI7O,EAAYh0Y,GAAS,EAAOyjZ,WAsEzCzP,EAAAp+c,UAAA8ud,gBAAA,SAAgBxvC,GACdh/a,KAAKg/a,QAAUA,CACjB,EAgBA8+B,EAAAp+c,UAAAy9V,QAAA,WACE,IAAM/2R,EAAOpmE,KAAK8td,UAAU1nD,SAO5B,OANIhgW,EAAKugZ,WACPx1b,QAAQC,KACN,6EAEFg1C,EAAKwgZ,aAEAxgZ,CACT,EAUA03Y,EAAAp+c,UAAA8lX,SAAA,WACE,IAAMx0W,EAAQhR,KAAKyud,cAAcx+N,OAAOo8K,GAAQ2B,OAChD,GAAKh9Z,EAEL,OADA09c,GAA2B19c,GACpBA,EAAM87Z,YACf,EAUAgxC,EAAAp+c,UAAAivd,UAAA,WACE,IAAMC,EAAS5ud,KAAKyud,cAAcx+N,OAAOo8K,GAAQ4B,QACjD,GAAK2gD,EAEL,OADAF,GAA2BE,GACpBA,EAAO9hD,YAChB,EAUAgxC,EAAAp+c,UAAAmvd,WAAA,WACE,IAAM/2D,EAAU93Z,KAAKyud,cAAcx+N,OAAOo8K,GAAQ6B,SAClD,GAAKpW,EAEL,OADA42D,GAA2B52D,GACpBA,EAAQgV,YACjB,EAUAgxC,EAAAp+c,UAAAovd,YAAA,WACE,IAAMC,EAAW/ud,KAAKyud,cAAcx+N,OAAOo8K,GAAQ+B,UACnD,GAAK2gD,EAEL,OADAL,GAA2BK,GACpBA,EAASjiD,YAClB,EAUAgxC,EAAAp+c,UAAAsvd,WAAA,WACE,IAAM32W,EAAUr4G,KAAKyud,cAAcx+N,OAAOo8K,GAAQ8B,SAClD,GAAK91T,EAEL,OADAq2W,GAA2Br2W,GACpBA,EAAQy0T,YACjB,EAUAgxC,EAAAp+c,UAAAuvd,YAAA,WACE,IAAMC,EAAWlvd,KAAKyud,cAAcx+N,OAAOo8K,GAAQgC,UACnD,GAAK6gD,EAEL,OADAR,GAA2BQ,GACpBA,EAASpiD,YAClB,EAWAgxC,EAAAp+c,UAAAyvd,gBAAA,WACE,IAAMzsC,EAAe1ib,KAAKyud,cAAcx+N,OAAOo8K,GAAQiC,cACvD,GAAKoU,EAEL,OADAgsC,GAA2BhsC,GACpBA,EAAaxH,YACtB,EAYA4iC,EAAAp+c,UAAA0vd,oBAAA,WACE,IAAMj+c,EAAmBnR,KAAKyud,cAAcx+N,OAAOo8K,GAAQkC,SAC3D,GAAKp9Z,EAEL,OADAu9c,GAA2Bv9c,GACpBA,EAAiB+pa,YAC1B,EAmBA4iC,EAAAp+c,UAAA2vd,SAAA,SAASr+c,EAAe6f,GACtB20Y,GAASx0Z,EAAO,QAAS,CAAC,WAC1B,IAAM/H,EAAMoja,GAAQpC,GAAG,UACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAASnqa,IAGvC,OAAP6f,QAAO,IAAPA,OAAO,EAAPA,EAASy+b,uBACGtvd,KAAK2sd,QAAQ3lB,+BACrBlL,oBAAmB,EAE7B,EAUAgiB,EAAAp+c,UAAA6vd,UAAA,SAAUX,GACRppD,GAASopD,EAAQ,SAAU,CAAC,WAC5B,IAAM3ld,EAAMoja,GAAQpC,GAAG,UACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAASyzC,GACpD,EAUA9Q,EAAAp+c,UAAA8vd,WAAA,SAAW13D,GACT0N,GAAS1N,EAAS,SAAU,CAAC,WAC7B,IAAM7uZ,EAAMoja,GAAQpC,GAAG,WACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAASrjB,GACpD,EAUAgmD,EAAAp+c,UAAA+vd,YAAA,SAAYV,GACVvpD,GAASupD,EAAU,WAAY,CAACtvd,QAChC,IAAMwJ,EAAMoja,GAAQpC,GAAG,YACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAAS4zC,EAAS7td,KAAK,MAClE,EAUA48c,EAAAp+c,UAAAgwd,WAAA,SAAWr3W,GACTmtT,GAASntT,EAAS,UAAW,CAAC,WAC9B,IAAMpvG,EAAMoja,GAAQpC,GAAG,WACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAAS9iU,GACpD,EAUAylW,EAAAp+c,UAAAiwd,YAAA,SAAYT,GACV1pD,GAAS0pD,EAAU,UAAW,CAAC,WAC/B,IAAMjmd,EAAMoja,GAAQpC,GAAG,YACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK6xa,GAAaK,SAAS+zC,GACpD,EAYApR,EAAAp+c,UAAAkwd,YAAA,SAAYC,GACVrqD,GAASqqD,EAAU,WAAY,CAAC,WAChC,IAAM5md,EAAMoja,GAAQpC,GAAG,QACvBjqa,KAAK2sd,QAAQn9c,IAAIvG,EAAK60a,GAAU7T,GAAG4lD,GACrC,EAUA/R,EAAAp+c,UAAAowd,gBAAA,SAAgBptC,GACdld,GAASkd,EAAc,eAAgB,CAAC,CAACrxa,KAAM,UAC/C,IAAMpI,EAAMoja,GAAQpC,GAAG,gBACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK60a,GAAUK,SAASuE,GACjD,EAWAo7B,EAAAp+c,UAAAqwd,oBAAA,SAAoB5+c,GAClBq0Z,GAASr0Z,EAAkB,mBAAoB,CAAC,CAACE,KAAM,UACvD,IAAMpI,EAAMoja,GAAQpC,GAAG,WACvBjqa,KAAKyud,cAAcj/c,IAAIvG,EAAK60a,GAAUK,SAAShta,GACjD,EASA2sc,EAAAp+c,UAAAswd,aAAA,WAEE,YADuBv+b,IAAnBzxB,KAAKiwd,YAAyBjwd,KAAKiwd,UAAYjwd,KAAKkpd,WAAW5od,QAC5DN,KAAKiwd,SACd,EAcAnS,EAAAp+c,UAAAwpd,SAAA,WACE,OAAOlpd,KAAK6td,UAAUznD,QACxB,EAWA03C,EAAAp+c,UAAAiQ,QAAA,SAAQ0Q,GACN,IAAMmnb,EAAQxnc,KAAKkpd,WAEnB,OADAvjD,GAAYtlZ,EAAO,QAAS,EAAGmnb,EAAMlnc,OAAS,GACvCknc,EAAMnnb,EACf,EAiBAy9b,EAAAp+c,UAAAwwd,eAAA,WACE,O3HheiB,SAAC5vc,EAAeF,GAEnC,IADA,IAAM8K,EAAM,IAAIzrB,MAAM2gB,EAAME,GACnBq0L,EAAM,EAAGvoL,EAAMlB,EAAI5qB,OAAQq0M,EAAMvoL,EAAKuoL,IAC7CzpL,EAAIypL,GAAOr0L,EAAQq0L,EAErB,OAAOzpL,CACT,C2H0dW6iC,CAAM,EAAG/tD,KAAKgwd,eACvB,EAaAlS,EAAAp+c,UAAAywd,WAAA,SAAW9vc,GACT,IAAM4vc,EAAYjwd,KAAKgwd,eACvB,GAAuB,IAAnBhwd,KAAKiwd,UAAiB,MAAM,IAAInX,GACpCnzC,GAAYtlZ,EAAO,QAAS,EAAG4vc,EAAY,GAC3Cjwd,KAAK2sd,QAAQrlB,eAAejnb,GAC5BrgB,KAAKiwd,UAAYA,EAAY,CAC/B,EAiCAnS,EAAAp+c,UAAA0wd,QAAA,SAAQh+c,GAEN,OADAozZ,GAASpzZ,EAAM,OAAQ,CAAC,YAAa,CAACovc,GAAS,WAAY/hd,QACpDO,KAAKqwd,WAAWrwd,KAAKgwd,eAAgB59c,EAC9C,EAkCA0rc,EAAAp+c,UAAA2wd,WAAA,SAAWhwc,EAAejO,GACxB,IAAM69c,EAAYjwd,KAAKgwd,eAGvB,GAFArqD,GAAYtlZ,EAAO,QAAS,EAAG4vc,GAC/BzqD,GAASpzZ,EAAM,OAAQ,CAAC,YAAa,CAACovc,GAAS,WAAY/hd,SACtD2S,GAAQ3S,MAAM8rB,QAAQnZ,GAAO,CAChC,IAAMu9b,EAAOlwc,MAAM8rB,QAAQnZ,GAAQA,EAAOu3c,GAAUK,IACpD53c,EAAOovc,GAAQhkd,OAAOwC,OACjBw7X,QAAOj7X,MAAZ6R,EAAgBu9b,QACX,GAAIv9b,EAAKjM,MAAQnG,KACtB,MAAM,IAAI64c,GAGZ,IAAM35b,EAAYlf,KAAK2sd,QAAQxlB,eAAe/0b,EAAK5O,IAAK6c,GAQxD,OAPAjO,EAAKqc,KAAKkgD,UAAUzvD,GAEpBlf,KAAK0td,QAAQl+c,IAAI4C,EAAKqc,KAAMrc,GAC5BpS,KAAK6td,UAAUz8J,aAEfpxT,KAAKiwd,UAAYA,EAAY,EAEtB79c,CACT,EAoBM0rc,EAAAp+c,UAAA4wd,UAAN,SAAgBC,EAAqB9pV,mHAGnC,OAFA++R,GAAS+qD,EAAQ,SAAU,CAAC,CAACzS,EAAa,iBAC1Ct4C,GAAS/+R,EAAS,UAAW,CAAChnI,QAC9B,GAAM8wd,EAAO5qb,gBAIb,IAJAwvN,EAAA2N,OACM0tN,EAASp8C,GAAgBr5R,IAAIw1U,EAAOzmZ,QAAS9pE,KAAK8pE,SAClD2mZ,EAAWF,EAAOrH,WAClBwH,EAAyB,IAAIjxd,MAAMgnI,EAAQnmI,QACxCq0M,EAAM,EAAGvoL,EAAMq6G,EAAQnmI,OAAQq0M,EAAMvoL,EAAKuoL,IAC3Cg8Q,EAAUF,EAAShqV,EAAQkuE,IAC3Bi8Q,EAAaJ,EAAOjjb,KAAKojb,EAAQlic,MACjCjrB,EAAMxD,KAAK8pE,QAAQq6H,SAASysR,GAClCF,EAAY/7Q,GAAO6sQ,GAAQv3C,GAAG2mD,EAAYptd,EAAKxD,MAEjD,MAAO,CAAP,EAAO0wd,WAiBH5S,EAAAp+c,UAAA6tC,KAAN,mHACkB,SAAMuwa,EAAYtgd,iBACb,UADfqzd,EAAU17N,EAAA2N,QACmBwtN,UAAUtwd,KAAMA,KAAKkwd,0BAExD,IAFMY,EAAe37N,EAAA2N,OAEZnuD,EAAM,EAAGvoL,EAAM0kc,EAAaxwd,OAAQq0M,EAAMvoL,EAAKuoL,IACtDk8Q,EAAQT,QAAQU,EAAan8Q,IA0B/B,YAvByBljL,IAArBzxB,KAAK2ud,aACPkC,EAAQtB,UAAUvvd,KAAK2ud,kBAEMl9b,IAA3BzxB,KAAKmvd,mBACP0B,EAAQf,gBAAgB9vd,KAAKmvd,wBAEL19b,IAAtBzxB,KAAKgvd,cACP6B,EAAQnB,WAAW1vd,KAAKgvd,mBAESv9b,IAA/BzxB,KAAKovd,uBACPyB,EAAQd,oBAAoB/vd,KAAKovd,4BAER39b,IAAvBzxB,KAAKivd,eACP4B,EAAQlB,YAAY3vd,KAAKivd,oBAEDx9b,IAAtBzxB,KAAK6ud,cACPgC,EAAQrB,WAAWxvd,KAAK6ud,mBAEFp9b,IAApBzxB,KAAKwlX,YACPqrG,EAAQxB,SAASrvd,KAAKwlX,YAExBqrG,EAAQrD,kBAAoBxtd,KAAKwtd,kBAE1B,CAAP,EAAOqD,WA2BT/S,EAAAp+c,UAAAqxd,cAAA,SAAclid,EAAc84E,GAC1B69U,GAAS32Z,EAAM,OAAQ,CAAC,WACxB22Z,GAAS79U,EAAQ,SAAU,CAAC,WAE5B,IAAMi2X,EAAWuP,GAAmBpyU,IAAIpzD,EAAQ94E,GAE1CrL,EAAMxD,KAAK8pE,QAAQmnW,UACnB+/C,EAAajE,GAAc9iD,GAAGzma,EAAKxD,KAAM49c,GAC/C59c,KAAKiud,YAAYhtd,KAAK+vd,EACxB,EAyDMlT,EAAAp+c,UAAAwyH,OAAN,SACE+L,EACApvH,EACAgiB,eAAA,IAAAA,IAAAA,EAAA,qFAEA20Y,GAASvnS,EAAY,aAAc,CAAC,SAAU35G,WAAYk+C,cAC1DgjW,GAAS32Z,EAAM,OAAQ,CAAC,WACxB42Z,GAAkB50Y,EAAQ4xZ,SAAU,WAAY,CAAC,WACjDhd,GAAkB50Y,EAAQuiM,YAAa,cAAe,CAAC,WACvDqyM,GAAkB50Y,EAAQ6xZ,aAAc,uBAAwB,CAACrxa,OACjEo0Z,GAAkB50Y,EAAQ1f,iBAAkB,2BAA4B,CACtEE,OAEF8zZ,GACEt0Y,EAAQ8xZ,eACR,yBACAL,IAGI37X,EAAQm6W,GAAa7iS,GACrB2/U,EAAWr7B,GAAaxnS,IAAIp0F,EAAO93C,EAAMgiB,GAEzCrtB,EAAMxD,KAAK8pE,QAAQmnW,UACnBggD,EAAevE,GAAgBziD,GAAGzma,EAAKxD,KAAM49c,GACnD59c,KAAKgud,cAAc/sd,KAAKgwd,cAsCpBnT,EAAAp+c,UAAAwxd,UAAN,SACE/sZ,EACAtzC,eAAA,IAAAA,IAAAA,EAAA,wHAEQskO,EAAyCtkO,EAAOixZ,OAAhDA,OAAM,IAAA3sL,GAAQA,EAAEmmL,EAAyBzqZ,EAAOyqZ,WAApBzhZ,EAAahJ,EAAOgJ,SAExD2rY,GAASrhW,EAAM,OAAQ,CAAC,SAAU7/C,WAAYk+C,cAC9CgjW,GAASsc,EAAQ,SAAU,CAAC,YAGxBpd,GAAevgW,IACjBy5Y,EAAWviC,GAAqBtgS,IAAI52E,EAAMm3W,UADxC,oB3HpzBNx/Y,E2HszBwCqoC,a3HpzBvB7/C,YACjBwX,aAAiB0mC,aACA,kBAAV1mC,G2HmzBG6qB,EAAQm6W,GAAa38V,GACrB66W,EAAUh/a,KAAKmxd,gBACVrvC,EACP,GAAMF,GAAyB7mS,IAC7BikS,EACAr4X,EACA20X,EACAzhZ,IALK,OAHF,oBAILgnO,EAAAC,EAAAgC,oBAMA,SAAMs7K,GAAmBrjS,IAAIikS,EAASr4X,EAAO20X,EAAYzhZ,WAAzDgnO,EAAAC,EAAAgC,+BAPJ86M,EAAQ/8M,eASR,MAAM,IAAI/gQ,UACR,oFAQJ,OAJM0D,EAAMxD,KAAK8pE,QAAQmnW,UACnBmgD,EAAUpT,GAAQ/zC,GAAGzma,EAAKxD,KAAM49c,GACtC59c,KAAKuxF,MAAMtwF,KAAKmwd,GAET,CAAP,EAAOA,G3H50B+B,IACxCt1b,S2Hy1BAgib,EAAAp+c,UAAA6md,kBAAA,SAAkBpiZ,EAAqBm3W,GAErC,GADA9V,GAASrhW,EAAM,OAAQ,CAAC,YACnBugW,GAAevgW,GAClB,MAAM,IAAIrkE,UAAU,8CAGtB,IAAM89c,EAAWviC,GAAqBtgS,IAAI52E,EAAMm3W,GAE1C93a,EAAMxD,KAAK8pE,QAAQmnW,UACnBmgD,EAAUpT,GAAQ/zC,GAAGzma,EAAKxD,KAAM49c,GAGtC,OAFA59c,KAAKuxF,MAAMtwF,KAAKmwd,GAETA,CACT,EAgCMtT,EAAAp+c,UAAA2xd,SAAN,SAAeC,2GAGI,OAFjB9rD,GAAS8rD,EAAK,MAAO,CAAC,SAAUhtc,WAAYk+C,cACtC7b,EAAQm6W,GAAawwD,GACV,GAAM7tC,GAAa1oS,IAAIp0F,WAIxC,OAJMi3Z,EAAWzoN,EAAA2N,OACXt/P,EAAMxD,KAAK8pE,QAAQmnW,UACnBsgD,EAAWpT,GAASl0C,GAAGzma,EAAKxD,KAAM49c,GACxC59c,KAAK4sG,OAAO3rG,KAAKswd,GACV,CAAP,EAAOA,WAiCHzT,EAAAp+c,UAAA8xd,SAAN,SAAe5+B,2GAGI,OAFjBptB,GAASotB,EAAK,MAAO,CAAC,SAAUtua,WAAYk+C,cACtC7b,EAAQm6W,GAAa8xB,GACV,GAAMD,GAAY53S,IAAIp0F,WAIvC,OAJMi3Z,EAAWzoN,EAAA2N,OACXt/P,EAAMxD,KAAK8pE,QAAQmnW,UACnBsgD,EAAWpT,GAASl0C,GAAGzma,EAAKxD,KAAM49c,GACxC59c,KAAK4sG,OAAO3rG,KAAKswd,GACV,CAAP,EAAOA,WAuBHzT,EAAAp+c,UAAA+xd,SAAN,SACEtD,EACA1nV,eAAA,IAAAA,IAAAA,EAAA,CAAqB,wGAErB++R,GAAS2oD,EAAK,MAAO,CACnB,SACA7pc,WACAk+C,YACA,CAACs7Y,EAAa,iBAEhBt4C,GAAS/+R,EAAS,UAAW,CAAChnI,QAG5B0ud,aAAerQ,GAAc3oN,EAAAg5N,SAA7B,aAAmC,SAAMrQ,EAAY1rX,KAAK+7X,WAAvBh5N,EAAA0L,EAAAiC,wBAIrC,OAFM2tN,E3Hp+BkB,SAAIvlc,EAAUu7G,GAExC,IADA,IAAMirV,EAAU,IAAIjyd,MAASgnI,EAAQnmI,QAC5Bq0M,EAAM,EAAGvoL,EAAMq6G,EAAQnmI,OAAQq0M,EAAMvoL,EAAKuoL,IACjD+8Q,EAAQ/8Q,GAAOzpL,EAAIu7G,EAAQkuE,IAE7B,OAAO+8Q,CACT,C2H89BqBC,CAHLx8N,EAGyB+zN,WAAYziV,GAE1C,CAAP,EAAOzmI,KAAK4xd,WAAWnB,YAmCnB3S,EAAAp+c,UAAAmyd,UAAN,SACEz/c,EACAimb,EACAC,+FAGuB,OADvB9yB,GAASpzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aACX,GAAMxhd,KAAK4xd,WAChC,CAACx/c,GACD,CAACimb,GACD,CAACC,YAEH,MAAO,CAAP,EALuBnjM,EAAA2N,OAItB,YAgCGg7M,EAAAp+c,UAAAkyd,WAAN,SACEpqB,EACAsqB,EACAC,eADA,IAAAD,IAAAA,EAAA,SACA,IAAAC,IAAAA,EAAA,uHAEA,GAAqB,IAAjBvqB,EAAMlnc,OAAc,MAAO,CAAC,EAAD,IAG/B,IAASq0M,EAAM,EAAGvoL,EAAMo7a,EAAMlnc,OAAS,EAAGq0M,EAAMvoL,EAAKuoL,IAGnD,GAFMq9Q,EAAWxqB,EAAM7yP,GACjB4lK,EAAWitF,EAAM7yP,EAAM,GACzBq9Q,EAASvjc,KAAKq7C,UAAYywS,EAAS9rV,KAAKq7C,QAC1C,MAAM,IAAIo9V,GAIRp9V,EAAU09X,EAAM,GAAG/4a,KAAKq7C,QACxBmoZ,EACJnoZ,IAAY9pE,KAAK8pE,QACb,SAACnpE,GAAmB,OAAAA,CAAA,EACpByza,GAAgBr5R,IAAIjxE,EAAS9pE,KAAK8pE,SAASv8B,KAE3Cwgb,EAAgB,IAAItud,MAAuB+nc,EAAMlnc,QAC9Cq0M,EAAM,EAAGvoL,EAAMo7a,EAAMlnc,+BAAQq0M,EAAMvoL,GACpCha,EAAO6/c,EAAczqB,EAAM7yP,GAAKlmL,MAChC0qE,EAAM24X,EAAcn9Q,GACpBlqG,EAASsnX,EAAuBp9Q,GAErB,GAAMyjP,GAAgBr9S,IAAI3oI,EAAM+mF,EAAKsR,KALT,aAKvCmzW,EAAW/8M,EAAAiC,OAEXt/P,EAAMxD,KAAK8pE,QAAQmnW,UACzB88C,EAAcp5Q,GAAOgpQ,GAAgB1zC,GAAGzma,EAAKxD,KAAM49c,2BARJjpQ,iBAajD,OAFAwgD,EAAAn1P,KAAK+td,eAAc9sd,KAAIV,MAAA40P,EAAI44N,GAEpB,CAAP,EAAOA,WAaHjQ,EAAAp+c,UAAAimC,MAAN,uGACE,SAAM3lC,KAAKkyd,SAASlyd,KAAKuxF,eACzB,OADA4jK,EAAA2N,OACA,GAAM9iQ,KAAKkyd,SAASlyd,KAAK4sG,gBACzB,OADAuoJ,EAAA2N,OACA,GAAM9iQ,KAAKkyd,SAASlyd,KAAK+td,uBACzB,OADA54N,EAAA2N,OACA,GAAM9iQ,KAAKkyd,SAASlyd,KAAKgud,uBACzB,OADA74N,EAAA2N,OACA,GAAM9iQ,KAAKkyd,SAASlyd,KAAKiud,4BAAzB94N,EAAA2N,mBAmBIg7M,EAAAp+c,UAAAiiD,KAAN,SAAW9wB,eAAA,IAAAA,IAAAA,EAAA,+GAoBT,OAlBEskO,EAIEtkO,EAAOshc,iBAJTA,OAAgB,IAAAh9N,GAAOA,EACvB0L,EAGEhwO,EAAOuhc,eAHTA,OAAc,IAAAvxN,GAAOA,EACrBC,EAEEjwO,EAAO2mZ,eAFTA,OAAc,IAAA12K,EAAG,GAAEA,EACnBl1O,EACEiF,EAAO03b,uBADTA,OAAsB,IAAA38b,GAAOA,EAG/B45Y,GAAS2sD,EAAkB,mBAAoB,CAAC,YAChD3sD,GAAS4sD,EAAgB,iBAAkB,CAAC,YAC5C5sD,GAASgS,EAAgB,iBAAkB,CAAC,WAC5ChS,GAAS+iD,EAAwB,yBAA0B,CAAC,YAExD6J,GAA0C,IAAxBpyd,KAAKgwd,gBAAsBhwd,KAAKowd,UAElD7H,IACIniZ,EAAOpmE,KAAK8td,UAAUhlZ,aAClB1C,EAAKmiZ,yBAGjB,GAAMvod,KAAK2lC,gBAGX,OAHArxB,EAAAwuP,OAGO,CAAP,GADeqvN,EAAmB93C,GAAkB9C,IACtCkB,WAAWz4a,KAAK8pE,QAAS0tW,GAAgBG,6BAkBnDmmC,EAAAp+c,UAAA2yd,aAAN,SAAmBxhc,eAAA,IAAAA,IAAAA,EAAA,uGAGH,OAFNskO,EAAqCtkO,EAAOkwY,QAA5CA,OAAO,IAAA5rK,GAAQA,EAAKm9N,E/HpvCzB,SAAgBpyd,EAAG/C,GACtB,IAAIE,EAAI,CAAC,EACT,IAAK,IAAIsD,KAAKT,EAAO3C,OAAOmC,UAAUC,eAAeC,KAAKM,EAAGS,IAAMxD,EAAEqY,QAAQ7U,GAAK,IAC9EtD,EAAEsD,GAAKT,EAAES,IACb,GAAS,MAALT,GAAqD,oBAAjC3C,OAAOssB,sBACtB,KAAIvqB,EAAI,EAAb,IAAgBqB,EAAIpD,OAAOssB,sBAAsB3pB,GAAIZ,EAAIqB,EAAEL,OAAQhB,IAC3DnC,EAAEqY,QAAQ7U,EAAErB,IAAM,GAAK/B,OAAOmC,UAAUsrB,qBAAqBprB,KAAKM,EAAGS,EAAErB,MACvEjC,EAAEsD,EAAErB,IAAMY,EAAES,EAAErB,IAF4B,CAItD,OAAOjC,CACX,C+H0uC4CmmS,CAAK3yQ,EAAvC,aACN20Y,GAASzE,EAAS,UAAW,CAAC,YAChB,GAAM/ga,KAAK2hD,KAAK2wa,WAE9B,OAFM3ra,EAAQk6M,EAAAiC,OACRvS,E9H1wCoB,SAAC5pM,GAG7B,IAFA,IAAI4pM,EAAS,GACPnkO,EAAMu6B,EAAMrmD,OACThB,EAAI,EAAGA,EAAI8sB,EAAK9sB,GAAK,EAC5BixP,GAAUhoJ,GAAM5hD,EAAMrnD,IAAM,GAC5BixP,GAAUhoJ,IAAmB,EAAX5hD,EAAMrnD,KAAW,EAAMqnD,EAAMrnD,EAAI,IAAM,GACzDixP,GAAUhoJ,IAAuB,GAAf5hD,EAAMrnD,EAAI,KAAY,EAAMqnD,EAAMrnD,EAAI,IAAM,GAC9DixP,GAAUhoJ,GAAqB,GAAf5hD,EAAMrnD,EAAI,IAS5B,OANI8sB,EAAM,IAAM,EACdmkO,EAASA,EAAOvpK,UAAU,EAAGupK,EAAOjwP,OAAS,GAAK,IACzC8rB,EAAM,IAAM,IACrBmkO,EAASA,EAAOvpK,UAAU,EAAGupK,EAAOjwP,OAAS,GAAK,MAG7CiwP,CACT,C8HyvCmBgiO,CAAe5ra,GACvB,CAAP,EAAOo6W,EAAU,+BAA+BxwK,EAAWA,WAG7DutN,EAAAp+c,UAAAypd,yBAAA,SAAyB3ld,GAEvB,IADA,IAAMgkc,EAAQxnc,KAAKkpd,WACVv0Q,EAAM,EAAGvoL,EAAMo7a,EAAMlnc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACtD,IAAMviM,EAAOo1b,EAAM7yP,GACbt7L,EAAcjH,EAAKqc,KAAKi/Y,SAE9B,QAAkCj8Y,KAAnB,OAAXpY,QAAW,IAAXA,OAAW,EAAXA,EAAa7D,QAAQhS,IACvB,OAAO4O,EAKb,EAEc0rc,EAAAp+c,UAAAwyd,SAAd,SAAuBM,uGACZ79Q,EAAM,EAAGvoL,EAAMomc,EAAYlyd,+BAAQq0M,EAAMvoL,EAChD,GAAMomc,EAAY79Q,GAAKopQ,SAD4B,aACnD5oN,EAAA2N,+BADqDnuD,mCAKjDmpQ,EAAAp+c,UAAAwud,eAAR,WACE,IAAMuE,EAAS,+CACTlrc,EAAM,IAAIlW,KAEVquD,EAAO1/D,KAAKyud,cAElBzud,KAAK2vd,YAAY8C,GACjBzyd,KAAK+vd,oBAAoBxoc,GAEpBm4C,EAAK5hE,IAAIuua,GAAQpC,GAAG,aAAajqa,KAAK0vd,WAAW+C,GACjD/yZ,EAAK5hE,IAAIuua,GAAQpC,GAAG,kBAAkBjqa,KAAK8vd,gBAAgBvoc,EAClE,EAEQu2b,EAAAp+c,UAAA+ud,YAAR,WACE,IAAMiE,EAAe1yd,KAAK8pE,QAAQmmL,OAAOjwP,KAAK8pE,QAAQgnW,YAAYuH,MAClE,GAAIq6C,aAAwBhkD,GAAS,OAAOgkD,EAE5C,IAAMC,EAAU3yd,KAAK8pE,QAAQx/C,IAAI,CAAC,GAGlC,OAFAtqB,KAAK8pE,QAAQgnW,YAAYuH,KAAOr4a,KAAK8pE,QAAQq6H,SAASwuR,GAE/CA,CACT,EAEQ7U,EAAAp+c,UAAAyxd,cAAR,WACE,IAAKnxd,KAAKg/a,QAAS,MAAM,IAAI45B,GAC7B,OAAO54c,KAAKg/a,OACd,EAqBF8+B,CAAA,CA9xCA,eAiyCA,SAAS4Q,GACPv9C,GAEA,KACIA,aAAqB2J,OACrB3J,aAAqB2M,IAEvB,MAAM,IAAIrX,GAA0B,CAACqU,GAAcgD,IAAY3M,EAEnE,CC72CO,IAAKyhD,IAAZ,SAAYA,GACVA,EAAA,gBACAA,EAAA,oBACAA,EAAA,gBACAA,EAAA,kBACAA,EAAA,gBACAA,EAAA,kBACAA,EAAA,wBACAA,EAAA,sBACAA,EAAA,sBACAA,EAAA,sBACAA,EAAA,wBACAA,EAAA,qBACD,CAbD,CAAYA,KAAAA,GAAS,KCwDrB,IAAApR,GAAA,WAmDE,SAAAA,EAAoBqR,EAAuBrvd,EAAa2C,GARhD,KAAAgxF,SAAW,GACX,KAAA4+B,UAAYr4C,GAAI,EAAG,EAAG,GACtB,KAAAwkD,WAAa,GACb,KAAA5+H,EAAI,EACJ,KAAAa,EAAI,EAKVqha,GAASqtD,EAAU,WAAY,CAAC,CAACxgD,GAAa,iBAC9C7M,GAAShia,EAAK,MAAO,CAAC,CAACmsa,GAAQ,YAC/BnK,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBAEpC99c,KAAKyuB,KAAOokc,EACZ7yd,KAAKwD,IAAMA,EACXxD,KAAKmG,IAAMA,CACb,CA49CF,OA78CEq7c,EAAA9hd,UAAAu6H,YAAA,SAAYhlD,GACV,IAAM8qY,EAAexQ,GAAUt6X,GAC/B4wV,GAAek6C,EAAc,eAAgB,IAC7C//c,KAAKyuB,KAAKjf,IAAI68Z,GAAQpC,GAAG,UAAWjqa,KAAKmG,IAAI2jE,QAAQx/C,IAAIy1b,GAC3D,EAUAyB,EAAA9hd,UAAA8gc,YAAA,WACE,IAAMzyB,EAAS/ta,KAAKyuB,KAAKs/Y,SACzB,OAAOihC,GAAQjhC,EAASA,EAAO/D,WAAa,EAC9C,EAsCAw3C,EAAA9hd,UAAA87X,QAAA,SAAQx4X,EAAeF,GACrB0ia,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAE5B,IAAMy1b,EAAWv4b,KAAK8yd,cACtB9yd,KAAK+yd,YAAYx6B,EAASj1b,EAAGi1b,EAASp0b,EAAGnB,EAAOF,GAEhD,IAAMkwd,EAAUhzd,KAAKizd,aACfC,EAAWlzd,KAAKmzd,cAChBC,EAAUpzd,KAAKqzd,aACfC,EAAStzd,KAAKuzd,YAEdC,EAAaxzd,KAAKyuB,KAAKq/Y,UACvB2lD,EAAczzd,KAAKyuB,KAAKo/Y,WACxB6lD,EAAa1zd,KAAKyuB,KAAKk/Y,UACvBgmD,EAAY3zd,KAAKyuB,KAAKm/Y,SAExB4lD,GAAc7uD,GAAmBquD,EAASz6B,IAC5Cv4b,KAAK4zd,WAAWr7B,EAASj1b,EAAGi1b,EAASp0b,EAAGnB,EAAOF,GAE7C2wd,GAAe9uD,GAAmBuuD,EAAU36B,IAC9Cv4b,KAAK6zd,YAAYt7B,EAASj1b,EAAGi1b,EAASp0b,EAAGnB,EAAOF,GAE9C4wd,GAAc/uD,GAAmByuD,EAAS76B,IAC5Cv4b,KAAK8zd,WAAWv7B,EAASj1b,EAAGi1b,EAASp0b,EAAGnB,EAAOF,GAE7C6wd,GAAahvD,GAAmB2uD,EAAQ/6B,IAC1Cv4b,KAAK+zd,UAAUx7B,EAASj1b,EAAGi1b,EAASp0b,EAAGnB,EAAOF,EAElD,EAcA0+c,EAAA9hd,UAAAm4S,SAAA,SAAS70S,GACPwia,GAASxia,EAAO,QAAS,CAAC,WAC1BhD,KAAKw7X,QAAQx4X,EAAOhD,KAAK4/X,UAAU98X,OACrC,EAcA0+c,EAAA9hd,UAAAo4S,UAAA,SAAUh1S,GACR0ia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B9C,KAAKw7X,QAAQx7X,KAAK4/X,UAAU58X,MAAOF,EACrC,EAmBA0+c,EAAA9hd,UAAAqzd,YAAA,SAAYzvd,EAAWa,EAAWnB,EAAeF,GAC/C0ia,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBqha,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B,IAAMy1b,EAAWv4b,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IAC5D9C,KAAKyuB,KAAKjf,IAAI68Z,GAAQoB,SAAU8qB,EAClC,EAmBAipB,EAAA9hd,UAAAk0d,WAAA,SAAWtwd,EAAWa,EAAWnB,EAAeF,GAC9C0ia,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBqha,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B,IAAMkwd,EAAUhzd,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IAC3D9C,KAAKyuB,KAAKjf,IAAI68Z,GAAQyB,QAASklD,EACjC,EAmBAxR,EAAA9hd,UAAAm0d,YAAA,SAAYvwd,EAAWa,EAAWnB,EAAeF,GAC/C0ia,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBqha,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B,IAAMowd,EAAWlzd,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IAC5D9C,KAAKyuB,KAAKjf,IAAI68Z,GAAQwB,SAAUqlD,EAClC,EAmBA1R,EAAA9hd,UAAAo0d,WAAA,SAAWxwd,EAAWa,EAAWnB,EAAeF,GAC9C0ia,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBqha,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B,IAAMswd,EAAUpzd,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IAC3D9C,KAAKyuB,KAAKjf,IAAI68Z,GAAQsB,QAASylD,EACjC,EAmBA5R,EAAA9hd,UAAAq0d,UAAA,SAAUzwd,EAAWa,EAAWnB,EAAeF,GAC7C0ia,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBqha,GAASxia,EAAO,QAAS,CAAC,WAC1Bwia,GAAS1ia,EAAQ,SAAU,CAAC,WAC5B,IAAMwwd,EAAStzd,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAChnB,EAAGa,EAAGb,EAAIN,EAAOmB,EAAIrB,IAC1D9C,KAAKyuB,KAAKjf,IAAI68Z,GAAQuB,OAAQ0lD,EAChC,EAaA9R,EAAA9hd,UAAAkgY,QAAA,WACQ,IAAAzqI,EAAoBn1P,KAAK8yd,cAC/B,MAAO,CAAE9vd,MADImyP,EAAAnyP,MACGF,OADKqyP,EAAAryP,OAEvB,EAYA0+c,EAAA9hd,UAAAiqZ,SAAA,WACE,OAAO3pZ,KAAK4/X,UAAU58X,KACxB,EAYAw+c,EAAA9hd,UAAAkqZ,UAAA,WACE,OAAO5pZ,KAAK4/X,UAAU98X,MACxB,EAmBA0+c,EAAA9hd,UAAAozd,YAAA,WAEE,OADiB9yd,KAAKyuB,KAAKg/Y,WACXrD,aAClB,EAkBAo3C,EAAA9hd,UAAAuzd,WAAA,iBACQD,EAAUhzd,KAAKyuB,KAAKq/Y,UAC1B,OAA2B,QAA3B34K,EAAc,OAAP69N,QAAO,IAAPA,OAAO,EAAPA,EAAS5oD,qBAAW,IAAAj1K,EAAAA,EAAMn1P,KAAK8yd,aACxC,EAmBAtR,EAAA9hd,UAAAyzd,YAAA,iBACQD,EAAWlzd,KAAKyuB,KAAKo/Y,WAC3B,OAA4B,QAA5B14K,EAAe,OAAR+9N,QAAQ,IAARA,OAAQ,EAARA,EAAU9oD,qBAAW,IAAAj1K,EAAAA,EAAMn1P,KAAKizd,YACzC,EAkBAzR,EAAA9hd,UAAA2zd,WAAA,iBACQD,EAAUpzd,KAAKyuB,KAAKk/Y,UAC1B,OAA2B,QAA3Bx4K,EAAc,OAAPi+N,QAAO,IAAPA,OAAO,EAAPA,EAAShpD,qBAAW,IAAAj1K,EAAAA,EAAMn1P,KAAKizd,YACxC,EAgBAzR,EAAA9hd,UAAA6zd,UAAA,iBACQD,EAAStzd,KAAKyuB,KAAKm/Y,SACzB,OAA0B,QAA1Bz4K,EAAa,OAANm+N,QAAM,IAANA,OAAM,EAANA,EAAQlpD,qBAAW,IAAAj1K,EAAAA,EAAMn1P,KAAKizd,YACvC,EAmBAzR,EAAA9hd,UAAAs0d,iBAAA,SAAiB1wd,EAAWa,GAC1Bqha,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAElBnE,KAAKyuB,KAAK4oB,YACVr3C,KAAKi0d,mBAEL,IAAM3zc,EAAQtgB,KAAKk0d,oBACjBrjB,KACAphY,GAAUnsE,EAAGa,IAETgwd,EAAWn0d,KAAKmG,IAAI2jE,QAAQq6H,SAAS7jL,GAErCF,EAAMpgB,KAAKk0d,oBAAoBpjB,MAC/BsjB,EAASp0d,KAAKmG,IAAI2jE,QAAQq6H,SAAS/jL,GAEzCpgB,KAAKyuB,KAAKskZ,mBAAmBohD,EAAUC,EACzC,EAeA5S,EAAA9hd,UAAAoX,MAAA,SAAMxT,EAAWa,GACfqha,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBnE,KAAKw7X,QAAQx7X,KAAK2pZ,WAAarmZ,EAAGtD,KAAK4pZ,YAAczlZ,GACrDnE,KAAKq0d,aAAa/wd,EAAGa,GACrBnE,KAAKs0d,iBAAiBhxd,EAAGa,EAC3B,EAoBAq9c,EAAA9hd,UAAA20d,aAAA,SAAa/wd,EAAWa,GACtBqha,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAElBnE,KAAKyuB,KAAK4oB,YACVr3C,KAAKi0d,mBAEL,IAAM3zc,EAAQtgB,KAAKk0d,oBAAoBrjB,KAAqB/5b,GAAMxT,EAAGa,IAC/Dgwd,EAAWn0d,KAAKmG,IAAI2jE,QAAQq6H,SAAS7jL,GAErCF,EAAMpgB,KAAKk0d,oBAAoBpjB,MAC/BsjB,EAASp0d,KAAKmG,IAAI2jE,QAAQq6H,SAAS/jL,GAEzCpgB,KAAKyuB,KAAKskZ,mBAAmBohD,EAAUC,EACzC,EAkBA5S,EAAA9hd,UAAA40d,iBAAA,SAAiBhxd,EAAWa,GAC1Bqha,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAElB,IAAMowd,EAASv0d,KAAKyuB,KAAKi/Y,SACzB,GAAK6mD,EAEL,IAAK,IAAI5/Q,EAAM,EAAGA,EAAM4/Q,EAAO/xd,OAAQmyM,IAAO,CAC5C,IAAM6/Q,EAAQD,EAAOtkO,OAAOt7C,GACxB6/Q,aAAiB9lD,IAAS1ua,KAAKy0d,WAAWD,EAAOlxd,EAAGa,GAE5D,EAmBAq9c,EAAA9hd,UAAAg1d,cAAA,WACE10d,KAAKi0d,kBAAiB,GACtBj0d,KAAKsD,EAAI,EACTtD,KAAKmE,EAAI,CACX,EAsBAq9c,EAAA9hd,UAAAyjD,QAAA,SAAQghB,GAENqhW,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCh+c,KAAKmkE,KAAOA,EACZnkE,KAAK20d,QAAU30d,KAAKyuB,KAAK+kZ,kBAAkBxza,KAAKmkE,KAAKt1D,KAAM7O,KAAKmkE,KAAK3gE,IACvE,EAgBAg+c,EAAA9hd,UAAAs+b,YAAA,SAAY7mW,GACVquU,GAASruU,EAAU,WAAY,CAAC,WAChCn3F,KAAKm3F,SAAWA,CAClB,EAkBAqqX,EAAA9hd,UAAAk1d,aAAA,SAAa7+V,GACXyvS,GAASzvS,EAAW,YAAa,CAAC,CAACx4H,OAAQ,WAC3CyC,KAAK+1H,UAAYA,CACnB,EAkBAyrV,EAAA9hd,UAAAm1d,cAAA,SAAc3yV,GACZsjS,GAAStjS,EAAY,aAAc,CAAC,WACpCliI,KAAKkiI,WAAaA,CACpB,EASAs/U,EAAA9hd,UAAAo1d,YAAA,WACE,MAAO,CAAExxd,EAAGtD,KAAKsD,EAAGa,EAAGnE,KAAKmE,EAC9B,EASAq9c,EAAA9hd,UAAAq1d,KAAA,WACE,OAAO/0d,KAAKsD,CACd,EASAk+c,EAAA9hd,UAAAs1d,KAAA,WACE,OAAOh1d,KAAKmE,CACd,EAiBAq9c,EAAA9hd,UAAAmiD,OAAA,SAAOv+C,EAAWa,GAChBqha,GAASlia,EAAG,IAAK,CAAC,WAClBkia,GAASrha,EAAG,IAAK,CAAC,WAClBnE,KAAKsD,EAAIA,EACTtD,KAAKmE,EAAIA,CACX,EAeAq9c,EAAA9hd,UAAAu1d,SAAA,SAASC,GACP1vD,GAAS0vD,EAAW,YAAa,CAAC,WAClCl1d,KAAKmE,GAAK+wd,CACZ,EAeA1T,EAAA9hd,UAAAy1d,OAAA,SAAOC,GACL5vD,GAAS4vD,EAAW,YAAa,CAAC,WAClCp1d,KAAKmE,GAAKixd,CACZ,EAeA5T,EAAA9hd,UAAA21d,SAAA,SAASC,GACP9vD,GAAS8vD,EAAW,YAAa,CAAC,WAClCt1d,KAAKsD,GAAKgyd,CACZ,EAeA9T,EAAA9hd,UAAA61d,UAAA,SAAUC,GACRhwD,GAASgwD,EAAW,YAAa,CAAC,WAClCx1d,KAAKsD,GAAKkyd,CACZ,EA+BAhU,EAAA9hd,UAAAmpd,cAAA,eAAc,IAAAzwW,EAAA,GAAA5sF,EAAA,EAAAA,EAAAnrB,UAAAC,OAAAkrB,IAAA4sF,EAAA5sF,GAAAnrB,UAAAmrB,GACZk6Y,GAAattT,EAAU,WAAY,CAAC,CAAC03T,GAAa,iBAClD,IAAM0B,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,EAAsBp5T,EACxB,EAuCAopW,EAAA9hd,UAAA+1d,SAAA,SAASvsb,EAAcrY,0BAAA,IAAAA,IAAAA,EAAA,IACrB20Y,GAASt8X,EAAM,OAAQ,CAAC,WACxBu8X,GAAkB50Y,EAAQxd,MAAO,gBAAiB,CAAC,CAAC9V,OAAQ,WAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DssV,GAAkB50Y,EAAQszC,KAAM,eAAgB,CAAC,CAAC65Y,GAAS,aAC3Dv4C,GAAkB50Y,EAAQruB,KAAM,eAAgB,CAAC,WACjDija,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQylb,MAAO,gBAAiB,CAAC,CAAC/4c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQ0lb,MAAO,gBAAiB,CAAC,CAACh5c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQqxG,WAAY,qBAAsB,CAAC,WAC7DujS,GAAkB50Y,EAAQqhD,SAAU,mBAAoB,CAAC,WACzDuzV,GAAkB50Y,EAAQ6tY,WAAY,qBAAsB,CAACj/Z,QAC7D0la,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAajE,IAXM,IAAA59L,EAAmCh1R,KAAK21d,eAAe9kc,EAAQszC,MAA7DyxZ,EAAO5gM,EAAA4gM,QAAEC,EAAO7gM,EAAA6gM,QAAEC,EAAU9gM,EAAA8gM,WAC9B3+X,EAAWtmE,EAAQruB,MAAQxC,KAAKm3F,SAEhCunU,EAAa7tY,EAAQ6tY,YAAc1+Z,KAAKmG,IAAIqnd,kBAE5CjkV,OACiB93G,IAArBZ,EAAQqhD,SACJksV,GAAUH,GAAU/0X,IACpBu1X,GAAmBv1X,EAAMw1X,EAAY7tY,EAAQqhD,UAJjC,SAAC70E,GAAc,OAAAw4d,EAAQn6C,kBAAkBr+a,EAAG85F,EAA7B,IAM3B4+X,EAAe,IAAIt2d,MAAM8pI,EAAMjpI,QAC5Bq0M,EAAM,EAAGvoL,EAAMm9G,EAAMjpI,OAAQq0M,EAAMvoL,EAAKuoL,IAC/CohR,EAAaphR,GAAOkhR,EAAQvzP,WAAW/4F,EAAMorE,IAG/C,IAAMqhR,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBu8Y,UAAW7kc,EAAQ6kc,YAGflkD,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,ExB55B2B,SAC7BjoS,EACA14G,GAkBA,IAhBA,IJgJ4BqxG,EIhJtBouS,EAAY,CAChBugC,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClDxzZ,KACAkwZ,GAAgBlib,EAAQxd,OACxB0+b,GAAelhb,EAAQszC,KAAMtzC,EAAQruB,OJ2IX0/H,EI1IZrxG,EAAQqxG,WJ2IxB4tS,GAAY7F,GAAG8H,GAAImkD,kBAAmB,CAACpnB,GAAY5sU,MI1IjDgwU,GACE5C,GAAUz+a,EAAQ3L,QAClBoqb,GAAUz+a,EAAQylb,OAClBhH,GAAUz+a,EAAQ0lb,OAClB1lb,EAAQvtB,EACRutB,EAAQ1sB,IAEVgD,OAAO8hN,SAEAtU,EAAM,EAAGvoL,EAAMm9G,EAAMjpI,OAAQq0M,EAAMvoL,EAAKuoL,IAC/C27N,EAAUrva,KAAKyiD,GAAS6lF,EAAMorE,IJiGJm7N,GAAY7F,GAAG8H,GAAIokD,WI7F/C,OADA7lD,EAAUrva,KAAK6hD,KAAWguZ,MACnBxgC,CACT,CwBm4BS8lD,CAAgBL,EAAc,CAC/B1id,MAAoB,QAAf8hP,EAAEtkO,EAAQxd,aAAK,IAAA8hP,EAAAA,EAAIn1P,KAAK+1H,UAC7B5xD,KAAM2xZ,EACNtzd,KAAM20F,EACNjyE,OAAsB,QAAhB27O,EAAEhwO,EAAQ3L,cAAM,IAAA27O,EAAAA,EAAImuM,GAAQ,GAClCsH,MAAoB,QAAfx1M,EAAEjwO,EAAQylb,aAAK,IAAAx1M,EAAAA,EAAIkuM,GAAQ,GAChCuH,MAAoB,QAAf3qb,EAAEiF,EAAQ0lb,aAAK,IAAA3qb,EAAAA,EAAIojb,GAAQ,GAChC1rc,EAAY,QAAXgR,EAAEuc,EAAQvtB,SAAC,IAAAgR,EAAAA,EAAItU,KAAKsD,EACrBa,EAAY,QAAX08S,EAAEhwR,EAAQ1sB,SAAC,IAAA08S,EAAAA,EAAI7gT,KAAKmE,EACrB+9H,WAA8B,QAApB4vQ,EAAEjhX,EAAQqxG,kBAAU,IAAA4vQ,EAAAA,EAAI9xY,KAAKkiI,WACvCm0U,cAAe2f,KAIfnlc,EAAQszC,OACNyxZ,EAAS51d,KAAKmjD,QAAQyya,GACrB51d,KAAKyuR,YAEd,EA2BA+yL,EAAA9hd,UAAAw6E,UAAA,SAAUF,EAAiBnpD,0BAAA,IAAAA,IAAAA,EAAA,IAEzB20Y,GAASxrV,EAAO,QAAS,CAAC,CAACmkY,GAAU,cACrC14C,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQ7tB,MAAO,gBAAiB,CAAC,WACnDyia,GAAkB50Y,EAAQ/tB,OAAQ,iBAAkB,CAAC,WACrD2ia,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQylb,MAAO,gBAAiB,CAAC,CAAC/4c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQ0lb,MAAO,gBAAiB,CAAC,CAACh5c,OAAQ,cAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DgsV,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAEjE,IAAMhK,EAAa5od,KAAKyuB,KAAKmlZ,WAAW,QAAS55V,EAAMx2E,KAEjDwyd,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBu8Y,UAAW7kc,EAAQ6kc,YAGflkD,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,EACKt3V,GAAU0uY,EAAY,CACvBtld,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAIn1P,KAAKsD,EACrBa,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI7gQ,KAAKmE,EACrBnB,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI9mL,EAAMx3E,OAAOQ,MACrCF,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAIouD,EAAMx3E,OAAOM,OACvCoiB,OAAsB,QAAhB5Q,EAAEuc,EAAQ3L,cAAM,IAAA5Q,EAAAA,EAAI06b,GAAQ,GAClCsH,MAAoB,QAAfz1J,EAAEhwR,EAAQylb,aAAK,IAAAz1J,EAAAA,EAAImuJ,GAAQ,GAChCuH,MAAoB,QAAfzkE,EAAEjhX,EAAQ0lb,aAAK,IAAAzkE,EAAAA,EAAIk9D,GAAQ,GAChCqH,cAAe2f,IAGrB,EAkCAxU,EAAA9hd,UAAA22d,SAAA,SACEC,EACAzlc,sBAAA,IAAAA,IAAAA,EAAA,IAGA20Y,GAAS8wD,EAAc,eAAgB,CACrC,CAAC3Y,GAAiB,qBAEpBl4C,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQimb,OAAQ,iBAAkB,CAAC,WACrDrxC,GAAkB50Y,EAAQkmb,OAAQ,iBAAkB,CAAC,WACrDtxC,GAAkB50Y,EAAQ7tB,MAAO,gBAAiB,CAAC,WACnDyia,GAAkB50Y,EAAQ/tB,OAAQ,iBAAkB,CAAC,WACrD2ia,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQylb,MAAO,gBAAiB,CAAC,CAAC/4c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQ0lb,MAAO,gBAAiB,CAAC,CAACh5c,OAAQ,cAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DgsV,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAEjE,IAAMhK,EAAa5od,KAAKyuB,KAAKmlZ,WAC3B,kBACA0iD,EAAa9yd,KAGTwyd,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBu8Y,UAAW7kc,EAAQ6kc,YAIf5e,OACiBrlb,IAAnBZ,EAAQ7tB,MAAuB6tB,EAAQ7tB,MAAQszd,EAAatzd,WACzCyuB,IAAnBZ,EAAQimb,OAAuBjmb,EAAQimb,OACvC,EAIEC,OACiBtlb,IAAnBZ,EAAQ/tB,OAAuB+tB,EAAQ/tB,OAASwzd,EAAaxzd,YAC1C2uB,IAAnBZ,EAAQkmb,OAAuBlmb,EAAQkmb,OACvC,EAGEvlC,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,ExBtgCoB,SACtB3ia,EACAgiB,GAWA,OACEggb,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClD5mY,GAAU5+C,EAAQvtB,EAAGutB,EAAQ1sB,GAC7B+rc,GAAcZ,GAAUz+a,EAAQ3L,SAChCpO,GAAM+Z,EAAQimb,OAAQjmb,EAAQkmb,QAC9B3G,GAAYd,GAAUz+a,EAAQylb,OAAQhH,GAAUz+a,EAAQ0lb,QACxDlE,GAAWxjc,GACXiic,MACA3pc,OAAO8hN,QATT,CwB0/BOotQ,CAASzN,EAAY,CACtBtld,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAIn1P,KAAKsD,EACrBa,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI7gQ,KAAKmE,EACrB2yc,OAAMA,EACNC,OAAMA,EACN7xb,OAAsB,QAAhB47O,EAAEjwO,EAAQ3L,cAAM,IAAA47O,EAAAA,EAAIkuM,GAAQ,GAClCsH,MAAoB,QAAf1qb,EAAEiF,EAAQylb,aAAK,IAAA1qb,EAAAA,EAAIojb,GAAQ,GAChCuH,MAAoB,QAAfjic,EAAEuc,EAAQ0lb,aAAK,IAAAjic,EAAAA,EAAI06b,GAAQ,GAChCqH,cAAe2f,IAGrB,EAuCAxU,EAAA9hd,UAAA62d,YAAA,SAAY/vX,EAAc31E,8BAAA,IAAAA,IAAAA,EAAA,IACxB20Y,GAASh/T,EAAM,OAAQ,CAAC,WACxBi/T,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQ/Z,MAAO,gBAAiB,CAAC,WACnD2uZ,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQ5d,YAAa,sBAAuB,CAAC,WAC/DwyZ,GAAkB50Y,EAAQxd,MAAO,gBAAiB,CAAC,CAAC9V,OAAQ,WAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DssV,GAAkB50Y,EAAQ/d,YAAa,sBAAuB,CAC5D,CAACvV,OAAQ,WAEXkoa,GAAkB50Y,EAAQ6lb,gBAAiB,0BAA2B,CACpEj3c,QAEFgma,GAAkB50Y,EAAQ8lb,gBAAiB,0BAA2B,CACpE,WAEFxxC,GACEt0Y,EAAQ4lb,cACR,wBACA1H,IAEFnpC,GACE/0Y,EAAQ2lc,cACR,wBACA,EACA,GAEFrxD,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAEjE,IAAMoD,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBq9Y,cAAe3lc,EAAQ2lc,cACvBd,UAAW7kc,EAAQ6kc,YAGf,UAAW7kc,GAAc,gBAAiBA,IAC9CA,EAAQ/d,YAAc4qE,GAAI,EAAG,EAAG,IAGlC,IAAM8zV,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,ExBp5BuB,SACzBhrU,EACA31E,aAcA,OAAAusY,GAAA,CACEyzC,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAElD5mY,GAAU5+C,EAAQvtB,EAAGutB,EAAQ1sB,GAC7B+rc,GAAcZ,GAAwB,QAAfn6M,EAACtkO,EAAQ3L,cAAM,IAAAiwO,EAAAA,EAAI65M,GAAQ,KAGlDn+a,EAAQ/Z,MAAQA,GAAM+Z,EAAQ/Z,OAAQ+Z,EAAQ/Z,OAASA,GAAM,GAAI,GAEjE+Z,EAAQxd,OAAS0/b,GAAgBlib,EAAQxd,OACzCwd,EAAQ/d,aAAewgc,GAAiBzib,EAAQ/d,aAChD+d,EAAQ5d,aAAekuC,GAAatwB,EAAQ5d,aAC5C4d,EAAQ4lb,eAAiBr1Z,GAAWvwB,EAAQ4lb,eAE5ClG,GAAsC,QAAxB1vM,EAAChwO,EAAQ6lb,uBAAe,IAAA71M,EAAAA,EAAI,GAA2B,QAAzBC,EAAEjwO,EAAQ8lb,uBAAe,IAAA71M,EAAAA,EAAI,IAEtEk1M,GAAmBxvW,GAAK,CAG3B31E,EAAQxd,OAASwd,EAAQ5d,YAAcw+b,KACvC5gb,EAAQxd,MAA6B7M,KACrCqqB,EAAQ/d,YAA6BsB,KACrC8tC,KAEA4uZ,OACA3pc,OAAO8hN,SwB22BFstQ,CAAY/vX,EAAM,CACnBljG,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAIn1P,KAAKsD,EACrBa,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI7gQ,KAAKmE,EACrB2S,MAAO+Z,EAAQ/Z,MACfoO,OAAsB,QAAhB47O,EAAEjwO,EAAQ3L,cAAM,IAAA47O,EAAAA,EAAIkuM,GAAQ,GAClC37b,MAAoB,QAAfuY,EAAEiF,EAAQxd,aAAK,IAAAuY,EAAAA,OAAI6F,EACxB3e,YAAgC,QAArBwB,EAAEuc,EAAQ/d,mBAAW,IAAAwB,EAAAA,OAAImd,EACpCxe,YAAgC,QAArB4tS,EAAEhwR,EAAQ5d,mBAAW,IAAA4tS,EAAAA,EAAI,EACpC61J,gBAAwC,QAAzB5kE,EAAEjhX,EAAQ6lb,uBAAe,IAAA5kE,EAAAA,OAAIrgX,EAC5Cklb,gBAAwC,QAAzB3hL,EAAEnkQ,EAAQ8lb,uBAAe,IAAA3hL,EAAAA,OAAIvjQ,EAC5Cglb,cAAoC,QAAvB4N,EAAExzb,EAAQ4lb,qBAAa,IAAA4N,EAAAA,OAAI5yb,EACxC4kb,cAAe2f,IAGrB,EAiBAxU,EAAA9hd,UAAA+2d,SAAA,SAAS5lc,iBACP20Y,GAAS30Y,EAAQvQ,MAAO,gBAAiB,CACvC,CAAC/iB,OAAQ,8BAEXioa,GAAS30Y,EAAQzQ,IAAK,cAAe,CACnC,CAAC7iB,OAAQ,8BAEXioa,GAAS30Y,EAAQvQ,MAAMhd,EAAG,kBAAmB,CAAC,WAC9Ckia,GAAS30Y,EAAQvQ,MAAMnc,EAAG,kBAAmB,CAAC,WAC9Cqha,GAAS30Y,EAAQzQ,IAAI9c,EAAG,gBAAiB,CAAC,WAC1Ckia,GAAS30Y,EAAQzQ,IAAIjc,EAAG,gBAAiB,CAAC,WAC1Csha,GAAkB50Y,EAAQgiH,UAAW,oBAAqB,CAAC,WAC3D4yR,GAAkB50Y,EAAQxd,MAAO,gBAAiB,CAAC,CAAC9V,OAAQ,WAC5Dkoa,GAAkB50Y,EAAQ0yE,UAAW,oBAAqB,CAAC9jG,QAC3Dgma,GAAkB50Y,EAAQ2yE,UAAW,oBAAqB,CAAC,WAC3D2hU,GAAyBt0Y,EAAQwrE,QAAS,kBAAmB0yW,IAC7DnpC,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DgsV,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAEjE,IAAMoD,EAAmBh2d,KAAKi2d,wBAAwB,CACpDO,cAAe3lc,EAAQsoD,QACvBu8Y,UAAW7kc,EAAQ6kc,YAGf,UAAW7kc,IACfA,EAAQxd,MAAQqqE,GAAI,EAAG,EAAG,IAG5B,IAAM8zV,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,ExBxoCoB,SAAC3gZ,WAUvB,OACEggb,KACAhgb,EAAQwlb,eAAiB1F,GAAiB9/a,EAAQwlb,eAClDxlb,EAAQxd,OAASigc,GAAiBzib,EAAQxd,OAC1C8tC,GAAatwB,EAAQgiH,WACrB09T,GAAgC,QAAlBp7M,EAACtkO,EAAQ0yE,iBAAS,IAAA4xJ,EAAAA,EAAI,GAAqB,QAAnB0L,EAAEhwO,EAAQ2yE,iBAAS,IAAAq9J,EAAAA,EAAI,GAC7Dh/M,GAAOhxB,EAAQvQ,MAAMhd,EAAGutB,EAAQvQ,MAAMnc,GACtC0sB,EAAQwrE,SAAWj7C,GAAWvwB,EAAQwrE,SACtCx6C,GAAOhxB,EAAQvQ,MAAMhd,EAAGutB,EAAQvQ,MAAMnc,GACtC29C,GAAOjxB,EAAQzQ,IAAI9c,EAAGutB,EAAQzQ,IAAIjc,GAClCiQ,KACA08b,MACA3pc,OAAO8hN,SwBmnCFwtQ,CAAS,CACVn2c,MAAOuQ,EAAQvQ,MACfF,IAAKyQ,EAAQzQ,IACbyyH,UAA4B,QAAnBsiH,EAAEtkO,EAAQgiH,iBAAS,IAAAsiH,EAAAA,EAAI,EAChC9hP,MAAoB,QAAfwtP,EAAEhwO,EAAQxd,aAAK,IAAAwtP,EAAAA,OAAIpvO,EACxB8xE,UAA4B,QAAnBu9J,EAAEjwO,EAAQ0yE,iBAAS,IAAAu9J,EAAAA,OAAIrvO,EAChC+xE,UAA4B,QAAnB53E,EAAEiF,EAAQ2yE,iBAAS,IAAA53E,EAAAA,OAAI6F,EAChC4qE,QAAwB,QAAjB/nF,EAAEuc,EAAQwrE,eAAO,IAAA/nF,EAAAA,OAAImd,EAC5B4kb,cAAe2f,IAGrB,EAsBAxU,EAAA9hd,UAAA82c,cAAA,SAAc3lb,sCAAA,IAAAA,IAAAA,EAAA,IACZ40Y,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQ7tB,MAAO,gBAAiB,CAAC,WACnDyia,GAAkB50Y,EAAQ/tB,OAAQ,iBAAkB,CAAC,WACrD2ia,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQylb,MAAO,gBAAiB,CAAC,CAAC/4c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQ0lb,MAAO,gBAAiB,CAAC,CAACh5c,OAAQ,cAC5Dkoa,GAAkB50Y,EAAQ5d,YAAa,sBAAuB,CAAC,WAC/DwyZ,GAAkB50Y,EAAQxd,MAAO,gBAAiB,CAAC,CAAC9V,OAAQ,WAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DssV,GAAkB50Y,EAAQ/d,YAAa,sBAAuB,CAC5D,CAACvV,OAAQ,WAEXkoa,GAAkB50Y,EAAQ6lb,gBAAiB,0BAA2B,CACpEj3c,QAEFgma,GAAkB50Y,EAAQ8lb,gBAAiB,0BAA2B,CACpE,WAEFxxC,GACEt0Y,EAAQ4lb,cACR,wBACA1H,IAEFnpC,GACE/0Y,EAAQ2lc,cACR,wBACA,EACA,GAEFrxD,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IAEjE,IAAMoD,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBq9Y,cAAe3lc,EAAQ2lc,cACvBd,UAAW7kc,EAAQ6kc,YAGf,UAAW7kc,GAAc,gBAAiBA,IAC9CA,EAAQxd,MAAQqqE,GAAI,EAAG,EAAG,IAG5B,IAAM8zV,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,EACKglC,GAAc,CACflzc,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAIn1P,KAAKsD,EACrBa,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI7gQ,KAAKmE,EACrBnB,MAAoB,QAAf89P,EAAEjwO,EAAQ7tB,aAAK,IAAA89P,EAAAA,EAAI,IACxBh+P,OAAsB,QAAhB8oB,EAAEiF,EAAQ/tB,cAAM,IAAA8oB,EAAAA,EAAI,IAC1B1G,OAAsB,QAAhB5Q,EAAEuc,EAAQ3L,cAAM,IAAA5Q,EAAAA,EAAI06b,GAAQ,GAClCsH,MAAoB,QAAfz1J,EAAEhwR,EAAQylb,aAAK,IAAAz1J,EAAAA,EAAImuJ,GAAQ,GAChCuH,MAAoB,QAAfzkE,EAAEjhX,EAAQ0lb,aAAK,IAAAzkE,EAAAA,EAAIk9D,GAAQ,GAChC/7b,YAAgC,QAArB+hR,EAAEnkQ,EAAQ5d,mBAAW,IAAA+hR,EAAAA,EAAI,EACpC3hR,MAAoB,QAAfgxc,EAAExzb,EAAQxd,aAAK,IAAAgxc,EAAAA,OAAI5yb,EACxB3e,YAAgC,QAArB4jd,EAAE7lc,EAAQ/d,mBAAW,IAAA4jd,EAAAA,OAAIjlc,EACpCilb,gBAAwC,QAAzBzhL,EAAEpkQ,EAAQ6lb,uBAAe,IAAAzhL,EAAAA,OAAIxjQ,EAC5Cklb,gBAAwC,QAAzBggB,EAAE9lc,EAAQ8lb,uBAAe,IAAAggB,EAAAA,OAAIllc,EAC5C4kb,cAAe2f,EACfvf,cAAoC,QAAvBhmO,EAAE5/M,EAAQ4lb,qBAAa,IAAAhmO,EAAAA,OAAIh/M,IAG9C,EAqBA+vb,EAAA9hd,UAAAk3d,WAAA,SAAW/lc,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAAruB,EAASquB,EAAOruB,KACxBija,GAAkBjja,EAAM,OAAQ,CAAC,WACjCxC,KAAKw2c,cAAa55C,GAAAA,GAAC,CAAC,EAAI/rY,GAAO,CAAE7tB,MAAOR,EAAMM,OAAQN,IACxD,EAqBAg/c,EAAA9hd,UAAAm3c,YAAA,SAAYhmb,kCAAA,IAAAA,IAAAA,EAAA,IACV40Y,GAAkB50Y,EAAQvtB,EAAG,YAAa,CAAC,WAC3Cmia,GAAkB50Y,EAAQ1sB,EAAG,YAAa,CAAC,WAC3Csha,GAAkB50Y,EAAQimb,OAAQ,iBAAkB,CAAC,WACrDrxC,GAAkB50Y,EAAQkmb,OAAQ,iBAAkB,CAAC,WACrDtxC,GAAkB50Y,EAAQ3L,OAAQ,iBAAkB,CAAC,CAAC3nB,OAAQ,cAC9Dkoa,GAAkB50Y,EAAQxd,MAAO,gBAAiB,CAAC,CAAC9V,OAAQ,WAC5Dqoa,GAAuB/0Y,EAAQsoD,QAAS,kBAAmB,EAAG,GAC9DssV,GAAkB50Y,EAAQ/d,YAAa,sBAAuB,CAC5D,CAACvV,OAAQ,WAEXqoa,GACE/0Y,EAAQ2lc,cACR,wBACA,EACA,GAEF/wD,GAAkB50Y,EAAQ5d,YAAa,sBAAuB,CAAC,WAC/DwyZ,GAAkB50Y,EAAQ6lb,gBAAiB,0BAA2B,CACpEj3c,QAEFgma,GAAkB50Y,EAAQ8lb,gBAAiB,0BAA2B,CACpE,WAEFxxC,GACEt0Y,EAAQ4lb,cACR,wBACA1H,IAEF5pC,GAAyBt0Y,EAAQ6kc,UAAW,oBAAqB9C,IACjE,IAAMoD,EAAmBh2d,KAAKi2d,wBAAwB,CACpD98Y,QAAStoD,EAAQsoD,QACjBq9Y,cAAe3lc,EAAQ2lc,cACvBd,UAAW7kc,EAAQ6kc,YAGf,UAAW7kc,GAAc,gBAAiBA,IAC9CA,EAAQxd,MAAQqqE,GAAI,EAAG,EAAG,IAG5B,IAAM8zV,EAAgBxxa,KAAKi0d,mBAC3BziD,EAAcvwa,KAAIV,MAAlBixa,EACKqlC,GAAY,CACbvzc,EAAY,QAAX6xP,EAAEtkO,EAAQvtB,SAAC,IAAA6xP,EAAAA,EAAIn1P,KAAKsD,EACrBa,EAAY,QAAX08P,EAAEhwO,EAAQ1sB,SAAC,IAAA08P,EAAAA,EAAI7gQ,KAAKmE,EACrB2yc,OAAsB,QAAhBh2M,EAAEjwO,EAAQimb,cAAM,IAAAh2M,EAAAA,EAAI,IAC1Bi2M,OAAsB,QAAhBnrb,EAAEiF,EAAQkmb,cAAM,IAAAnrb,EAAAA,EAAI,IAC1B1G,OAAsB,QAAhB5Q,EAAEuc,EAAQ3L,cAAM,IAAA5Q,EAAAA,OAAImd,EAC1Bpe,MAAoB,QAAfwtS,EAAEhwR,EAAQxd,aAAK,IAAAwtS,EAAAA,OAAIpvR,EACxB3e,YAAgC,QAArBg/X,EAAEjhX,EAAQ/d,mBAAW,IAAAg/X,EAAAA,OAAIrgX,EACpCxe,YAAgC,QAArB+hR,EAAEnkQ,EAAQ5d,mBAAW,IAAA+hR,EAAAA,EAAI,EACpC0hL,gBAAwC,QAAzB2N,EAAExzb,EAAQ6lb,uBAAe,IAAA2N,EAAAA,OAAI5yb,EAC5Cklb,gBAAwC,QAAzB+f,EAAE7lc,EAAQ8lb,uBAAe,IAAA+f,EAAAA,OAAIjlc,EAC5Cglb,cAAoC,QAAvBxhL,EAAEpkQ,EAAQ4lb,qBAAa,IAAAxhL,EAAAA,OAAIxjQ,EACxC4kb,cAAe2f,IAGrB,EAoBAxU,EAAA9hd,UAAAm3d,WAAA,SAAWhmc,QAAA,IAAAA,IAAAA,EAAA,IACD,IAAAskO,EAAetkO,EAAOruB,KAAtBA,OAAI,IAAA2yP,EAAG,IAAGA,EAClBswK,GAAkBjja,EAAM,OAAQ,CAAC,WACjCxC,KAAK62c,YAAWj6C,GAAAA,GAAC,CAAC,EAAI/rY,GAAO,CAAEimb,OAAQt0c,EAAMu0c,OAAQv0c,IACvD,EAEQg/c,EAAA9hd,UAAAi2d,eAAR,SAAuBxxZ,GACrB,IAAMyxZ,EAAU51d,KAAKmkE,KACf2yZ,EAAa92d,KAAK20d,QAQxB,OANIxwZ,EAAMnkE,KAAKmjD,QAAQghB,GAClBnkE,KAAK+2d,UAKH,CAAEnB,QAAOA,EAAEkB,WAAUA,EAAEjB,QAHd71d,KAAKmkE,KAGkB2xZ,WAFpB91d,KAAK20d,QAG1B,EAEQnT,EAAA9hd,UAAAq3d,QAAR,WACE,IAAK/2d,KAAKmkE,OAASnkE,KAAK20d,QAAS,CAC/B,IAAMxwZ,EAAOnkE,KAAKmG,IAAIogd,kBAAkBH,GAAcI,WACtDxmd,KAAKmjD,QAAQghB,GAEf,MAAO,CAACnkE,KAAKmkE,KAAOnkE,KAAK20d,QAC3B,EAEQnT,EAAA9hd,UAAA+uR,UAAR,WACEzuR,KAAKmkE,UAAO1yC,EACZzxB,KAAK20d,aAAUljc,CACjB,EAEQ+vb,EAAA9hd,UAAAu0d,iBAAR,SAAyB+C,GACvB,YADuB,IAAAA,IAAAA,GAAA,GACnBA,GAAeh3d,KAAKwxa,gBACxBxxa,KAAKwxa,cAAgBxxa,KAAKk0d,sBAC1Bl0d,KAAK6ya,iBAAmB7ya,KAAKmG,IAAI2jE,QAAQq6H,SAASnkM,KAAKwxa,eACvDxxa,KAAKyuB,KAAKmkZ,iBAAiB5ya,KAAK6ya,mBAHc7ya,KAAKwxa,aAKrD,EAEQgwC,EAAA9hd,UAAAw0d,oBAAR,eAA4B,IAAA5jD,EAAA,GAAA9kZ,EAAA,EAAAA,EAAAnrB,UAAAC,OAAAkrB,IAAA8kZ,EAAA9kZ,GAAAnrB,UAAAmrB,GAC1B,IAAMiQ,EAAOz7B,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CAAC,GAEnC,OADsB+lZ,GAAiBpG,GAAGxuY,EAAM60Y,EAElD,EAEQkxC,EAAA9hd,UAAAu2d,wBAAR,SAAgCplc,GAKtB,IAAAsoD,EAAsCtoD,EAAOsoD,QAApCq9Y,EAA6B3lc,EAAO2lc,cAArBd,EAAc7kc,EAAO6kc,UAErD,QACcjkc,IAAZ0nD,QACkB1nD,IAAlB+kc,QACc/kc,IAAdikc,EAHF,CAQA,IAAMrf,EAAgBr2c,KAAKmG,IAAI2jE,QAAQx/C,IAAI,CACzCijZ,KAAM,YACN0pD,GAAI99Y,EACJknX,GAAIm2B,EACJU,GAAIxB,IAKN,OAFY11d,KAAKyuB,KAAKulZ,aAAa,KAAMqiC,GAG3C,EAEQmL,EAAA9hd,UAAA+0d,WAAR,SAAmBD,EAAgBlxd,EAAWa,GAE5C,IADA,IAAM+/O,EAAY,CAAC,KAAM,KAAM,WAAY,aAAc,IAAK,QACrDvvC,EAAM,EAAGvoL,EAAM83N,EAAU5jP,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAC1D,IAAMx7B,EAAOq7S,EAAMvkO,OAAOo8K,GAAQpC,GAAG/lL,EAAUvvC,KAC3Cx7B,aAAgB+wP,IAAU/wP,EAAK0xP,gBAAgBvna,EAAGa,GAGxD,IAAM4R,EAAWy+c,EAAMvkO,OAAOo8K,GAAQpC,GAAG,YACzC,GAAIl0Z,aAAoBm0Z,GACtB,IAASv1N,EAAM,EAAGvoL,EAAMrW,EAASvT,OAAQmyM,EAAMvoL,EAAKuoL,IAAO,CACzD,IAAMzpL,EAAMnV,EAASk6O,OAAOt7C,GACxBzpL,aAAeg/Y,IAAUh/Y,EAAI2/Y,gBAAgBvna,EAAGa,GAG1D,EA1gDOq9c,EAAAv3C,GAAK,SAAC4oD,EAAuBrvd,EAAa2C,GAC/C,WAAIq7c,EAAQqR,EAAUrvd,EAAK2C,EAA3B,EAWKq7c,EAAAhkd,OAAS,SAAC2I,GACfq/Z,GAASr/Z,EAAK,MAAO,CAAC,CAAC23c,GAAa,iBACpC,IAAMqZ,EAAWxnD,GAAO1F,IAAI,GACtBmtD,EAAW/kD,GAAY8B,qBAAqBhua,EAAI2jE,QAASqtZ,GAE/D,OAAO,IAAI3V,EAAQ4V,EADHjxd,EAAI2jE,QAAQq6H,SAASizR,GACCjxd,EACxC,EAy/CFq7c,EAvhDA,eC3BA,IAAAyF,GAAA,SAAAj/L,GAqBE,SAAAi/L,EACEoQ,EACA7zd,EACA2C,GAHF,IAAAslF,EAKEu8L,EAAApoR,KAAA,KAAMy3d,EAAgB7zd,EAAK2C,IAAI,YAE/Bq/Z,GAAS6xD,EAAgB,aAAc,CACrC,CAACtyB,GAAmB,uBAGtBt5W,EAAKowX,UAAYwb,GACnB,CAuMF,OAxOuC16D,GAAAsqD,EAAAj/L,GA8CrCi/L,EAAAvnd,UAAAmld,SAAA,SAAS7qY,EAAiB+gY,QAAA,IAAAA,IAAAA,EAAYyD,GAAevD,QAEnD,IADA,IAAMlZ,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACjBowQ,EAAY/kd,KAAK4gd,4BACrBpe,EACAxoX,EACA+gY,GAEF/6c,KAAKwgd,wBAAwBhe,EAAQ,CAAEzC,OAAQglB,IAGjD/kd,KAAK0/c,aACP,EAsBAuH,EAAAvnd,UAAAs+b,YAAA,SAAY7mW,GACV4uU,GAAe5uU,EAAU,YACzBn3F,KAAK67c,UAAU7d,YAAY7mW,GAC3Bn3F,KAAKw/c,aACP,EA6BAyH,EAAAvnd,UAAA6hd,UAAA,SAEEr4a,EACA92B,EACAye,6BAEA40Y,GAAkBv8X,EAAM,OAAQ,CAAC,WACjCu8X,GAAkBrzZ,EAAM,OAAQ,CAAC,CAACovc,GAAS,aAC3C/C,GAA6B5tb,GAG7B,IAAM2xa,EAASxic,KAAK8/c,aAAa,CAC/Bx8c,GAAc,QAAX6xP,EAAQ,OAAPtkO,QAAO,IAAPA,OAAO,EAAPA,EAASvtB,SAAC,IAAA6xP,EAAAA,EAAI,IAA0B,QAArB0L,EAAQ,OAAPhwO,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,mBAAW,IAAA4tP,EAAAA,EAAI,GAAK,EACrD18P,GAAc,QAAX28P,EAAQ,OAAPjwO,QAAO,IAAPA,OAAO,EAAPA,EAAS1sB,SAAC,IAAA28P,EAAAA,EAAI,IAA0B,QAArBl1O,EAAQ,OAAPiF,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,mBAAW,IAAA2Y,EAAAA,EAAI,GAAK,EACrD5oB,MAAqB,QAAhBsR,EAAS,OAAPuc,QAAO,IAAPA,OAAO,EAAPA,EAAS7tB,aAAK,IAAAsR,EAAAA,EAAI,IACzBxR,OAAuB,QAAjB+9S,EAAS,OAAPhwR,QAAO,IAAPA,OAAO,EAAPA,EAAS/tB,cAAM,IAAA+9S,EAAAA,EAAI,GAC3BxlL,UAA6B,QAApBy2Q,EAAS,OAAPjhX,QAAO,IAAPA,OAAO,EAAPA,EAASwqG,iBAAS,IAAAy2Q,EAAAA,EAAIp0T,GAAI,EAAG,EAAG,GAC3Cx7D,gBAAyC,QAA1B8yQ,EAAS,OAAPnkQ,QAAO,IAAPA,OAAO,EAAPA,EAAS3O,uBAAe,IAAA8yQ,EAAAA,EAAIt3M,GAAI,IAAM,IAAM,KAC7D5qE,YAAoB,OAAP+d,QAAO,IAAPA,OAAO,EAAPA,EAAS/d,YACtBG,YAAiC,QAAtBoxc,EAAS,OAAPxzb,QAAO,IAAPA,OAAO,EAAPA,EAAS5d,mBAAW,IAAAoxc,EAAAA,EAAI,EACrCn/b,OAAuB,QAAjBwxc,EAAS,OAAP7lc,QAAO,IAAPA,OAAO,EAAPA,EAAS3L,cAAM,IAAAwxc,EAAAA,EAAI1nB,GAAQ,GACnCgR,QAAS92a,EACTnuB,OAAe,OAAP8V,QAAO,IAAPA,OAAO,EAAPA,EAAS9V,OACjB3I,KAAMA,EAAK5O,MAEPi+c,EAAYzhd,KAAKmG,IAAI2jE,QAAQq6H,SAASq+P,EAAO/ma,MAGnDz7B,KAAK67c,UAAU7Z,UAAUyf,GAGzB,IAAMt9Y,EAAoB,QAAhB8wN,EAAU,OAAPpkQ,QAAO,IAAPA,OAAO,EAAPA,EAASszC,YAAI,IAAA8wN,EAAAA,EAAIj1R,KAAKmG,IAAIg3V,UAAUimH,iBACjDpjd,KAAK0hd,uBAAuBlf,EAAQr+X,GAGpC/xD,EAAKqc,KAAKykZ,SAASuuC,EACrB,EAWAwF,EAAAvnd,UAAA2/c,uBAAA,iBACE,GAAIr/c,KAAK4/c,UAAW,OAAO,EAG3B,IADA,IAAM7d,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CAIxD,MADyB,QAAvBwgD,EAFa4sM,EAAQptP,GAEdmrP,wBAAgB,IAAA3qM,OAAA,EAAAA,EAAE4qM,kBAAkB7wB,IACxB,OAAO,EAG9B,OAAO,CACT,EAYA+3C,EAAAvnd,UAAA4/c,yBAAA,SAAyBn7Y,GACvBqhW,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCh+c,KAAK2hd,kBAAkBx9Y,EACzB,EAqBA8iZ,EAAAvnd,UAAAiid,kBAAA,SACEx9Y,EACAoqG,GAEAi3P,GAASrhW,EAAM,OAAQ,CAAC,CAAC65Y,GAAS,aAClCv4C,GAAkBl3P,EAAU,WAAY,CAAC3mH,WAGzC,IADA,IAAMm6Y,EAAU/hc,KAAK67c,UAAUha,aACtBltP,EAAM,EAAGvoL,EAAM21a,EAAQzhc,OAAQq0M,EAAMvoL,EAAKuoL,IAAO,CACxD,IAAM6tP,EAAST,EAAQptP,GACvB30M,KAAK0hd,uBAAuBlf,EAAQr+X,EAAMoqG,GAE9C,EAEQ04S,EAAAvnd,UAAAgid,uBAAR,SACElf,EACAr+X,EACAoqG,GAEA,IACM+wR,EAAc6b,IADO,OAAR5sS,QAAQ,IAARA,EAAAA,EAAY2tS,IACoBl8c,KAAMwic,EAAQr+X,IACjEnkE,KAAKugd,+BAA+B/d,EAAQr+X,EAAMm7X,EACpD,EA3NO2nB,EAAAh9C,GAAK,SACVotD,EACA7zd,EACA2C,GACG,WAAI8gd,EAAUoQ,EAAgB7zd,EAAK2C,EAAnC,EAwNP8gd,EAxOA,CAAuCvI,gBCsLvC,GA/MuB4Y,KACrB,MAAM/pc,EAAW6uL,KACXS,EAAWL,KACX+6Q,EAAc,IAAIlqQ,gBAAgB9/L,EAASqlI,QAC3C4kU,EAAgBD,EAAYz5d,IAAI,mBAAqB,MACrD25d,EAAiBF,EAAYz5d,IAAI,mBACjC0sP,EAAS+sO,EAAYz5d,IAAI,WAC/BwD,EAAAA,EAAAA,YAAU,KACe,cAAnBm2d,GACF/wO,GAAMxqL,QAAQ,sBACdw7Z,KAEAhxO,GAAM9/N,MAAM,kCACd,GACC,CAAC6wc,IAEJ,MAGMC,EAAavla,UACjB,IAIuB,aAHEy4K,GAAM4S,MAAM,GAAD96O,OAC7BqyC,GAAO,wBAAAryC,OAAuB8nP,KAEvB5vO,QACVuW,QAAQylB,IAAI,UAGhB,CAAE,MAAOhwB,IACPuK,QAAQylB,IAAIhwB,GACd,GA0IF,OACE6+N,EAAAA,GAAAA,MAAA,OAAK7iP,UAAU,4BAA2BN,SAAA,EACxCkjP,EAAAA,GAAAA,KAACc,GAAc,CACbj6O,SAAS,eACTyhO,UAAW,IACXrqO,MAAO,CAAEiO,OAAQ,SAEnB+zO,EAAAA,GAAAA,MAAA,OAAK7iP,UAAU,uBAAsBN,SAAA,EACnCkjP,EAAAA,GAAAA,KAAA,MAAI5iP,UAAU,wBAAuBN,SAAC,yBACtCkjP,EAAAA,GAAAA,KAAA,KAAG5iP,UAAU,0BAAyBN,SAAC,+DAGvCmjP,EAAAA,GAAAA,MAAA,OAAK7iP,UAAU,kBAAiBN,SAAA,EAC9BmjP,EAAAA,GAAAA,MAAA,KAAAnjP,SAAA,EACEkjP,EAAAA,GAAAA,KAAA,UAAAljP,SAAQ,uBAA2B,IAAEk1d,MAEvC/xO,EAAAA,GAAAA,MAAA,KAAAnjP,SAAA,EACEkjP,EAAAA,GAAAA,KAAA,UAAAljP,SAAQ,YAAgB,IAAEm1d,SAG9BhyO,EAAAA,GAAAA,MAAA,OAAK7iP,UAAU,cAAaN,SAAA,EAC1BkjP,EAAAA,GAAAA,KAAA,UACE5iP,UAAU,2BACVQ,QA/KqBu0d,KAC7B96Q,EAAS,cAADn6M,OAAe8nP,GAAU,CAAEjzO,SAAS,GAAO,EA8KXjV,SACjC,cAGDkjP,EAAAA,GAAAA,KAAA,UACE5iP,UAAU,6BACVQ,QArKc+uD,UACtB,IAEE,MAAMyla,QAAqBhtP,GAAM9sO,IAAI,GAAD4E,OAC/BqyC,GAAO,iCAAAryC,OAAgC8nP,IAE5Cr5N,QAAQylB,IAAI,aAAcghb,EAAanwc,KAAKA,MAE5C,MAAMuzG,EAAW48V,EAAanwc,KAAKA,KAAKq+N,WAAa,OAC/CywC,EAAS,aAGTshM,QAAe/Z,GAAYtgd,SAC3B4U,EAAOyld,EAAOzH,QAAQ,CAAC,IAAK,OAC5B,MAAEptd,EAAK,OAAEF,GAAWsP,EAAKwtX,UAGzBk4F,QAAiBD,EAAO3G,UAAU9K,GAAc2R,eAChDC,QAAoBH,EAAO3G,UAAU9K,GAAcI,WAGnDrvX,EAAW,GACX8gY,EAAY,GACZC,EAAmB,GACnBh2V,EAAa,GACnB,IAAI+tU,EAAOntc,EAAS,GAGpBsP,EAAKqjd,SAAS,kBAAmB,CAC/Bnyd,EAAGN,EAAQ,EAAI,GACfmB,EAAG8rc,EACHztc,KAAMy1d,EACN5kd,MAAOqqE,GAAI,EAAG,EAAG,GACjBvZ,KAAM2zZ,IAER7nB,GAAqB,IAAb/tU,EAGR9vH,EAAKqjd,SAAS,mBAAoB,CAChCnyd,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM6zZ,EACN3kd,MAAOqqE,GAAI,EAAG,EAAG,KAEnBtrE,EAAKqjd,SAAS,mBAAD/yd,OAAoBiQ,KAAKyH,MAAsB,IAAhBzH,KAAK4jC,WAAqB,CACpEjzC,EAAG,IACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM6zZ,EACN3kd,MAAOqqE,GAAI,EAAG,EAAG,KAEnBuyX,GAAQ/tU,EAER9vH,EAAKqjd,SAAS,SAAD/yd,QAAU,IAAI2O,MAAOE,sBAAwB,CACxDjO,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM6zZ,EACN3kd,MAAOqqE,GAAI,EAAG,EAAG,KAEnBuyX,GAAQ/tU,EAGR9vH,EAAKqjd,SAAS,WAAY,CACxBnyd,EAAG,GACHa,EAAG8rc,EACHztc,KAAM01d,EACN/zZ,KAAM2zZ,EACNzkd,MAAOqqE,GAAI,EAAG,EAAG,MAEnBuyX,GAAQ/tU,EAER9vH,EAAKqjd,SAAS,mBAAD/yd,OAAoBs4H,GAAY,CAC3C13H,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM6zZ,EACN3kd,MAAOqqE,GAAI,GAAK,GAAK,MAEvBuyX,GAAQ/tU,EAGR9vH,EAAKqjd,SAAS,mBAAoB,CAChCnyd,EAAG,GACHa,EAAG8rc,EACHztc,KAAM01d,EACN/zZ,KAAM2zZ,EACNzkd,MAAOqqE,GAAI,EAAG,EAAG,MAEnBuyX,GAAQ/tU,EAER9vH,EAAKqjd,SAAS,mBAAD/yd,OAAoB80d,GAAiB,CAChDl0d,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM6zZ,EACN3kd,MAAOqqE,GAAI,GAAK,GAAK,MAEvBuyX,GAAQ/tU,EACR9vH,EAAKqjd,SAAS,gBAAD/yd,OAAiB6zR,GAAU,CACtCjzR,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM2zZ,EACNzkd,MAAOqqE,GAAI,EAAG,GAAK,KAErBuyX,GAAQ/tU,EACR9vH,EAAKqjd,SAAS,4BAA6B,CACzCnyd,EAAG,GACHa,EAAG8rc,EACHztc,KAAM20F,EACNhzB,KAAM2zZ,EACNzkd,MAAOqqE,GAAI,EAAG,GAAK,KAErBuyX,GAAqB,EAAb/tU,EAKR,MAAMorU,QAAiBuqB,EAAOl2a,OAGxB25B,EAAO,IAAI3mE,KAAK,CAAC24b,GAAW,CAAEjqc,KAAM,oBACpCw6H,EAAO54H,SAAStC,cAAc,KACpCk7H,EAAKhpH,KAAOJ,IAAIC,gBAAgB4mE,GAChCuiD,EAAKs6V,SAAQ,WAAAz1d,OAAc80d,EAAa,QACxCvyd,SAASuE,KAAKwL,YAAY6oH,GAC1BA,EAAK5oH,QACLhQ,SAASuE,KAAK0L,YAAY2oH,EAC5B,CAAE,MAAOj3G,IACPuK,QAAQvK,MAAM,4BAA6BA,IAC3C8/N,GAAM9/N,MAAM,6BACd,GAgCiCtkB,SAC1B,6BAKD,EChMV,GAjBuBiwB,IAAuB,IAAtB,aAAE6lc,GAAc7lc,EACtC,MAAM,MAAE+9L,EAAK,KAAExmN,GAAS0qO,IAAa3xM,GAAUA,EAAM4jN,OAG/C4xO,EAAa5nd,SAAS3G,GAE5B,OAAKwmN,GAIA8nQ,EAAalnc,SAASmnc,IAIpB7yO,EAAAA,GAAAA,KAACtkC,GAAM,KAPLskC,EAAAA,GAAAA,KAAC1kC,GAAQ,CAAChmL,GAAG,IAAIvjB,SAAO,GAOhB,EC4FnB,SA1EA,WAEE,OACEiuO,EAAAA,GAAAA,KAAA,OAAK5iP,UAAU,MAAKN,UAClBkjP,EAAAA,GAAAA,KAAC77B,GAAa,CAAArnN,UACZmjP,EAAAA,GAAAA,MAAC7jC,GAAM,CAAAt/M,SAAA,EACLkjP,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,IAAIl4E,SAASk3N,EAAAA,GAAAA,KAAC8yO,GAAW,OACrC9yO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,YAAYl4E,SAASk3N,EAAAA,GAAAA,KAAC+yO,GAAS,OAC3C/yO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,WAAWl4E,SAASk3N,EAAAA,GAAAA,KAAC4qB,GAAO,OACxC5qB,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,gCACLl4E,SAASk3N,EAAAA,GAAAA,KAACgzO,GAAiB,OAE7B/yO,EAAAA,GAAAA,MAACrkC,GAAK,CAAC9yL,SAASk3N,EAAAA,GAAAA,KAACizO,GAAc,CAACL,aAAc,CAAC,OAAS91d,SAAA,EACtDkjP,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAACkzO,GAAS,OAC5ClzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAACmzO,GAAS,OAC5CnzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAACozO,GAAS,OAC5CpzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAACqzO,GAAS,OAC5CrzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAACszO,GAAS,OAC5CtzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,qBAAqBl4E,SAASk3N,EAAAA,GAAAA,KAACuzO,GAAS,OACpDvzO,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,0BACLl4E,SAASk3N,EAAAA,GAAAA,KAACupB,GAAiB,OAE7BvpB,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,kBAAkBl4E,SAASk3N,EAAAA,GAAAA,KAAC4jB,GAAU,OAClD5jB,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,kBAAkBl4E,SAASk3N,EAAAA,GAAAA,KAACwzO,GAAO,OAC/CxzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,gBAAgBl4E,SAASk3N,EAAAA,GAAAA,KAACyzO,GAAQ,OAC9CzzO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,aAAal4E,SAASk3N,EAAAA,GAAAA,KAAC0zO,GAAY,OAC/C1zO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,iBAAiBl4E,SAASk3N,EAAAA,GAAAA,KAAC0zO,GAAY,OAEnD1zO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,qBAAqBl4E,SAASk3N,EAAAA,GAAAA,KAAC2zO,GAAa,OACxD3zO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,iBAAiBl4E,SAASk3N,EAAAA,GAAAA,KAAC4zO,GAAS,UAIlD3zO,EAAAA,GAAAA,MAACrkC,GAAK,CAAC9yL,SAASk3N,EAAAA,GAAAA,KAACizO,GAAc,CAACL,aAAc,CAAC,OAAS91d,SAAA,EACtDkjP,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,kBAAkBl4E,SAASk3N,EAAAA,GAAAA,KAAC6zO,GAAY,OACpD7zO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,eAAel4E,SAASk3N,EAAAA,GAAAA,KAAC8zO,GAAM,OAC3C9zO,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,wBAAwBl4E,SAASk3N,EAAAA,GAAAA,KAAC+zO,GAAQ,OACtD/zO,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,sBACLl4E,SAASk3N,EAAAA,GAAAA,KAACg0O,GAAoB,OAEhCh0O,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,uBACLl4E,SAASk3N,EAAAA,GAAAA,KAACi0O,GAAmB,OAE/Bj0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,eAAel4E,SAASk3N,EAAAA,GAAAA,KAACk0O,GAAW,OAChDl0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,wBAAwBl4E,SAASk3N,EAAAA,GAAAA,KAACm0O,GAAa,OAC3Dn0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,iBAAiBl4E,SAASk3N,EAAAA,GAAAA,KAACo0O,GAAe,OACtDp0O,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,uBACLl4E,SAASk3N,EAAAA,GAAAA,KAACq0O,GAAmB,OAE/Br0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,kBAAkBl4E,SAASk3N,EAAAA,GAAAA,KAACs0O,GAAe,OACvDt0O,EAAAA,GAAAA,KAACpkC,GAAK,CACJ56G,KAAK,yBACLl4E,SAASk3N,EAAAA,GAAAA,KAACu0O,GAAqB,UAInCv0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,gBAAgBl4E,SAASk3N,EAAAA,GAAAA,KAACw0O,GAAY,OAGlDx0O,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,oBAAoBl4E,SAASk3N,EAAAA,GAAAA,KAACg3K,GAAQ,OAClDh3K,EAAAA,GAAAA,KAACpkC,GAAK,CAAC56G,KAAK,oBAAoBl4E,SAASk3N,EAAAA,GAAAA,KAAC8xO,GAAc,YAOlE,EC/FA,GAZwB2C,IAClBA,GAAeA,aAAuBrya,UACxC,oFAAqBh4C,MAAK2iB,IAAkD,IAAjD,OAAE2nc,EAAM,OAAEC,EAAM,OAAEC,EAAM,OAAEC,EAAM,QAAEC,GAAS/nc,EACpE2nc,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,EAAY,GAExB,ECTF,SAAS5vc,GAAQC,GAAwT,OAAtOD,GAArD,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBF,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIrqB,cAAgBsqB,QAAUD,IAAQC,OAAO7qB,UAAY,gBAAkB4qB,CAAK,EAAYD,GAAQC,EAAM,CAI9V,SAASsrP,GAAkBvxQ,EAAQ+oB,GAAS,IAAK,IAAI9tB,EAAI,EAAGA,EAAI8tB,EAAM9sB,OAAQhB,IAAK,CAAE,IAAIuoJ,EAAaz6H,EAAM9tB,GAAIuoJ,EAAW9pJ,WAAa8pJ,EAAW9pJ,aAAc,EAAO8pJ,EAAWp9H,cAAe,EAAU,UAAWo9H,IAAYA,EAAWn9H,UAAW,GAAMntB,OAAOM,eAAewG,EAAQwjJ,EAAW5+I,IAAK4+I,EAAa,CAAE,CAM5T,SAAS4/H,GAAgBvpR,GAAwJ,OAAnJupR,GAAkBlqR,OAAOgC,eAAiBhC,OAAOqvE,eAAiB,SAAyB1uE,GAAK,OAAOA,EAAEsB,WAAajC,OAAOqvE,eAAe1uE,EAAI,EAAUupR,GAAgBvpR,EAAI,CAE5M,SAASiqR,GAAuBnrM,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIqhH,eAAe,6DAAgE,OAAOrhH,CAAM,CAIrK,SAASwqM,GAAgBtpR,EAAGyC,GAA+G,OAA1G6mR,GAAkBjqR,OAAOgC,gBAAkB,SAAyBrB,EAAGyC,GAAsB,OAAjBzC,EAAEsB,UAAYmB,EAAUzC,CAAG,EAAUspR,GAAgBtpR,EAAGyC,EAAI,CAEzK,SAASupB,GAAgBI,EAAKrhB,EAAKnF,GAAiK,OAApJmF,KAAOqhB,EAAO/sB,OAAOM,eAAeysB,EAAKrhB,EAAK,CAAEnF,MAAOA,EAAO/F,YAAY,EAAM0sB,cAAc,EAAMC,UAAU,IAAkBJ,EAAIrhB,GAAOnF,EAAgBwmB,CAAK,CAIzM,IAAIiwc,GAEX,SAAUC,GAGR,SAASD,IACP,IAAIE,EAEAhvY,GA5BR,SAAyBmwE,EAAUyhC,GAAe,KAAMzhC,aAAoByhC,GAAgB,MAAM,IAAIv9L,UAAU,oCAAwC,CA8BpJi/L,CAAgB/+L,KAAMu6d,GAEtB,IAAK,IAAIv7R,EAAO3+L,UAAUC,OAAQ68E,EAAO,IAAI19E,MAAMu/L,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9hH,EAAK8hH,GAAQ5+L,UAAU4+L,GAkCzB,OA/BAxzG,EA9BJ,SAAoCzO,EAAMp9E,GAAQ,OAAIA,GAA2B,WAAlByqB,GAAQzqB,IAAsC,oBAATA,EAA8CuoR,GAAuBnrM,GAAtCp9E,CAA6C,CA8BpKw+L,CAA2Bp+L,MAAOy6d,EAAmBhzM,GAAgB8yM,IAAc36d,KAAKW,MAAMk6d,EAAkB,CAACz6d,MAAM0C,OAAOy6E,KAEtIjzD,GAAgBi+P,GAAuB18L,GAAQ,QAAS,CACtDivY,cAAc,IAGhBxwc,GAAgBi+P,GAAuB18L,GAAQ,oBAAgB,GAE/DvhE,GAAgBi+P,GAAuB18L,GAAQ,wBAAwB,WACrDA,EAAMr+D,MAAMutc,UAEQtnP,WACGqnP,eAGjCjvY,EAAMr+D,MAAMwtc,aACdx1d,QAAQC,QAAQomF,EAAMr+D,MAAMwtc,gBAAgBr2Z,SAAQ,WAClD,OAAOknB,EAAMq+E,SAAS,CACpB4wT,cAAc,GAElB,IAEAjvY,EAAMq+E,SAAS,CACb4wT,cAAc,IAIlBjvY,EAAMovY,cAAgBpvY,EAAMovY,eAEhC,IAEOpvY,CACT,CAhEF,IAAsB4xG,EAAaC,EAAYC,EA4F7C,OApFF,SAAmBgC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI1/L,UAAU,sDAAyDy/L,EAAS7/L,UAAYnC,OAAOC,OAAOgiM,GAAcA,EAAW9/L,UAAW,CAAEO,YAAa,CAAE6D,MAAOy7L,EAAU70K,UAAU,EAAMD,cAAc,KAAe+0K,GAAYgoF,GAAgBjoF,EAAUC,EAAa,CAW9XC,CAAU86R,EAAaC,GAnBHn9R,EAkEPk9R,GAlEoBj9R,EAkEP,CAAC,CACzBr0L,IAAK,oBACLnF,MAAO,WACL9D,KAAK66d,aAAe76d,KAAKotB,MAAMutc,UAAUtyT,UAAUroK,KAAK86d,sBACxD96d,KAAK86d,sBACP,GACC,CACD7xd,IAAK,uBACLnF,MAAO,WACL9D,KAAK66d,cAAgB76d,KAAK66d,cAC5B,GACC,CACD5xd,IAAK,SACLnF,MAAO,WAKL,MAAmC,oBAAxB9D,KAAKotB,MAAM9qB,SACbtC,KAAKotB,MAAM9qB,SAAStC,KAAK6iC,MAAM63b,cAGjC16d,KAAK6iC,MAAM63b,aAAe16d,KAAKotB,MAAM9qB,SAAWtC,KAAKotB,MAAMrT,OACpE,MAzF0E67P,GAAkBv4E,EAAY39L,UAAW49L,GAAiBC,GAAaq4E,GAAkBv4E,EAAaE,GA4F3Kg9R,CACT,CA3EA,CA2EEjwR,EAAAA,eAEFpgL,GAAgBqwc,GAAa,eAAgB,CAC3Cj4d,SAAU,KACVyX,QAAS,wCCvGAghd,GAAa,WACbC,GAAQ,gBACRC,GAAY,oBACZniK,GAAQ,gBACRoiK,GAAU,kBACVC,GAAQ,gBACRC,GAAW,mBCNtB,SAAS/wc,GAAQC,GAAwT,OAAtOD,GAArD,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBF,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIrqB,cAAgBsqB,QAAUD,IAAQC,OAAO7qB,UAAY,gBAAkB4qB,CAAK,EAAYD,GAAQC,EAAM,CAE9V,SAASZ,GAAQC,EAAQC,GAAkB,IAAInsB,EAAOF,OAAOE,KAAKksB,GAAS,GAAIpsB,OAAOssB,sBAAuB,CAAE,IAAIC,EAAUvsB,OAAOssB,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQ3iB,QAAO,SAAU4iB,GAAO,OAAOxsB,OAAOK,yBAAyB+rB,EAAQI,GAAKhsB,UAAY,KAAIN,EAAKwD,KAAKV,MAAM9C,EAAMqsB,EAAU,CAAE,OAAOrsB,CAAM,CAIpV,SAASysB,GAAgBI,EAAKrhB,EAAKnF,GAAiK,OAApJmF,KAAOqhB,EAAO/sB,OAAOM,eAAeysB,EAAKrhB,EAAK,CAAEnF,MAAOA,EAAO/F,YAAY,EAAM0sB,cAAc,EAAMC,UAAU,IAAkBJ,EAAIrhB,GAAOnF,EAAgBwmB,CAAK,CAOjM,SAAS+wc,GAAgBC,EAAcC,EAAeC,EAAcjpc,GACrEA,EAAKizS,MAAjB,IAEI5zK,EAZN,SAAuBvtJ,GAAU,IAAK,IAAI/E,EAAI,EAAGA,EAAIe,UAAUC,OAAQhB,IAAK,CAAE,IAAI2qB,EAAyB,MAAhB5pB,UAAUf,GAAae,UAAUf,GAAK,CAAC,EAAOA,EAAI,EAAKoqB,GAAQO,GAAQ,GAAMvsB,SAAQ,SAAUuL,GAAOihB,GAAgB7lB,EAAQ4E,EAAKghB,EAAOhhB,GAAO,IAAe1L,OAAO4sB,0BAA6B5sB,OAAO6sB,iBAAiB/lB,EAAQ9G,OAAO4sB,0BAA0BF,IAAmBP,GAAQO,GAAQvsB,SAAQ,SAAUuL,GAAO1L,OAAOM,eAAewG,EAAQ4E,EAAK1L,OAAOK,yBAAyBqsB,EAAQhhB,GAAO,GAAM,CAAE,OAAO5E,CAAQ,CAYpfwuH,CAAc,CAAC,EAAG2oW,GAmBjC,OAhBIF,GAA0C,WAA1Bjxc,GAAQixc,IAC1B/9d,OAAOE,KAAK69d,GAAc59d,SAAQ,SAAUuL,GAE9B,aAARA,GAEAsyd,EAActyd,KAASuyd,EAAavyd,KAMxC2oJ,EAAS3oJ,GAAOqyd,EAAaryd,GAC/B,IAIK2oJ,CACT,CClCe,SAAS6pU,GAAiB1xR,GAEvC,IAMI9/H,EANAyxZ,EAAY3xR,EAAO2xR,WAAa,KAChCC,EAAY5xR,EAAO4xR,WAAa,KAChCC,EAAa7xR,EAAO6xR,YAAc,GAClC1/P,EAAWnyB,EAAOmyB,UAAY,EAC9B2/P,EAAa,GAAGn5d,YAA4B+uB,IAArBs4K,EAAO+xR,UAA0B/xR,EAAO+xR,UAAYf,IAAYr4d,OAAOqnM,EAAO9gM,KACrG42H,EAAUkqE,EAAOlqE,QAInB51D,GADuB,IAArB8/H,EAAO9/H,UACG,SAAmB3mE,GAC7B,OAAOA,CACT,EACqC,oBAArBymM,EAAO9/H,UACX8/H,EAAO9/H,UAEP8xZ,GAGd,IAAIC,EAAmBjyR,EAAOiyR,kBAAoB,KAE9CC,EAAY,CAAC,EACbC,EAAc,CAAC,EACfC,EAAgB,GAChBC,EAAe,KACfC,EAAe,KA4BnB,SAASC,IACP,GAA6B,IAAzBH,EAAc77d,OAGhB,OAFI87d,GAAc7xO,cAAc6xO,QAChCA,EAAe,MAIjB,IAAInzd,EAAMkzd,EAAc34c,QACpB+4c,EAAWX,EAAWjtd,QAAO,SAAU6td,EAAUC,GACnD,OAAOA,EAAYC,GAAGF,EAAUvzd,EAAKgzd,EACvC,GAAGA,EAAUhzd,IAEb,QAAiBwoB,IAAb8qc,EACF,IACEL,EAAYjzd,GAAOghE,EAAUsyZ,EAC/B,CAAE,MAAOxwc,IACPoF,QAAQvK,MAAM,0DAA2DmF,GAC3E,aAGOmwc,EAAYjzd,GAGQ,IAAzBkzd,EAAc77d,SAOlB/C,OAAOE,KAAKy+d,GAAax+d,SAAQ,SAAUuL,QAClBwoB,IAAnBwqc,EAAUhzd,WACLizd,EAAYjzd,EAEvB,IACAozd,EAAex8V,EAAQotE,QAAQ4uR,EAAY5xZ,EAAUiyZ,IAAcjqa,MAAM0qa,GAT3E,CAYA,SAASC,EAAuB3zd,GAC9B,QAAI0yd,IAAyC,IAA5BA,EAAUnmd,QAAQvM,IAAuB,aAARA,MAC9Cyyd,IAAyC,IAA5BA,EAAUlmd,QAAQvM,GAErC,CAEA,SAAS0zd,EAAY5wc,GAEfiwc,GAAkBA,EAAiBjwc,EAKzC,CAWA,MAAO,CACLiH,OAzFW,SAAgB6P,GAE3BtlC,OAAOE,KAAKolC,GAAOnlC,SAAQ,SAAUuL,GAC9B2zd,EAAuB3zd,IAExBgzd,EAAUhzd,KAAS45B,EAAM55B,KAEO,IAAhCkzd,EAAc3md,QAAQvM,IAE1Bkzd,EAAcl7d,KAAKgI,EACrB,IAGA1L,OAAOE,KAAKw+d,GAAWv+d,SAAQ,SAAUuL,QACpBwoB,IAAfoR,EAAM55B,IAAsB2zd,EAAuB3zd,KAAwC,IAAhCkzd,EAAc3md,QAAQvM,SAAkCwoB,IAAnBwqc,EAAUhzd,IAC5Gkzd,EAAcl7d,KAAKgI,EAEvB,IAEqB,OAAjBmzd,IACFA,EAAe9xO,YAAYgyO,EAAgBpgQ,IAG7C+/P,EAAYp5b,CACd,EAkEE8C,MAXU,WACV,KAAgC,IAAzBw2b,EAAc77d,QACnBg8d,IAGF,OAAOD,GAAgBj3d,QAAQC,SACjC,EAOF,CAEA,SAAS02d,GAAiBt0c,GACxB,OAAOyiD,KAAKC,UAAU1iD,EACxB,CC7He,SAASo1c,GAAe9yR,GACrC,IAIIt2H,EAJAmoZ,EAAa7xR,EAAO6xR,YAAc,GAClCC,EAAa,GAAGn5d,YAA4B+uB,IAArBs4K,EAAO+xR,UAA0B/xR,EAAO+xR,UAAYf,IAAYr4d,OAAOqnM,EAAO9gM,KACrG42H,EAAUkqE,EAAOlqE,QACTkqE,EAAOy7H,MAanB,OATE/xP,GADyB,IAAvBs2H,EAAOt2H,YACK,SAAqBnwE,GACjC,OAAOA,CACT,EACuC,oBAAvBymM,EAAOt2H,YACTs2H,EAAOt2H,YAEPqpZ,GAGTj9V,EAAQmtE,QAAQ6uR,GAAYjsd,MAAK,SAAUo6D,GAChD,GAAKA,EACH,IACE,IAAInnC,EAAQ,CAAC,EACTk6b,EAAWtpZ,EAAYzJ,GAM3B,OALAzsE,OAAOE,KAAKs/d,GAAUr/d,SAAQ,SAAUuL,GACtC45B,EAAM55B,GAAO2yd,EAAW37Q,aAAY,SAAUu8Q,EAAUC,GACtD,OAAOA,EAAYv8b,IAAIs8b,EAAUvzd,EAAK8zd,EACxC,GAAGtpZ,EAAYspZ,EAAS9zd,IAC1B,IACO45B,CACT,CAAE,MAAO9W,IAEP,MAAMA,EACR,CAEJ,GACF,CAEA,SAAS+wc,GAAmBE,GAC1B,OAAO9yZ,KAAKuZ,MAAMu5Y,EACpB,CChCA,SAASC,GAAkBlxc,GACrBA,CAGN,CCXA,SAASrC,GAAQC,EAAQC,GAAkB,IAAInsB,EAAOF,OAAOE,KAAKksB,GAAS,GAAIpsB,OAAOssB,sBAAuB,CAAE,IAAIC,EAAUvsB,OAAOssB,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQ3iB,QAAO,SAAU4iB,GAAO,OAAOxsB,OAAOK,yBAAyB+rB,EAAQI,GAAKhsB,UAAY,KAAIN,EAAKwD,KAAKV,MAAM9C,EAAMqsB,EAAU,CAAE,OAAOrsB,CAAM,CAEpV,SAASo1H,GAAcxuH,GAAU,IAAK,IAAI/E,EAAI,EAAGA,EAAIe,UAAUC,OAAQhB,IAAK,CAAE,IAAI2qB,EAAyB,MAAhB5pB,UAAUf,GAAae,UAAUf,GAAK,CAAC,EAAOA,EAAI,EAAKoqB,GAAQO,GAAQ,GAAMvsB,SAAQ,SAAUuL,GAAOihB,GAAgB7lB,EAAQ4E,EAAKghB,EAAOhhB,GAAO,IAAe1L,OAAO4sB,0BAA6B5sB,OAAO6sB,iBAAiB/lB,EAAQ9G,OAAO4sB,0BAA0BF,IAAmBP,GAAQO,GAAQvsB,SAAQ,SAAUuL,GAAO1L,OAAOM,eAAewG,EAAQ4E,EAAK1L,OAAOK,yBAAyBqsB,EAAQhhB,GAAO,GAAM,CAAE,OAAO5E,CAAQ,CAErgB,SAAS6lB,GAAgBI,EAAKrhB,EAAKnF,GAAiK,OAApJmF,KAAOqhB,EAAO/sB,OAAOM,eAAeysB,EAAKrhB,EAAK,CAAEnF,MAAOA,EAAO/F,YAAY,EAAM0sB,cAAc,EAAMC,UAAU,IAAkBJ,EAAIrhB,GAAOnF,EAAgBwmB,CAAK,CAEhN,SAASQ,GAAyBb,EAAQW,GAAY,GAAc,MAAVX,EAAgB,MAAO,CAAC,EAAG,IAAkEhhB,EAAK3J,EAAnE+E,EAEzF,SAAuC4lB,EAAQW,GAAY,GAAc,MAAVX,EAAgB,MAAO,CAAC,EAAG,IAA2DhhB,EAAK3J,EAA5D+E,EAAS,CAAC,EAAOwmB,EAAattB,OAAOE,KAAKwsB,GAAqB,IAAK3qB,EAAI,EAAGA,EAAIurB,EAAWvqB,OAAQhB,IAAO2J,EAAM4hB,EAAWvrB,GAAQsrB,EAASpV,QAAQvM,IAAQ,IAAa5E,EAAO4E,GAAOghB,EAAOhhB,IAAQ,OAAO5E,CAAQ,CAFhNsmB,CAA8BV,EAAQW,GAAuB,GAAIrtB,OAAOssB,sBAAuB,CAAE,IAAIkB,EAAmBxtB,OAAOssB,sBAAsBI,GAAS,IAAK3qB,EAAI,EAAGA,EAAIyrB,EAAiBzqB,OAAQhB,IAAO2J,EAAM8hB,EAAiBzrB,GAAQsrB,EAASpV,QAAQvM,IAAQ,GAAkB1L,OAAOmC,UAAUsrB,qBAAqBprB,KAAKqqB,EAAQhhB,KAAgB5E,EAAO4E,GAAOghB,EAAOhhB,GAAQ,CAAE,OAAO5E,CAAQ,CCN3e,SAAS2uQ,GAAmB9nP,GAAO,OAMnC,SAA4BA,GAAO,GAAIzrB,MAAM8rB,QAAQL,GAAM,CAAE,IAAK,IAAI5rB,EAAI,EAAG+sB,EAAO,IAAI5sB,MAAMyrB,EAAI5qB,QAAShB,EAAI4rB,EAAI5qB,OAAQhB,IAAO+sB,EAAK/sB,GAAK4rB,EAAI5rB,GAAM,OAAO+sB,CAAM,CAAE,CAN3H6wc,CAAmBhyc,IAI7D,SAA0ByzF,GAAQ,GAAIp0F,OAAOC,YAAYjtB,OAAOohH,IAAkD,uBAAzCphH,OAAOmC,UAAUwsB,SAAStsB,KAAK++G,GAAgC,OAAOl/G,MAAM0sB,KAAKwyF,EAAO,CAJ5Fo0J,CAAiB7nP,IAEtF,WAAgC,MAAM,IAAIprB,UAAU,kDAAoD,CAFVq9d,EAAsB,CAQpH,SAASzzc,GAAQC,EAAQC,GAAkB,IAAInsB,EAAOF,OAAOE,KAAKksB,GAAS,GAAIpsB,OAAOssB,sBAAuB,CAAE,IAAIC,EAAUvsB,OAAOssB,sBAAsBF,GAAaC,IAAgBE,EAAUA,EAAQ3iB,QAAO,SAAU4iB,GAAO,OAAOxsB,OAAOK,yBAAyB+rB,EAAQI,GAAKhsB,UAAY,KAAIN,EAAKwD,KAAKV,MAAM9C,EAAMqsB,EAAU,CAAE,OAAOrsB,CAAM,CAEpV,SAASo1H,GAAcxuH,GAAU,IAAK,IAAI/E,EAAI,EAAGA,EAAIe,UAAUC,OAAQhB,IAAK,CAAE,IAAI2qB,EAAyB,MAAhB5pB,UAAUf,GAAae,UAAUf,GAAK,CAAC,EAAOA,EAAI,EAAKoqB,GAAQO,GAAQ,GAAMvsB,SAAQ,SAAUuL,GAAOihB,GAAgB7lB,EAAQ4E,EAAKghB,EAAOhhB,GAAO,IAAe1L,OAAO4sB,0BAA6B5sB,OAAO6sB,iBAAiB/lB,EAAQ9G,OAAO4sB,0BAA0BF,IAAmBP,GAAQO,GAAQvsB,SAAQ,SAAUuL,GAAO1L,OAAOM,eAAewG,EAAQ4E,EAAK1L,OAAOK,yBAAyBqsB,EAAQhhB,GAAO,GAAM,CAAE,OAAO5E,CAAQ,CAErgB,SAAS6lB,GAAgBI,EAAKrhB,EAAKnF,GAAiK,OAApJmF,KAAOqhB,EAAO/sB,OAAOM,eAAeysB,EAAKrhB,EAAK,CAAEnF,MAAOA,EAAO/F,YAAY,EAAM0sB,cAAc,EAAMC,UAAU,IAAkBJ,EAAIrhB,GAAOnF,EAAgBwmB,CAAK,CAIhN,IAAIi/I,GAAe,CACjB6zT,SAAU,GACV1C,cAAc,GAGZ2C,GAAmB,WACrB,IAAIx6b,EAAQxiC,UAAUC,OAAS,QAAsBmxB,IAAjBpxB,UAAU,GAAmBA,UAAU,GAAKkpK,GAC5ElyJ,EAAShX,UAAUC,OAAS,EAAID,UAAU,QAAKoxB,EAEnD,OAAQpa,EAAOhU,MACb,KAAK+3d,GACH,OAAOvoW,GAAc,CAAC,EAAGhwF,EAAO,CAC9Bu6b,SAAU,GAAG16d,OAAOswQ,GAAmBnwO,EAAMu6b,UAAW,CAAC/ld,EAAOpO,QAGpE,KAAKgyd,GACH,IAAIqC,EAAaz6b,EAAMu6b,SAAS5nd,QAAQ6B,EAAOpO,KAE3Cm0d,EAAWpqN,GAAmBnwO,EAAMu6b,UAGxC,OADAA,EAAS5gZ,OAAO8gZ,EAAY,GACrBzqW,GAAc,CAAC,EAAGhwF,EAAO,CAC9Bu6b,SAAUA,EACV1C,aAAkC,IAApB0C,EAAS98d,SAG3B,QACE,OAAOuiC,EAEb,ECxCA,MAKM06b,GFYS,SAAwBxzR,EAAQyzR,GAO7C,IAAIxpd,OAA6Byd,IAAnBs4K,EAAO/1L,QAAwB+1L,EAAO/1L,SLtBzB,EKwBvBypd,GADQ1zR,EAAOy7H,WAC8B/zS,IAA3Bs4K,EAAO0zR,gBAAgCpC,GAAkBtxR,EAAO0zR,iBAClFZ,EAAiB9yR,EAAO8yR,gBAAkBa,GAC1C5sR,OAA6Br/K,IAAnBs4K,EAAO+G,QAAwB/G,EAAO+G,QAlBhC,IAmBhB6sR,EAAc,KACdC,GAAS,EACTC,GAAU,EAEVC,EAAoB,SAA2Bj7b,GAGjD,OADAA,EAAMk7b,SAASC,YAAcL,IAAgBE,GAAWF,EAAY3qc,OAAO6P,GACpEA,CACT,EAEA,OAAO,SAAUA,EAAOxrB,GACtB,IAAIkb,EAAOsQ,GAAS,CAAC,EACjBk7b,EAAWxrc,EAAKwrc,SAIhBE,EAHOnzc,GAAyByH,EAAM,CAAC,aAK3C,GAAIlb,EAAOhU,OAAS63d,GAAS,CAC3B,IAAIgD,GAAU,EAEVC,EAAa,SAAoBp0T,EAASh+I,GAIvCmyc,IACH7md,EAAO+md,UAAUr0R,EAAO9gM,IAAK8gK,EAASh+I,GACtCmyc,GAAU,EAEd,EAUA,GARAptR,GAAWprM,YAAW,YACnBw4d,GAAWC,OAAW1sc,EAAW,IAAI/D,MAAM,qDAAsDhrB,OAAOqnM,EAAO9gM,IAAK,MACvH,GAAG6nM,GAEH+sR,GAAU,EAELF,IAAaA,EAAclC,GAAiB1xR,IAE7Cg0R,EAGF,OAAOlrW,GAAc,CAAC,EAAG2qW,EAAYS,EAAW5md,GAAS,CACvD0md,SAAUA,IAId,GAAgC,oBAArB1md,EAAO+md,WAAuD,oBAApB/md,EAAO8sL,SAAyB,MAAM,IAAIz2K,MAAM,mOAiBrG,OAhBArW,EAAO8sL,SAAS4F,EAAO9gM,KACvB4zd,EAAe9yR,GAAQn6L,MAAK,SAAUyud,IACtBt0R,EAAOu0R,SAAW,SAAUp+d,EAAGmC,GAC3C,OAAO+C,QAAQC,QAAQnF,EACzB,GAEQm+d,EAAerqd,GAASpE,MAAK,SAAU2ud,GAC7CJ,EAAWI,EACb,IAAG,SAAUC,GAGXL,OAAW1sc,EAAW+sc,EACxB,GACF,IAAG,SAAUzyc,GACXoyc,OAAW1sc,EAAW1F,EACxB,IACO8mG,GAAc,CAAC,EAAG2qW,EAAYS,EAAW5md,GAAS,CACvD0md,SAAU,CACR/pd,QAASA,EACTgqd,YAAY,IAGlB,CAAO,GAAI3md,EAAOhU,OAAS83d,GAGzB,OAFAyC,GAAS,EACTvmd,EAAOkN,ODzGE,SAA0BwlL,GACvC,IAAIlqE,EAAUkqE,EAAOlqE,QACjBg8V,EAAa,GAAGn5d,YAA4B+uB,IAArBs4K,EAAO+xR,UAA0B/xR,EAAO+xR,UAAYf,IAAYr4d,OAAOqnM,EAAO9gM,KACzG,OAAO42H,EAAQqtE,WAAW2uR,EAAYoB,GACxC,CCqGoBwB,CAAiB10R,IACxBl3E,GAAc,CAAC,EAAG2qW,EAAYS,EAAW5md,GAAS,CACvD0md,SAAUA,IAEP,GAAI1md,EAAOhU,OAAS23d,GAEzB,OADA3jd,EAAOkN,OAAOo5c,GAAeA,EAAYh4b,SAClCktF,GAAc,CAAC,EAAG2qW,EAAYS,EAAW5md,GAAS,CACvD0md,SAAUA,IAEP,GAAI1md,EAAOhU,OAASy1T,GACzB+kK,GAAU,OACL,GAAIxmd,EAAOhU,OAAS43d,GAAW,CAEpC,GAAI2C,EAAQ,OAAO/qW,GAAc,CAAC,EAAGorW,EAAW,CAC9CF,SAAUlrW,GAAc,CAAC,EAAGkrW,EAAU,CACpCC,YAAY,MAKhB,GAAI3md,EAAOpO,MAAQ8gM,EAAO9gM,IAAK,CAC7B,IAAIuyd,EAAegC,EAAYS,EAAW5md,GACtCikd,EAAejkd,EAAO0yJ,QAItB20T,EAAY7rW,GAAc,CAAC,GAFU,IAApB4qW,QAA8Chsc,IAAjB6pc,EAA6BmC,EAAgBnC,EAAcz4b,EAAO24b,EAAczxR,GAAUyxR,EAE1F,CAChDuC,SAAUlrW,GAAc,CAAC,EAAGkrW,EAAU,CACpCC,YAAY,MAIhB,OAAOF,EAAkBY,EAC3B,CACF,CAGA,IAAKX,EAAU,OAAOP,EAAY36b,EAAOxrB,GAGzC,IAAIu6I,EAAW4rU,EAAYS,EAAW5md,GACtC,OAAIu6I,IAAaqsU,EAAkBp7b,EAC5Bi7b,EAAkBjrW,GAAc,CAAC,EAAG++B,EAAU,CACnDmsU,SAAUA,IAEd,CACF,CE9I6BY,CALP,CACpB11d,IAAK,OACL42H,QACF,MAE2D++V,IAErDttP,GCoEC,SAEqBzgN,GAC1B,MAAMguc,E5rB5C0E,SAA8Bhuc,GAC9G,MAAM,MACJ+lN,GAAQ,EAAI,eACZkoP,GAAiB,EAAI,kBACrBC,GAAoB,EAAI,mBACxBC,GAAqB,GACnB,OAAAnuc,QAAA,IAAAA,EAAAA,EAAW,CAAC,EAChB,IAAIouc,EAAkB,IAAI9gP,GAiC1B,OAhCIvH,IAhCgB,mBAiCJA,EACZqoP,EAAgBh+d,KAAKi+d,IAErBD,EAAgBh+d,KAAK41O,GAAkBD,EAAMD,iBA4B1CsoP,CACT,G4rBIQ,QACJ73T,EAAU,WACV+3T,EAAA,SACAC,GAAW,EAAI,eACfnqP,EAAiB,UACjBoqP,GACExuc,GAAW,CAAC,EAChB,IAAIyuc,EAWAC,EAVJ,GAAuB,oBAAZn4T,EACTk4T,EAAcl4T,MACT,KAAIo4T,GAAcp4T,GAGvB,MAAM,IAAI15I,MAA8C2tH,GAAwB,IAFhFikV,EAAcvpP,GAAgB3uE,EAGhC,CAMEm4T,EADwB,oBAAfJ,EACSA,EAAWN,GAKXA,IAKpB,IAAIY,EAAeC,GACfN,IACFK,EAAe9hP,GAAA9qH,EAAA,CAEb8sW,OAAOtnb,GACiB,kBAAb+mb,GAAyBA,KAGxC,MAAMvgP,EC/EO,WAA2E,QAAAt1B,EAAAlpN,UAAAC,OAA/Cs/d,EAAA,IAAAnge,MAAA8pN,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAo2Q,EAAAp2Q,GAAAnpN,UAAAmpN,GACzC,OAAOq2Q,GAAe,CAACz4T,EAAS6tE,KAC9B,MAAM3D,EAAQuuP,EAAYz4T,EAAS6tE,GACnC,IAAI98J,EAAqBA,KACvB,MAAM,IAAIzqD,MAA8C2tH,GAAwB,IAAoI,EAEtN,MAAMykV,EAA+B,CACnCzsP,SAAU/B,EAAM+B,SAChBl7J,SAAU,SAAC9gE,GAAA,QAAAuqP,EAAAvhQ,UAAAC,OAAW68E,EAAA,IAAA19E,MAAAmiQ,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAA1kL,EAAA0kL,EAAA,GAAAxhQ,UAAAwhQ,GAAA,OAAS1pL,EAAS9gE,KAAW8lE,EAAI,GAEnD8oJ,EAAQ25P,EAAYn5d,KAAI04d,GAAcA,EAAWW,KAEvD,OADA3nZ,EAAWstB,MAA4BwgI,EAA5BxgI,CAAmC6rI,EAAMn5J,UACpD06C,EAAAA,EAAA,GACKy+G,GAAA,IACHn5J,YAAA,CAGN,CD8D6B4nZ,IAAmBR,GACxCS,EAAsBphP,GAA4BC,GAexD,OAAO7J,GAAYsqP,EAAarqP,EADawqP,KAVH,oBAAdJ,EAA2BA,EAAUW,GAAuBA,KAY1F,CD/HcC,CAAe,CAC3B74T,QAAS,CACPq/E,KAAM82O,MAIG5C,GD6BE,SAAsBrpP,EAAOzgN,EAAS1B,GAER,IAQvC+wc,EAAgB/wc,IAAM,EAEtBgxc,EAAUnrP,GAAYqoP,GAAkB9zT,GAAc14I,GAAWA,EAAQqkN,SAAWrkN,EAAQqkN,cAAWzjN,GAEvG0yK,EAAW,SAAkBl7L,GAC/Bk3d,EAAQhoZ,SAAS,CACf90E,KAAM+3d,GACNnyd,IAAKA,GAET,EAEIm1d,EAAY,SAAmBn1d,EAAK8gK,EAASh+I,GAC/C,IAAIq0c,EAAkB,CACpB/8d,KAAM43d,GACNlxT,QAASA,EACTh+I,IAAKA,EACL9iB,IAAKA,GAGPqoO,EAAMn5J,SAASioZ,GAEfD,EAAQhoZ,SAASioZ,GAEbF,GAAiBvF,EAAUtnP,WAAWqnP,eACxCwF,IACAA,GAAgB,EAEpB,EAEIvF,EAAY9nW,GAAc,CAAC,EAAGstW,EAAS,CACzCE,MAAO,WACL,IAAIl7Z,EAAU,GAOd,OANAmsK,EAAMn5J,SAAS,CACb90E,KAAM83d,GACN52c,OAAQ,SAAgB+7c,GACtBn7Z,EAAQlkE,KAAKq/d,EACf,IAEKl7d,QAAQ4gB,IAAIm/C,EACrB,EACAx/B,MAAO,WACL,IAAIw/B,EAAU,GAOd,OANAmsK,EAAMn5J,SAAS,CACb90E,KAAM23d,GACNz2c,OAAQ,SAAgBg8c,GACtBp7Z,EAAQlkE,KAAKs/d,EACf,IAEKn7d,QAAQ4gB,IAAIm/C,EACrB,EACA4qK,MAAO,WACLuB,EAAMn5J,SAAS,CACb90E,KAAMy1T,IAEV,EACAlsK,QAAS,WACP0kF,EAAMn5J,SAAS,CACb90E,KAAM63d,GACN/2R,SAAUA,EACVi6R,UAAWA,GAEf,IAOF,OAJMvtc,GAAWA,EAAQ2vc,eACvB7F,EAAU/tU,UAGL+tU,CACT,CC5GyB8F,CAAanvP,IACtC,MGVal2F,EAAAA,WAAoBn2I,SAAS2nQ,eAAe,SACpD1xP,QACHsqO,EAAAA,GAAAA,KAAC/7N,EAAAA,WAAgB,CAAAnnB,UACjBkjP,EAAAA,GAAAA,KAACr8N,GAAQ,CAACmoN,MAAOA,GAAMhvO,UACrBkjP,EAAAA,GAAAA,KAAC+0O,GAAW,CAACxgd,QAAS,KAAM4gd,UAAWA,GAAUr4d,UAC/CkjP,EAAAA,GAAAA,KAACk7O,GAAG,WASVC","sources":["../node_modules/@react-pdf-viewer/core/lib/cjs/core.min.js","../node_modules/@react-pdf-viewer/core/lib/index.js","../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../node_modules/exenv/index.js","../node_modules/json2mq/index.js","../node_modules/pako/index.js","../node_modules/pako/lib/deflate.js","../node_modules/pako/lib/inflate.js","../node_modules/pako/lib/utils/common.js","../node_modules/pako/lib/utils/strings.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/gzheader.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/zstream.js","../pdfjs-dist/build/pdf/webpack/universalModuleDefinition","../pdfjs-dist/build/pdf/src/shared/util.js","../pdfjs-dist/build/pdf/src/display/api.js","../pdfjs-dist/build/pdf/src/display/annotation_storage.js","../pdfjs-dist/build/pdf/src/display/editor/editor.js","../pdfjs-dist/build/pdf/src/display/editor/tools.js","../pdfjs-dist/build/pdf/src/display/display_utils.js","../pdfjs-dist/build/pdf/src/display/base_factory.js","../pdfjs-dist/build/pdf/src/shared/murmurhash3.js","../pdfjs-dist/build/pdf/src/display/font_loader.js","../pdfjs-dist/build/pdf/src/display/node_utils.js","../pdfjs-dist/build/pdf/src/display/canvas.js","../pdfjs-dist/build/pdf/src/display/pattern_helper.js","../pdfjs-dist/build/pdf/src/shared/image_utils.js","../pdfjs-dist/build/pdf/src/display/worker_options.js","../pdfjs-dist/build/pdf/src/shared/message_handler.js","../pdfjs-dist/build/pdf/src/display/metadata.js","../pdfjs-dist/build/pdf/src/display/optional_content_config.js","../pdfjs-dist/build/pdf/src/display/transport_stream.js","../pdfjs-dist/build/pdf/src/display/fetch_stream.js","../pdfjs-dist/build/pdf/src/display/network_utils.js","../pdfjs-dist/build/pdf/src/display/content_disposition.js","../pdfjs-dist/build/pdf/src/display/network.js","../pdfjs-dist/build/pdf/src/display/node_stream.js","../pdfjs-dist/build/pdf/src/display/svg.js","../pdfjs-dist/build/pdf/src/display/xfa_text.js","../pdfjs-dist/build/pdf/src/display/text_layer.js","../pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","../pdfjs-dist/build/pdf/src/display/editor/freetext.js","../pdfjs-dist/build/pdf/src/display/annotation_layer.js","../pdfjs-dist/build/pdf/src/shared/scripting_utils.js","../pdfjs-dist/build/pdf/web/l10n_utils.js","../pdfjs-dist/build/pdf/src/display/xfa_layer.js","../pdfjs-dist/build/pdf/src/display/editor/ink.js","../pdfjs-dist/build/pdf/src/display/editor/stamp.js","../pdfjs-dist/build/pdf/webpack/bootstrap","../pdfjs-dist/build/pdf/src/pdf.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/rc-util/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/rc-util/node_modules/react-is/index.js","../node_modules/react-dom/cjs/react-dom-client.production.js","../node_modules/react-dom/cjs/react-dom.production.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-modal/lib/components/Modal.js","../node_modules/react-modal/lib/components/ModalPortal.js","../node_modules/react-modal/lib/helpers/ariaAppHider.js","../node_modules/react-modal/lib/helpers/bodyTrap.js","../node_modules/react-modal/lib/helpers/classList.js","../node_modules/react-modal/lib/helpers/focusManager.js","../node_modules/react-modal/lib/helpers/portalOpenInstances.js","../node_modules/react-modal/lib/helpers/safeHTMLElement.js","../node_modules/react-modal/lib/helpers/scopeTab.js","../node_modules/react-modal/lib/helpers/tabbable.js","../node_modules/react-modal/lib/index.js","../node_modules/react-router/node_modules/cookie/src/index.ts","../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react.production.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/scheduler/cjs/scheduler.production.js","../node_modules/scheduler/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/warning/warning.js","../node_modules/@babel/runtime/helpers/assertClassBrand.js","../node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js","../node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js","../node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js","../node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js","../node_modules/@babel/runtime/helpers/classPrivateGetter.js","../node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react-router/dist/development/chunk-SYFQ2XB5.mjs","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/@babel/runtime/helpers/esm/OverloadYield.js","../node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js","../node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js","../node_modules/@babel/runtime/helpers/esm/asyncIterator.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/react-toastify/src/style.css","../node_modules/react-toastify/src/utils/propValidator.ts","../node_modules/react-toastify/src/utils/cssTransition.tsx","../node_modules/react-toastify/src/utils/collapseToast.ts","../node_modules/react-toastify/src/utils/mapper.ts","../node_modules/react-toastify/src/components/ProgressBar.tsx","../node_modules/react-toastify/src/core/genToastId.ts","../node_modules/react-toastify/src/core/containerObserver.ts","../node_modules/react-toastify/src/core/store.ts","../node_modules/react-toastify/src/core/toast.ts","../node_modules/react-toastify/src/hooks/useToast.ts","../node_modules/react-toastify/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-toastify/src/components/Icons.tsx","../node_modules/react-toastify/src/components/Toast.tsx","../node_modules/react-toastify/src/components/CloseButton.tsx","../node_modules/react-toastify/src/components/Transitions.tsx","../node_modules/react-toastify/src/components/ToastContainer.tsx","../node_modules/react-toastify/src/hooks/useToastContainer.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","features/slice.js","baseUrl.js","component/Loader/Loadertext.jsx","webpack://client/./src/component/FooterFront/footerFront.module.css?8d0d","component/FooterFront/FooterFront.jsx","pages/LoginPage/LoginPAge.jsx","webpack://client/./src/pages/FormPage1/formpage1.module.css?47b6","../node_modules/phosphor-react/src/lib/index.ts","../node_modules/phosphor-react/src/lib/IconBase.tsx","../node_modules/phosphor-react/src/icons/EyeSlash.tsx","../node_modules/phosphor-react/src/icons/Eye.tsx","pages/FormPage1/FormPage1.jsx","pages/LandingPage/LandingPage.jsx","pages/FormPage2/FormPage2.jsx","pages/FormPage4/FormPage4.jsx","webpack://client/./src/pages/FormPage3/formpage3.module.css?1b0a","pages/FormPage3/FormPage3.jsx","pages/FormPage5/FormPage5.jsx","webpack://client/./src/pages/Dashboard/dashboard.module.css?7411","../node_modules/phosphor-react/src/icons/Pen.tsx","../node_modules/phosphor-react/src/icons/Heart.tsx","../node_modules/phosphor-react/src/icons/User.tsx","../node_modules/phosphor-react/src/icons/Gear.tsx","../node_modules/phosphor-react/src/icons/Question.tsx","../node_modules/phosphor-react/src/icons/ShieldCheck.tsx","../node_modules/phosphor-react/src/icons/SignOut.tsx","../node_modules/phosphor-react/src/icons/HeartStraight.tsx","../node_modules/engine.io-parser/build/esm/commons.js","../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../node_modules/engine.io-parser/build/esm/index.js","../node_modules/@socket.io/component-emitter/lib/esm/index.js","../node_modules/engine.io-client/build/esm/globals.js","../node_modules/engine.io-client/build/esm/util.js","../node_modules/engine.io-client/build/esm/transport.js","../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../node_modules/engine.io-client/build/esm/transports/polling.js","../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../node_modules/engine.io-client/build/esm/transports/polling-xhr.js","../node_modules/engine.io-client/build/esm/transports/websocket.js","../node_modules/engine.io-client/build/esm/transports/index.js","../node_modules/engine.io-client/build/esm/transports/webtransport.js","../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../node_modules/engine.io-client/build/esm/socket.js","../node_modules/socket.io-parser/build/esm/is-binary.js","../node_modules/socket.io-parser/build/esm/binary.js","../node_modules/socket.io-parser/build/esm/index.js","../node_modules/socket.io-client/build/esm/on.js","../node_modules/socket.io-client/build/esm/socket.js","../node_modules/socket.io-client/build/esm/contrib/backo2.js","../node_modules/socket.io-client/build/esm/manager.js","../node_modules/socket.io-client/build/esm/index.js","../node_modules/socket.io-client/build/esm/url.js","component/Navbar/Nav.jsx","component/Footer/Footer.jsx","pages/Dashboard/Dashboard.jsx","pages/Otppage/OtpPage.jsx","assets/circle-check-regular.svg","../node_modules/rc-util/es/omit.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/React/isFragment.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@ant-design/cssinjs/node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/isEqual.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/util/index.js","../node_modules/@ant-design/cssinjs/es/util/css-variables.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/@ant-design/cssinjs/es/hooks/useCompatibleInsertionEffect.js","../node_modules/@ant-design/cssinjs/es/hooks/useEffectCleanupRegister.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Enum.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Utility.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Serializer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Tokenizer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","../node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js","../node_modules/@ant-design/cssinjs/es/extractStyle.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js","../node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js","../node_modules/@ant-design/cssinjs-utils/es/util/statistic.js","../node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js","../node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js","../node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js","../node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js","../node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/antd/es/theme/context.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/default/theme.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/useToken.js","../node_modules/antd/es/version/version.js","../node_modules/antd/es/theme/util/genStyleUtils.js","../node_modules/antd/es/_util/wave/style.js","../node_modules/rc-util/es/raf.js","../node_modules/antd/es/_util/wave/interface.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/rc-util/es/React/render.js","../node_modules/antd/es/config-provider/UnstableContext.js","../node_modules/antd/es/_util/wave/util.js","../node_modules/antd/es/_util/wave/WaveEffect.js","../node_modules/antd/es/_util/wave/useWave.js","../node_modules/antd/es/_util/wave/index.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/hooks/useSize.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/button/buttonHelpers.js","../node_modules/antd/es/button/IconWrapper.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/antd/es/button/DefaultLoadingIcon.js","../node_modules/antd/es/button/style/group.js","../node_modules/@rc-component/color-picker/es/color.js","../node_modules/@rc-component/color-picker/es/util.js","../node_modules/antd/es/color-picker/color.js","../node_modules/antd/es/color-picker/components/ColorPresets.js","../node_modules/antd/es/button/style/token.js","../node_modules/antd/es/button/style/index.js","../node_modules/antd/es/style/compact-item.js","../node_modules/antd/es/style/compact-item-vertical.js","../node_modules/antd/es/button/style/compact.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/isMobile.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/index.js","../node_modules/antd/es/layout/Sider.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/config-provider/hooks/useCSSVarCls.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/@rc-component/async-validator/es/messages.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@rc-component/async-validator/es/util.js","../node_modules/@rc-component/async-validator/es/rule/enum.js","../node_modules/@rc-component/async-validator/es/rule/pattern.js","../node_modules/@rc-component/async-validator/es/rule/range.js","../node_modules/@rc-component/async-validator/es/rule/required.js","../node_modules/@rc-component/async-validator/es/rule/url.js","../node_modules/@rc-component/async-validator/es/rule/type.js","../node_modules/@rc-component/async-validator/es/rule/whitespace.js","../node_modules/@rc-component/async-validator/es/rule/index.js","../node_modules/@rc-component/async-validator/es/validator/any.js","../node_modules/@rc-component/async-validator/es/validator/array.js","../node_modules/@rc-component/async-validator/es/validator/boolean.js","../node_modules/@rc-component/async-validator/es/validator/date.js","../node_modules/@rc-component/async-validator/es/validator/enum.js","../node_modules/@rc-component/async-validator/es/validator/float.js","../node_modules/@rc-component/async-validator/es/validator/integer.js","../node_modules/@rc-component/async-validator/es/validator/method.js","../node_modules/@rc-component/async-validator/es/validator/number.js","../node_modules/@rc-component/async-validator/es/validator/object.js","../node_modules/@rc-component/async-validator/es/validator/pattern.js","../node_modules/@rc-component/async-validator/es/validator/regexp.js","../node_modules/@rc-component/async-validator/es/validator/required.js","../node_modules/@rc-component/async-validator/es/validator/string.js","../node_modules/@rc-component/async-validator/es/validator/type.js","../node_modules/@rc-component/async-validator/es/validator/index.js","../node_modules/@rc-component/async-validator/es/index.js","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/_util/ContextIsolator.js","../node_modules/antd/es/_util/zindexContext.js","../node_modules/antd/es/_util/hooks/useZIndex.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/_util/warning.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/theme/util/genPresetColor.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/style/motion/collapse.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/menu/style/horizontal.js","../node_modules/antd/es/menu/style/rtl.js","../node_modules/antd/es/menu/style/theme.js","../node_modules/antd/es/menu/style/vertical.js","../node_modules/antd/es/menu/style/index.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/menu.js","../node_modules/antd/es/menu/index.js","../node_modules/@ant-design/icons-svg/es/asn/HomeOutlined.js","../node_modules/@ant-design/icons/es/icons/HomeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ContainerOutlined.js","../node_modules/@ant-design/icons/es/icons/ContainerOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SettingOutlined.js","../node_modules/@ant-design/icons/es/icons/SettingOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LogoutOutlined.js","../node_modules/@ant-design/icons/es/icons/LogoutOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PushpinFilled.js","../node_modules/@ant-design/icons/es/icons/PushpinFilled.js","../node_modules/@ant-design/icons-svg/es/asn/PushpinOutlined.js","../node_modules/@ant-design/icons/es/icons/PushpinOutlined.js","component/sidebar/Sidebar.jsx","pages/Admin/components/Profilebox.jsx","pages/Admin/adminDashboard/Adimindashboard.jsx","pages/Admin/components/ReportComponent.jsx","pages/Admin/AdminReportPage/AdminReportPage.jsx","../node_modules/phosphor-react/src/icons/X.tsx","../node_modules/phosphor-react/src/icons/SlidersHorizontal.tsx","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/antd/es/_util/responsiveObserver.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/locale/context.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/rc-picker/es/locale/common.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/locale/useLocale.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/hooks/useAllowClear.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/BaseSelect/Polite.js","../node_modules/rc-select/es/BaseSelect/index.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/hooks/useScrollDrag.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/hooks/useConfig.js","../node_modules/antd/es/config-provider/hooks/useThemeKey.js","../node_modules/antd/es/config-provider/MotionWrapper.js","../node_modules/antd/es/config-provider/PropWarning.js","../node_modules/antd/es/theme/util/useResetIconStyle.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/antd/es/_util/PurePanel.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/style/index.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/antd/es/form/hooks/useVariants.js","../node_modules/antd/es/select/mergedBuiltinPlacements.js","../node_modules/antd/es/style/motion/move.js","../node_modules/antd/es/select/style/dropdown.js","../node_modules/antd/es/select/style/multiple.js","../node_modules/antd/es/select/style/single.js","../node_modules/antd/es/select/style/token.js","../node_modules/antd/es/select/style/variants.js","../node_modules/antd/es/select/style/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/useShowArrow.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/select/useIcons.js","../node_modules/antd/es/input/style/token.js","../node_modules/antd/es/input/style/variants.js","../node_modules/antd/es/input/style/index.js","../node_modules/antd/es/pagination/style/index.js","../node_modules/antd/es/pagination/style/bordered.js","../node_modules/antd/es/pagination/useShowSizeChanger.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","pages/Admin/components/PaginationAdmin.jsx","pages/TopRecomendation/TopRecommendation.jsx","pages/Admin/settings/Settings.jsx","component/AdminNav/Adminnav.jsx","../node_modules/@ant-design/react-slick/es/initial-state.js","../node_modules/throttle-debounce/debounce.js","../node_modules/throttle-debounce/throttle.js","../node_modules/@ant-design/react-slick/es/default-props.js","../node_modules/@ant-design/react-slick/es/utils/innerSliderUtils.js","../node_modules/@ant-design/react-slick/es/track.js","../node_modules/@ant-design/react-slick/es/dots.js","../node_modules/@ant-design/react-slick/es/arrows.js","../node_modules/@ant-design/react-slick/es/inner-slider.js","../node_modules/@ant-design/react-slick/es/slider.js","../node_modules/@ant-design/react-slick/es/index.js","../node_modules/antd/es/carousel/style/index.js","../node_modules/antd/es/carousel/index.js","../node_modules/phosphor-react/src/icons/Trash.tsx","pages/Admin/adminprofile/Adminprofile.jsx","pages/Admin/userPage/GetFullUser.jsx","pages/AllMatches/AllMatches.jsx","pages/Admin/adminLoginPage/AdminLogin.jsx","pages/ReportViolation/Report1.jsx","pages/UserMain/UserMain.jsx","pages/UserSettings/UserSettings.jsx","webpack://client/./src/pages/LikedProfiles/likedprofiles.module.css?3064","pages/LikedProfiles/LikedProfiles.jsx","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa/index.mjs","pages/Admin/Passwordreset/PasswordReset.jsx","pages/MyProfile/MyProfile.jsx","pages/Admin/Reports/GetFullReport.jsx","pages/Admin/Reports/Report.jsx","pages/Admin/Profile/ProfileComponent.jsx","pages/Admin/Profile/Profile.jsx","pages/Admin/Profile/GetFullProfile.jsx","pages/Admin/AdminProfileVerification/AdminVerififcation.jsx","../node_modules/@stripe/stripe-js/dist/index.mjs","pages/Checkout/CheckoutForm.jsx","pages/Checkout/Checkout.jsx","pages/UserPasswordReset/PasswordReset.jsx","../node_modules/pdf-lib/node_modules/tslib/tslib.es6.js","../node_modules/pdf-lib/src/utils/base64.ts","../node_modules/pdf-lib/src/utils/unicode.ts","../node_modules/pdf-lib/src/utils/strings.ts","../node_modules/pdf-lib/src/utils/arrays.ts","../node_modules/pdf-lib/src/utils/async.ts","../node_modules/@pdf-lib/standard-fonts/es/utils.js","../node_modules/pdf-lib/src/utils/numbers.ts","../node_modules/pdf-lib/src/utils/errors.ts","../node_modules/@pdf-lib/standard-fonts/es/Font.js","../node_modules/pdf-lib/src/utils/pdfDocEncoding.ts","../node_modules/@pdf-lib/standard-fonts/es/Encoding.js","../node_modules/pdf-lib/src/utils/objects.ts","../node_modules/pdf-lib/src/utils/validators.ts","../node_modules/pdf-lib/src/utils/Cache.ts","../node_modules/pdf-lib/src/core/errors.ts","../node_modules/pdf-lib/src/core/syntax/CharCodes.ts","../node_modules/pdf-lib/src/core/document/PDFHeader.ts","../node_modules/pdf-lib/src/core/objects/PDFObject.ts","../node_modules/pdf-lib/src/core/objects/PDFNumber.ts","../node_modules/pdf-lib/src/core/objects/PDFArray.ts","../node_modules/pdf-lib/src/core/objects/PDFBool.ts","../node_modules/pdf-lib/src/core/syntax/Delimiters.ts","../node_modules/pdf-lib/src/core/syntax/Whitespace.ts","../node_modules/pdf-lib/src/core/syntax/Irregular.ts","../node_modules/pdf-lib/src/core/objects/PDFName.ts","../node_modules/pdf-lib/src/core/objects/PDFNull.ts","../node_modules/pdf-lib/src/core/objects/PDFDict.ts","../node_modules/pdf-lib/src/core/objects/PDFStream.ts","../node_modules/pdf-lib/src/core/objects/PDFRawStream.ts","../node_modules/pdf-lib/src/core/objects/PDFRef.ts","../node_modules/pdf-lib/src/core/operators/PDFOperator.ts","../node_modules/pdf-lib/src/core/operators/PDFOperatorNames.ts","../node_modules/pdf-lib/src/core/structures/PDFFlateStream.ts","../node_modules/pdf-lib/src/core/structures/PDFContentStream.ts","../node_modules/pdf-lib/src/utils/rng.ts","../node_modules/pdf-lib/src/core/PDFContext.ts","../node_modules/pdf-lib/src/core/structures/PDFPageLeaf.ts","../node_modules/pdf-lib/src/core/PDFObjectCopier.ts","../node_modules/pdf-lib/src/core/document/PDFCrossRefSection.ts","../node_modules/pdf-lib/src/core/document/PDFTrailer.ts","../node_modules/pdf-lib/src/core/document/PDFTrailerDict.ts","../node_modules/pdf-lib/src/core/structures/PDFObjectStream.ts","../node_modules/pdf-lib/src/core/writers/PDFWriter.ts","../node_modules/pdf-lib/src/core/objects/PDFInvalidObject.ts","../node_modules/pdf-lib/src/core/structures/PDFCrossRefStream.ts","../node_modules/pdf-lib/src/core/writers/PDFStreamWriter.ts","../node_modules/pdf-lib/src/core/objects/PDFHexString.ts","../node_modules/pdf-lib/src/core/embedders/StandardFontEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/CMap.ts","../node_modules/pdf-lib/src/core/embedders/FontFlags.ts","../node_modules/pdf-lib/src/core/objects/PDFString.ts","../node_modules/pdf-lib/src/core/embedders/CustomFontEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/CustomFontSubsetEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/FileEmbedder.ts","../node_modules/pdf-lib/src/core/embedders/JpegEmbedder.ts","../node_modules/@pdf-lib/upng/UPNG.js","../node_modules/pdf-lib/src/utils/png.ts","../node_modules/pdf-lib/src/core/embedders/PngEmbedder.ts","../node_modules/pdf-lib/src/core/streams/Stream.ts","../node_modules/pdf-lib/src/core/streams/DecodeStream.ts","../node_modules/pdf-lib/src/core/streams/Ascii85Stream.ts","../node_modules/pdf-lib/src/core/streams/AsciiHexStream.ts","../node_modules/pdf-lib/src/core/streams/FlateStream.ts","../node_modules/pdf-lib/src/core/streams/LZWStream.ts","../node_modules/pdf-lib/src/core/streams/RunLengthStream.ts","../node_modules/pdf-lib/src/core/streams/decode.ts","../node_modules/pdf-lib/src/core/embedders/PDFPageEmbedder.ts","../node_modules/pdf-lib/src/core/interactive/ViewerPreferences.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroField.ts","../node_modules/pdf-lib/src/core/annotation/BorderStyle.ts","../node_modules/pdf-lib/src/core/annotation/PDFAnnotation.ts","../node_modules/pdf-lib/src/core/annotation/AppearanceCharacteristics.ts","../node_modules/pdf-lib/src/core/annotation/PDFWidgetAnnotation.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroTerminal.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroCheckBox.ts","../node_modules/pdf-lib/src/core/acroform/flags.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroChoice.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroComboBox.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroNonTerminal.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroSignature.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroText.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroPushButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroRadioButton.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroListBox.ts","../node_modules/pdf-lib/src/core/acroform/utils.ts","../node_modules/pdf-lib/src/core/acroform/PDFAcroForm.ts","../node_modules/pdf-lib/src/core/structures/PDFCatalog.ts","../node_modules/pdf-lib/src/core/structures/PDFPageTree.ts","../node_modules/pdf-lib/src/core/syntax/Numeric.ts","../node_modules/pdf-lib/src/core/parser/BaseParser.ts","../node_modules/pdf-lib/src/core/parser/ByteStream.ts","../node_modules/pdf-lib/src/core/syntax/Keywords.ts","../node_modules/pdf-lib/src/core/parser/PDFObjectParser.ts","../node_modules/pdf-lib/src/core/parser/PDFObjectStreamParser.ts","../node_modules/pdf-lib/src/core/parser/PDFXRefStreamParser.ts","../node_modules/pdf-lib/src/core/parser/PDFParser.ts","../node_modules/pdf-lib/src/core/annotation/flags.ts","../node_modules/pdf-lib/src/api/objects.ts","../node_modules/pdf-lib/src/api/rotations.ts","../node_modules/pdf-lib/src/api/operators.ts","../node_modules/pdf-lib/src/api/colors.ts","../node_modules/pdf-lib/src/api/text/alignment.ts","../node_modules/pdf-lib/src/api/svgPath.ts","../node_modules/pdf-lib/src/api/operations.ts","../node_modules/pdf-lib/src/api/errors.ts","../node_modules/pdf-lib/src/api/text/layout.ts","../node_modules/pdf-lib/src/api/form/appearances.ts","../node_modules/pdf-lib/src/api/PDFEmbeddedPage.ts","../node_modules/pdf-lib/src/api/PDFFont.ts","../node_modules/pdf-lib/src/api/PDFImage.ts","../node_modules/pdf-lib/src/api/image/alignment.ts","../node_modules/pdf-lib/src/api/form/PDFField.ts","../node_modules/pdf-lib/src/api/form/PDFCheckBox.ts","../node_modules/pdf-lib/src/api/form/PDFDropdown.ts","../node_modules/pdf-lib/src/api/form/PDFOptionList.ts","../node_modules/pdf-lib/src/api/form/PDFRadioGroup.ts","../node_modules/pdf-lib/src/api/form/PDFSignature.ts","../node_modules/pdf-lib/src/api/form/PDFTextField.ts","../node_modules/pdf-lib/src/api/StandardFonts.ts","../node_modules/pdf-lib/src/api/form/PDFForm.ts","../node_modules/pdf-lib/src/api/PDFDocumentOptions.ts","../node_modules/pdf-lib/src/api/sizes.ts","../node_modules/pdf-lib/src/api/PDFEmbeddedFile.ts","../node_modules/pdf-lib/src/api/PDFJavaScript.ts","../node_modules/pdf-lib/src/core/embedders/JavaScriptEmbedder.ts","../node_modules/pdf-lib/src/api/PDFDocument.ts","../node_modules/pdf-lib/src/api/PDFPageOptions.ts","../node_modules/pdf-lib/src/api/PDFPage.ts","../node_modules/pdf-lib/src/api/form/PDFButton.ts","pages/Checkout/PaymentSuccess.jsx","component/ProtectedRoute/ProtectedRoute.js","App.js","reportWebVitals.js","../node_modules/redux-persist/es/integration/react.js","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","store/store.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","index.js"],"sourcesContent":["\"use strict\";var e=require(\"react\"),t=require(\"pdfjs-dist\");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if(\"default\"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r,o=n(e),a=n(t);exports.AnnotationType=void 0,(r=exports.AnnotationType||(exports.AnnotationType={}))[r.Text=1]=\"Text\",r[r.Link=2]=\"Link\",r[r.FreeText=3]=\"FreeText\",r[r.Line=4]=\"Line\",r[r.Square=5]=\"Square\",r[r.Circle=6]=\"Circle\",r[r.Polygon=7]=\"Polygon\",r[r.Polyline=8]=\"Polyline\",r[r.Highlight=9]=\"Highlight\",r[r.Underline=10]=\"Underline\",r[r.Squiggly=11]=\"Squiggly\",r[r.StrikeOut=12]=\"StrikeOut\",r[r.Stamp=13]=\"Stamp\",r[r.Caret=14]=\"Caret\",r[r.Ink=15]=\"Ink\",r[r.Popup=16]=\"Popup\",r[r.FileAttachment=17]=\"FileAttachment\";var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)};function c(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var s,l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)};exports.TextDirection=void 0,(s=exports.TextDirection||(exports.TextDirection={})).RightToLeft=\"RTL\",s.LeftToRight=\"LTR\";var u,p=o.createContext({currentTheme:\"light\",direction:exports.TextDirection.LeftToRight,setCurrentTheme:function(){}}),d=function(e){var t=[];return Object.keys(e).forEach((function(n){n&&e[n]&&t.push(n)})),t.join(\" \")},f=\"undefined\"!=typeof window?o.useLayoutEffect:o.useEffect,g=function(e){var t=o.useRef(null),n=e.once,r=e.threshold,a=e.onVisibilityChanged;return f((function(){var e=t.current;if(e){var o=new IntersectionObserver((function(t){t.forEach((function(t){var r=t.isIntersecting,i=t.intersectionRatio;a({isVisible:r,ratio:i}),r&&n&&(o.unobserve(e),o.disconnect())}))}),{threshold:r||0});return o.observe(e),function(){o.unobserve(e),o.disconnect()}}}),[]),t},v=function(e){var t=e.children,n=e.ignoreDirection,r=void 0!==n&&n,a=e.size,i=void 0===a?24:a,c=o.useContext(p).direction,s=!r&&c===exports.TextDirection.RightToLeft,l=\"\".concat(i||24,\"px\");return o.createElement(\"svg\",{\"aria-hidden\":\"true\",className:d({\"rpv-core__icon\":!0,\"rpv-core__icon--rtl\":s}),focusable:\"false\",height:l,viewBox:\"0 0 24 24\",width:l},t)},h=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M23.5,0.499l-16.5,23l-6.5-6.5\"}))},m=function(e){var t=e.children,n=e.testId,r=e.onClick,a=o.useContext(p).direction===exports.TextDirection.RightToLeft,i=n?{\"data-testid\":n}:{};return o.createElement(\"button\",l({className:d({\"rpv-core__primary-button\":!0,\"rpv-core__primary-button--rtl\":a}),type:\"button\",onClick:r},i),t)},x=function(e){var t=e.size,n=void 0===t?\"4rem\":t,r=e.testId,a=o.useState(!1),i=a[0],c=a[1],s=r?{\"data-testid\":r}:{},u=g({onVisibilityChanged:function(e){c(e.isVisible)}});return o.createElement(\"div\",l({},s,{className:d({\"rpv-core__spinner\":!0,\"rpv-core__spinner--animating\":i}),ref:u,style:{height:n,width:n}}))},w=function(e){var t=e.ariaLabel,n=void 0===t?\"\":t,r=e.autoFocus,a=void 0!==r&&r,i=e.placeholder,c=void 0===i?\"\":i,s=e.testId,u=e.type,g=void 0===u?\"text\":u,v=e.value,h=void 0===v?\"\":v,m=e.onChange,x=e.onKeyDown,w=void 0===x?function(){}:x,E=o.useContext(p).direction,b=o.useRef(),y=E===exports.TextDirection.RightToLeft,S={ref:b,\"data-testid\":\"\",\"aria-label\":n,className:d({\"rpv-core__textbox\":!0,\"rpv-core__textbox--rtl\":y}),placeholder:c,value:h,onChange:function(e){return m(e.target.value)},onKeyDown:w};return s&&(S[\"data-testid\"]=s),f((function(){if(a){var e=b.current;if(e){var t=window.scrollX,n=window.scrollY;e.focus(),window.scrollTo(t,n)}}}),[]),\"text\"===g?o.createElement(\"input\",l({type:\"text\"},S)):o.createElement(\"input\",l({type:\"password\"},S))};!function(e){e[e.ExitFullScreen=0]=\"ExitFullScreen\",e[e.FullScreenChange=1]=\"FullScreenChange\",e[e.FullScreenElement=2]=\"FullScreenElement\",e[e.FullScreenEnabled=3]=\"FullScreenEnabled\",e[e.RequestFullScreen=4]=\"RequestFullScreen\"}(u||(u={}));var E,b={ExitFullScreen:\"exitFullscreen\",FullScreenChange:\"fullscreenchange\",FullScreenElement:\"fullscreenElement\",FullScreenEnabled:\"fullscreenEnabled\",RequestFullScreen:\"requestFullscreen\"},y={ExitFullScreen:\"webkitExitFullscreen\",FullScreenChange:\"webkitfullscreenchange\",FullScreenElement:\"webkitFullscreenElement\",FullScreenEnabled:\"webkitFullscreenEnabled\",RequestFullScreen:\"webkitRequestFullscreen\"},S={ExitFullScreen:\"msExitFullscreen\",FullScreenChange:\"msFullscreenChange\",FullScreenElement:\"msFullscreenElement\",FullScreenEnabled:\"msFullscreenEnabled\",RequestFullScreen:\"msRequestFullscreen\"},_=\"undefined\"!=typeof window,P=_&&(u.FullScreenEnabled in document&&b||y.FullScreenEnabled in document&&y||S.FullScreenEnabled in document&&S)||b,R=function(){return _&&P.FullScreenEnabled in document&&!0===document[P.FullScreenEnabled]},M=function(e){return _?e[P.ExitFullScreen]():Promise.resolve({})},k=function(){return _?document[P.FullScreenElement]:null},C=function(e,t){var n=o.useRef(),r=function(){n.current&&clearTimeout(n.current)};return o.useEffect((function(){return function(){return r()}}),[]),o.useCallback((function(){for(var o=[],a=0;a<arguments.length;a++)o[a]=arguments[a];r(),n.current=setTimeout((function(){e.apply(void 0,o)}),t)}),[e,t])},T=function(){var e=o.useRef(!1);return o.useEffect((function(){return e.current=!0,function(){e.current=!1}}),[]),e},L=function(e){var t=o.useRef(e);return o.useEffect((function(){t.current=e}),[e]),t.current};!function(e){e.NotRenderedYet=\"NotRenderedYet\",e.Rendering=\"Rendering\",e.Rendered=\"Rendered\"}(E||(E={}));var O,F=-9999,D=function(e){var t=e.doc,n=t.numPages,r=t.loadingTask.docId,a=o.useMemo((function(){return Array(n).fill(null).map((function(e,t){return{pageIndex:t,renderStatus:E.NotRenderedYet,visibility:F}}))}),[r]),i=o.useRef({currentRenderingPage:-1,startRange:0,endRange:n-1,visibilities:a}),c=function(e,t){i.current.visibilities[e].visibility=t};return{getHighestPriorityPage:function(){var e=i.current.visibilities.slice(i.current.startRange,i.current.endRange+1).filter((function(e){return e.visibility>F}));if(!e.length)return-1;for(var t=e[0].pageIndex,r=e[e.length-1].pageIndex,o=e.length,a=0;a<o;a++){if(e[a].renderStatus===E.Rendering)return-1;if(e[a].renderStatus===E.NotRenderedYet)return e[a].pageIndex}return r+1<n&&i.current.visibilities[r+1].renderStatus!==E.Rendered?r+1:t-1>=0&&i.current.visibilities[t-1].renderStatus!==E.Rendered?t-1:-1},isInRange:function(e){return e>=i.current.startRange&&e<=i.current.endRange},markNotRendered:function(){for(var e=0;e<n;e++)i.current.visibilities[e].renderStatus=E.NotRenderedYet},markRendered:function(e){i.current.visibilities[e].renderStatus=E.Rendered},markRendering:function(e){-1!==i.current.currentRenderingPage&&i.current.currentRenderingPage!==e&&i.current.visibilities[i.current.currentRenderingPage].renderStatus===E.Rendering&&(i.current.visibilities[i.current.currentRenderingPage].renderStatus=E.NotRenderedYet),i.current.visibilities[e].renderStatus=E.Rendering,i.current.currentRenderingPage=e},setOutOfRange:function(e){c(e,F)},setRange:function(e,t){i.current.startRange=e,i.current.endRange=t;for(var r=0;r<n;r++)(r<e||r>t)&&(i.current.visibilities[r].visibility=F,i.current.visibilities[r].renderStatus=E.NotRenderedYet)},setVisibility:c}},I={core:{askingPassword:{requirePasswordToOpen:\"This document requires a password to open\",submit:\"Submit\"},wrongPassword:{tryAgain:\"The password is wrong. Please try again\"},pageLabel:\"Page {{pageIndex}}\"}},A=o.createContext({l10n:I,setL10n:function(){}}),H=0,N=function(){return H++},V=function(e,t,n){var r=function(e){var r=t.current;if(r){var o=e.target;if(o instanceof Element&&o.shadowRoot){var a=e.composedPath();a.length>0&&!r.contains(a[0])&&n()}else r.contains(o)||n()}};o.useEffect((function(){if(e){var t={capture:!0};return document.addEventListener(\"click\",r,t),function(){document.removeEventListener(\"click\",r,t)}}}),[])},z=function(e){var t=function(t){\"Escape\"===t.key&&e()};o.useEffect((function(){return document.addEventListener(\"keyup\",t),function(){document.removeEventListener(\"keyup\",t)}}),[])},B=function(e){var t=e.ariaControlsSuffix,n=e.children,r=e.closeOnClickOutside,a=e.closeOnEscape,i=e.onToggle,c=o.useRef(),s=o.useContext(p).direction===exports.TextDirection.RightToLeft;return o.useEffect((function(){var e=window.getComputedStyle(document.body).overflow;return document.body.style.overflow=\"hidden\",function(){document.body.style.overflow=e}}),[]),z((function(){c.current&&a&&i()})),V(r,c,i),f((function(){var e=c.current;if(e){var t=.75*document.body.clientHeight;e.getBoundingClientRect().height>=t&&(e.style.overflow=\"auto\",e.style.maxHeight=\"\".concat(t,\"px\"))}}),[]),o.createElement(\"div\",{\"aria-modal\":\"true\",className:d({\"rpv-core__modal-body\":!0,\"rpv-core__modal-body--rtl\":s}),id:\"rpv-core__modal-body-\".concat(t),ref:c,role:\"dialog\",tabIndex:-1},n)},W=function(e){var t=e.children;return o.createElement(\"div\",{className:\"rpv-core__modal-overlay\"},t)};exports.ToggleStatus=void 0,(O=exports.ToggleStatus||(exports.ToggleStatus={})).Close=\"Close\",O.Open=\"Open\",O.Toggle=\"Toggle\";var j,q=function(e){var t=o.useState(e),n=t[0],r=t[1];return{opened:n,toggle:function(e){switch(e){case exports.ToggleStatus.Close:r(!1);break;case exports.ToggleStatus.Open:r(!0);break;case exports.ToggleStatus.Toggle:default:r((function(e){return!e}))}}}},U=function(e){var t=e.content,n=e.isOpened,r=void 0!==n&&n,a=e.target,i=q(r),c=i.opened,s=i.toggle;return o.createElement(o.Fragment,null,a&&a(s,c),c&&t(s))};exports.Position=void 0,(j=exports.Position||(exports.Position={})).TopLeft=\"TOP_LEFT\",j.TopCenter=\"TOP_CENTER\",j.TopRight=\"TOP_RIGHT\",j.RightTop=\"RIGHT_TOP\",j.RightCenter=\"RIGHT_CENTER\",j.RightBottom=\"RIGHT_BOTTOM\",j.BottomLeft=\"BOTTOM_LEFT\",j.BottomCenter=\"BOTTOM_CENTER\",j.BottomRight=\"BOTTOM_RIGHT\",j.LeftTop=\"LEFT_TOP\",j.LeftCenter=\"LEFT_CENTER\",j.LeftBottom=\"LEFT_BOTTOM\";var Z,J,G,Y,K,X,Q,$,ee=function(e,t,n,r,o){f((function(){var a=t.current,i=e.current,c=n.current;if(i&&a&&c){var s=c.getBoundingClientRect(),l=function(e,t,n,r){var o=t.getBoundingClientRect(),a=e.getBoundingClientRect(),i=a.height,c=a.width,s=0,l=0;switch(n){case exports.Position.TopLeft:s=o.top-i,l=o.left;break;case exports.Position.TopCenter:s=o.top-i,l=o.left+o.width/2-c/2;break;case exports.Position.TopRight:s=o.top-i,l=o.left+o.width-c;break;case exports.Position.RightTop:s=o.top,l=o.left+o.width;break;case exports.Position.RightCenter:s=o.top+o.height/2-i/2,l=o.left+o.width;break;case exports.Position.RightBottom:s=o.top+o.height-i,l=o.left+o.width;break;case exports.Position.BottomLeft:s=o.top+o.height,l=o.left;break;case exports.Position.BottomCenter:s=o.top+o.height,l=o.left+o.width/2-c/2;break;case exports.Position.BottomRight:s=o.top+o.height,l=o.left+o.width-c;break;case exports.Position.LeftTop:s=o.top,l=o.left-c;break;case exports.Position.LeftCenter:s=o.top+o.height/2-i/2,l=o.left-c;break;case exports.Position.LeftBottom:s=o.top+o.height-i,l=o.left-c}return{left:l+(r.left||0),top:s+(r.top||0)}}(i,a,r,o),u=l.top,p=l.left;i.style.top=\"\".concat(u-s.top,\"px\"),i.style.left=\"\".concat(p-s.left,\"px\")}}),[])},te=function(e){var t,n=e.customClassName,r=e.position;return o.createElement(\"div\",{className:d((t={\"rpv-core__arrow\":!0,\"rpv-core__arrow--tl\":r===exports.Position.TopLeft,\"rpv-core__arrow--tc\":r===exports.Position.TopCenter,\"rpv-core__arrow--tr\":r===exports.Position.TopRight,\"rpv-core__arrow--rt\":r===exports.Position.RightTop,\"rpv-core__arrow--rc\":r===exports.Position.RightCenter,\"rpv-core__arrow--rb\":r===exports.Position.RightBottom,\"rpv-core__arrow--bl\":r===exports.Position.BottomLeft,\"rpv-core__arrow--bc\":r===exports.Position.BottomCenter,\"rpv-core__arrow--br\":r===exports.Position.BottomRight,\"rpv-core__arrow--lt\":r===exports.Position.LeftTop,\"rpv-core__arrow--lc\":r===exports.Position.LeftCenter,\"rpv-core__arrow--lb\":r===exports.Position.LeftBottom},t[\"\".concat(n)]=\"\"!==n,t))})},ne=function(e){var t=e.ariaControlsSuffix,n=e.children,r=e.closeOnClickOutside,a=e.offset,i=e.position,c=e.targetRef,s=e.onClose,l=o.useRef(),u=o.useRef(),g=o.useRef(),v=o.useContext(p).direction===exports.TextDirection.RightToLeft;V(r,l,s),ee(l,c,g,i,a),f((function(){var e=u.current;if(e){var t=.75*document.body.clientHeight;e.getBoundingClientRect().height>=t&&(e.style.overflow=\"auto\",e.style.maxHeight=\"\".concat(t,\"px\"))}}),[]);var h=\"rpv-core__popover-body-inner-\".concat(t);return o.createElement(o.Fragment,null,o.createElement(\"div\",{ref:g,style:{left:0,position:\"absolute\",top:0}}),o.createElement(\"div\",{\"aria-describedby\":h,className:d({\"rpv-core__popover-body\":!0,\"rpv-core__popover-body--rtl\":v}),id:\"rpv-core__popover-body-\".concat(t),ref:l,role:\"dialog\",tabIndex:-1},o.createElement(te,{customClassName:\"rpv-core__popover-body-arrow\",position:i}),o.createElement(\"div\",{id:h,ref:u},n)))},re=function(e){var t=e.closeOnEscape,n=e.onClose,r=o.useRef();return z((function(){r.current&&t&&n()})),o.createElement(\"div\",{className:\"rpv-core__popover-overlay\",ref:r})},oe=function(e){var t=e.ariaControlsSuffix,n=e.children,r=e.contentRef,a=e.offset,i=e.position,c=e.targetRef,s=o.useRef(),l=o.useContext(p).direction===exports.TextDirection.RightToLeft;return ee(r,c,s,i,a),o.createElement(o.Fragment,null,o.createElement(\"div\",{ref:s,style:{left:0,position:\"absolute\",top:0}}),o.createElement(\"div\",{className:d({\"rpv-core__tooltip-body\":!0,\"rpv-core__tooltip-body--rtl\":l}),id:\"rpv-core__tooltip-body-\".concat(t),ref:r,role:\"tooltip\"},o.createElement(te,{customClassName:\"rpv-core__tooltip-body-arrow\",position:i}),o.createElement(\"div\",{className:\"rpv-core__tooltip-body-content\"},n)))};exports.FullScreenMode=void 0,(Z=exports.FullScreenMode||(exports.FullScreenMode={})).Normal=\"Normal\",Z.Entering=\"Entering\",Z.Entered=\"Entered\",Z.EnteredCompletely=\"EnteredCompletely\",Z.Exitting=\"Exitting\",Z.Exited=\"Exited\",exports.LayerRenderStatus=void 0,(J=exports.LayerRenderStatus||(exports.LayerRenderStatus={}))[J.PreRender=0]=\"PreRender\",J[J.DidRender=1]=\"DidRender\",exports.PageMode=void 0,(G=exports.PageMode||(exports.PageMode={})).Attachments=\"UseAttachments\",G.Bookmarks=\"UseOutlines\",G.ContentGroup=\"UseOC\",G.Default=\"UserNone\",G.FullScreen=\"FullScreen\",G.Thumbnails=\"UseThumbs\",exports.PasswordStatus=void 0,(Y=exports.PasswordStatus||(exports.PasswordStatus={})).RequiredPassword=\"RequiredPassword\",Y.WrongPassword=\"WrongPassword\",exports.RotateDirection=void 0,(K=exports.RotateDirection||(exports.RotateDirection={})).Backward=\"Backward\",K.Forward=\"Forward\",exports.ScrollMode=void 0,(X=exports.ScrollMode||(exports.ScrollMode={})).Page=\"Page\",X.Horizontal=\"Horizontal\",X.Vertical=\"Vertical\",X.Wrapped=\"Wrapped\",exports.SpecialZoomLevel=void 0,(Q=exports.SpecialZoomLevel||(exports.SpecialZoomLevel={})).ActualSize=\"ActualSize\",Q.PageFit=\"PageFit\",Q.PageWidth=\"PageWidth\",exports.ViewMode=void 0,($=exports.ViewMode||(exports.ViewMode={})).DualPage=\"DualPage\",$.DualPageWithCover=\"DualPageWithCover\",$.SinglePage=\"SinglePage\";var ae,ie=function(e,t){return e.reduce((function(e,n,r){return r%t?e[e.length-1].push(n):e.push([n]),e}),[])},ce=function(e,t){switch(t[1].name){case\"XYZ\":return{bottomOffset:function(e,n){return null===t[3]?n:t[3]},leftOffset:function(e,n){return null===t[2]?0:t[2]},pageIndex:e,scaleTo:t[4]};case\"Fit\":case\"FitB\":return{bottomOffset:0,leftOffset:0,pageIndex:e,scaleTo:exports.SpecialZoomLevel.PageFit};case\"FitH\":case\"FitBH\":return{bottomOffset:t[2],leftOffset:0,pageIndex:e,scaleTo:exports.SpecialZoomLevel.PageWidth};default:return{bottomOffset:0,leftOffset:0,pageIndex:e,scaleTo:1}}},se=new Map,le=new Map,ue=function(e,t){return\"\".concat(e.loadingTask.docId,\"___\").concat(t.num,\"R\").concat(0===t.gen?\"\":t.gen)},pe=function(e,t,n){se.set(ue(e,t),n)},de=function(e,t){if(!e)return Promise.reject(\"The document is not loaded yet\");var n=\"\".concat(e.loadingTask.docId,\"___\").concat(t),r=le.get(n);return r?Promise.resolve(r):new Promise((function(r,o){e.getPage(t+1).then((function(o){le.set(n,o),o.ref&&pe(e,o.ref,t),r(o)}))}))},fe=function(e,t){return new Promise((function(n){new Promise((function(n){\"string\"==typeof t?e.getDestination(t).then((function(e){n(e)})):n(t)})).then((function(r){if(\"object\"==typeof r[0]&&null!==r[0]){var o=r[0],a=function(e,t){var n=ue(e,t);return se.has(n)?se.get(n):null}(e,o);null===a?e.getPageIndex(o).then((function(r){pe(e,o,r),fe(e,t).then((function(e){return n(e)}))})):n(ce(a,r))}else{var i=ce(r[0],r);n(i)}}))}))};!function(e){e[e.Solid=1]=\"Solid\",e[e.Dashed=2]=\"Dashed\",e[e.Beveled=3]=\"Beveled\",e[e.Inset=4]=\"Inset\",e[e.Underline=5]=\"Underline\"}(ae||(ae={}));var ge,ve=new RegExp(\"^D:(\\\\d{4})(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?(\\\\d{2})?([Z|+|-])?(\\\\d{2})?'?(\\\\d{2})?'?\"),he=function(e,t,n,r){var o=parseInt(e,10);return o>=t&&o<=n?o:r},me=function(e){return e.contentsObj?e.contentsObj.str:e.contents||\"\"},xe=function(e){return e.titleObj?e.titleObj.str:e.title||\"\"},we=function(e){var t=e.annotation,n=o.useContext(p).direction,r=xe(t),a=me(t),i=n===exports.TextDirection.RightToLeft,c=o.useRef(),s=\"\";if(t.modificationDate){var l=function(e){var t=ve.exec(e);if(!t)return null;var n=parseInt(t[1],10),r=he(t[2],1,12,1)-1,o=he(t[3],1,31,1),a=he(t[4],0,23,0),i=he(t[5],0,59,0),c=he(t[6],0,59,0),s=t[7]||\"Z\",l=he(t[8],0,23,0),u=he(t[9],0,59,0);switch(s){case\"-\":a+=l,i+=u;break;case\"+\":a-=l,i-=u}return new Date(Date.UTC(n,r,o,a,i,c))}(t.modificationDate);s=l?\"\".concat(l.toLocaleDateString(),\", \").concat(l.toLocaleTimeString()):\"\"}return o.useLayoutEffect((function(){if(c.current){var e=document.querySelector('[data-annotation-id=\"'.concat(t.id,'\"]'));if(e){var n=e;return n.style.zIndex+=1,function(){n.style.zIndex=\"\".concat(parseInt(n.style.zIndex,10)-1)}}}}),[]),o.createElement(\"div\",{ref:c,className:d({\"rpv-core__annotation-popup-wrapper\":!0,\"rpv-core__annotation-popup-wrapper--rtl\":i}),style:{top:t.annotationType===exports.AnnotationType.Popup?\"\":\"100%\"}},r&&o.createElement(o.Fragment,null,o.createElement(\"div\",{className:d({\"rpv-core__annotation-popup-title\":!0,\"rpv-core__annotation-popup-title--ltr\":!i,\"rpv-core__annotation-popup-title--rtl\":i})},r),o.createElement(\"div\",{className:\"rpv-core__annotation-popup-date\"},s)),a&&o.createElement(\"div\",{className:\"rpv-core__annotation-popup-content\"},a.split(\"\\n\").map((function(e,t){return o.createElement(o.Fragment,{key:t},e,o.createElement(\"br\",null))}))))};!function(e){e.Click=\"Click\",e.Hover=\"Hover\"}(ge||(ge={}));var Ee,be=function(e){var t,n=e.annotation,r=e.children,a=e.ignoreBorder,i=e.hasPopup,c=e.isRenderable,s=e.page,l=e.viewport,u=n.rect,p=function(){var e=q(!1),t=e.opened,n=e.toggle,r=o.useState(ge.Hover),a=r[0],i=r[1];return{opened:t,closeOnHover:function(){a===ge.Hover&&n(exports.ToggleStatus.Close)},openOnHover:function(){a===ge.Hover&&n(exports.ToggleStatus.Open)},toggleOnClick:function(){switch(a){case ge.Click:t&&i(ge.Hover),n(exports.ToggleStatus.Toggle);break;case ge.Hover:i(ge.Click),n(exports.ToggleStatus.Open)}}}}(),d=p.closeOnHover,f=p.opened,g=p.openOnHover,v=p.toggleOnClick,h=(t=[u[0],s.view[3]+s.view[1]-u[1],u[2],s.view[3]+s.view[1]-u[3]],[Math.min(t[0],t[2]),Math.min(t[1],t[3]),Math.max(t[0],t[2]),Math.max(t[1],t[3])]),m=u[2]-u[0],x=u[3]-u[1],w={borderColor:\"\",borderRadius:\"\",borderStyle:\"\",borderWidth:\"\"};if(!a&&n.borderStyle.width>0){switch(n.borderStyle.style){case ae.Dashed:w.borderStyle=\"dashed\";break;case ae.Solid:w.borderStyle=\"solid\";break;case ae.Underline:w=Object.assign({borderBottomStyle:\"solid\"},w);case ae.Beveled:case ae.Inset:}var E=n.borderStyle.width;w.borderWidth=\"\".concat(E,\"px\"),n.borderStyle.style!==ae.Underline&&(m-=2*E,x-=2*E);var b=n.borderStyle,y=b.horizontalCornerRadius,S=b.verticalCornerRadius;(y>0||S>0)&&(w.borderRadius=\"\".concat(y,\"px / \").concat(S,\"px\")),n.color?w.borderColor=\"rgb(\".concat(0|n.color[0],\", \").concat(0|n.color[1],\", \").concat(0|n.color[2],\")\"):w.borderWidth=\"0\"}return o.createElement(o.Fragment,null,c&&r({popup:{opened:f,closeOnHover:d,openOnHover:g,toggleOnClick:v},slot:{attrs:{style:Object.assign({height:\"\".concat(x,\"px\"),left:\"\".concat(h[0],\"px\"),top:\"\".concat(h[1],\"px\"),transform:\"matrix(\".concat(l.transform.join(\",\"),\")\"),transformOrigin:\"-\".concat(h[0],\"px -\").concat(h[1],\"px\"),width:\"\".concat(m,\"px\")},w)},children:o.createElement(o.Fragment,null,i&&f&&o.createElement(we,{annotation:n}))}}))},ye=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--caret\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},Se=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--circle\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},o.createElement(\"circle\",{cy:d/2,fill:\"none\",rx:p/2-f/2,ry:d/2-f/2,stroke:\"transparent\",strokeWidth:f||1})),e.slot.children)}))},_e=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=xe(t),i=me(t),c=!(!1!==t.hasPopup||!a&&!i),s=function(){var e,n,r,o,a=t.file;a&&(e=a.filename,n=a.content,r=\"string\"==typeof n?\"\":URL.createObjectURL(new Blob([n],{type:\"\"})),(o=document.createElement(\"a\")).style.display=\"none\",o.href=r||e,o.setAttribute(\"download\",function(e){var t=e.split(\"/\").pop();return t?t.split(\"#\")[0].split(\"?\")[0]:e}(e)),document.body.appendChild(o),o.click(),document.body.removeChild(o),r&&URL.revokeObjectURL(r))};return o.createElement(be,{annotation:t,hasPopup:c,ignoreBorder:!0,isRenderable:!0,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--file-attachment\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onDoubleClick:s,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},Pe=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--free-text\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},Re=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=xe(t),i=me(t),c=!(!a&&!i),s=!t.parentType||-1!==[\"Circle\",\"Ink\",\"Line\",\"Polygon\",\"PolyLine\",\"Square\"].indexOf(t.parentType);return f((function(){if(t.parentId){var e=document.querySelector('[data-annotation-id=\"'.concat(t.parentId,'\"]')),n=document.querySelector('[data-annotation-id=\"'.concat(t.id,'\"]'));if(e&&n){var r=parseFloat(e.style.left),o=parseFloat(e.style.top)+parseFloat(e.style.height);n.style.left=\"\".concat(r,\"px\"),n.style.top=\"\".concat(o,\"px\"),n.style.transformOrigin=\"-\".concat(r,\"px -\").concat(o,\"px\")}}}),[]),o.createElement(be,{annotation:t,hasPopup:s,ignoreBorder:!1,isRenderable:c,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--popup\",\"data-annotation-id\":t.id}),o.createElement(we,{annotation:t}))}))},Me=function(e){var t=e.annotation,n=e.childAnnotation,r=e.page,a=e.viewport,i=!1===t.hasPopup,c=xe(t),s=me(t),u=!!(t.hasPopup||c||s);if(t.quadPoints&&t.quadPoints.length>0){var p=t.quadPoints.map((function(e){return Object.assign({},t,{rect:[e[2].x,e[2].y,e[1].x,e[1].y],quadPoints:[]})}));return o.createElement(o.Fragment,null,p.map((function(e,t){return o.createElement(Me,{key:t,annotation:e,childAnnotation:n,page:r,viewport:a})})))}return o.createElement(be,{annotation:t,hasPopup:i,ignoreBorder:!0,isRenderable:u,page:r,viewport:a},(function(e){return o.createElement(o.Fragment,null,o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--highlight\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children),n&&n.annotationType===exports.AnnotationType.Popup&&e.popup.opened&&o.createElement(Re,{annotation:n,page:r,viewport:a}))}))},ke=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--ink\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),t.inkLists&&t.inkLists.length&&o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},t.inkLists.map((function(e,t){return o.createElement(\"polyline\",{key:t,fill:\"none\",stroke:\"transparent\",strokeWidth:f||1,points:e.map((function(e){return\"\".concat(e.x-u[0],\",\").concat(u[3]-e.y)})).join(\" \")})}))),e.slot.children)}))},Ce=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--line\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},o.createElement(\"line\",{stroke:\"transparent\",strokeWidth:f||1,x1:u[2]-t.lineCoordinates[0],x2:u[2]-t.lineCoordinates[2],y1:u[3]-t.lineCoordinates[1],y2:u[3]-t.lineCoordinates[3]})),e.slot.children)}))},Te=/^([^\\w]*)(javascript|data|vbscript)/im,Le=/&#(\\w+)(^\\w|;)?/g,Oe=/[\\u0000-\\u001F\\u007F-\\u009F\\u2000-\\u200D\\uFEFF]/gim,Fe=/^([^:]+):/gm,De=function(e,t){void 0===t&&(t=\"about:blank\");var n,r=(n=e||\"\",n.replace(Le,(function(e,t){return String.fromCharCode(t)}))).replace(Oe,\"\").trim();if(!r)return t;var o=r[0];if(\".\"===o||\"/\"===o)return r;var a=r.match(Fe);if(!a)return r;var i=a[0];return Te.test(i)?t:r},Ie=function(e){var t,n=e.annotation,r=e.annotationContainerRef,a=e.doc,i=e.outlines,c=e.page,s=e.pageIndex,u=e.scale,p=e.viewport,d=e.onExecuteNamedAction,f=e.onJumpFromLinkAnnotation,g=e.onJumpToDest,v=o.useRef(),h=i&&i.length&&n.dest&&\"string\"==typeof n.dest?null===(t=i.find((function(e){return e.dest===n.dest})))||void 0===t?void 0:t.title:\"\",m=!!(n.url||n.dest||n.action||n.unsafeUrl),x={};if(n.url||n.unsafeUrl){var w=De(n.url||n.unsafeUrl,\"\");w?x={\"data-target\":\"external\",href:w,rel:\"noopener noreferrer nofollow\",target:n.newWindow?\"_blank\":\"\",title:w}:m=!1}else x={href:\"\",\"data-annotation-link\":n.id,onClick:function(e){e.preventDefault(),n.action?d(n.action):fe(a,n.dest).then((function(e){var t=v.current,n=r.current;if(t&&n){var o=t.getBoundingClientRect();n.style.setProperty(\"height\",\"100%\"),n.style.setProperty(\"width\",\"100%\");var a=n.getBoundingClientRect();n.style.removeProperty(\"height\"),n.style.removeProperty(\"width\");var i=(o.left-a.left)/u,c=(a.bottom-o.bottom+o.height)/u;f({bottomOffset:c,label:h,leftOffset:i,pageIndex:s})}g(e)}))}};return h&&(x=Object.assign({},x,{title:h,\"aria-label\":h})),o.createElement(be,{annotation:n,hasPopup:!1,ignoreBorder:!1,isRenderable:m,page:c,viewport:p},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--link\",\"data-annotation-id\":n.id,\"data-testid\":\"core__annotation--link-\".concat(n.id)}),o.createElement(\"a\",l({ref:v},x)))}))},Ae=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--polygon\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),t.vertices&&t.vertices.length&&o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},o.createElement(\"polygon\",{fill:\"none\",stroke:\"transparent\",strokeWidth:f||1,points:t.vertices.map((function(e){return\"\".concat(e.x-u[0],\",\").concat(u[3]-e.y)})).join(\" \")})),e.slot.children)}))},He=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--polyline\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),t.vertices&&t.vertices.length&&o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},o.createElement(\"polyline\",{fill:\"none\",stroke:\"transparent\",strokeWidth:f||1,points:t.vertices.map((function(e){return\"\".concat(e.x-u[0],\",\").concat(u[3]-e.y)})).join(\" \")})),e.slot.children)}))},Ne=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c),u=t.rect,p=u[2]-u[0],d=u[3]-u[1],f=t.borderStyle.width;return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--square\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),o.createElement(\"svg\",{height:\"\".concat(d,\"px\"),preserveAspectRatio:\"none\",version:\"1.1\",viewBox:\"0 0 \".concat(p,\" \").concat(d),width:\"\".concat(p,\"px\")},o.createElement(\"rect\",{height:d-f,fill:\"none\",stroke:\"transparent\",strokeWidth:f||1,x:f/2,y:f/2,width:p-f})),e.slot.children)}))},Ve=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--squiggly\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},ze=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--stamp\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},Be=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--strike-out\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},We=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M.5,16.5a1,1,0,0,0,1,1h2v4l4-4h15a1,1,0,0,0,1-1V3.5a1,1,0,0,0-1-1H1.5a1,1,0,0,0-1,1Z\"}),o.createElement(\"path\",{d:\"M7.25,9.75A.25.25,0,1,1,7,10a.25.25,0,0,1,.25-.25\"}),o.createElement(\"path\",{d:\"M12,9.75a.25.25,0,1,1-.25.25A.25.25,0,0,1,12,9.75\"}),o.createElement(\"path\",{d:\"M16.75,9.75a.25.25,0,1,1-.25.25.25.25,0,0,1,.25-.25\"}))},je=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M0.500 12.001 A11.500 11.500 0 1 0 23.500 12.001 A11.500 11.500 0 1 0 0.500 12.001 Z\"}),o.createElement(\"path\",{d:\"M6.000 12.001 A6.000 6.000 0 1 0 18.000 12.001 A6.000 6.000 0 1 0 6.000 12.001 Z\"}),o.createElement(\"path\",{d:\"M21.423 5.406L17.415 9.414\"}),o.createElement(\"path\",{d:\"M14.587 6.585L18.607 2.565\"}),o.createElement(\"path\",{d:\"M5.405 21.424L9.413 17.416\"}),o.createElement(\"path\",{d:\"M6.585 14.588L2.577 18.596\"}),o.createElement(\"path\",{d:\"M18.602 21.419L14.595 17.412\"}),o.createElement(\"path\",{d:\"M17.419 14.58L21.428 18.589\"}),o.createElement(\"path\",{d:\"M2.582 5.399L6.588 9.406\"}),o.createElement(\"path\",{d:\"M9.421 6.581L5.412 2.572\"}))},qe=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M4.000 18.500 A1.500 1.500 0 1 0 7.000 18.500 A1.500 1.500 0 1 0 4.000 18.500 Z\"}),o.createElement(\"path\",{d:\"M20.5.5l-9.782,9.783a7,7,0,1,0,3,3L17,10h1.5V8.5L19,8h1.5V6.5L21,6h1.5V4.5l1-1V.5Z\"}))},Ue=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M2.000 2.500 L22.000 2.500 L22.000 23.500 L2.000 23.500 Z\"}),o.createElement(\"path\",{d:\"M6 4.5L6 0.5\"}),o.createElement(\"path\",{d:\"M18 4.5L18 0.5\"}),o.createElement(\"path\",{d:\"M10 4.5L10 0.5\"}),o.createElement(\"path\",{d:\"M14 4.5L14 0.5\"}))},Ze=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M17.5 0.498L17.5 23.498\"}),o.createElement(\"path\",{d:\"M10.5 0.498L10.5 23.498\"}),o.createElement(\"path\",{d:\"M23.5.5H6.5a6,6,0,0,0,0,12h4\"}))},Je=function(){return o.createElement(v,{size:16},o.createElement(\"path\",{d:\"M2.5 22.995L12 6.005 21.5 22.995 2.5 22.995z\"}))},Ge=function(e){var t=e.annotation,n=e.childAnnotation,r=e.page,a=e.viewport,i=!1===t.hasPopup,c=xe(t),s=me(t),u=!!(t.hasPopup||c||s),p=t.name?t.name.toLowerCase():\"\";return o.createElement(be,{annotation:t,hasPopup:i,ignoreBorder:!1,isRenderable:u,page:r,viewport:a},(function(e){return o.createElement(o.Fragment,null,o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--text\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),p&&o.createElement(\"div\",{className:\"rpv-core__annotation-text-icon\"},\"check\"===p&&o.createElement(h,null),\"comment\"===p&&o.createElement(We,null),\"help\"===p&&o.createElement(je,null),\"insert\"===p&&o.createElement(Je,null),\"key\"===p&&o.createElement(qe,null),\"note\"===p&&o.createElement(Ue,null),(\"newparagraph\"===p||\"paragraph\"===p)&&o.createElement(Ze,null)),e.slot.children),n&&n.annotationType===exports.AnnotationType.Popup&&e.popup.opened&&o.createElement(Re,{annotation:n,page:r,viewport:a}))}))},Ye=function(e){var t=e.annotation,n=e.page,r=e.viewport,a=!1===t.hasPopup,i=xe(t),c=me(t),s=!!(t.hasPopup||i||c);return o.createElement(be,{annotation:t,hasPopup:a,ignoreBorder:!0,isRenderable:s,page:n,viewport:r},(function(e){return o.createElement(\"div\",l({},e.slot.attrs,{className:\"rpv-core__annotation rpv-core__annotation--underline\",\"data-annotation-id\":t.id,onClick:e.popup.toggleOnClick,onMouseEnter:e.popup.openOnHover,onMouseLeave:e.popup.closeOnHover}),e.slot.children)}))},Ke=function(e){var t=e.annotations,n=e.doc,r=e.outlines,a=e.page,i=e.pageIndex,c=e.plugins,s=e.rotation,l=e.scale,u=e.onExecuteNamedAction,p=e.onJumpFromLinkAnnotation,d=e.onJumpToDest,g=o.useRef(),v=a.getViewport({rotation:s,scale:l}).clone({dontFlip:!0}),h=t.filter((function(e){return!e.parentId}));return f((function(){var e=g.current;e&&c.forEach((function(t){t.onAnnotationLayerRender&&t.onAnnotationLayerRender({annotations:h,container:e,pageIndex:i,rotation:s,scale:l})}))}),[]),o.createElement(\"div\",{ref:g,className:\"rpv-core__annotation-layer\",\"data-testid\":\"core__annotation-layer-\".concat(i)},h.map((function(e){var c=t.find((function(t){return t.parentId===e.id}));switch(e.annotationType){case exports.AnnotationType.Caret:return o.createElement(ye,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Circle:return o.createElement(Se,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.FileAttachment:return o.createElement(_e,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.FreeText:return o.createElement(Pe,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Highlight:return o.createElement(Me,{key:e.id,annotation:e,childAnnotation:c,page:a,viewport:v});case exports.AnnotationType.Ink:return o.createElement(ke,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Line:return o.createElement(Ce,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Link:return o.createElement(Ie,{key:e.id,annotation:e,annotationContainerRef:g,doc:n,outlines:r,page:a,pageIndex:i,scale:l,viewport:v,onExecuteNamedAction:u,onJumpFromLinkAnnotation:p,onJumpToDest:d});case exports.AnnotationType.Polygon:return o.createElement(Ae,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Polyline:return o.createElement(He,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Popup:return o.createElement(Re,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Square:return o.createElement(Ne,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Squiggly:return o.createElement(Ve,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Stamp:return o.createElement(ze,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.StrikeOut:return o.createElement(Be,{key:e.id,annotation:e,page:a,viewport:v});case exports.AnnotationType.Text:return o.createElement(Ge,{key:e.id,annotation:e,childAnnotation:c,page:a,viewport:v});case exports.AnnotationType.Underline:return o.createElement(Ye,{key:e.id,annotation:e,page:a,viewport:v});default:return o.createElement(o.Fragment,{key:e.id})}})))},Xe=function(e){var t=e.page,n=e.renderAnnotations,r=T(),a=o.useState({loading:!0,annotations:[]}),i=a[0],c=a[1];return o.useEffect((function(){t.getAnnotations({intent:\"display\"}).then((function(e){r.current&&c({loading:!1,annotations:e})}))}),[]),i.loading?o.createElement(o.Fragment,null):n(i.annotations)},Qe=function(e){var t=e.doc,n=e.outlines,r=e.page,a=e.pageIndex,i=e.plugins,c=e.rotation,s=e.scale,l=e.onExecuteNamedAction,u=e.onJumpFromLinkAnnotation,p=e.onJumpToDest;return o.createElement(Xe,{page:r,renderAnnotations:function(e){return o.createElement(Ke,{annotations:e,doc:t,outlines:n,page:r,pageIndex:a,plugins:i,rotation:c,scale:s,onExecuteNamedAction:l,onJumpFromLinkAnnotation:u,onJumpToDest:p})}})},$e=function(e,t){var n=e%t;return 0===n?e:Math.floor(e-n)},et=function(e){var t=e.canvasLayerRef,n=e.height,r=e.page,a=e.pageIndex,i=e.plugins,c=e.rotation,s=e.scale,l=e.width,u=e.onRenderCanvasCompleted,p=o.useRef();return f((function(){var e=p.current;e&&e.cancel();var n=t.current;n.removeAttribute(\"data-testid\"),i.forEach((function(e){e.onCanvasLayerRender&&e.onCanvasLayerRender({ele:n,pageIndex:a,rotation:c,scale:s,status:exports.LayerRenderStatus.PreRender})}));var o=r.getViewport({rotation:c,scale:s}),l=window.devicePixelRatio||1,d=Math.sqrt(16777216/(o.width*o.height)),f=l>d;f?n.style.transform=\"scale(1, 1)\":n.style.removeProperty(\"transform\");var g=Math.min(d,l),v=function(e,t){var n,r;if(Math.floor(e)===e)return[e,1];var o=1/e;if(o>t)return[1,t];if(Math.floor(o)===o)return[1,o];for(var a=e>1?o:e,i=0,c=1,s=1,l=1;;){var u=i+s,p=c+l;if(p>t)break;a<=u/p?(s=(n=[u,p])[0],l=n[1]):(i=(r=[u,p])[0],c=r[1])}return a<(i/c+s/l)/2?a===e?[i,c]:[c,i]:a===e?[s,l]:[l,s]}(g,8),h=v[0],m=v[1];n.width=$e(o.width*g,h),n.height=$e(o.height*g,h),n.style.width=\"\".concat($e(o.width,m),\"px\"),n.style.height=\"\".concat($e(o.height,m),\"px\"),n.hidden=!0;var x=n.getContext(\"2d\",{alpha:!1}),w=f||1!==l?[g,0,0,g,0,0]:null;return p.current=r.render({canvasContext:x,transform:w,viewport:o}),p.current.promise.then((function(){n.hidden=!1,n.setAttribute(\"data-testid\",\"core__canvas-layer-\".concat(a)),i.forEach((function(e){e.onCanvasLayerRender&&e.onCanvasLayerRender({ele:n,pageIndex:a,rotation:c,scale:s,status:exports.LayerRenderStatus.DidRender})})),u()}),(function(){u()})),function(){n&&(n.width=0,n.height=0)}}),[]),o.createElement(\"div\",{className:\"rpv-core__canvas-layer\",style:{height:\"\".concat(n,\"px\"),width:\"\".concat(l,\"px\")}},o.createElement(\"canvas\",{ref:t}))},tt=function(e){var t=e.height,n=e.page,r=e.rotation,i=e.scale,c=e.width,s=o.useRef();return f((function(){var e=s.current,o=n.getViewport({rotation:r,scale:i});n.getOperatorList().then((function(r){!function(){var e=s.current;e&&(e.innerHTML=\"\")}(),new a.SVGGraphics(n.commonObjs,n.objs).getSVG(r,o).then((function(n){n.style.height=\"\".concat(t,\"px\"),n.style.width=\"\".concat(c,\"px\"),e.appendChild(n)}))}))}),[]),o.createElement(\"div\",{className:\"rpv-core__svg-layer\",ref:s})},nt=function(e){var t=e.containerRef,n=e.page,r=e.pageIndex,i=e.plugins,c=e.rotation,s=e.scale,l=e.onRenderTextCompleted,u=o.useRef(),p=function(){var e=t.current;e&&([].slice.call(e.querySelectorAll(\".rpv-core__text-layer-text\")).forEach((function(t){return e.removeChild(t)})),[].slice.call(e.querySelectorAll('br[role=\"presentation\"]')).forEach((function(t){return e.removeChild(t)})))};return f((function(){var e=u.current;e&&e.cancel();var o=t.current;if(o){o.removeAttribute(\"data-testid\");var d=n.getViewport({rotation:c,scale:s});return i.forEach((function(e){e.onTextLayerRender&&e.onTextLayerRender({ele:o,pageIndex:r,scale:s,status:exports.LayerRenderStatus.PreRender})})),n.getTextContent().then((function(e){p(),u.current=a.renderTextLayer({container:o,textContent:e,textContentSource:e,viewport:d}),u.current.promise.then((function(){o.setAttribute(\"data-testid\",\"core__text-layer-\".concat(r)),[].slice.call(o.children).forEach((function(e){e.classList.contains(\"rpv-core__text-layer-text--not\")||e.classList.add(\"rpv-core__text-layer-text\")})),i.forEach((function(e){e.onTextLayerRender&&e.onTextLayerRender({ele:o,pageIndex:r,scale:s,status:exports.LayerRenderStatus.DidRender})})),l()}),(function(){o.removeAttribute(\"data-testid\"),l()}))})),function(){var e;p(),null===(e=u.current)||void 0===e||e.cancel()}}}),[]),o.createElement(\"div\",{className:\"rpv-core__text-layer\",ref:t})},rt=function(e){var t=e.doc,n=e.measureRef,r=e.outlines,a=e.pageIndex,i=e.pageRotation,c=e.pageSize,s=e.plugins,l=e.renderPage,u=e.renderQueueKey,p=e.rotation,f=e.scale,g=e.shouldRender,v=e.viewMode,h=e.onExecuteNamedAction,m=e.onJumpFromLinkAnnotation,w=e.onJumpToDest,E=e.onRenderCompleted,b=e.onRotatePage,y=T(),S=o.useState(null),_=S[0],P=S[1],R=o.useState(!1),M=R[0],k=R[1],C=o.useState(!1),L=C[0],O=C[1],F=o.useRef(),D=o.useRef(),I=Math.abs(p+i)%180==0,A=c.pageWidth*f,H=c.pageHeight*f,N=I?A:H,V=I?H:A,z=(c.rotation+p+i)%360,B=o.useRef(0),W=l||function(e){return o.createElement(o.Fragment,null,e.canvasLayer.children,e.textLayer.children,e.annotationLayer.children)};return o.useEffect((function(){P(null),k(!1),O(!1)}),[i,p,f]),o.useEffect((function(){g&&y.current&&!_&&de(t,a).then((function(e){y.current&&(B.current=u,P(e))}))}),[g,_]),o.useEffect((function(){M&&L&&(u!==B.current?(P(null),k(!1),O(!1)):E(a))}),[M,L]),o.createElement(\"div\",{className:d({\"rpv-core__page-layer\":!0,\"rpv-core__page-layer--dual\":v===exports.ViewMode.DualPage,\"rpv-core__page-layer--dual-cover\":v===exports.ViewMode.DualPageWithCover,\"rpv-core__page-layer--single\":v===exports.ViewMode.SinglePage}),\"data-testid\":\"core__page-layer-\".concat(a),ref:n,style:{height:\"\".concat(V,\"px\"),width:\"\".concat(N,\"px\")}},_?o.createElement(o.Fragment,null,W({annotationLayer:{attrs:{},children:o.createElement(Qe,{doc:t,outlines:r,page:_,pageIndex:a,plugins:s,rotation:z,scale:f,onExecuteNamedAction:h,onJumpFromLinkAnnotation:m,onJumpToDest:w})},canvasLayer:{attrs:{},children:o.createElement(et,{canvasLayerRef:F,height:V,page:_,pageIndex:a,plugins:s,rotation:z,scale:f,width:N,onRenderCanvasCompleted:function(){y.current&&k(!0)}})},canvasLayerRendered:M,doc:t,height:V,pageIndex:a,rotation:z,scale:f,svgLayer:{attrs:{},children:o.createElement(tt,{height:V,page:_,rotation:z,scale:f,width:N})},textLayer:{attrs:{},children:o.createElement(nt,{containerRef:D,page:_,pageIndex:a,plugins:s,rotation:z,scale:f,onRenderTextCompleted:function(){y.current&&O(!0)}})},textLayerRendered:L,width:N,markRendered:E,onRotatePage:function(e){return b(a,e)}}),s.map((function(e,n){return e.renderPageLayer?o.createElement(o.Fragment,{key:n},e.renderPageLayer({canvasLayerRef:F,canvasLayerRendered:M,doc:t,height:V,pageIndex:a,rotation:z,scale:f,textLayerRef:D,textLayerRendered:L,width:N})):o.createElement(o.Fragment,{key:n})}))):o.createElement(x,{testId:\"core__page-layer-loading-\".concat(a)}))},ot=function(e,t){var n=t.rect;return e.height!==n.height||e.width!==n.width?n:e};!function(e){e.Horizontal=\"Horizontal\",e.Vertical=\"Vertical\",e.Both=\"Both\"}(Ee||(Ee={}));var at=function(e){return 1-Math.pow(1-e,4)},it=1e-4,ct={left:0,top:0},st={capture:!1,passive:!0},lt=function(e){var t=e.elementRef,n=e.enableSmoothScroll,r=e.isRtl,a=e.scrollDirection,i=e.onSmoothScroll,c=o.useState(ct),s=c[0],l=c[1],u=o.useState(t.current),p=u[0],d=u[1],g=r?-1:1,v=o.useRef(a);v.current=a;var h=o.useRef(ct),m=o.useRef(!0),x=o.useCallback((function(){m.current=!0,n&&l(h.current),i(!1)}),[]),w=o.useCallback((function(){if(p){switch(v.current){case Ee.Horizontal:h.current={left:g*p.scrollLeft,top:0};break;case Ee.Both:h.current={left:g*p.scrollLeft,top:p.scrollTop};break;case Ee.Vertical:default:h.current={left:0,top:p.scrollTop}}n&&!m.current||l(h.current)}}),[p]);f((function(){d(t.current)})),f((function(){if(p)return p.addEventListener(\"scroll\",w,st),function(){p.removeEventListener(\"scroll\",w,st)}}),[p]);var E=o.useCallback((function(e,n){var r=t.current;if(!r)return Promise.resolve();var o={left:0,top:0};switch(v.current){case Ee.Horizontal:o.left=g*e.left;break;case Ee.Both:o.left=g*e.left,o.top=e.top;break;case Ee.Vertical:default:o.top=e.top}return n?(m.current=!1,i(!0),new Promise((function(e,t){!function(e,t,n,r,o,a){void 0===o&&(o=function(e){return e}),void 0===a&&(a=function(){});var i=0,c=0,s=!1;switch(t){case Ee.Horizontal:c=e.scrollLeft,i=0;case Ee.Both:c=e.scrollLeft,i=e.scrollTop;break;case Ee.Vertical:default:c=0,i=e.scrollTop}var l=function(){s||(s=!0,e.scrollLeft=n.left,e.scrollTop=n.top,a())};if(Math.abs(i-n.top)<=it&&t===Ee.Vertical)l();else if(Math.abs(c-n.left)<=it&&t===Ee.Horizontal)l();else{var u,p=-1,d=c-n.left,f=i-n.top,g=function(a){-1===p&&(p=a);var v=a-p,h=Math.min(v/r,1),m=o(h),x={left:c-d*m,top:i-f*m};switch(t){case Ee.Horizontal:e.scrollLeft=x.left;break;case Ee.Both:e.scrollLeft=x.left,e.scrollTop=x.top;break;case Ee.Vertical:default:e.scrollTop=x.top}Math.abs(x.top-n.top)<=it&&Math.abs(x.left-n.left)<=it&&!s&&(window.cancelAnimationFrame(u),l()),v<r?u=window.requestAnimationFrame(g):window.cancelAnimationFrame(u)};u=window.requestAnimationFrame(g)}}(r,v.current,o,400,at,(function(){x(),e()}))}))):new Promise((function(e,t){switch(v.current){case Ee.Horizontal:r.scrollLeft=o.left;break;case Ee.Both:r.scrollLeft=o.left,r.scrollTop=o.top;break;case Ee.Vertical:default:r.scrollTop=o.top}e()}))}),[t]);return{scrollOffset:s,scrollTo:E}},ut=function(e,t,n){return Math.max(e,Math.min(n,t))},pt=function(e,t){if(t!==exports.ViewMode.DualPageWithCover)return 0;if(!function(e){var t=e.length;if(1===t)return!1;for(var n=1;n<t;n++)if(e[n].height!==e[0].height||e[n].width!==e[0].width)return!0;return!1}(e))return 2*e[0].width;var n=ie(e.slice(1),2).map((function(e){return 2===e.length?e[0].width+e[1].width:e[0].width})),r=[e[0].width].concat(n);return Math.max.apply(Math,r)},dt={left:0,top:0},ft={left:0,top:0},gt={left:0,top:0},vt={left:0,top:0},ht={height:0,width:0},mt={left:0,top:0},xt=\"data-virtual-index\",wt=[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1],Et=function(e){var t=e.enableSmoothScroll,n=e.isRtl,r=e.numberOfItems,a=e.parentRef,i=e.setRenderRange,c=e.sizes,s=e.scrollMode,u=e.viewMode,p=o.useState(!1),d=p[0],g=p[1],v=o.useCallback((function(e){return g(e)}),[]),h=o.useRef(s);h.current=s;var m=o.useRef(u);m.current=u;var x=s===exports.ScrollMode.Wrapped||u===exports.ViewMode.DualPageWithCover||u===exports.ViewMode.DualPage?Ee.Both:s===exports.ScrollMode.Horizontal?Ee.Horizontal:Ee.Vertical,w=lt({elementRef:a,enableSmoothScroll:t,isRtl:n,scrollDirection:x,onSmoothScroll:v}),E=w.scrollOffset,b=w.scrollTo,y=function(e){var t=e.elementRef,n=o.useState(t.current),r=n[0],a=n[1],i=o.useRef(!1),c=o.useReducer(ot,{height:0,width:0}),s=c[0],l=c[1];return f((function(){t.current!==r&&a(t.current)})),f((function(){if(r&&!i.current){i.current=!0;var e=r.getBoundingClientRect(),t=e.height,n=e.width;l({rect:{height:t,width:n}})}}),[r]),o.useEffect((function(){if(r){var e=new ResizeObserver((function(e,t){e.forEach((function(e){if(e.target===r){var t=e.contentRect,n=t.height,o=t.width;l({rect:{height:n,width:o}})}}))}));return e.observe(r),function(){e.unobserve(r)}}}),[r]),s}({elementRef:a}),S=o.useRef({scrollOffset:mt,measurements:[]});S.current.scrollOffset=E;var _=o.useMemo((function(){return Array(r).fill(-1)}),[]),P=o.useState(_),R=P[0],M=P[1],k=o.useMemo((function(){var e=new IntersectionObserver((function(e){e.forEach((function(e){var t=e.isIntersecting?e.intersectionRatio:-1,n=e.target.getAttribute(xt);if(n){var o=parseInt(n,10);0<=o&&o<r&&M((function(e){return e[o]=t,function(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}([],e,!0)}))}}))}),{threshold:wt});return e}),[]),C=o.useMemo((function(){return s===exports.ScrollMode.Page&&u===exports.ViewMode.SinglePage?function(e,t,n){for(var r=[],o=0;o<e;o++){var a={height:Math.max(t.height,n[o].height),width:Math.max(t.width,n[o].width)},i=0===o?vt:r[o-1].end,c={left:i.left+a.width,top:i.top+a.height};r[o]={index:o,start:i,size:a,end:c,visibility:-1}}return r}(r,y,c):u===exports.ViewMode.DualPageWithCover?function(e,t,n,r){for(var o=[],a=0,i=0,c=gt,s=0;s<e;s++){var l=0===s?{height:r===exports.ScrollMode.Page?Math.max(t.height,n[s].height):n[s].height,width:r===exports.ScrollMode.Page?Math.max(t.width,n[s].width):n[s].width}:{height:r===exports.ScrollMode.Page?Math.max(t.height,n[s].height):n[s].height,width:Math.max(t.width/2,n[s].width)};r===exports.ScrollMode.Page?c=0===s?gt:{left:s%2==0?l.width:0,top:Math.floor((s-1)/2)*l.height+o[0].end.top}:0===s?(c=gt,a=n[0].height,i=0):s%2==1?(c={left:0,top:a+=i},i=s===e-1?n[s].height:Math.max(n[s].height,n[s+1].height)):c={left:o[s-1].end.left,top:a};var u={left:c.left+l.width,top:c.top+l.height};o[s]={index:s,start:c,size:l,end:u,visibility:-1}}return o}(r,y,c,s):u===exports.ViewMode.DualPage?function(e,t,n,r){for(var o=[],a=0,i=0,c=ft,s=0;s<e;s++){var l={height:r===exports.ScrollMode.Page?Math.max(t.height,n[s].height):n[s].height,width:Math.max(t.width/2,n[s].width)};r===exports.ScrollMode.Page?c={left:s%2==0?0:l.width,top:Math.floor(s/2)*l.height}:s%2==0?(c={left:0,top:a+=i},i=s===e-1?n[s].height:Math.max(n[s].height,n[s+1].height)):c={left:o[s-1].end.left,top:a};var u={left:c.left+l.width,top:c.top+l.height};o[s]={index:s,start:c,size:l,end:u,visibility:-1}}return o}(r,y,c,s):function(e,t,n,r){for(var o=[],a=0,i={left:0,top:0},c=0,s=dt,l=0;l<e;l++){var u=n[l];if(0===l)a=u.width,i={left:0,top:0},c=u.height;else switch(r){case exports.ScrollMode.Wrapped:(a+=u.width)<t.width?(s={left:o[l-1].end.left,top:i.top},c=Math.max(c,u.height)):(a=u.width,i={left:(s={left:i.left,top:i.top+c}).left,top:s.top},c=u.height);break;case exports.ScrollMode.Horizontal:case exports.ScrollMode.Vertical:default:s=o[l-1].end}var p={left:s.left+u.width,top:s.top+u.height};o[l]={index:l,start:s,size:u,end:p,visibility:-1}}return o}(r,y,c,s)}),[s,c,u,y]),T=C[r-1]?{height:C[r-1].end.top,width:C[r-1].end.left}:ht;S.current.measurements=C;var L=o.useMemo((function(){var e=function(e,t,n,r){var o=0;switch(e){case Ee.Horizontal:o=r.left;break;case Ee.Vertical:default:o=r.top}var a=t.length-1,i=function(e,t,n,r){for(;e<=t;){var o=(e+t)/2|0,a=r(o);if(a<n)e=o+1;else{if(!(a>n))return o;t=o-1}}return e>0?e-1:0}(0,a,o,(function(n){switch(e){case Ee.Horizontal:return t[n].start.left;case Ee.Both:case Ee.Vertical:default:return t[n].start.top}}));if(e===Ee.Both)for(var c=t[i].start.top;i-1>=0&&t[i-1].start.top===c&&t[i-1].start.left>=r.left;)i--;for(var s=i;s<=a;){var l={top:t[s].start.top-r.top,left:t[s].start.left-r.left},u={height:n.height-l.top,width:n.width-l.left};if(e===Ee.Horizontal&&u.width<0)break;if(e===Ee.Vertical&&u.height<0)break;if(e===Ee.Both&&(u.width<0||u.height<0))break;s++}return{start:i,end:s}}(x,C,y,E),t=e.start,n=e.end,o=R.slice(ut(0,r,t),ut(0,r,n)),a=t+o.reduce((function(e,t,n,r){return t>r[e]?n:e}),0),c=a=ut(0,r-1,a),s=i({endPage:n,numPages:r,startPage:t}),l=s.startPage,p=s.endPage;switch(l=Math.max(l,0),p=Math.min(p,r-1),u){case exports.ViewMode.DualPageWithCover:a>0&&(c=a%2==1?a:a-1),l=0===l?0:l%2==1?l:l-1,r-(p=p%2==1?p-1:p)<=2&&(p=r-1);break;case exports.ViewMode.DualPage:c=a%2==0?a:a-1,l=l%2==0?l:l-1,p=p%2==1?p:p-1;break;case exports.ViewMode.SinglePage:default:c=a}return{startPage:l,endPage:p,maxVisbilityIndex:c}}),[C,y,E,u,R]),O=L.startPage,F=L.endPage,D=L.maxVisbilityIndex,I=o.useMemo((function(){for(var e=[],t=function(t){var n=C[t],r=l(l({},n),{visibility:void 0!==R[t]?R[t]:-1,measureRef:function(e){e&&(e.setAttribute(xt,\"\".concat(t)),k.observe(e))}});e.push(r)},n=O;n<=F;n++)t(n);return e}),[O,F,R,C]),A=o.useCallback((function(e,n){var o=S.current.measurements[ut(0,r-1,e)],a=h.current===exports.ScrollMode.Page?mt:n;return o?b({left:a.left+o.start.left,top:a.top+o.start.top},t):Promise.resolve()}),[b,t]),H=o.useCallback((function(e,t){var n=S.current.measurements,r=n[e].start,o=n.find((function(e){return e.start.top-r.top>1e-12}));if(!o)return Promise.resolve();var a=o.index;switch(m.current){case exports.ViewMode.DualPage:a=a%2==0?a:a+1;break;case exports.ViewMode.DualPageWithCover:a=a%2==1?a:a+1}return A(a,t)}),[]),N=o.useCallback((function(e,t){for(var n=S.current.measurements,o=n[e].start,a=e,i=!1,c=r-1;c>=0;c--)if(o.top-n[c].start.top>1e-12){i=!0,a=n[c].index;break}if(!i)return Promise.resolve();switch(m.current){case exports.ViewMode.DualPage:a=a%2==0?a:a-1;break;case exports.ViewMode.DualPageWithCover:a=a%2==0?a-1:a}return a===e&&(a=e-1),A(a,t)}),[]),V=o.useCallback((function(e,t){if(m.current===exports.ViewMode.DualPageWithCover||m.current===exports.ViewMode.DualPage)return H(e,t);switch(h.current){case exports.ScrollMode.Wrapped:return H(e,t);case exports.ScrollMode.Horizontal:case exports.ScrollMode.Vertical:default:return A(e+1,t)}}),[]),z=o.useCallback((function(e,t){if(m.current===exports.ViewMode.DualPageWithCover||m.current===exports.ViewMode.DualPage)return N(e,t);switch(h.current){case exports.ScrollMode.Wrapped:return N(e,t);case exports.ScrollMode.Horizontal:case exports.ScrollMode.Vertical:default:return A(e-1,t)}}),[]),B=o.useCallback((function(){return function(e,t){switch(t){case exports.ScrollMode.Horizontal:return{position:\"relative\",height:\"100%\",width:\"\".concat(e.width,\"px\")};case exports.ScrollMode.Vertical:default:return{position:\"relative\",height:\"\".concat(e.height,\"px\"),width:\"100%\"}}}(T,h.current)}),[T]),W=o.useCallback((function(e){return function(e,t,n){return n!==exports.ScrollMode.Page?{}:{height:\"\".concat(t.height,\"px\"),width:\"100%\",position:\"absolute\",top:0,transform:\"translateY(\".concat(e.start.top,\"px)\")}}(e,y,h.current)}),[y]),j=o.useCallback((function(e){return function(e,t,n,r,o){var a,i,c,s,l,u,p,d=t?\"right\":\"left\",f=t?-1:1,g=n.length,v=e.start.left*f,h=e.size,m=h.height,x=h.width;if(r===exports.ViewMode.DualPageWithCover){var w=o===exports.ScrollMode.Page?0:e.start.top;return 0===e.index||g%2==0&&e.index===g-1?((a={height:\"\".concat(m,\"px\"),minWidth:\"\".concat(pt(n,r),\"px\"),width:\"100%\"})[d]=0,a.position=\"absolute\",a.top=0,a.transform=\"translate(\".concat(v,\"px, \").concat(w,\"px)\"),a):((i={height:\"\".concat(m,\"px\"),width:\"\".concat(x,\"px\")})[d]=0,i.position=\"absolute\",i.top=0,i.transform=\"translate(\".concat(v,\"px, \").concat(w,\"px)\"),i)}if(r===exports.ViewMode.DualPage)return(c={height:\"\".concat(m,\"px\"),width:\"\".concat(x,\"px\")})[d]=0,c.position=\"absolute\",c.top=0,c.transform=\"translate(\".concat(v,\"px, \").concat(o===exports.ScrollMode.Page?0:e.start.top,\"px)\"),c;switch(o){case exports.ScrollMode.Horizontal:return(s={height:\"100%\",width:\"\".concat(x,\"px\")})[d]=0,s.position=\"absolute\",s.top=0,s.transform=\"translateX(\".concat(v,\"px)\"),s;case exports.ScrollMode.Page:return(l={height:\"\".concat(m,\"px\"),width:\"\".concat(x,\"px\")})[d]=0,l.position=\"absolute\",l.top=0,l;case exports.ScrollMode.Wrapped:return(u={height:\"\".concat(m,\"px\"),width:\"\".concat(x,\"px\")})[d]=0,u.position=\"absolute\",u.top=0,u.transform=\"translate(\".concat(v,\"px, \").concat(e.start.top,\"px)\"),u;case exports.ScrollMode.Vertical:default:return(p={height:\"\".concat(m,\"px\"),width:\"100%\"})[d]=0,p.position=\"absolute\",p.top=0,p.transform=\"translateY(\".concat(e.start.top,\"px)\"),p}}(e,n,c,m.current,h.current)}),[n,c]),q=o.useCallback((function(e,t){var n=S.current,o=n.measurements,a=n.scrollOffset,i=o[ut(0,r-1,t)];if(i){var c=h.current===exports.ScrollMode.Page?{left:i.start.left,top:i.start.top}:{left:a.left*e,top:a.top*e};return b(c,!1)}return Promise.resolve()}),[]);return o.useEffect((function(){return function(){k.disconnect()}}),[]),{boundingClientRect:y,isSmoothScrolling:d,startPage:O,endPage:F,maxVisbilityIndex:D,virtualItems:I,getContainerStyles:B,getItemContainerStyles:W,getItemStyles:j,scrollToItem:A,scrollToNextItem:V,scrollToPreviousItem:z,zoom:q}},bt=function(e,t,n,r,o,a){var i=n;switch(!0){case o===exports.ViewMode.DualPageWithCover&&a>=3:case o===exports.ViewMode.DualPage&&a>=3:i=2*n;break;default:i=n}switch(r){case exports.SpecialZoomLevel.ActualSize:return 1;case exports.SpecialZoomLevel.PageFit:return Math.min((e.clientWidth-17)/i,(e.clientHeight-16)/t);case exports.SpecialZoomLevel.PageWidth:return(e.clientWidth-17)/i}},yt=function(e){var t,n,r=e.getCurrentPage,a=(t=50,n=o.useRef([]),o.useEffect((function(){return function(){n.current=[]}}),[]),{push:function(e){var r=n.current;r.length+1>t&&r.shift(),r.push(e),n.current=r},map:function(e){return n.current.map((function(t){return e(t)}))},pop:function(){var e=n.current;if(0===e.length)return null;var t=e.pop();return n.current=e,t}}),i=function(e){var t=o.useRef([]);return o.useEffect((function(){return function(){t.current=[]}}),[]),{dequeue:function(){var e=t.current;if(0===e.length)return null;var n=e.shift();return t.current=e,n||null},enqueue:function(n){var r=t.current;r.length+1>e&&r.pop(),t.current=[n].concat(r)},map:function(e){return t.current.map((function(t){return e(t)}))}}}(50),c=function(){var e=i.dequeue();return e&&a.push(e),e&&e.pageIndex===r()?c():e},s=function(){var e=a.pop();return e&&i.enqueue(e),e&&e.pageIndex===r()?s():e},l=o.useCallback((function(e){a.push(e)}),[]);return{getNextDestination:c,getPreviousDestination:s,markVisitedDestination:l}},St=function(e){var t=[];return e.map((function(e){t=t.concat(e).concat(function(e){var t=[];return e.items&&e.items.length>0&&(t=t.concat(St(e.items))),t}(e))})),t},_t={capture:!1,passive:!0},Pt={height:0,width:0},Rt={height:0,width:0},Mt=function(e){var t=e.getCurrentPage,n=e.getCurrentScrollMode,r=e.jumpToPage,a=e.targetRef,i=o.useState(exports.FullScreenMode.Normal),c=i[0],s=i[1],l=function(){var e=o.useState(Pt),t=e[0],n=e[1],r=C((function(){n({height:window.innerHeight,width:window.innerWidth})}),100);return f((function(){return window.addEventListener(\"resize\",r,_t),function(){window.removeEventListener(\"resize\",r,_t)}}),[]),t}(),u=o.useState(Rt),p=u[0],d=u[1],g=o.useRef(Rt),v=o.useRef(t()),h=o.useRef(Rt),m=o.useState(a.current),x=m[0],w=m[1],E=o.useRef();f((function(){a.current!==x&&w(a.current)}),[]),f((function(){if(x){var e=new ResizeObserver((function(e){e.forEach((function(e){var t=e.target.getBoundingClientRect(),n=t.height,r=t.width;d({height:n,width:r})}))}));return e.observe(x),function(){e.unobserve(x),e.disconnect()}}}),[x]);var b=o.useCallback((function(e){var t=k();return t&&t!==e?(s(exports.FullScreenMode.Normal),M(t)):Promise.resolve()}),[]),y=o.useCallback((function(e){e&&R()&&(w(e),b(e).then((function(){E.current=e,s(exports.FullScreenMode.Entering),function(e){_&&e[P.RequestFullScreen]()}(e)})))}),[]),S=o.useCallback((function(){k()&&(s(exports.FullScreenMode.Exitting),M(document))}),[]),T=o.useCallback((function(){x&&(k()!==x&&s(exports.FullScreenMode.Exitting))}),[x]);return o.useEffect((function(){switch(c){case exports.FullScreenMode.Entering:E.current&&(E.current.style.backgroundColor=\"var(--rpv-core__full-screen-target-background-color)\"),v.current=t(),g.current={height:window.innerHeight,width:window.innerWidth};break;case exports.FullScreenMode.Entered:n()===exports.ScrollMode.Page?r(v.current).then((function(){s(exports.FullScreenMode.EnteredCompletely)})):s(exports.FullScreenMode.EnteredCompletely);break;case exports.FullScreenMode.Exitting:E.current&&(E.current.style.backgroundColor=\"\",E.current=null),v.current=t();break;case exports.FullScreenMode.Exited:s(exports.FullScreenMode.Normal),n()===exports.ScrollMode.Page&&r(v.current)}}),[c]),o.useEffect((function(){if(c!==exports.FullScreenMode.Normal)return c===exports.FullScreenMode.Entering&&l.height===p.height&&l.width===p.width&&l.height>0&&l.width>0&&(0===h.current.height||l.height==h.current.height)?(h.current={height:window.innerHeight,width:window.innerWidth},void s(exports.FullScreenMode.Entered)):void(c===exports.FullScreenMode.Exitting&&g.current.height===l.height&&g.current.width===l.width&&l.height>0&&l.width>0&&s(exports.FullScreenMode.Exited))}),[c,l,p]),o.useEffect((function(){var e;return e=T,_&&document.addEventListener(P.FullScreenChange,e),function(){!function(e){_&&document.removeEventListener(P.FullScreenChange,e)}(T)}}),[x]),{enterFullScreenMode:y,exitFullScreenMode:S,fullScreenMode:c}},kt={buildPageStyles:function(){return{}},transformSize:function(e){return e.size}},Ct={left:0,top:0},Tt=function(e){var t=e.currentFile,n=e.defaultScale,r=e.doc,a=e.enableSmoothScroll,i=e.initialPage,c=e.initialRotation,s=e.initialScale,u=e.pageLayout,g=e.pageSizes,v=e.plugins,h=e.renderPage,m=e.scrollMode,x=e.setRenderRange,w=e.viewMode,E=e.viewerState,b=e.onDocumentLoad,y=e.onOpenFile,S=e.onPageChange,_=e.onRotate,P=e.onRotatePage,R=e.onZoom,M=r.numPages,k=r.loadingTask.docId,O=o.useContext(A).l10n,F=o.useContext(p),I=F.direction===exports.TextDirection.RightToLeft,H=o.useRef(),N=o.useRef(),V=o.useState(i),z=V[0],B=V[1],W=o.useRef(null),j=yt({getCurrentPage:function(){return me.current.pageIndex}}),q=o.useState(c),U=q[0],Z=q[1],J=L(U),G=o.useState(!1),Y=G[0],K=G[1],X=o.useState(new Map),Q=X[0],$=X[1],ee=o.useState(m),te=ee[0],ne=ee[1],re=L(te),oe=o.useState(w),ae=oe[0],ce=oe[1],ue=L(ae),pe=function(e){var t=T(),n=o.useState([]),r=n[0],a=n[1];return o.useEffect((function(){e.getOutline().then((function(e){if(t.current&&null!==e){var n=St(e);a(n)}}))}),[]),r}(r),fe=o.useState(s),ge=fe[0],ve=fe[1],he=L(ge),me=o.useRef(E),xe=o.useRef(\"string\"==typeof n?n:null),we=o.useRef(-1),Ee=o.useRef(-1),be=o.useRef(i),ye=Mt({getCurrentPage:function(){return me.current.pageIndex},getCurrentScrollMode:function(){return me.current.scrollMode},jumpToPage:function(e){return je(e)},targetRef:N}),Se=o.useState(-1),_e=Se[0],Pe=Se[1],Re=o.useState(0),Me=Re[0],ke=Re[1],Ce=D({doc:r});o.useEffect((function(){return function(){se.clear(),le.clear()}}),[k]);var Te=o.useMemo((function(){return Object.assign({},kt,u)}),[]),Le=o.useMemo((function(){return Array(M).fill(0).map((function(e,t){var n=[g[t].pageHeight,g[t].pageWidth],r=Math.abs(U)%180==0?{height:n[0],width:n[1]}:{height:n[1],width:n[0]},o={height:r.height*ge,width:r.width*ge};return Te.transformSize({numPages:M,pageIndex:t,size:o})}))}),[U,ge]),Oe=Et({enableSmoothScroll:a,isRtl:I,numberOfItems:M,parentRef:N,scrollMode:te,setRenderRange:x,sizes:Le,viewMode:ae}),Fe=C((function(){!xe.current||me.current.fullScreenMode!==exports.FullScreenMode.Normal||i>0&&be.current===i||Ke(xe.current)}),200);!function(e){var t=e.targetRef,n=e.onResize;f((function(){var e=new ResizeObserver((function(e){e.forEach((function(e){n(e.target)}))})),r=t.current;if(r)return e.observe(r),function(){e.unobserve(r)}}),[])}({targetRef:N,onResize:Fe});var De=function(e){var t=e;v.forEach((function(e){e.onViewerStateChange&&(t=e.onViewerStateChange(t))})),me.current=t},Ie=function(){return N.current},Ae=function(){return me.current},He=o.useCallback((function(e){j.markVisitedDestination(e)}),[]),Ne=o.useCallback((function(e){var t=e.pageIndex,n=e.bottomOffset,o=e.leftOffset,a=e.scaleTo,i=N.current,c=me.current;return i&&c?new Promise((function(e,s){de(r,t).then((function(r){var s=r.getViewport({scale:1}),l=0,u=(\"function\"==typeof n?n(s.width,s.height):n)||0,p=(\"function\"==typeof o?o(s.width,s.height):o)||0,d=c.scale;switch(a){case exports.SpecialZoomLevel.PageFit:l=0,p=0,Ke(exports.SpecialZoomLevel.PageFit);break;case exports.SpecialZoomLevel.PageWidth:d=bt(i,g[t].pageHeight,g[t].pageWidth,exports.SpecialZoomLevel.PageWidth,w,M),l=(s.height-u)*d,p*=d,Ke(d);break;default:l=(s.height-u)*d,p*=d}switch(c.scrollMode){case exports.ScrollMode.Horizontal:Oe.scrollToItem(t,{left:p,top:0}).then((function(){e()}));break;case exports.ScrollMode.Vertical:default:Oe.scrollToItem(t,{left:0,top:l}).then((function(){e()}))}}))})):Promise.resolve()}),[]),Ve=o.useCallback((function(e){return j.markVisitedDestination(e),Ne(e)}),[]),ze=o.useCallback((function(){var e=j.getNextDestination();return e?Ne(e):Promise.resolve()}),[]),Be=o.useCallback((function(){var e=j.getPreviousDestination();return e?Ne(e):Promise.resolve()}),[]),We=o.useCallback((function(){return Oe.scrollToNextItem(me.current.pageIndex,Ct)}),[]),je=o.useCallback((function(e){return 0<=e&&e<M?Oe.scrollToItem(e,Ct):Promise.resolve()}),[]),qe=o.useCallback((function(){return Oe.scrollToPreviousItem(me.current.pageIndex,Ct)}),[]),Ue=o.useCallback((function(e){var t,n;\"pdf\"===(t=e.name,n=t.split(/\\./).pop(),n?n.toLowerCase():\"\").toLowerCase()&&new Promise((function(t){var n=new FileReader;n.readAsArrayBuffer(e),n.onload=function(){var e=new Uint8Array(n.result);t(e)}})).then((function(t){y(e.name,t)}))}),[y]),Ze=o.useCallback((function(e){var t=e===exports.RotateDirection.Backward?-90:90,n=me.current.rotation,o=360===n||-360===n?t:n+t;Ce.markNotRendered(),Z(o),De(l(l({},me.current),{rotation:o})),_({direction:e,doc:r,rotation:o})}),[]),Je=o.useCallback((function(e,t){var n=t===exports.RotateDirection.Backward?-90:90,o=me.current.pagesRotation,a=(o.has(e)?o.get(e):c)+n,i=o.set(e,a);$(i),K((function(e){return!e})),De(l(l({},me.current),{pagesRotation:i,rotatedPage:e})),P({direction:t,doc:r,pageIndex:e,rotation:a}),Ce.markRendering(e),Pe(e)}),[]),Ge=o.useCallback((function(e){De(l(l({},me.current),{scrollMode:e})),ne(e)}),[]),Ye=o.useCallback((function(e){De(l(l({},me.current),{viewMode:e})),ce(e)}),[]),Ke=o.useCallback((function(e){var t=N.current,n=me.current.pageIndex;if(!(n<0||n>=M)){var o=g[n].pageHeight,a=g[n].pageWidth,i=t?\"string\"==typeof e?bt(t,o,a,e,me.current.viewMode,M):e:1;xe.current=\"string\"==typeof e?e:null,i!==me.current.scale&&(ke((function(e){return e+1})),Ce.markNotRendered(),ve(i),R({doc:r,scale:i}),De(l(l({},me.current),{scale:i})))}}),[]),Xe=o.useCallback((function(e){ye.enterFullScreenMode(e)}),[]),Qe=o.useCallback((function(){ye.exitFullScreenMode()}),[]);o.useEffect((function(){De(l(l({},me.current),{fullScreenMode:ye.fullScreenMode}))}),[ye.fullScreenMode]),o.useEffect((function(){var e={enterFullScreenMode:Xe,exitFullScreenMode:Qe,getPagesContainer:Ie,getViewerState:Ae,jumpToDestination:Ve,jumpToNextDestination:ze,jumpToPreviousDestination:Be,jumpToNextPage:We,jumpToPreviousPage:qe,jumpToPage:je,openFile:Ue,rotate:Ze,rotatePage:Je,setViewerState:De,switchScrollMode:Ge,switchViewMode:Ye,zoom:Ke};return v.forEach((function(t){t.install&&t.install(e)})),function(){v.forEach((function(t){t.uninstall&&t.uninstall(e)}))}}),[k]),o.useEffect((function(){b({doc:r,file:t}),v.forEach((function(e){e.onDocumentLoad&&e.onDocumentLoad({doc:r,file:t})}))}),[k]);var $e,et,tt,nt=Oe.boundingClientRect;$e=function(){i&&je(i)},et=nt.height>0&&nt.width>0,tt=o.useRef(!1),f((function(){et&&!tt.current&&(tt.current=!0,$e())}),[$e,et]),f((function(){var e=me.current.pageIndex;e>-1&&re!==te&&Oe.scrollToItem(e,Ct).then((function(){ye.fullScreenMode===exports.FullScreenMode.EnteredCompletely&&(a||Ce.markNotRendered(),we.current=-1)}))}),[te]),f((function(){var e=me.current.pageIndex;e>-1&&J!==U&&Oe.scrollToItem(e,Ct)}),[U]),f((function(){0!=he&&he!=me.current.scale&&Oe.zoom(me.current.scale/he,me.current.pageIndex).then((function(){ye.fullScreenMode===exports.FullScreenMode.EnteredCompletely&&(Ee.current=-1)}))}),[ge]),f((function(){if(ue!==me.current.viewMode){var e=Oe.startPage,t=Oe.endPage,n=Oe.virtualItems;Ce.markNotRendered(),Ce.setRange(e,t);for(var r=function(e){var t=n.find((function(t){return t.index===e}));t&&Ce.setVisibility(e,t.visibility)},o=e;o<=t;o++)r(o);at()}}),[ae]),f((function(){var e=me.current.pageIndex;e>-1&&ue!==ae&&Oe.scrollToItem(e,Ct)}),[ae]),f((function(){var e=me.current.pageIndex;e>0&&e===i&&be.current===i&&xe.current&&(be.current=-1,Ke(xe.current))}),[z]),o.useEffect((function(){Oe.isSmoothScrolling||null!==W.current&&W.current===z||(W.current=z,S({currentPage:z,doc:r}))}),[z,Oe.isSmoothScrolling]),o.useEffect((function(){ye.fullScreenMode===exports.FullScreenMode.Entering&&me.current.scrollMode===exports.ScrollMode.Page&&(we.current=me.current.pageIndex),ye.fullScreenMode===exports.FullScreenMode.EnteredCompletely&&me.current.scrollMode===exports.ScrollMode.Page&&a&&(we.current=-1),ye.fullScreenMode===exports.FullScreenMode.EnteredCompletely&&xe.current&&(Ee.current=me.current.pageIndex,Ke(xe.current))}),[ye.fullScreenMode]),o.useEffect((function(){if(ye.fullScreenMode!==exports.FullScreenMode.Entering&&ye.fullScreenMode!==exports.FullScreenMode.Exitting&&!Oe.isSmoothScrolling){var e=Oe.startPage,t=Oe.endPage,n=Oe.maxVisbilityIndex,r=Oe.virtualItems,o=n,a=ye.fullScreenMode===exports.FullScreenMode.Entered||ye.fullScreenMode===exports.FullScreenMode.EnteredCompletely;if(!(a&&o!==we.current&&we.current>-1||a&&o!==Ee.current&&Ee.current>-1)){B(o),De(l(l({},me.current),{pageIndex:o})),Ce.setRange(e,t);for(var i=function(e){var t=r.find((function(t){return t.index===e}));t&&Ce.setVisibility(e,t.visibility)},c=e;c<=t;c++)i(c);at()}}}),[Oe.startPage,Oe.endPage,Oe.isSmoothScrolling,Oe.maxVisbilityIndex,ye.fullScreenMode,Y,U,ge]);var ot=o.useCallback((function(e){Ce.markRendered(e),at()}),[Me]),at=function(){var e=Ce.getHighestPriorityPage();e>-1&&Ce.isInRange(e)&&(Ce.markRendering(e),Pe(e))},it=function(e){var t=z-1,n=z+1;switch(e){case\"FirstPage\":je(0);break;case\"LastPage\":je(M-1);break;case\"NextPage\":n<M&&je(n);break;case\"PrevPage\":t>=0&&je(t)}},ct=o.useCallback((function(){var e=Oe.virtualItems,t=[];switch(ae){case exports.ViewMode.DualPage:t=ie(e,2);break;case exports.ViewMode.DualPageWithCover:e.length&&(t=0===e[0].index?[[e[0]]].concat(ie(e.slice(1),2)):ie(e,2));break;case exports.ViewMode.SinglePage:default:t=ie(e,1)}var n=O&&O.core?O.core.pageLabel:\"Page {{pageIndex}}\",a={attrs:{className:\"rpv-core__inner-container\",\"data-testid\":\"core__inner-container\",ref:H,style:{height:\"100%\"}},children:o.createElement(o.Fragment,null),subSlot:{attrs:{\"data-testid\":\"core__inner-pages\",className:d({\"rpv-core__inner-pages\":!0,\"rpv-core__inner-pages--horizontal\":te===exports.ScrollMode.Horizontal,\"rpv-core__inner-pages--rtl\":I,\"rpv-core__inner-pages--single\":te===exports.ScrollMode.Page,\"rpv-core__inner-pages--vertical\":te===exports.ScrollMode.Vertical,\"rpv-core__inner-pages--wrapped\":te===exports.ScrollMode.Wrapped}),ref:N,style:{height:\"100%\",position:\"relative\"}},children:o.createElement(\"div\",{\"data-testid\":\"core__inner-current-page-\".concat(z),style:Object.assign({\"--scale-factor\":ge},Oe.getContainerStyles())},t.map((function(e){return o.createElement(\"div\",{className:d({\"rpv-core__inner-page-container\":!0,\"rpv-core__inner-page-container--single\":te===exports.ScrollMode.Page}),style:Oe.getItemContainerStyles(e[0]),key:\"\".concat(e[0].index,\"-\").concat(ae)},e.map((function(e){var t=ae===exports.ViewMode.DualPageWithCover&&(0===e.index||M%2==0&&e.index===M-1);return o.createElement(\"div\",{\"aria-label\":n.replace(\"{{pageIndex}}\",\"\".concat(e.index+1)),className:d({\"rpv-core__inner-page\":!0,\"rpv-core__inner-page--dual-even\":ae===exports.ViewMode.DualPage&&e.index%2==0,\"rpv-core__inner-page--dual-odd\":ae===exports.ViewMode.DualPage&&e.index%2==1,\"rpv-core__inner-page--dual-cover\":t,\"rpv-core__inner-page--dual-cover-even\":ae===exports.ViewMode.DualPageWithCover&&!t&&e.index%2==0,\"rpv-core__inner-page--dual-cover-odd\":ae===exports.ViewMode.DualPageWithCover&&!t&&e.index%2==1,\"rpv-core__inner-page--single\":ae===exports.ViewMode.SinglePage&&te===exports.ScrollMode.Page}),role:\"region\",key:\"\".concat(e.index,\"-\").concat(ae),style:Object.assign({},Oe.getItemStyles(e),Te.buildPageStyles({numPages:M,pageIndex:e.index,scrollMode:te,viewMode:ae}))},o.createElement(rt,{doc:r,measureRef:e.measureRef,outlines:pe,pageIndex:e.index,pageRotation:Q.has(e.index)?Q.get(e.index):0,pageSize:g[e.index],plugins:v,renderPage:h,renderQueueKey:Me,rotation:U,scale:ge,shouldRender:_e===e.index,viewMode:ae,onExecuteNamedAction:it,onJumpFromLinkAnnotation:He,onJumpToDest:Ve,onRenderCompleted:ot,onRotatePage:Je}))})))})))}};return v.forEach((function(e){e.renderViewer&&(a=e.renderViewer({containerRef:H,doc:r,pagesContainerRef:N,pagesRotation:Q,pageSizes:g,rotation:U,slot:a,themeContext:F,jumpToPage:je,openFile:Ue,rotate:Ze,rotatePage:Je,switchScrollMode:Ge,switchViewMode:Ye,zoom:Ke}))})),a}),[v,Oe]),st=o.useCallback((function(e){return o.createElement(\"div\",l({},e.attrs,{style:e.attrs&&e.attrs.style?e.attrs.style:{}}),e.children,e.subSlot&&st(e.subSlot))}),[]);return st(ct())},Lt=[.1,.2,.3,.4,.5,.6,.7,.8,.9,1,1.1,1.3,1.5,1.7,1.9,2.1,2.4,2.7,3,3.3,3.7,4.1,4.6,5.1,5.7,6.3,7,7.7,8.5,9.4,10],Ot=function(e){var t=e.defaultScale,n=e.doc,r=e.render,a=e.scrollMode,i=e.viewMode,c=o.useRef(),s=o.useState({pageSizes:[],scale:0}),l=s[0],u=s[1];return o.useLayoutEffect((function(){var e=Array(n.numPages).fill(0).map((function(e,t){return new Promise((function(e,r){de(n,t).then((function(t){var n=t.getViewport({scale:1});e({pageHeight:n.height,pageWidth:n.width,rotation:n.rotation})}))}))}));Promise.all(e).then((function(e){var r=c.current;if(r&&0!==e.length){var o=e[0].pageWidth,s=e[0].pageHeight,l=r.parentElement,p=(l.clientWidth-45)/o,d=(l.clientHeight-45)/s,f=p;switch(a){case exports.ScrollMode.Horizontal:f=Math.min(p,d);break;case exports.ScrollMode.Vertical:default:f=p}var g,v,h=t?\"string\"==typeof t?bt(l,s,o,t,i,n.numPages):t:(g=f,-1===(v=Lt.findIndex((function(e){return e>=g})))||0===v?g:Lt[v-1]);u({pageSizes:e,scale:h})}}))}),[n.loadingTask.docId]),0===l.pageSizes.length||0===l.scale?o.createElement(\"div\",{className:\"rpv-core__page-size-calculator\",\"data-testid\":\"core__page-size-calculating\",ref:c},o.createElement(x,null)):r(l.pageSizes,l.scale)},Ft=function(){},Dt=function(e){function t(t,n){var r=e.call(this)||this;return r.verifyPassword=t,r.passwordStatus=n,r}return c(t,e),t}(Ft),It=function(e){var t=e.passwordStatus,n=e.renderProtectedView,r=e.verifyPassword,a=e.onDocumentAskPassword,i=o.useContext(A).l10n,c=o.useState(\"\"),s=c[0],l=c[1],u=o.useContext(p).direction===exports.TextDirection.RightToLeft,f=function(){return r(s)};return o.useEffect((function(){a&&a({verifyPassword:r})}),[]),n?n({passwordStatus:t,verifyPassword:r}):o.createElement(\"div\",{className:\"rpv-core__asking-password-wrapper\"},o.createElement(\"div\",{className:d({\"rpv-core__asking-password\":!0,\"rpv-core__asking-password--rtl\":u})},o.createElement(\"div\",{className:\"rpv-core__asking-password-message\"},t===exports.PasswordStatus.RequiredPassword&&i.core.askingPassword.requirePasswordToOpen,t===exports.PasswordStatus.WrongPassword&&i.core.wrongPassword.tryAgain),o.createElement(\"div\",{className:\"rpv-core__asking-password-body\"},o.createElement(\"div\",{className:d({\"rpv-core__asking-password-input\":!0,\"rpv-core__asking-password-input--ltr\":!u,\"rpv-core__asking-password-input--rtl\":u})},o.createElement(w,{testId:\"core__asking-password-input\",type:\"password\",value:s,onChange:l,onKeyDown:function(e){\"Enter\"===e.key&&f()}})),o.createElement(m,{onClick:f},i.core.askingPassword.submit))))},At=function(e){function t(t){var n=e.call(this)||this;return n.doc=t,n}return c(t,e),t}(Ft),Ht=function(e){function t(t){var n=e.call(this)||this;return n.error=t,n}return c(t,e),t}(Ft),Nt=function(e){function t(t){var n=e.call(this)||this;return n.percentages=t,n}return c(t,e),t}(Ft),Vt=function(e){var t=e.characterMap,n=e.file,r=e.httpHeaders,i=e.render,c=e.renderError,s=e.renderLoader,l=e.renderProtectedView,u=e.transformGetDocumentParams,f=e.withCredentials,g=e.onDocumentAskPassword,v=o.useContext(p).direction===exports.TextDirection.RightToLeft,h=o.useState(new Nt(0)),m=h[0],w=h[1],E=o.useRef(\"\"),b=T();return o.useEffect((function(){E.current=\"\",w(new Nt(0));var e=new a.PDFWorker({name:\"PDFWorker_\".concat(Date.now())}),o=Object.assign({httpHeaders:r,withCredentials:f,worker:e},\"string\"==typeof n?{url:n}:{data:n},t?{cMapUrl:t.url,cMapPacked:t.isCompressed}:{}),i=u?u(o):o,c=a.getDocument(i);return c.onPassword=function(e,t){switch(t){case a.PasswordResponses.NEED_PASSWORD:b.current&&w(new Dt(e,exports.PasswordStatus.RequiredPassword));break;case a.PasswordResponses.INCORRECT_PASSWORD:b.current&&w(new Dt(e,exports.PasswordStatus.WrongPassword))}},c.onProgress=function(e){var t=e.total>0?Math.min(100,100*e.loaded/e.total):100;b.current&&\"\"===E.current&&w(new Nt(t))},c.promise.then((function(e){E.current=e.loadingTask.docId,b.current&&w(new At(e))}),(function(t){return b.current&&!e.destroyed&&w(new Ht({message:t.message||\"Cannot load document\",name:t.name}))})),function(){c.destroy(),e.destroy()}}),[n]),m instanceof Dt?o.createElement(It,{passwordStatus:m.passwordStatus,renderProtectedView:l,verifyPassword:m.verifyPassword,onDocumentAskPassword:g}):m instanceof At?i(m.doc):m instanceof Ht?c?c(m.error):o.createElement(\"div\",{className:d({\"rpv-core__doc-error\":!0,\"rpv-core__doc-error--rtl\":v})},o.createElement(\"div\",{className:\"rpv-core__doc-error-text\"},m.error.message)):o.createElement(\"div\",{\"data-testid\":\"core__doc-loading\",className:d({\"rpv-core__doc-loading\":!0,\"rpv-core__doc-loading--rtl\":v})},s?s(m.percentages):o.createElement(x,null))},zt=function(e,t){var n=o.useMemo((function(){return\"auto\"===e?\"undefined\"!=typeof window&&window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\":e}),[]),r=o.useState(n),a=r[0],i=r[1],c=L(a);return o.useEffect((function(){if(\"auto\"===e){var t=window.matchMedia(\"(prefers-color-scheme: dark)\"),n=function(e){i(e.matches?\"dark\":\"light\")};return t.addEventListener(\"change\",n),function(){return t.removeEventListener(\"change\",n)}}}),[]),o.useEffect((function(){a!==c&&t&&t(a)}),[a]),o.useEffect((function(){e!==a&&i(e)}),[e]),{currentTheme:a,setCurrentTheme:i}},Bt=function(e){return{startPage:e.startPage-3,endPage:e.endPage+3}};exports.Button=function(e){var t=e.children,n=e.testId,r=e.onClick,a=o.useContext(p).direction===exports.TextDirection.RightToLeft,i=n?{\"data-testid\":n}:{};return o.createElement(\"button\",l({className:d({\"rpv-core__button\":!0,\"rpv-core__button--rtl\":a}),type:\"button\",onClick:r},i),t)},exports.Icon=v,exports.LazyRender=function(e){var t=e.attrs,n=e.children,r=e.testId,a=o.useState(!1),i=a[0],c=a[1],s=r?l(l({},t),{\"data-testid\":r}):t,u=g({once:!0,onVisibilityChanged:function(e){e.isVisible&&c(!0)}});return o.createElement(\"div\",l({ref:u},s),i&&n)},exports.LocalizationContext=A,exports.Menu=function(e){var t=e.children,n=o.useRef(),r=o.useRef([]),a=o.useContext(p).direction===exports.TextDirection.RightToLeft,i=function(e){if(n.current)switch(e.key){case\"Tab\":e.preventDefault();break;case\"ArrowDown\":e.preventDefault(),c((function(e,t){return t+1}));break;case\"ArrowUp\":e.preventDefault(),c((function(e,t){return t-1}));break;case\"End\":e.preventDefault(),c((function(e,t){return e.length-1}));break;case\"Home\":e.preventDefault(),c((function(e,t){return 0}))}},c=function(e){if(n.current){var t=r.current,o=t.findIndex((function(e){return\"0\"===e.getAttribute(\"tabindex\")})),a=Math.min(t.length-1,Math.max(0,e(t,o)));o>=0&&o<=t.length-1&&t[o].setAttribute(\"tabindex\",\"-1\"),t[a].setAttribute(\"tabindex\",\"0\"),t[a].focus()}};return f((function(){var e=n.current;if(e){var t=function(e){var t=[];return e.querySelectorAll('.rpv-core__menu-item[role=\"menuitem\"]').forEach((function(n){if(n instanceof HTMLElement){var r=n.parentElement;(r===e||\"none\"!==window.getComputedStyle(r).display)&&t.push(n)}})),t}(e);r.current=t}}),[]),f((function(){return document.addEventListener(\"keydown\",i),function(){document.removeEventListener(\"keydown\",i)}}),[]),o.createElement(\"div\",{ref:n,\"aria-orientation\":\"vertical\",className:d({\"rpv-core__menu\":!0,\"rpv-core__menu--rtl\":a}),role:\"menu\",tabIndex:0},t)},exports.MenuDivider=function(){return o.createElement(\"div\",{\"aria-orientation\":\"horizontal\",className:\"rpv-core__menu-divider\",role:\"separator\"})},exports.MenuItem=function(e){var t=e.checked,n=void 0!==t&&t,r=e.children,a=e.icon,i=void 0===a?null:a,c=e.isDisabled,s=void 0!==c&&c,u=e.testId,f=e.onClick,g=o.useContext(p).direction===exports.TextDirection.RightToLeft,v=u?{\"data-testid\":u}:{};return o.createElement(\"button\",l({className:d({\"rpv-core__menu-item\":!0,\"rpv-core__menu-item--disabled\":s,\"rpv-core__menu-item--ltr\":!g,\"rpv-core__menu-item--rtl\":g}),role:\"menuitem\",tabIndex:-1,type:\"button\",onClick:f},v),o.createElement(\"div\",{className:d({\"rpv-core__menu-item-icon\":!0,\"rpv-core__menu-item-icon--ltr\":!g,\"rpv-core__menu-item-icon--rtl\":g})},i),o.createElement(\"div\",{className:d({\"rpv-core__menu-item-label\":!0,\"rpv-core__menu-item-label--ltr\":!g,\"rpv-core__menu-item-label--rtl\":g})},r),o.createElement(\"div\",{className:d({\"rpv-core__menu-item-check\":!0,\"rpv-core__menu-item-check--ltr\":!g,\"rpv-core__menu-item-check--rtl\":g})},n&&o.createElement(h,null)))},exports.MinimalButton=function(e){var t=e.ariaLabel,n=void 0===t?\"\":t,r=e.ariaKeyShortcuts,a=void 0===r?\"\":r,i=e.children,c=e.isDisabled,s=void 0!==c&&c,u=e.isSelected,f=void 0!==u&&u,g=e.testId,v=e.onClick,h=o.useContext(p).direction===exports.TextDirection.RightToLeft,m=g?{\"data-testid\":g}:{};return o.createElement(\"button\",l({\"aria-label\":n},a&&{\"aria-keyshortcuts\":a},s&&{\"aria-disabled\":!0},{className:d({\"rpv-core__minimal-button\":!0,\"rpv-core__minimal-button--disabled\":s,\"rpv-core__minimal-button--rtl\":h,\"rpv-core__minimal-button--selected\":f}),type:\"button\",onClick:v},m),i)},exports.Modal=function(e){var t=e.ariaControlsSuffix,n=e.closeOnClickOutside,r=e.closeOnEscape,a=e.content,i=e.isOpened,c=void 0!==i&&i,s=e.target,l=t||\"\".concat(N());return o.createElement(U,{target:s?function(e,t){return o.createElement(\"div\",{\"aria-expanded\":t?\"true\":\"false\",\"aria-haspopup\":\"dialog\",\"aria-controls\":\"rpv-core__modal-body-\".concat(l)},s(e,t))}:null,content:function(e){return o.createElement(W,null,o.createElement(B,{ariaControlsSuffix:l,closeOnClickOutside:n,closeOnEscape:r,onToggle:e},a(e)))},isOpened:c})},exports.Popover=function(e){var t=e.ariaHasPopup,n=void 0===t?\"dialog\":t,r=e.ariaControlsSuffix,a=e.closeOnClickOutside,i=e.closeOnEscape,c=e.content,s=e.lockScroll,l=void 0===s||s,u=e.offset,p=e.position,d=e.target,f=q(!1),g=f.opened,v=f.toggle,h=o.useRef(),m=o.useMemo((function(){return r||\"\".concat(N())}),[]);return o.createElement(\"div\",{ref:h,\"aria-expanded\":g?\"true\":\"false\",\"aria-haspopup\":n,\"aria-controls\":\"rpv-core__popver-body-\".concat(m)},d(v,g),g&&o.createElement(o.Fragment,null,l&&o.createElement(re,{closeOnEscape:i,onClose:v}),o.createElement(ne,{ariaControlsSuffix:m,closeOnClickOutside:a,offset:u,position:p,targetRef:h,onClose:v},c(v))))},exports.PrimaryButton=m,exports.ProgressBar=function(e){var t=e.progress,n=o.useContext(p).direction===exports.TextDirection.RightToLeft;return o.createElement(\"div\",{className:d({\"rpv-core__progress-bar\":!0,\"rpv-core__progress-bar--rtl\":n})},o.createElement(\"div\",{className:\"rpv-core__progress-bar-progress\",style:{width:\"\".concat(t,\"%\")}},t,\"%\"))},exports.Separator=function(){return o.createElement(\"div\",{className:\"rpv-core__separator\"})},exports.Spinner=x,exports.Splitter=function(e){var t=e.constrain,n=o.useContext(p).direction===exports.TextDirection.RightToLeft,r=o.useRef(),a=o.useRef(),i=o.useRef(),c=o.useRef(0),s=o.useRef(0),l=o.useRef(0),u=o.useRef(0),d={capture:!0},f=function(e){var o=r.current,s=a.current,p=i.current;if(o&&s&&p){var d=u.current,f=e.clientX-c.current,g=l.current+(n?-f:f),v=o.parentElement.getBoundingClientRect().width,h=100*g/v;if(o.classList.add(\"rpv-core__splitter--resizing\"),t){var m=v-g-d;if(!t({firstHalfPercentage:h,firstHalfSize:g,secondHalfPercentage:100*m/v,secondHalfSize:m}))return}s.style.width=\"\".concat(h,\"%\"),document.body.classList.add(\"rpv-core__splitter-body--resizing\"),s.classList.add(\"rpv-core__splitter-sibling--resizing\"),p.classList.add(\"rpv-core__splitter-sibling--resizing\")}},g=function(e){var t=r.current,n=a.current,o=i.current;t&&n&&o&&(document.body.classList.remove(\"rpv-core__splitter-body--resizing\"),t.classList.remove(\"rpv-core__splitter--resizing\"),n.classList.remove(\"rpv-core__splitter-sibling--resizing\"),o.classList.remove(\"rpv-core__splitter-sibling--resizing\"),document.removeEventListener(\"mousemove\",f,d),document.removeEventListener(\"mouseup\",g,d))};return o.useEffect((function(){var e=r.current;e&&(u.current=e.getBoundingClientRect().width,a.current=e.previousElementSibling,i.current=e.nextElementSibling)}),[]),o.createElement(\"div\",{ref:r,className:\"rpv-core__splitter\",onMouseDown:function(e){var t=a.current;t&&(c.current=e.clientX,s.current=e.clientY,l.current=t.getBoundingClientRect().width,document.addEventListener(\"mousemove\",f,d),document.addEventListener(\"mouseup\",g,d))}})},exports.TextBox=w,exports.ThemeContext=p,exports.Tooltip=function(e){var t=e.ariaControlsSuffix,n=e.content,r=e.offset,a=e.position,i=e.target,c=q(!1),s=c.opened,l=c.toggle,u=o.useRef(),p=o.useRef(),d=o.useMemo((function(){return t||\"\".concat(N())}),[]);z((function(){u.current&&document.activeElement&&u.current.contains(document.activeElement)&&g()}));var f=function(){l(exports.ToggleStatus.Open)},g=function(){l(exports.ToggleStatus.Close)};return o.createElement(o.Fragment,null,o.createElement(\"div\",{ref:u,\"aria-describedby\":\"rpv-core__tooltip-body-\".concat(d),onBlur:function(e){e.relatedTarget instanceof HTMLElement&&e.currentTarget.parentElement&&e.currentTarget.parentElement.contains(e.relatedTarget)?p.current&&(p.current.style.display=\"none\"):g()},onFocus:f,onMouseEnter:f,onMouseLeave:g},i),s&&o.createElement(oe,{ariaControlsSuffix:d,contentRef:p,offset:r,position:a,targetRef:u},n()))},exports.Viewer=function(e){var t=e.characterMap,n=e.defaultScale,r=e.enableSmoothScroll,a=void 0===r||r,i=e.fileUrl,c=e.httpHeaders,s=void 0===c?{}:c,l=e.initialPage,u=void 0===l?0:l,d=e.pageLayout,f=e.initialRotation,v=void 0===f?0:f,h=e.localization,m=e.plugins,x=void 0===m?[]:m,w=e.renderError,E=e.renderLoader,b=e.renderPage,y=e.renderProtectedView,S=e.scrollMode,_=void 0===S?exports.ScrollMode.Vertical:S,P=e.setRenderRange,R=void 0===P?Bt:P,M=e.transformGetDocumentParams,k=e.theme,C=void 0===k?{direction:exports.TextDirection.LeftToRight,theme:\"light\"}:k,T=e.viewMode,O=void 0===T?exports.ViewMode.SinglePage:T,F=e.withCredentials,D=void 0!==F&&F,H=e.onDocumentAskPassword,N=e.onDocumentLoad,V=void 0===N?function(){}:N,z=e.onPageChange,B=void 0===z?function(){}:z,W=e.onRotate,j=void 0===W?function(){}:W,q=e.onRotatePage,U=void 0===q?function(){}:q,Z=e.onSwitchTheme,J=void 0===Z?function(){}:Z,G=e.onZoom,Y=void 0===G?function(){}:G,K=o.useState({data:i,name:\"string\"==typeof i?i:\"\",shouldLoad:!1}),X=K[0],Q=K[1],$=function(e,t){Q({data:t,name:e,shouldLoad:!0})},ee=o.useState(!1),te=ee[0],ne=ee[1],re=L(X);o.useEffect((function(){var e,t,n,r;e=re.data,r=typeof(t=i),\"string\"===(n=typeof e)&&\"string\"===r&&e===t||\"object\"===n&&\"object\"===r&&e.length===t.length&&e.every((function(e,n){return e===t[n]}))||Q({data:i,name:\"string\"==typeof i?i:\"\",shouldLoad:te})}),[i,te]);var oe=g({onVisibilityChanged:function(e){ne(e.isVisible),e.isVisible&&Q((function(e){return Object.assign({},e,{shouldLoad:!0})}))}}),ae=\"string\"==typeof C?{direction:exports.TextDirection.LeftToRight,theme:C}:C,ie=o.useState(h||I),ce=ie[0],se=ie[1],le={l10n:ce,setL10n:se},ue=Object.assign({},{direction:ae.direction},zt(ae.theme||\"light\",J));return o.useEffect((function(){h&&se(h)}),[h]),o.createElement(A.Provider,{value:le},o.createElement(p.Provider,{value:ue},o.createElement(\"div\",{ref:oe,className:\"rpv-core__viewer rpv-core__viewer--\".concat(ue.currentTheme),\"data-testid\":\"core__viewer\",style:{height:\"100%\",width:\"100%\"}},X.shouldLoad&&o.createElement(Vt,{characterMap:t,file:X.data,httpHeaders:s,render:function(e){return o.createElement(Ot,{defaultScale:n,doc:e,render:function(t,r){return o.createElement(Tt,{currentFile:{data:X.data,name:X.name},defaultScale:n,doc:e,enableSmoothScroll:a,initialPage:u,initialRotation:v,initialScale:r,pageLayout:d,pageSizes:t,plugins:x,renderPage:b,scrollMode:_,setRenderRange:R,viewMode:O,viewerState:{file:X,fullScreenMode:exports.FullScreenMode.Normal,pageIndex:-1,pageHeight:t[0].pageHeight,pageWidth:t[0].pageWidth,pagesRotation:new Map,rotation:v,scale:r,scrollMode:_,viewMode:O},onDocumentLoad:V,onOpenFile:$,onPageChange:B,onRotate:j,onRotatePage:U,onZoom:Y})},scrollMode:_,viewMode:O})},renderError:w,renderLoader:E,renderProtectedView:y,transformGetDocumentParams:M,withCredentials:D,onDocumentAskPassword:H}))))},exports.Worker=function(e){var t=e.children,n=e.workerUrl;return a.GlobalWorkerOptions.workerSrc=n,o.createElement(o.Fragment,null,t)},exports.chunk=ie,exports.classNames=d,exports.createStore=function(e){var t=e||{},n={},r=function(e,r){var o;t=l(l({},t),((o={})[e]=r,o)),(n[e]||[]).forEach((function(n){return n(t[e])}))},o=function(e){return t[e]};return{subscribe:function(e,t){n[e]=(n[e]||[]).concat(t)},unsubscribe:function(e,t){n[e]=(n[e]||[]).filter((function(e){return e!==t}))},update:function(e,t){r(e,t)},updateCurrentValue:function(e,t){var n=o(e);void 0!==n&&r(e,t(n))},get:function(e){return o(e)}}},exports.getDestination=fe,exports.getPage=de,exports.isFullScreenEnabled=R,exports.isMac=function(){return\"undefined\"!=typeof window&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)},exports.useDebounceCallback=C,exports.useIntersectionObserver=g,exports.useIsMounted=T,exports.useIsomorphicLayoutEffect=f,exports.usePrevious=L,exports.useRenderQueue=D;\n","/**\n * A React component to view a PDF document\n *\n * @see https://react-pdf-viewer.dev\n * @license https://react-pdf-viewer.dev/license\n * @copyright 2019-2023 Nguyen Huu Phuoc <me@phuoc.ng>\n */\n\n'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n    module.exports = require('./cjs/core.min.js');\n} else {\n    module.exports = require('./cjs/core.js');\n}\n","(function (global, factory) {\n  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n  typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\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\n  function _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\n  function _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\n  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\n    return obj;\n  }\n\n  function _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\n  function _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\n  function _slicedToArray(arr, i) {\n    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n  }\n\n  function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) return arr;\n  }\n\n  function _iterableToArrayLimit(arr, i) {\n    var _i = arr && (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\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\n  function _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\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\n  function getDefaultExportFromCjs (x) {\n  \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n  }\n\n  var propTypes = {exports: {}};\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  var ReactPropTypesSecret_1;\n  var hasRequiredReactPropTypesSecret;\n\n  function requireReactPropTypesSecret() {\n    if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n    hasRequiredReactPropTypesSecret = 1;\n\n    var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n    ReactPropTypesSecret_1 = ReactPropTypesSecret;\n    return ReactPropTypesSecret_1;\n  }\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  var factoryWithThrowingShims;\n  var hasRequiredFactoryWithThrowingShims;\n\n  function requireFactoryWithThrowingShims() {\n    if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n    hasRequiredFactoryWithThrowingShims = 1;\n\n    var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n    function emptyFunction() {}\n\n    function emptyFunctionWithReset() {}\n\n    emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n    factoryWithThrowingShims = 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\n        var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n        err.name = 'Invariant Violation';\n        throw err;\n      }\n      shim.isRequired = shim;\n\n      function getShim() {\n        return shim;\n      }\n      // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n      var ReactPropTypes = {\n        array: shim,\n        bool: shim,\n        func: shim,\n        number: shim,\n        object: shim,\n        string: shim,\n        symbol: shim,\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        checkPropTypes: emptyFunctionWithReset,\n        resetWarningCache: emptyFunction\n      };\n      ReactPropTypes.PropTypes = ReactPropTypes;\n      return ReactPropTypes;\n    };\n\n    return factoryWithThrowingShims;\n  }\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  {\n    // By explicitly using `prop-types` you are opting into new production behavior.\n    // http://fb.me/prop-types-in-prod\n    propTypes.exports = requireFactoryWithThrowingShims()();\n  }\n\n  var propTypesExports = propTypes.exports;\n  var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n  var useAttachEvent = function useAttachEvent(element, event, cb) {\n    var cbDefined = !!cb;\n    var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n    // Using a ref saves us from calling element.on/.off every render.\n\n    React.useEffect(function () {\n      cbRef.current = cb;\n    }, [cb]);\n    React.useEffect(function () {\n      if (!cbDefined || !element) {\n        return function () {};\n      }\n\n      var decoratedCb = function decoratedCb() {\n        if (cbRef.current) {\n          cbRef.current.apply(cbRef, arguments);\n        }\n      };\n\n      element.on(event, decoratedCb);\n      return function () {\n        element.off(event, decoratedCb);\n      };\n    }, [cbDefined, event, element, cbRef]);\n  };\n\n  var usePrevious = function usePrevious(value) {\n    var ref = React.useRef(value);\n    React.useEffect(function () {\n      ref.current = value;\n    }, [value]);\n    return ref.current;\n  };\n\n  var isUnknownObject = function isUnknownObject(raw) {\n    return raw !== null && _typeof(raw) === 'object';\n  };\n  var isPromise = function isPromise(raw) {\n    return isUnknownObject(raw) && typeof raw.then === 'function';\n  }; // We are using types to enforce the `stripe` prop in this lib,\n  // but in an untyped integration `stripe` could be anything, so we need\n  // to do some sanity validation to prevent type errors.\n\n  var isStripe = function isStripe(raw) {\n    return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n  };\n\n  var PLAIN_OBJECT_STR = '[object Object]';\n  var isEqual = function isEqual(left, right) {\n    if (!isUnknownObject(left) || !isUnknownObject(right)) {\n      return left === right;\n    }\n\n    var leftArray = Array.isArray(left);\n    var rightArray = Array.isArray(right);\n    if (leftArray !== rightArray) return false;\n    var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n    var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n    if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n    // fallback to reference check.\n\n    if (!leftPlainObject && !leftArray) return left === right;\n    var leftKeys = Object.keys(left);\n    var rightKeys = Object.keys(right);\n    if (leftKeys.length !== rightKeys.length) return false;\n    var keySet = {};\n\n    for (var i = 0; i < leftKeys.length; i += 1) {\n      keySet[leftKeys[i]] = true;\n    }\n\n    for (var _i = 0; _i < rightKeys.length; _i += 1) {\n      keySet[rightKeys[_i]] = true;\n    }\n\n    var allKeys = Object.keys(keySet);\n\n    if (allKeys.length !== leftKeys.length) {\n      return false;\n    }\n\n    var l = left;\n    var r = right;\n\n    var pred = function pred(key) {\n      return isEqual(l[key], r[key]);\n    };\n\n    return allKeys.every(pred);\n  };\n\n  var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n    if (!isUnknownObject(options)) {\n      return null;\n    }\n\n    return Object.keys(options).reduce(function (newOptions, key) {\n      var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n      if (immutableKeys.includes(key)) {\n        if (isUpdated) {\n          console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n        }\n\n        return newOptions;\n      }\n\n      if (!isUpdated) {\n        return newOptions;\n      }\n\n      return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n    }, null);\n  };\n\n  var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n  // integration `stripe` could be anything, so we need to do some sanity\n  // validation to prevent type errors.\n\n  var validateStripe = function validateStripe(maybeStripe) {\n    var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n    if (maybeStripe === null || isStripe(maybeStripe)) {\n      return maybeStripe;\n    }\n\n    throw new Error(errorMsg);\n  };\n\n  var parseStripeProp = function parseStripeProp(raw) {\n    var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n    if (isPromise(raw)) {\n      return {\n        tag: 'async',\n        stripePromise: Promise.resolve(raw).then(function (result) {\n          return validateStripe(result, errorMsg);\n        })\n      };\n    }\n\n    var stripe = validateStripe(raw, errorMsg);\n\n    if (stripe === null) {\n      return {\n        tag: 'empty'\n      };\n    }\n\n    return {\n      tag: 'sync',\n      stripe: stripe\n    };\n  };\n\n  var registerWithStripeJs = function registerWithStripeJs(stripe) {\n    if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n      return;\n    }\n\n    stripe._registerWrapper({\n      name: 'react-stripe-js',\n      version: \"3.1.0\"\n    });\n\n    stripe.registerAppInfo({\n      name: 'react-stripe-js',\n      version: \"3.1.0\",\n      url: 'https://stripe.com/docs/stripe-js/react'\n    });\n  };\n\n  var ElementsContext = /*#__PURE__*/React.createContext(null);\n  ElementsContext.displayName = 'ElementsContext';\n  var parseElementsContext = function parseElementsContext(ctx, useCase) {\n    if (!ctx) {\n      throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n    }\n\n    return ctx;\n  };\n  /**\n   * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n   * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n   *\n   * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n   * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n   * Pass the returned `Promise` to `Elements`.\n   *\n   * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n   */\n\n  var Elements = function Elements(_ref) {\n    var rawStripeProp = _ref.stripe,\n        options = _ref.options,\n        children = _ref.children;\n    var parsed = React.useMemo(function () {\n      return parseStripeProp(rawStripeProp);\n    }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n    var _React$useState = React.useState(function () {\n      return {\n        stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n        elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n      };\n    }),\n        _React$useState2 = _slicedToArray(_React$useState, 2),\n        ctx = _React$useState2[0],\n        setContext = _React$useState2[1];\n\n    React.useEffect(function () {\n      var isMounted = true;\n\n      var safeSetContext = function safeSetContext(stripe) {\n        setContext(function (ctx) {\n          // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n          if (ctx.stripe) return ctx;\n          return {\n            stripe: stripe,\n            elements: stripe.elements(options)\n          };\n        });\n      }; // For an async stripePromise, store it in context once resolved\n\n\n      if (parsed.tag === 'async' && !ctx.stripe) {\n        parsed.stripePromise.then(function (stripe) {\n          if (stripe && isMounted) {\n            // Only update Elements context if the component is still mounted\n            // and stripe is not null. We allow stripe to be null to make\n            // handling SSR easier.\n            safeSetContext(stripe);\n          }\n        });\n      } else if (parsed.tag === 'sync' && !ctx.stripe) {\n        // Or, handle a sync stripe instance going from null -> populated\n        safeSetContext(parsed.stripe);\n      }\n\n      return function () {\n        isMounted = false;\n      };\n    }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n    var prevStripe = usePrevious(rawStripeProp);\n    React.useEffect(function () {\n      if (prevStripe !== null && prevStripe !== rawStripeProp) {\n        console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n      }\n    }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n    var prevOptions = usePrevious(options);\n    React.useEffect(function () {\n      if (!ctx.elements) {\n        return;\n      }\n\n      var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n      if (updates) {\n        ctx.elements.update(updates);\n      }\n    }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n    React.useEffect(function () {\n      registerWithStripeJs(ctx.stripe);\n    }, [ctx.stripe]);\n    return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n      value: ctx\n    }, children);\n  };\n  Elements.propTypes = {\n    stripe: PropTypes.any,\n    options: PropTypes.object\n  };\n  var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n    var ctx = React.useContext(ElementsContext);\n    return parseElementsContext(ctx, useCaseMessage);\n  };\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n   */\n\n  var useElements = function useElements() {\n    var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n        elements = _useElementsContextWi.elements;\n\n    return elements;\n  };\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n   */\n\n  var ElementsConsumer = function ElementsConsumer(_ref2) {\n    var children = _ref2.children;\n    var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n    return children(ctx);\n  };\n  ElementsConsumer.propTypes = {\n    children: PropTypes.func.isRequired\n  };\n\n  var _excluded = [\"on\", \"session\"];\n  var CheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n  CheckoutSdkContext.displayName = 'CheckoutSdkContext';\n  var parseCheckoutSdkContext = function parseCheckoutSdkContext(ctx, useCase) {\n    if (!ctx) {\n      throw new Error(\"Could not find CheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an <CheckoutProvider> provider.\"));\n    }\n\n    return ctx;\n  };\n  var CheckoutContext = /*#__PURE__*/React.createContext(null);\n  CheckoutContext.displayName = 'CheckoutContext';\n  var extractCheckoutContextValue = function extractCheckoutContextValue(checkoutSdk, sessionState) {\n    if (!checkoutSdk) {\n      return null;\n    }\n\n    checkoutSdk.on;\n        checkoutSdk.session;\n        var actions = _objectWithoutProperties(checkoutSdk, _excluded);\n\n    if (!sessionState) {\n      return _objectSpread2(_objectSpread2({}, actions), checkoutSdk.session());\n    }\n\n    return _objectSpread2(_objectSpread2({}, actions), sessionState);\n  };\n  var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n  var CheckoutProvider = function CheckoutProvider(_ref) {\n    var rawStripeProp = _ref.stripe,\n        options = _ref.options,\n        children = _ref.children;\n    var parsed = React.useMemo(function () {\n      return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n    }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n    var _React$useState = React.useState(null),\n        _React$useState2 = _slicedToArray(_React$useState, 2),\n        session = _React$useState2[0],\n        setSession = _React$useState2[1];\n\n    var _React$useState3 = React.useState(function () {\n      return {\n        stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n        checkoutSdk: null\n      };\n    }),\n        _React$useState4 = _slicedToArray(_React$useState3, 2),\n        ctx = _React$useState4[0],\n        setContext = _React$useState4[1];\n\n    var safeSetContext = function safeSetContext(stripe, checkoutSdk) {\n      setContext(function (ctx) {\n        if (ctx.stripe && ctx.checkoutSdk) {\n          return ctx;\n        }\n\n        return {\n          stripe: stripe,\n          checkoutSdk: checkoutSdk\n        };\n      });\n    }; // Ref used to avoid calling initCheckout multiple times when options changes\n\n\n    var initCheckoutCalledRef = React.useRef(false);\n    React.useEffect(function () {\n      var isMounted = true;\n\n      if (parsed.tag === 'async' && !ctx.stripe) {\n        parsed.stripePromise.then(function (stripe) {\n          if (stripe && isMounted && !initCheckoutCalledRef.current) {\n            // Only update context if the component is still mounted\n            // and stripe is not null. We allow stripe to be null to make\n            // handling SSR easier.\n            initCheckoutCalledRef.current = true;\n            stripe.initCheckout(options).then(function (checkoutSdk) {\n              if (checkoutSdk) {\n                safeSetContext(stripe, checkoutSdk);\n                checkoutSdk.on('change', setSession);\n              }\n            });\n          }\n        });\n      } else if (parsed.tag === 'sync' && parsed.stripe && !initCheckoutCalledRef.current) {\n        initCheckoutCalledRef.current = true;\n        parsed.stripe.initCheckout(options).then(function (checkoutSdk) {\n          if (checkoutSdk) {\n            safeSetContext(parsed.stripe, checkoutSdk);\n            checkoutSdk.on('change', setSession);\n          }\n        });\n      }\n\n      return function () {\n        isMounted = false;\n      };\n    }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n    var prevStripe = usePrevious(rawStripeProp);\n    React.useEffect(function () {\n      if (prevStripe !== null && prevStripe !== rawStripeProp) {\n        console.warn('Unsupported prop change on CheckoutProvider: You cannot change the `stripe` prop after setting it.');\n      }\n    }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n    var prevOptions = usePrevious(options);\n    React.useEffect(function () {\n      var _prevOptions$elements, _options$elementsOpti;\n\n      if (!ctx.checkoutSdk) {\n        return;\n      }\n\n      if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n        console.warn('Unsupported prop change: options.clientSecret is not a mutable property.');\n      }\n\n      var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n      var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n      if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n        ctx.checkoutSdk.changeAppearance(currentAppearance);\n      }\n    }, [options, prevOptions, ctx.checkoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n    React.useEffect(function () {\n      registerWithStripeJs(ctx.stripe);\n    }, [ctx.stripe]);\n    var checkoutContextValue = React.useMemo(function () {\n      return extractCheckoutContextValue(ctx.checkoutSdk, session);\n    }, [ctx.checkoutSdk, session]);\n\n    if (!ctx.checkoutSdk) {\n      return null;\n    }\n\n    return /*#__PURE__*/React.createElement(CheckoutSdkContext.Provider, {\n      value: ctx\n    }, /*#__PURE__*/React.createElement(CheckoutContext.Provider, {\n      value: checkoutContextValue\n    }, children));\n  };\n  CheckoutProvider.propTypes = {\n    stripe: PropTypes.any,\n    options: PropTypes.shape({\n      clientSecret: PropTypes.string.isRequired,\n      elementsOptions: PropTypes.object\n    }).isRequired\n  };\n  var useCheckoutSdkContextWithUseCase = function useCheckoutSdkContextWithUseCase(useCaseString) {\n    var ctx = React.useContext(CheckoutSdkContext);\n    return parseCheckoutSdkContext(ctx, useCaseString);\n  };\n  var useElementsOrCheckoutSdkContextWithUseCase = function useElementsOrCheckoutSdkContextWithUseCase(useCaseString) {\n    var checkoutSdkContext = React.useContext(CheckoutSdkContext);\n    var elementsContext = React.useContext(ElementsContext);\n\n    if (checkoutSdkContext && elementsContext) {\n      throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both <CheckoutProvider> and <Elements> providers.\"));\n    }\n\n    if (checkoutSdkContext) {\n      return parseCheckoutSdkContext(checkoutSdkContext, useCaseString);\n    }\n\n    return parseElementsContext(elementsContext, useCaseString);\n  };\n  var useCheckout = function useCheckout() {\n    // ensure it's in CheckoutProvider\n    useCheckoutSdkContextWithUseCase('calls useCheckout()');\n    var ctx = React.useContext(CheckoutContext);\n\n    if (!ctx) {\n      throw new Error('Could not find Checkout Context; You need to wrap the part of your app that calls useCheckout() in an <CheckoutProvider> provider.');\n    }\n\n    return ctx;\n  };\n\n  var capitalized = function capitalized(str) {\n    return str.charAt(0).toUpperCase() + str.slice(1);\n  };\n\n  var createElementComponent = function createElementComponent(type, isServer) {\n    var displayName = \"\".concat(capitalized(type), \"Element\");\n\n    var ClientElement = function ClientElement(_ref) {\n      var id = _ref.id,\n          className = _ref.className,\n          _ref$options = _ref.options,\n          options = _ref$options === void 0 ? {} : _ref$options,\n          onBlur = _ref.onBlur,\n          onFocus = _ref.onFocus,\n          onReady = _ref.onReady,\n          onChange = _ref.onChange,\n          onEscape = _ref.onEscape,\n          onClick = _ref.onClick,\n          onLoadError = _ref.onLoadError,\n          onLoaderStart = _ref.onLoaderStart,\n          onNetworksChange = _ref.onNetworksChange,\n          onConfirm = _ref.onConfirm,\n          onCancel = _ref.onCancel,\n          onShippingAddressChange = _ref.onShippingAddressChange,\n          onShippingRateChange = _ref.onShippingRateChange;\n      var ctx = useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n      var elements = 'elements' in ctx ? ctx.elements : null;\n      var checkoutSdk = 'checkoutSdk' in ctx ? ctx.checkoutSdk : null;\n\n      var _React$useState = React.useState(null),\n          _React$useState2 = _slicedToArray(_React$useState, 2),\n          element = _React$useState2[0],\n          setElement = _React$useState2[1];\n\n      var elementRef = React.useRef(null);\n      var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n      // with that callback. If the merchant ever changes the callback, removes\n      // the old callback with element.off and then call element.on with the new one.\n\n      useAttachEvent(element, 'blur', onBlur);\n      useAttachEvent(element, 'focus', onFocus);\n      useAttachEvent(element, 'escape', onEscape);\n      useAttachEvent(element, 'click', onClick);\n      useAttachEvent(element, 'loaderror', onLoadError);\n      useAttachEvent(element, 'loaderstart', onLoaderStart);\n      useAttachEvent(element, 'networkschange', onNetworksChange);\n      useAttachEvent(element, 'confirm', onConfirm);\n      useAttachEvent(element, 'cancel', onCancel);\n      useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n      useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n      useAttachEvent(element, 'change', onChange);\n      var readyCallback;\n\n      if (onReady) {\n        if (type === 'expressCheckout') {\n          // Passes through the event, which includes visible PM types\n          readyCallback = onReady;\n        } else {\n          // For other Elements, pass through the Element itself.\n          readyCallback = function readyCallback() {\n            onReady(element);\n          };\n        }\n      }\n\n      useAttachEvent(element, 'ready', readyCallback);\n      React.useLayoutEffect(function () {\n        if (elementRef.current === null && domNode.current !== null && (elements || checkoutSdk)) {\n          var newElement = null;\n\n          if (checkoutSdk) {\n            newElement = checkoutSdk.createElement(type, options);\n          } else if (elements) {\n            newElement = elements.create(type, options);\n          } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n          elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n          setElement(newElement);\n\n          if (newElement) {\n            newElement.mount(domNode.current);\n          }\n        }\n      }, [elements, checkoutSdk, options]);\n      var prevOptions = usePrevious(options);\n      React.useEffect(function () {\n        if (!elementRef.current) {\n          return;\n        }\n\n        var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n        if (updates && 'update' in elementRef.current) {\n          elementRef.current.update(updates);\n        }\n      }, [options, prevOptions]);\n      React.useLayoutEffect(function () {\n        return function () {\n          if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n            try {\n              elementRef.current.destroy();\n              elementRef.current = null;\n            } catch (error) {// Do nothing\n            }\n          }\n        };\n      }, []);\n      return /*#__PURE__*/React.createElement(\"div\", {\n        id: id,\n        className: className,\n        ref: domNode\n      });\n    }; // Only render the Element wrapper in a server environment.\n\n\n    var ServerElement = function ServerElement(props) {\n      useElementsOrCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n      var id = props.id,\n          className = props.className;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        id: id,\n        className: className\n      });\n    };\n\n    var Element = isServer ? ServerElement : ClientElement;\n    Element.propTypes = {\n      id: PropTypes.string,\n      className: PropTypes.string,\n      onChange: PropTypes.func,\n      onBlur: PropTypes.func,\n      onFocus: PropTypes.func,\n      onReady: PropTypes.func,\n      onEscape: PropTypes.func,\n      onClick: PropTypes.func,\n      onLoadError: PropTypes.func,\n      onLoaderStart: PropTypes.func,\n      onNetworksChange: PropTypes.func,\n      onConfirm: PropTypes.func,\n      onCancel: PropTypes.func,\n      onShippingAddressChange: PropTypes.func,\n      onShippingRateChange: PropTypes.func,\n      options: PropTypes.object\n    };\n    Element.displayName = displayName;\n    Element.__elementType = type;\n    return Element;\n  };\n\n  var isServer = typeof window === 'undefined';\n\n  var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n  EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n  var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n    var ctx = React.useContext(EmbeddedCheckoutContext);\n\n    if (!ctx) {\n      throw new Error('<EmbeddedCheckout> must be used within <EmbeddedCheckoutProvider>');\n    }\n\n    return ctx;\n  };\n  var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n  var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n    var rawStripeProp = _ref.stripe,\n        options = _ref.options,\n        children = _ref.children;\n    var parsed = React.useMemo(function () {\n      return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n    }, [rawStripeProp]);\n    var embeddedCheckoutPromise = React.useRef(null);\n    var loadedStripe = React.useRef(null);\n\n    var _React$useState = React.useState({\n      embeddedCheckout: null\n    }),\n        _React$useState2 = _slicedToArray(_React$useState, 2),\n        ctx = _React$useState2[0],\n        setContext = _React$useState2[1];\n\n    React.useEffect(function () {\n      // Don't support any ctx updates once embeddedCheckout or stripe is set.\n      if (loadedStripe.current || embeddedCheckoutPromise.current) {\n        return;\n      }\n\n      var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n        if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n        loadedStripe.current = stripe;\n        embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n          setContext({\n            embeddedCheckout: embeddedCheckout\n          });\n        });\n      }; // For an async stripePromise, store it once resolved\n\n\n      if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n        parsed.stripePromise.then(function (stripe) {\n          if (stripe) {\n            setStripeAndInitEmbeddedCheckout(stripe);\n          }\n        });\n      } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n        // Or, handle a sync stripe instance going from null -> populated\n        setStripeAndInitEmbeddedCheckout(parsed.stripe);\n      }\n    }, [parsed, options, ctx, loadedStripe]);\n    React.useEffect(function () {\n      // cleanup on unmount\n      return function () {\n        // If embedded checkout is fully initialized, destroy it.\n        if (ctx.embeddedCheckout) {\n          embeddedCheckoutPromise.current = null;\n          ctx.embeddedCheckout.destroy();\n        } else if (embeddedCheckoutPromise.current) {\n          // If embedded checkout is still initializing, destroy it once\n          // it's done. This could be caused by unmounting very quickly\n          // after mounting.\n          embeddedCheckoutPromise.current.then(function () {\n            embeddedCheckoutPromise.current = null;\n\n            if (ctx.embeddedCheckout) {\n              ctx.embeddedCheckout.destroy();\n            }\n          });\n        }\n      };\n    }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n    React.useEffect(function () {\n      registerWithStripeJs(loadedStripe);\n    }, [loadedStripe]); // Warn on changes to stripe prop.\n    // The stripe prop value can only go from null to non-null once and\n    // can't be changed after that.\n\n    var prevStripe = usePrevious(rawStripeProp);\n    React.useEffect(function () {\n      if (prevStripe !== null && prevStripe !== rawStripeProp) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n      }\n    }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n    var prevOptions = usePrevious(options);\n    React.useEffect(function () {\n      if (prevOptions == null) {\n        return;\n      }\n\n      if (options == null) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n        return;\n      }\n\n      if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n        console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n      }\n\n      if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n      }\n\n      if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n      }\n\n      if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n      }\n\n      if (prevOptions.onShippingDetailsChange != null && options.onShippingDetailsChange !== prevOptions.onShippingDetailsChange) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onShippingDetailsChange option after setting it.');\n      }\n\n      if (prevOptions.onLineItemsChange != null && options.onLineItemsChange !== prevOptions.onLineItemsChange) {\n        console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onLineItemsChange option after setting it.');\n      }\n    }, [prevOptions, options]);\n    return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n      value: ctx\n    }, children);\n  };\n\n  var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n    var id = _ref.id,\n        className = _ref.className;\n\n    var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n        embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n    var isMounted = React.useRef(false);\n    var domNode = React.useRef(null);\n    React.useLayoutEffect(function () {\n      if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n        embeddedCheckout.mount(domNode.current);\n        isMounted.current = true;\n      } // Clean up on unmount\n\n\n      return function () {\n        if (isMounted.current && embeddedCheckout) {\n          try {\n            embeddedCheckout.unmount();\n            isMounted.current = false;\n          } catch (e) {// Do nothing.\n            // Parent effects are destroyed before child effects, so\n            // in cases where both the EmbeddedCheckoutProvider and\n            // the EmbeddedCheckout component are removed at the same\n            // time, the embeddedCheckout instance will be destroyed,\n            // which causes an error when calling unmount.\n          }\n        }\n      };\n    }, [embeddedCheckout]);\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: domNode,\n      id: id,\n      className: className\n    });\n  }; // Only render the wrapper in a server environment.\n\n\n  var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n    var id = _ref2.id,\n        className = _ref2.className;\n    // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n    useEmbeddedCheckoutContext();\n    return /*#__PURE__*/React.createElement(\"div\", {\n      id: id,\n      className: className\n    });\n  };\n\n  var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n   */\n\n  var useStripe = function useStripe() {\n    var _useElementsOrCheckou = useElementsOrCheckoutSdkContextWithUseCase('calls useStripe()'),\n        stripe = _useElementsOrCheckou.stripe;\n\n    return stripe;\n  };\n\n  /**\n   * Requires beta access:\n   * Contact [Stripe support](https://support.stripe.com/) for more information.\n   *\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var CardElement = createElementComponent('card', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var CardNumberElement = createElementComponent('cardNumber', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var CardCvcElement = createElementComponent('cardCvc', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var FpxBankElement = createElementComponent('fpxBank', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var IbanElement = createElementComponent('iban', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var IdealBankElement = createElementComponent('idealBank', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var P24BankElement = createElementComponent('p24Bank', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var EpsBankElement = createElementComponent('epsBank', isServer);\n  var PaymentElement = createElementComponent('payment', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n  /**\n   * Requires beta access:\n   * Contact [Stripe support](https://support.stripe.com/) for more information.\n   */\n\n  var CurrencySelectorElement = createElementComponent('currencySelector', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var AddressElement = createElementComponent('address', isServer);\n  /**\n   * @deprecated\n   * Use `AddressElement` instead.\n   *\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n  /**\n   * @docs https://stripe.com/docs/stripe-js/react#element-components\n   */\n\n  var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n  exports.AddressElement = AddressElement;\n  exports.AffirmMessageElement = AffirmMessageElement;\n  exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n  exports.AuBankAccountElement = AuBankAccountElement;\n  exports.CardCvcElement = CardCvcElement;\n  exports.CardElement = CardElement;\n  exports.CardExpiryElement = CardExpiryElement;\n  exports.CardNumberElement = CardNumberElement;\n  exports.CheckoutProvider = CheckoutProvider;\n  exports.CurrencySelectorElement = CurrencySelectorElement;\n  exports.Elements = Elements;\n  exports.ElementsConsumer = ElementsConsumer;\n  exports.EmbeddedCheckout = EmbeddedCheckout;\n  exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n  exports.EpsBankElement = EpsBankElement;\n  exports.ExpressCheckoutElement = ExpressCheckoutElement;\n  exports.FpxBankElement = FpxBankElement;\n  exports.IbanElement = IbanElement;\n  exports.IdealBankElement = IdealBankElement;\n  exports.LinkAuthenticationElement = LinkAuthenticationElement;\n  exports.P24BankElement = P24BankElement;\n  exports.PaymentElement = PaymentElement;\n  exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n  exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n  exports.ShippingAddressElement = ShippingAddressElement;\n  exports.useCheckout = useCheckout;\n  exports.useElements = useElements;\n  exports.useStripe = useStripe;\n\n}));\n","/*!\n  Copyright (c) 2015 Jed Watson.\n  Based on code that is Copyright 2013-2015, Facebook, Inc.\n  All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n  var re = /[height|width]$/;\n  return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n  var mq = '';\n  var features = Object.keys(obj);\n  features.forEach(function (feature, index) {\n    var value = obj[feature];\n    feature = camel2hyphen(feature);\n    // Add px to dimension features\n    if (isDimension(feature) && typeof value === 'number') {\n      value = value + 'px';\n    }\n    if (value === true) {\n      mq += feature;\n    } else if (value === false) {\n      mq += 'not ' + feature;\n    } else {\n      mq += '(' + feature + ': ' + value + ')';\n    }\n    if (index < features.length-1) {\n      mq += ' and '\n    }\n  });\n  return mq;\n};\n\nvar json2mq = function (query) {\n  var mq = '';\n  if (typeof query === 'string') {\n    return query;\n  }\n  // Handling array of media queries\n  if (query instanceof Array) {\n    query.forEach(function (q, index) {\n      mq += obj2mq(q);\n      if (index < query.length-1) {\n        mq += ', '\n      }\n    });\n    return mq;\n  }\n  // Handling single media query\n  return obj2mq(query);\n};\n\nmodule.exports = json2mq;","// Top level file is just a mixin of submodules & constants\n'use strict';\n\nvar assign    = require('./lib/utils/common').assign;\n\nvar deflate   = require('./lib/deflate');\nvar inflate   = require('./lib/inflate');\nvar constants = require('./lib/zlib/constants');\n\nvar pako = {};\n\nassign(pako, deflate, inflate, constants);\n\nmodule.exports = pako;\n","'use strict';\n\n\nvar zlib_deflate = require('./zlib/deflate');\nvar utils        = require('./utils/common');\nvar strings      = require('./utils/strings');\nvar msg          = require('./zlib/messages');\nvar ZStream      = require('./zlib/zstream');\n\nvar toString = Object.prototype.toString;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\nvar Z_NO_FLUSH      = 0;\nvar Z_FINISH        = 4;\n\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\nvar Z_SYNC_FLUSH    = 2;\n\nvar Z_DEFAULT_COMPRESSION = -1;\n\nvar Z_DEFAULT_STRATEGY    = 0;\n\nvar Z_DEFLATED  = 8;\n\n/* ===========================================================================*/\n\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param)  or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n *    (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n *   - `text` (Boolean) - true if compressed data believed to be text\n *   - `time` (Number) - modification time, unix timestamp\n *   - `os` (Number) - operation system code\n *   - `extra` (Array) - array of bytes with extra data (max 65536)\n *   - `name` (String) - file name (binary string)\n *   - `comment` (String) - comment (binary string)\n *   - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true);  // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nfunction Deflate(options) {\n  if (!(this instanceof Deflate)) return new Deflate(options);\n\n  this.options = utils.assign({\n    level: Z_DEFAULT_COMPRESSION,\n    method: Z_DEFLATED,\n    chunkSize: 16384,\n    windowBits: 15,\n    memLevel: 8,\n    strategy: Z_DEFAULT_STRATEGY,\n    to: ''\n  }, options || {});\n\n  var opt = this.options;\n\n  if (opt.raw && (opt.windowBits > 0)) {\n    opt.windowBits = -opt.windowBits;\n  }\n\n  else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n    opt.windowBits += 16;\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm = new ZStream();\n  this.strm.avail_out = 0;\n\n  var status = zlib_deflate.deflateInit2(\n    this.strm,\n    opt.level,\n    opt.method,\n    opt.windowBits,\n    opt.memLevel,\n    opt.strategy\n  );\n\n  if (status !== Z_OK) {\n    throw new Error(msg[status]);\n  }\n\n  if (opt.header) {\n    zlib_deflate.deflateSetHeader(this.strm, opt.header);\n  }\n\n  if (opt.dictionary) {\n    var dict;\n    // Convert data if needed\n    if (typeof opt.dictionary === 'string') {\n      // If we need to compress text, change encoding to utf8.\n      dict = strings.string2buf(opt.dictionary);\n    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n      dict = new Uint8Array(opt.dictionary);\n    } else {\n      dict = opt.dictionary;\n    }\n\n    status = zlib_deflate.deflateSetDictionary(this.strm, dict);\n\n    if (status !== Z_OK) {\n      throw new Error(msg[status]);\n    }\n\n    this._dict_set = true;\n  }\n}\n\n/**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n *   converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nDeflate.prototype.push = function (data, mode) {\n  var strm = this.strm;\n  var chunkSize = this.options.chunkSize;\n  var status, _mode;\n\n  if (this.ended) { return false; }\n\n  _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n  // Convert data if needed\n  if (typeof data === 'string') {\n    // If we need to compress text, change encoding to utf8.\n    strm.input = strings.string2buf(data);\n  } else if (toString.call(data) === '[object ArrayBuffer]') {\n    strm.input = new Uint8Array(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  do {\n    if (strm.avail_out === 0) {\n      strm.output = new utils.Buf8(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n    status = zlib_deflate.deflate(strm, _mode);    /* no bad return value */\n\n    if (status !== Z_STREAM_END && status !== Z_OK) {\n      this.onEnd(status);\n      this.ended = true;\n      return false;\n    }\n    if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n      if (this.options.to === 'string') {\n        this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));\n      } else {\n        this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n      }\n    }\n  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n  // Finalize on the last chunk.\n  if (_mode === Z_FINISH) {\n    status = zlib_deflate.deflateEnd(this.strm);\n    this.onEnd(status);\n    this.ended = true;\n    return status === Z_OK;\n  }\n\n  // callback interim results if Z_SYNC_FLUSH.\n  if (_mode === Z_SYNC_FLUSH) {\n    this.onEnd(Z_OK);\n    strm.avail_out = 0;\n    return true;\n  }\n\n  return true;\n};\n\n\n/**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n *   on js engine support. When string output requested, each chunk\n *   will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nDeflate.prototype.onData = function (chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nDeflate.prototype.onEnd = function (status) {\n  // On success - join\n  if (status === Z_OK) {\n    if (this.options.to === 'string') {\n      this.result = this.chunks.join('');\n    } else {\n      this.result = utils.flattenChunks(this.chunks);\n    }\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n *    (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate(input, options) {\n  var deflator = new Deflate(options);\n\n  deflator.push(input, true);\n\n  // That will never happens, if you don't cheat with options :)\n  if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n  return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n  options = options || {};\n  options.raw = true;\n  return deflate(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n  options = options || {};\n  options.gzip = true;\n  return deflate(input, options);\n}\n\n\nexports.Deflate = Deflate;\nexports.deflate = deflate;\nexports.deflateRaw = deflateRaw;\nexports.gzip = gzip;\n","'use strict';\n\n\nvar zlib_inflate = require('./zlib/inflate');\nvar utils        = require('./utils/common');\nvar strings      = require('./utils/strings');\nvar c            = require('./zlib/constants');\nvar msg          = require('./zlib/messages');\nvar ZStream      = require('./zlib/zstream');\nvar GZheader     = require('./zlib/gzheader');\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n *   , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true);  // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nfunction Inflate(options) {\n  if (!(this instanceof Inflate)) return new Inflate(options);\n\n  this.options = utils.assign({\n    chunkSize: 16384,\n    windowBits: 0,\n    to: ''\n  }, options || {});\n\n  var opt = this.options;\n\n  // Force window size for `raw` data, if not set directly,\n  // because we have no header for autodetect.\n  if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n    opt.windowBits = -opt.windowBits;\n    if (opt.windowBits === 0) { opt.windowBits = -15; }\n  }\n\n  // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n  if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n      !(options && options.windowBits)) {\n    opt.windowBits += 32;\n  }\n\n  // Gzip header has no info about windows size, we can do autodetect only\n  // for deflate. So, if window size not set, force it to max when gzip possible\n  if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n    // bit 3 (16) -> gzipped data\n    // bit 4 (32) -> autodetect gzip/deflate\n    if ((opt.windowBits & 15) === 0) {\n      opt.windowBits |= 15;\n    }\n  }\n\n  this.err    = 0;      // error code, if happens (0 = Z_OK)\n  this.msg    = '';     // error message\n  this.ended  = false;  // used to avoid multiple onEnd() calls\n  this.chunks = [];     // chunks of compressed data\n\n  this.strm   = new ZStream();\n  this.strm.avail_out = 0;\n\n  var status  = zlib_inflate.inflateInit2(\n    this.strm,\n    opt.windowBits\n  );\n\n  if (status !== c.Z_OK) {\n    throw new Error(msg[status]);\n  }\n\n  this.header = new GZheader();\n\n  zlib_inflate.inflateGetHeader(this.strm, this.header);\n\n  // Setup dictionary\n  if (opt.dictionary) {\n    // Convert data if needed\n    if (typeof opt.dictionary === 'string') {\n      opt.dictionary = strings.string2buf(opt.dictionary);\n    } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n      opt.dictionary = new Uint8Array(opt.dictionary);\n    }\n    if (opt.raw) { //In raw mode we need to set the dictionary early\n      status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);\n      if (status !== c.Z_OK) {\n        throw new Error(msg[status]);\n      }\n    }\n  }\n}\n\n/**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n *   See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true);  // push last chunk\n * ```\n **/\nInflate.prototype.push = function (data, mode) {\n  var strm = this.strm;\n  var chunkSize = this.options.chunkSize;\n  var dictionary = this.options.dictionary;\n  var status, _mode;\n  var next_out_utf8, tail, utf8str;\n\n  // Flag to properly process Z_BUF_ERROR on testing inflate call\n  // when we check that all output data was flushed.\n  var allowBufError = false;\n\n  if (this.ended) { return false; }\n  _mode = (mode === ~~mode) ? mode : ((mode === true) ? c.Z_FINISH : c.Z_NO_FLUSH);\n\n  // Convert data if needed\n  if (typeof data === 'string') {\n    // Only binary strings can be decompressed on practice\n    strm.input = strings.binstring2buf(data);\n  } else if (toString.call(data) === '[object ArrayBuffer]') {\n    strm.input = new Uint8Array(data);\n  } else {\n    strm.input = data;\n  }\n\n  strm.next_in = 0;\n  strm.avail_in = strm.input.length;\n\n  do {\n    if (strm.avail_out === 0) {\n      strm.output = new utils.Buf8(chunkSize);\n      strm.next_out = 0;\n      strm.avail_out = chunkSize;\n    }\n\n    status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);    /* no bad return value */\n\n    if (status === c.Z_NEED_DICT && dictionary) {\n      status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);\n    }\n\n    if (status === c.Z_BUF_ERROR && allowBufError === true) {\n      status = c.Z_OK;\n      allowBufError = false;\n    }\n\n    if (status !== c.Z_STREAM_END && status !== c.Z_OK) {\n      this.onEnd(status);\n      this.ended = true;\n      return false;\n    }\n\n    if (strm.next_out) {\n      if (strm.avail_out === 0 || status === c.Z_STREAM_END || (strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH))) {\n\n        if (this.options.to === 'string') {\n\n          next_out_utf8 = strings.utf8border(strm.output, strm.next_out);\n\n          tail = strm.next_out - next_out_utf8;\n          utf8str = strings.buf2string(strm.output, next_out_utf8);\n\n          // move tail\n          strm.next_out = tail;\n          strm.avail_out = chunkSize - tail;\n          if (tail) { utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n          this.onData(utf8str);\n\n        } else {\n          this.onData(utils.shrinkBuf(strm.output, strm.next_out));\n        }\n      }\n    }\n\n    // When no more input data, we should check that internal inflate buffers\n    // are flushed. The only way to do it when avail_out = 0 - run one more\n    // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n    // Here we set flag to process this error properly.\n    //\n    // NOTE. Deflate does not return error in this case and does not needs such\n    // logic.\n    if (strm.avail_in === 0 && strm.avail_out === 0) {\n      allowBufError = true;\n    }\n\n  } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);\n\n  if (status === c.Z_STREAM_END) {\n    _mode = c.Z_FINISH;\n  }\n\n  // Finalize on the last chunk.\n  if (_mode === c.Z_FINISH) {\n    status = zlib_inflate.inflateEnd(this.strm);\n    this.onEnd(status);\n    this.ended = true;\n    return status === c.Z_OK;\n  }\n\n  // callback interim results if Z_SYNC_FLUSH.\n  if (_mode === c.Z_SYNC_FLUSH) {\n    this.onEnd(c.Z_OK);\n    strm.avail_out = 0;\n    return true;\n  }\n\n  return true;\n};\n\n\n/**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n *   on js engine support. When string output requested, each chunk\n *   will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\nInflate.prototype.onData = function (chunk) {\n  this.chunks.push(chunk);\n};\n\n\n/**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n *   other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\nInflate.prototype.onEnd = function (status) {\n  // On success - join\n  if (status === c.Z_OK) {\n    if (this.options.to === 'string') {\n      // Glue & convert here, until we teach pako to send\n      // utf8 aligned strings to onData\n      this.result = this.chunks.join('');\n    } else {\n      this.result = utils.flattenChunks(this.chunks);\n    }\n  }\n  this.chunks = [];\n  this.err = status;\n  this.msg = this.strm.msg;\n};\n\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n *   negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n *   from utf8 to utf16 (javascript) string. When string output requested,\n *   chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n *   , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n *   , output;\n *\n * try {\n *   output = pako.inflate(input);\n * } catch (err)\n *   console.log(err);\n * }\n * ```\n **/\nfunction inflate(input, options) {\n  var inflator = new Inflate(options);\n\n  inflator.push(input, true);\n\n  // That will never happens, if you don't cheat with options :)\n  if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n  return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n  options = options || {};\n  options.raw = true;\n  return inflate(input, options);\n}\n\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\n\n\nexports.Inflate = Inflate;\nexports.inflate = inflate;\nexports.inflateRaw = inflateRaw;\nexports.ungzip  = inflate;\n","'use strict';\n\n\nvar TYPED_OK =  (typeof Uint8Array !== 'undefined') &&\n                (typeof Uint16Array !== 'undefined') &&\n                (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n  return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n  var sources = Array.prototype.slice.call(arguments, 1);\n  while (sources.length) {\n    var source = sources.shift();\n    if (!source) { continue; }\n\n    if (typeof source !== 'object') {\n      throw new TypeError(source + 'must be non-object');\n    }\n\n    for (var p in source) {\n      if (_has(source, p)) {\n        obj[p] = source[p];\n      }\n    }\n  }\n\n  return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n  if (buf.length === size) { return buf; }\n  if (buf.subarray) { return buf.subarray(0, size); }\n  buf.length = size;\n  return buf;\n};\n\n\nvar fnTyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    if (src.subarray && dest.subarray) {\n      dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n      return;\n    }\n    // Fallback to ordinary array\n    for (var i = 0; i < len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function (chunks) {\n    var i, l, len, pos, chunk, result;\n\n    // calculate data length\n    len = 0;\n    for (i = 0, l = chunks.length; i < l; i++) {\n      len += chunks[i].length;\n    }\n\n    // join chunks\n    result = new Uint8Array(len);\n    pos = 0;\n    for (i = 0, l = chunks.length; i < l; i++) {\n      chunk = chunks[i];\n      result.set(chunk, pos);\n      pos += chunk.length;\n    }\n\n    return result;\n  }\n};\n\nvar fnUntyped = {\n  arraySet: function (dest, src, src_offs, len, dest_offs) {\n    for (var i = 0; i < len; i++) {\n      dest[dest_offs + i] = src[src_offs + i];\n    }\n  },\n  // Join array of chunks to single array.\n  flattenChunks: function (chunks) {\n    return [].concat.apply([], chunks);\n  }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n  if (on) {\n    exports.Buf8  = Uint8Array;\n    exports.Buf16 = Uint16Array;\n    exports.Buf32 = Int32Array;\n    exports.assign(exports, fnTyped);\n  } else {\n    exports.Buf8  = Array;\n    exports.Buf16 = Array;\n    exports.Buf32 = Array;\n    exports.assign(exports, fnUntyped);\n  }\n};\n\nexports.setTyped(TYPED_OK);\n","// String encode/decode helpers\n'use strict';\n\n\nvar utils = require('./common');\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\n//\nvar STR_APPLY_OK = true;\nvar STR_APPLY_UIA_OK = true;\n\ntry { String.fromCharCode.apply(null, [ 0 ]); } catch (__) { STR_APPLY_OK = false; }\ntry { String.fromCharCode.apply(null, new Uint8Array(1)); } catch (__) { STR_APPLY_UIA_OK = false; }\n\n\n// Table with utf8 lengths (calculated by first byte of sequence)\n// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n// because max possible codepoint is 0x10ffff\nvar _utf8len = new utils.Buf8(256);\nfor (var q = 0; q < 256; q++) {\n  _utf8len[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n}\n_utf8len[254] = _utf8len[254] = 1; // Invalid sequence start\n\n\n// convert string to array (typed, when possible)\nexports.string2buf = function (str) {\n  var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n  // count binary size\n  for (m_pos = 0; m_pos < str_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n      c2 = str.charCodeAt(m_pos + 1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n  }\n\n  // allocate buffer\n  buf = new utils.Buf8(buf_len);\n\n  // convert\n  for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n    c = str.charCodeAt(m_pos);\n    if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n      c2 = str.charCodeAt(m_pos + 1);\n      if ((c2 & 0xfc00) === 0xdc00) {\n        c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n        m_pos++;\n      }\n    }\n    if (c < 0x80) {\n      /* one byte */\n      buf[i++] = c;\n    } else if (c < 0x800) {\n      /* two bytes */\n      buf[i++] = 0xC0 | (c >>> 6);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else if (c < 0x10000) {\n      /* three bytes */\n      buf[i++] = 0xE0 | (c >>> 12);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    } else {\n      /* four bytes */\n      buf[i++] = 0xf0 | (c >>> 18);\n      buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n      buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n      buf[i++] = 0x80 | (c & 0x3f);\n    }\n  }\n\n  return buf;\n};\n\n// Helper (used in 2 places)\nfunction buf2binstring(buf, len) {\n  // On Chrome, the arguments in a function call that are allowed is `65534`.\n  // If the length of the buffer is smaller than that, we can use this optimization,\n  // otherwise we will take a slower path.\n  if (len < 65534) {\n    if ((buf.subarray && STR_APPLY_UIA_OK) || (!buf.subarray && STR_APPLY_OK)) {\n      return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));\n    }\n  }\n\n  var result = '';\n  for (var i = 0; i < len; i++) {\n    result += String.fromCharCode(buf[i]);\n  }\n  return result;\n}\n\n\n// Convert byte array to binary string\nexports.buf2binstring = function (buf) {\n  return buf2binstring(buf, buf.length);\n};\n\n\n// Convert binary string (typed, when possible)\nexports.binstring2buf = function (str) {\n  var buf = new utils.Buf8(str.length);\n  for (var i = 0, len = buf.length; i < len; i++) {\n    buf[i] = str.charCodeAt(i);\n  }\n  return buf;\n};\n\n\n// convert array to string\nexports.buf2string = function (buf, max) {\n  var i, out, c, c_len;\n  var len = max || buf.length;\n\n  // Reserve max possible length (2 words per char)\n  // NB: by unknown reasons, Array is significantly faster for\n  //     String.fromCharCode.apply than Uint16Array.\n  var utf16buf = new Array(len * 2);\n\n  for (out = 0, i = 0; i < len;) {\n    c = buf[i++];\n    // quick process ascii\n    if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n    c_len = _utf8len[c];\n    // skip 5 & 6 byte codes\n    if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n    // apply mask on first byte\n    c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n    // join the rest\n    while (c_len > 1 && i < len) {\n      c = (c << 6) | (buf[i++] & 0x3f);\n      c_len--;\n    }\n\n    // terminated by end of string?\n    if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n    if (c < 0x10000) {\n      utf16buf[out++] = c;\n    } else {\n      c -= 0x10000;\n      utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n      utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n    }\n  }\n\n  return buf2binstring(utf16buf, out);\n};\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max   - length limit (mandatory);\nexports.utf8border = function (buf, max) {\n  var pos;\n\n  max = max || buf.length;\n  if (max > buf.length) { max = buf.length; }\n\n  // go back from last position, until start of sequence found\n  pos = max - 1;\n  while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n  // Very small and broken sequence,\n  // return max, because we should return something anyway.\n  if (pos < 0) { return max; }\n\n  // If we came to start of buffer - that means buffer is too small,\n  // return max too.\n  if (pos === 0) { return max; }\n\n  return (pos + _utf8len[buf[pos]] > max) ? pos : max;\n};\n","'use strict';\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n  var s1 = (adler & 0xffff) |0,\n      s2 = ((adler >>> 16) & 0xffff) |0,\n      n = 0;\n\n  while (len !== 0) {\n    // Set limit ~ twice less than 5552, to keep\n    // s2 in 31-bits, because we force signed ints.\n    // in other case %= will fail.\n    n = len > 2000 ? 2000 : len;\n    len -= n;\n\n    do {\n      s1 = (s1 + buf[pos++]) |0;\n      s2 = (s2 + s1) |0;\n    } while (--n);\n\n    s1 %= 65521;\n    s2 %= 65521;\n  }\n\n  return (s1 | (s2 << 16)) |0;\n}\n\n\nmodule.exports = adler32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n  /* Allowed flush values; see deflate() and inflate() below for details */\n  Z_NO_FLUSH:         0,\n  Z_PARTIAL_FLUSH:    1,\n  Z_SYNC_FLUSH:       2,\n  Z_FULL_FLUSH:       3,\n  Z_FINISH:           4,\n  Z_BLOCK:            5,\n  Z_TREES:            6,\n\n  /* Return codes for the compression/decompression functions. Negative values\n  * are errors, positive values are used for special but normal events.\n  */\n  Z_OK:               0,\n  Z_STREAM_END:       1,\n  Z_NEED_DICT:        2,\n  Z_ERRNO:           -1,\n  Z_STREAM_ERROR:    -2,\n  Z_DATA_ERROR:      -3,\n  //Z_MEM_ERROR:     -4,\n  Z_BUF_ERROR:       -5,\n  //Z_VERSION_ERROR: -6,\n\n  /* compression levels */\n  Z_NO_COMPRESSION:         0,\n  Z_BEST_SPEED:             1,\n  Z_BEST_COMPRESSION:       9,\n  Z_DEFAULT_COMPRESSION:   -1,\n\n\n  Z_FILTERED:               1,\n  Z_HUFFMAN_ONLY:           2,\n  Z_RLE:                    3,\n  Z_FIXED:                  4,\n  Z_DEFAULT_STRATEGY:       0,\n\n  /* Possible values of the data_type field (though see inflate()) */\n  Z_BINARY:                 0,\n  Z_TEXT:                   1,\n  //Z_ASCII:                1, // = Z_TEXT (deprecated)\n  Z_UNKNOWN:                2,\n\n  /* The deflate compression method */\n  Z_DEFLATED:               8\n  //Z_NULL:                 null // Use -1 or null inline, depending on var type\n};\n","'use strict';\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n  var c, table = [];\n\n  for (var n = 0; n < 256; n++) {\n    c = n;\n    for (var k = 0; k < 8; k++) {\n      c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n    }\n    table[n] = c;\n  }\n\n  return table;\n}\n\n// Create table on load. Just 255 signed longs. Not a problem.\nvar crcTable = makeTable();\n\n\nfunction crc32(crc, buf, len, pos) {\n  var t = crcTable,\n      end = pos + len;\n\n  crc ^= -1;\n\n  for (var i = pos; i < end; i++) {\n    crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n  }\n\n  return (crc ^ (-1)); // >>> 0;\n}\n\n\nmodule.exports = crc32;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils   = require('../utils/common');\nvar trees   = require('./trees');\nvar adler32 = require('./adler32');\nvar crc32   = require('./crc32');\nvar msg     = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH      = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\nvar Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\n//var Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\n//var Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\n//var Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION      = 0;\n//var Z_BEST_SPEED          = 1;\n//var Z_BEST_COMPRESSION    = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED            = 1;\nvar Z_HUFFMAN_ONLY        = 2;\nvar Z_RLE                 = 3;\nvar Z_FIXED               = 4;\nvar Z_DEFAULT_STRATEGY    = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY              = 0;\n//var Z_TEXT                = 1;\n//var Z_ASCII               = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES       = 30;\n/* number of distance codes */\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE     = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS  = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE      = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE     = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE    = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n  strm.msg = msg[errorCode];\n  return errorCode;\n}\n\nfunction rank(f) {\n  return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n  var s = strm.state;\n\n  //_tr_flush_bits(s);\n  var len = s.pending;\n  if (len > strm.avail_out) {\n    len = strm.avail_out;\n  }\n  if (len === 0) { return; }\n\n  utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n  strm.next_out += len;\n  s.pending_out += len;\n  strm.total_out += len;\n  strm.avail_out -= len;\n  s.pending -= len;\n  if (s.pending === 0) {\n    s.pending_out = 0;\n  }\n}\n\n\nfunction flush_block_only(s, last) {\n  trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n  s.block_start = s.strstart;\n  flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n  s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n//  put_byte(s, (Byte)(b >> 8));\n//  put_byte(s, (Byte)(b & 0xff));\n  s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n  s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read.  All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n  var len = strm.avail_in;\n\n  if (len > size) { len = size; }\n  if (len === 0) { return 0; }\n\n  strm.avail_in -= len;\n\n  // zmemcpy(buf, strm->next_in, len);\n  utils.arraySet(buf, strm.input, strm.next_in, len, start);\n  if (strm.state.wrap === 1) {\n    strm.adler = adler32(strm.adler, buf, len, start);\n  }\n\n  else if (strm.state.wrap === 2) {\n    strm.adler = crc32(strm.adler, buf, len, start);\n  }\n\n  strm.next_in += len;\n  strm.total_in += len;\n\n  return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n *   string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n  var chain_length = s.max_chain_length;      /* max hash chain length */\n  var scan = s.strstart; /* current string */\n  var match;                       /* matched string */\n  var len;                           /* length of current match */\n  var best_len = s.prev_length;              /* best match length so far */\n  var nice_match = s.nice_match;             /* stop if match long enough */\n  var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n      s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n  var _win = s.window; // shortcut\n\n  var wmask = s.w_mask;\n  var prev  = s.prev;\n\n  /* Stop when cur_match becomes <= limit. To simplify the code,\n   * we prevent matches with the string of window index 0.\n   */\n\n  var strend = s.strstart + MAX_MATCH;\n  var scan_end1  = _win[scan + best_len - 1];\n  var scan_end   = _win[scan + best_len];\n\n  /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n   * It is easy to get rid of this optimization if necessary.\n   */\n  // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n  /* Do not waste too much time if we already have a good match: */\n  if (s.prev_length >= s.good_match) {\n    chain_length >>= 2;\n  }\n  /* Do not look for matches beyond the end of the input. This is necessary\n   * to make deflate deterministic.\n   */\n  if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n  // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n  do {\n    // Assert(cur_match < s->strstart, \"no future\");\n    match = cur_match;\n\n    /* Skip to next match if the match length cannot increase\n     * or if the match length is less than 2.  Note that the checks below\n     * for insufficient lookahead only occur occasionally for performance\n     * reasons.  Therefore uninitialized memory will be accessed, and\n     * conditional jumps will be made that depend on those values.\n     * However the length of the match is limited to the lookahead, so\n     * the output of deflate is not affected by the uninitialized values.\n     */\n\n    if (_win[match + best_len]     !== scan_end  ||\n        _win[match + best_len - 1] !== scan_end1 ||\n        _win[match]                !== _win[scan] ||\n        _win[++match]              !== _win[scan + 1]) {\n      continue;\n    }\n\n    /* The check at best_len-1 can be removed because it will be made\n     * again later. (This heuristic is not always a win.)\n     * It is not necessary to compare scan[2] and match[2] since they\n     * are always equal when the other bytes match, given that\n     * the hash keys are equal and that HASH_BITS >= 8.\n     */\n    scan += 2;\n    match++;\n    // Assert(*scan == *match, \"match[2]?\");\n\n    /* We check for insufficient lookahead only every 8th comparison;\n     * the 256th check will be made at strstart+258.\n     */\n    do {\n      /*jshint noempty:false*/\n    } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n             scan < strend);\n\n    // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n    len = MAX_MATCH - (strend - scan);\n    scan = strend - MAX_MATCH;\n\n    if (len > best_len) {\n      s.match_start = cur_match;\n      best_len = len;\n      if (len >= nice_match) {\n        break;\n      }\n      scan_end1  = _win[scan + best_len - 1];\n      scan_end   = _win[scan + best_len];\n    }\n  } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n  if (best_len <= s.lookahead) {\n    return best_len;\n  }\n  return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n *    At least one byte has been read, or avail_in == 0; reads are\n *    performed for at least two bytes (required for the zip translate_eol\n *    option -- not supported here).\n */\nfunction fill_window(s) {\n  var _w_size = s.w_size;\n  var p, n, m, more, str;\n\n  //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n  do {\n    more = s.window_size - s.lookahead - s.strstart;\n\n    // JS ints have 32 bit, block below not needed\n    /* Deal with !@#$% 64K limit: */\n    //if (sizeof(int) <= 2) {\n    //    if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n    //        more = wsize;\n    //\n    //  } else if (more == (unsigned)(-1)) {\n    //        /* Very unlikely, but possible on 16 bit machine if\n    //         * strstart == 0 && lookahead == 1 (input done a byte at time)\n    //         */\n    //        more--;\n    //    }\n    //}\n\n\n    /* If the window is almost full and there is insufficient lookahead,\n     * move the upper half to the lower one to make room in the upper half.\n     */\n    if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n      utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n      s.match_start -= _w_size;\n      s.strstart -= _w_size;\n      /* we now have strstart >= MAX_DIST */\n      s.block_start -= _w_size;\n\n      /* Slide the hash table (could be avoided with 32 bit values\n       at the expense of memory usage). We slide even when level == 0\n       to keep the hash table consistent if we switch back to level > 0\n       later. (Using level 0 permanently is not an optimal usage of\n       zlib, so we don't care about this pathological case.)\n       */\n\n      n = s.hash_size;\n      p = n;\n      do {\n        m = s.head[--p];\n        s.head[p] = (m >= _w_size ? m - _w_size : 0);\n      } while (--n);\n\n      n = _w_size;\n      p = n;\n      do {\n        m = s.prev[--p];\n        s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n        /* If n is not on any hash chain, prev[n] is garbage but\n         * its value will never be used.\n         */\n      } while (--n);\n\n      more += _w_size;\n    }\n    if (s.strm.avail_in === 0) {\n      break;\n    }\n\n    /* If there was no sliding:\n     *    strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n     *    more == window_size - lookahead - strstart\n     * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n     * => more >= window_size - 2*WSIZE + 2\n     * In the BIG_MEM or MMAP case (not yet supported),\n     *   window_size == input_size + MIN_LOOKAHEAD  &&\n     *   strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n     * Otherwise, window_size == 2*WSIZE so more >= 2.\n     * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n     */\n    //Assert(more >= 2, \"more < 2\");\n    n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n    s.lookahead += n;\n\n    /* Initialize the hash value now that we have some input: */\n    if (s.lookahead + s.insert >= MIN_MATCH) {\n      str = s.strstart - s.insert;\n      s.ins_h = s.window[str];\n\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n//        Call update_hash() MIN_MATCH-3 more times\n//#endif\n      while (s.insert) {\n        /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n        s.prev[str & s.w_mask] = s.head[s.ins_h];\n        s.head[s.ins_h] = str;\n        str++;\n        s.insert--;\n        if (s.lookahead + s.insert < MIN_MATCH) {\n          break;\n        }\n      }\n    }\n    /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n     * but this is not important since only literal bytes will be emitted.\n     */\n\n  } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n  /* If the WIN_INIT bytes after the end of the current data have never been\n   * written, then zero those bytes in order to avoid memory check reports of\n   * the use of uninitialized (or uninitialised as Julian writes) bytes by\n   * the longest match routines.  Update the high water mark for the next\n   * time through here.  WIN_INIT is set to MAX_MATCH since the longest match\n   * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n   */\n//  if (s.high_water < s.window_size) {\n//    var curr = s.strstart + s.lookahead;\n//    var init = 0;\n//\n//    if (s.high_water < curr) {\n//      /* Previous high water mark below current data -- zero WIN_INIT\n//       * bytes or up to end of window, whichever is less.\n//       */\n//      init = s.window_size - curr;\n//      if (init > WIN_INIT)\n//        init = WIN_INIT;\n//      zmemzero(s->window + curr, (unsigned)init);\n//      s->high_water = curr + init;\n//    }\n//    else if (s->high_water < (ulg)curr + WIN_INIT) {\n//      /* High water mark at or above current data, but below current data\n//       * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n//       * to end of window, whichever is less.\n//       */\n//      init = (ulg)curr + WIN_INIT - s->high_water;\n//      if (init > s->window_size - s->high_water)\n//        init = s->window_size - s->high_water;\n//      zmemzero(s->window + s->high_water, (unsigned)init);\n//      s->high_water += init;\n//    }\n//  }\n//\n//  Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n//    \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n  /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n   * to pending_buf_size, and each stored block has a 5 byte header:\n   */\n  var max_block_size = 0xffff;\n\n  if (max_block_size > s.pending_buf_size - 5) {\n    max_block_size = s.pending_buf_size - 5;\n  }\n\n  /* Copy as much as possible from input to output: */\n  for (;;) {\n    /* Fill the window as much as possible: */\n    if (s.lookahead <= 1) {\n\n      //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n      //  s->block_start >= (long)s->w_size, \"slide too late\");\n//      if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n//        s.block_start >= s.w_size)) {\n//        throw  new Error(\"slide too late\");\n//      }\n\n      fill_window(s);\n      if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n\n      if (s.lookahead === 0) {\n        break;\n      }\n      /* flush the current block */\n    }\n    //Assert(s->block_start >= 0L, \"block gone\");\n//    if (s.block_start < 0) throw new Error(\"block gone\");\n\n    s.strstart += s.lookahead;\n    s.lookahead = 0;\n\n    /* Emit a stored block if pending_buf will be full: */\n    var max_start = s.block_start + max_block_size;\n\n    if (s.strstart === 0 || s.strstart >= max_start) {\n      /* strstart == 0 is possible when wraparound on 16-bit machine */\n      s.lookahead = s.strstart - max_start;\n      s.strstart = max_start;\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n\n\n    }\n    /* Flush if we may have to slide, otherwise block_start may become\n     * negative and the data will be gone:\n     */\n    if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n\n  s.insert = 0;\n\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n\n  if (s.strstart > s.block_start) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n  var hash_head;        /* head of the hash chain */\n  var bflush;           /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) {\n        break; /* flush the current block */\n      }\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     * At this point we have always match_length < MIN_MATCH\n     */\n    if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n    }\n    if (s.match_length >= MIN_MATCH) {\n      // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n      /*** _tr_tally_dist(s, s.strstart - s.match_start,\n                     s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n\n      /* Insert new strings in the hash table only if the match length\n       * is not too large. This saves time but degrades compression.\n       */\n      if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n        s.match_length--; /* string at strstart already in table */\n        do {\n          s.strstart++;\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n          /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n           * always MIN_MATCH bytes ahead.\n           */\n        } while (--s.match_length !== 0);\n        s.strstart++;\n      } else\n      {\n        s.strstart += s.match_length;\n        s.match_length = 0;\n        s.ins_h = s.window[s.strstart];\n        /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n        s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n//                Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n        /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n         * matter since it will be recomputed at next deflate call.\n         */\n      }\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n  var hash_head;          /* head of hash chain */\n  var bflush;              /* set if current block must be flushed */\n\n  var max_insert;\n\n  /* Process the input block. */\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the next match, plus MIN_MATCH bytes to insert the\n     * string following the next match.\n     */\n    if (s.lookahead < MIN_LOOKAHEAD) {\n      fill_window(s);\n      if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* Insert the string window[strstart .. strstart+2] in the\n     * dictionary, and set hash_head to the head of the hash chain:\n     */\n    hash_head = 0/*NIL*/;\n    if (s.lookahead >= MIN_MATCH) {\n      /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n      hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n      s.head[s.ins_h] = s.strstart;\n      /***/\n    }\n\n    /* Find the longest match, discarding those <= prev_length.\n     */\n    s.prev_length = s.match_length;\n    s.prev_match = s.match_start;\n    s.match_length = MIN_MATCH - 1;\n\n    if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n        s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n      /* To simplify the code, we prevent matches with the string\n       * of window index 0 (in particular we have to avoid a match\n       * of the string with itself at the start of the input file).\n       */\n      s.match_length = longest_match(s, hash_head);\n      /* longest_match() sets match_start */\n\n      if (s.match_length <= 5 &&\n         (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n        /* If prev_match is also MIN_MATCH, match_start is garbage\n         * but we will ignore the current match anyway.\n         */\n        s.match_length = MIN_MATCH - 1;\n      }\n    }\n    /* If there was a match at the previous step and the current\n     * match is not better, output the previous match:\n     */\n    if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n      max_insert = s.strstart + s.lookahead - MIN_MATCH;\n      /* Do not insert strings in hash table beyond this. */\n\n      //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n      /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n                     s.prev_length - MIN_MATCH, bflush);***/\n      bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n      /* Insert in hash table all strings up to the end of the match.\n       * strstart-1 and strstart are already inserted. If there is not\n       * enough lookahead, the last two strings are not inserted in\n       * the hash table.\n       */\n      s.lookahead -= s.prev_length - 1;\n      s.prev_length -= 2;\n      do {\n        if (++s.strstart <= max_insert) {\n          /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n          s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n          hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n          s.head[s.ins_h] = s.strstart;\n          /***/\n        }\n      } while (--s.prev_length !== 0);\n      s.match_available = 0;\n      s.match_length = MIN_MATCH - 1;\n      s.strstart++;\n\n      if (bflush) {\n        /*** FLUSH_BLOCK(s, 0); ***/\n        flush_block_only(s, false);\n        if (s.strm.avail_out === 0) {\n          return BS_NEED_MORE;\n        }\n        /***/\n      }\n\n    } else if (s.match_available) {\n      /* If there was no match at the previous position, output a\n       * single literal. If there was a match but the current match\n       * is longer, truncate the previous match to a single literal.\n       */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n      /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n      if (bflush) {\n        /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n        flush_block_only(s, false);\n        /***/\n      }\n      s.strstart++;\n      s.lookahead--;\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n    } else {\n      /* There is no previous match to compare with, wait for\n       * the next step to decide.\n       */\n      s.match_available = 1;\n      s.strstart++;\n      s.lookahead--;\n    }\n  }\n  //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n  if (s.match_available) {\n    //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n    /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n    s.match_available = 0;\n  }\n  s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n\n  return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one.  Do not maintain a hash table.  (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n  var bflush;            /* set if current block must be flushed */\n  var prev;              /* byte at distance one to match */\n  var scan, strend;      /* scan goes up to strend for length of run */\n\n  var _win = s.window;\n\n  for (;;) {\n    /* Make sure that we always have enough lookahead, except\n     * at the end of the input file. We need MAX_MATCH bytes\n     * for the longest run, plus one for the unrolled loop.\n     */\n    if (s.lookahead <= MAX_MATCH) {\n      fill_window(s);\n      if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n        return BS_NEED_MORE;\n      }\n      if (s.lookahead === 0) { break; } /* flush the current block */\n    }\n\n    /* See how many times the previous byte repeats */\n    s.match_length = 0;\n    if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n      scan = s.strstart - 1;\n      prev = _win[scan];\n      if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n        strend = s.strstart + MAX_MATCH;\n        do {\n          /*jshint noempty:false*/\n        } while (prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 prev === _win[++scan] && prev === _win[++scan] &&\n                 scan < strend);\n        s.match_length = MAX_MATCH - (strend - scan);\n        if (s.match_length > s.lookahead) {\n          s.match_length = s.lookahead;\n        }\n      }\n      //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n    }\n\n    /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n    if (s.match_length >= MIN_MATCH) {\n      //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n      /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n      bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n      s.lookahead -= s.match_length;\n      s.strstart += s.match_length;\n      s.match_length = 0;\n    } else {\n      /* No match, output a literal byte */\n      //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n      /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n      bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n      s.lookahead--;\n      s.strstart++;\n    }\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches.  Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n  var bflush;             /* set if current block must be flushed */\n\n  for (;;) {\n    /* Make sure that we have a literal to write. */\n    if (s.lookahead === 0) {\n      fill_window(s);\n      if (s.lookahead === 0) {\n        if (flush === Z_NO_FLUSH) {\n          return BS_NEED_MORE;\n        }\n        break;      /* flush the current block */\n      }\n    }\n\n    /* Output a literal byte */\n    s.match_length = 0;\n    //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n    /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n    bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n    s.lookahead--;\n    s.strstart++;\n    if (bflush) {\n      /*** FLUSH_BLOCK(s, 0); ***/\n      flush_block_only(s, false);\n      if (s.strm.avail_out === 0) {\n        return BS_NEED_MORE;\n      }\n      /***/\n    }\n  }\n  s.insert = 0;\n  if (flush === Z_FINISH) {\n    /*** FLUSH_BLOCK(s, 1); ***/\n    flush_block_only(s, true);\n    if (s.strm.avail_out === 0) {\n      return BS_FINISH_STARTED;\n    }\n    /***/\n    return BS_FINISH_DONE;\n  }\n  if (s.last_lit) {\n    /*** FLUSH_BLOCK(s, 0); ***/\n    flush_block_only(s, false);\n    if (s.strm.avail_out === 0) {\n      return BS_NEED_MORE;\n    }\n    /***/\n  }\n  return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n  this.good_length = good_length;\n  this.max_lazy = max_lazy;\n  this.nice_length = nice_length;\n  this.max_chain = max_chain;\n  this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n  /*      good lazy nice chain */\n  new Config(0, 0, 0, 0, deflate_stored),          /* 0 store only */\n  new Config(4, 4, 8, 4, deflate_fast),            /* 1 max speed, no lazy matches */\n  new Config(4, 5, 16, 8, deflate_fast),           /* 2 */\n  new Config(4, 6, 32, 32, deflate_fast),          /* 3 */\n\n  new Config(4, 4, 16, 16, deflate_slow),          /* 4 lazy matches */\n  new Config(8, 16, 32, 32, deflate_slow),         /* 5 */\n  new Config(8, 16, 128, 128, deflate_slow),       /* 6 */\n  new Config(8, 32, 128, 256, deflate_slow),       /* 7 */\n  new Config(32, 128, 258, 1024, deflate_slow),    /* 8 */\n  new Config(32, 258, 258, 4096, deflate_slow)     /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n  s.window_size = 2 * s.w_size;\n\n  /*** CLEAR_HASH(s); ***/\n  zero(s.head); // Fill with NIL (= 0);\n\n  /* Set the default configuration parameters:\n   */\n  s.max_lazy_match = configuration_table[s.level].max_lazy;\n  s.good_match = configuration_table[s.level].good_length;\n  s.nice_match = configuration_table[s.level].nice_length;\n  s.max_chain_length = configuration_table[s.level].max_chain;\n\n  s.strstart = 0;\n  s.block_start = 0;\n  s.lookahead = 0;\n  s.insert = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n  this.strm = null;            /* pointer back to this zlib stream */\n  this.status = 0;            /* as the name implies */\n  this.pending_buf = null;      /* output still pending */\n  this.pending_buf_size = 0;  /* size of pending_buf */\n  this.pending_out = 0;       /* next pending byte to output to the stream */\n  this.pending = 0;           /* nb of bytes in the pending buffer */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.gzhead = null;         /* gzip header information to write */\n  this.gzindex = 0;           /* where in extra, name, or comment */\n  this.method = Z_DEFLATED; /* can only be DEFLATED */\n  this.last_flush = -1;   /* value of flush param for previous deflate call */\n\n  this.w_size = 0;  /* LZ77 window size (32K by default) */\n  this.w_bits = 0;  /* log2(w_size)  (8..16) */\n  this.w_mask = 0;  /* w_size - 1 */\n\n  this.window = null;\n  /* Sliding window. Input bytes are read into the second half of the window,\n   * and move to the first half later to keep a dictionary of at least wSize\n   * bytes. With this organization, matches are limited to a distance of\n   * wSize-MAX_MATCH bytes, but this ensures that IO is always\n   * performed with a length multiple of the block size.\n   */\n\n  this.window_size = 0;\n  /* Actual size of window: 2*wSize, except when the user input buffer\n   * is directly used as sliding window.\n   */\n\n  this.prev = null;\n  /* Link to older string with same hash index. To limit the size of this\n   * array to 64K, this link is maintained only for the last 32K strings.\n   * An index in this array is thus a window index modulo 32K.\n   */\n\n  this.head = null;   /* Heads of the hash chains or NIL. */\n\n  this.ins_h = 0;       /* hash index of string to be inserted */\n  this.hash_size = 0;   /* number of elements in hash table */\n  this.hash_bits = 0;   /* log2(hash_size) */\n  this.hash_mask = 0;   /* hash_size-1 */\n\n  this.hash_shift = 0;\n  /* Number of bits by which ins_h must be shifted at each input\n   * step. It must be such that after MIN_MATCH steps, the oldest\n   * byte no longer takes part in the hash key, that is:\n   *   hash_shift * MIN_MATCH >= hash_bits\n   */\n\n  this.block_start = 0;\n  /* Window position at the beginning of the current output block. Gets\n   * negative when the window is moved backwards.\n   */\n\n  this.match_length = 0;      /* length of best match */\n  this.prev_match = 0;        /* previous match */\n  this.match_available = 0;   /* set if previous match exists */\n  this.strstart = 0;          /* start of string to insert */\n  this.match_start = 0;       /* start of matching string */\n  this.lookahead = 0;         /* number of valid bytes ahead in window */\n\n  this.prev_length = 0;\n  /* Length of the best match at previous step. Matches not greater than this\n   * are discarded. This is used in the lazy match evaluation.\n   */\n\n  this.max_chain_length = 0;\n  /* To speed up deflation, hash chains are never searched beyond this\n   * length.  A higher limit improves compression ratio but degrades the\n   * speed.\n   */\n\n  this.max_lazy_match = 0;\n  /* Attempt to find a better match only when the current match is strictly\n   * smaller than this value. This mechanism is used only for compression\n   * levels >= 4.\n   */\n  // That's alias to max_lazy_match, don't use directly\n  //this.max_insert_length = 0;\n  /* Insert new strings in the hash table only if the match length is not\n   * greater than this length. This saves time but degrades compression.\n   * max_insert_length is used only for compression levels <= 3.\n   */\n\n  this.level = 0;     /* compression level (1..9) */\n  this.strategy = 0;  /* favor or force Huffman coding*/\n\n  this.good_match = 0;\n  /* Use a faster search when the previous match is longer than this */\n\n  this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n              /* used by trees.c: */\n\n  /* Didn't use ct_data typedef below to suppress compiler warning */\n\n  // struct ct_data_s dyn_ltree[HEAP_SIZE];   /* literal and length tree */\n  // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n  // struct ct_data_s bl_tree[2*BL_CODES+1];  /* Huffman tree for bit lengths */\n\n  // Use flat array of DOUBLE size, with interleaved fata,\n  // because JS does not support effective\n  this.dyn_ltree  = new utils.Buf16(HEAP_SIZE * 2);\n  this.dyn_dtree  = new utils.Buf16((2 * D_CODES + 1) * 2);\n  this.bl_tree    = new utils.Buf16((2 * BL_CODES + 1) * 2);\n  zero(this.dyn_ltree);\n  zero(this.dyn_dtree);\n  zero(this.bl_tree);\n\n  this.l_desc   = null;         /* desc. for literal tree */\n  this.d_desc   = null;         /* desc. for distance tree */\n  this.bl_desc  = null;         /* desc. for bit length tree */\n\n  //ush bl_count[MAX_BITS+1];\n  this.bl_count = new utils.Buf16(MAX_BITS + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  //int heap[2*L_CODES+1];      /* heap used to build the Huffman trees */\n  this.heap = new utils.Buf16(2 * L_CODES + 1);  /* heap used to build the Huffman trees */\n  zero(this.heap);\n\n  this.heap_len = 0;               /* number of elements in the heap */\n  this.heap_max = 0;               /* element of largest frequency */\n  /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n   * The same heap array is used to build all trees.\n   */\n\n  this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n  zero(this.depth);\n  /* Depth of each subtree used as tie breaker for trees of equal frequency\n   */\n\n  this.l_buf = 0;          /* buffer index for literals or lengths */\n\n  this.lit_bufsize = 0;\n  /* Size of match buffer for literals/lengths.  There are 4 reasons for\n   * limiting lit_bufsize to 64K:\n   *   - frequencies can be kept in 16 bit counters\n   *   - if compression is not successful for the first block, all input\n   *     data is still in the window so we can still emit a stored block even\n   *     when input comes from standard input.  (This can also be done for\n   *     all blocks if lit_bufsize is not greater than 32K.)\n   *   - if compression is not successful for a file smaller than 64K, we can\n   *     even emit a stored file instead of a stored block (saving 5 bytes).\n   *     This is applicable only for zip (not gzip or zlib).\n   *   - creating new Huffman trees less frequently may not provide fast\n   *     adaptation to changes in the input data statistics. (Take for\n   *     example a binary file with poorly compressible code followed by\n   *     a highly compressible string table.) Smaller buffer sizes give\n   *     fast adaptation but have of course the overhead of transmitting\n   *     trees more frequently.\n   *   - I can't count above 4\n   */\n\n  this.last_lit = 0;      /* running index in l_buf */\n\n  this.d_buf = 0;\n  /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n   * the same number of elements. To use different lengths, an extra flag\n   * array would be necessary.\n   */\n\n  this.opt_len = 0;       /* bit length of current block with optimal trees */\n  this.static_len = 0;    /* bit length of current block with static trees */\n  this.matches = 0;       /* number of string matches in current block */\n  this.insert = 0;        /* bytes at end of window left to insert */\n\n\n  this.bi_buf = 0;\n  /* Output buffer. bits are inserted starting at the bottom (least\n   * significant bits).\n   */\n  this.bi_valid = 0;\n  /* Number of valid bits in bi_buf.  All bits above the last valid bit\n   * are always zero.\n   */\n\n  // Used for window memory init. We safely ignore it for JS. That makes\n  // sense only for pointers and memory check tools.\n  //this.high_water = 0;\n  /* High water mark offset in window for initialized bytes -- bytes above\n   * this are set to zero in order to avoid memory check warnings when\n   * longest match routines access bytes past the input.  This is then\n   * updated to the new high water mark.\n   */\n}\n\n\nfunction deflateResetKeep(strm) {\n  var s;\n\n  if (!strm || !strm.state) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.total_in = strm.total_out = 0;\n  strm.data_type = Z_UNKNOWN;\n\n  s = strm.state;\n  s.pending = 0;\n  s.pending_out = 0;\n\n  if (s.wrap < 0) {\n    s.wrap = -s.wrap;\n    /* was made negative by deflate(..., Z_FINISH); */\n  }\n  s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n  strm.adler = (s.wrap === 2) ?\n    0  // crc32(0, Z_NULL, 0)\n  :\n    1; // adler32(0, Z_NULL, 0)\n  s.last_flush = Z_NO_FLUSH;\n  trees._tr_init(s);\n  return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n  var ret = deflateResetKeep(strm);\n  if (ret === Z_OK) {\n    lm_init(strm.state);\n  }\n  return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n  strm.state.gzhead = head;\n  return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n  if (!strm) { // === Z_NULL\n    return Z_STREAM_ERROR;\n  }\n  var wrap = 1;\n\n  if (level === Z_DEFAULT_COMPRESSION) {\n    level = 6;\n  }\n\n  if (windowBits < 0) { /* suppress zlib wrapper */\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n\n  else if (windowBits > 15) {\n    wrap = 2;           /* write gzip wrapper instead */\n    windowBits -= 16;\n  }\n\n\n  if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n    windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n    strategy < 0 || strategy > Z_FIXED) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n\n  if (windowBits === 8) {\n    windowBits = 9;\n  }\n  /* until 256-byte window bug fixed */\n\n  var s = new DeflateState();\n\n  strm.state = s;\n  s.strm = strm;\n\n  s.wrap = wrap;\n  s.gzhead = null;\n  s.w_bits = windowBits;\n  s.w_size = 1 << s.w_bits;\n  s.w_mask = s.w_size - 1;\n\n  s.hash_bits = memLevel + 7;\n  s.hash_size = 1 << s.hash_bits;\n  s.hash_mask = s.hash_size - 1;\n  s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n  s.window = new utils.Buf8(s.w_size * 2);\n  s.head = new utils.Buf16(s.hash_size);\n  s.prev = new utils.Buf16(s.w_size);\n\n  // Don't need mem init magic for JS.\n  //s.high_water = 0;  /* nothing written to s->window yet */\n\n  s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n  s.pending_buf_size = s.lit_bufsize * 4;\n\n  //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n  //s->pending_buf = (uchf *) overlay;\n  s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n  // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n  //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n  s.d_buf = 1 * s.lit_bufsize;\n\n  //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n  s.l_buf = (1 + 2) * s.lit_bufsize;\n\n  s.level = level;\n  s.strategy = strategy;\n  s.method = method;\n\n  return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n  return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n  var old_flush, s;\n  var beg, val; // for gzip header write only\n\n  if (!strm || !strm.state ||\n    flush > Z_BLOCK || flush < 0) {\n    return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n  }\n\n  s = strm.state;\n\n  if (!strm.output ||\n      (!strm.input && strm.avail_in !== 0) ||\n      (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n    return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n  }\n\n  s.strm = strm; /* just in case */\n  old_flush = s.last_flush;\n  s.last_flush = flush;\n\n  /* Write the header */\n  if (s.status === INIT_STATE) {\n\n    if (s.wrap === 2) { // GZIP header\n      strm.adler = 0;  //crc32(0L, Z_NULL, 0);\n      put_byte(s, 31);\n      put_byte(s, 139);\n      put_byte(s, 8);\n      if (!s.gzhead) { // s->gzhead == Z_NULL\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, 0);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, OS_CODE);\n        s.status = BUSY_STATE;\n      }\n      else {\n        put_byte(s, (s.gzhead.text ? 1 : 0) +\n                    (s.gzhead.hcrc ? 2 : 0) +\n                    (!s.gzhead.extra ? 0 : 4) +\n                    (!s.gzhead.name ? 0 : 8) +\n                    (!s.gzhead.comment ? 0 : 16)\n        );\n        put_byte(s, s.gzhead.time & 0xff);\n        put_byte(s, (s.gzhead.time >> 8) & 0xff);\n        put_byte(s, (s.gzhead.time >> 16) & 0xff);\n        put_byte(s, (s.gzhead.time >> 24) & 0xff);\n        put_byte(s, s.level === 9 ? 2 :\n                    (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n                     4 : 0));\n        put_byte(s, s.gzhead.os & 0xff);\n        if (s.gzhead.extra && s.gzhead.extra.length) {\n          put_byte(s, s.gzhead.extra.length & 0xff);\n          put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n        }\n        if (s.gzhead.hcrc) {\n          strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n        }\n        s.gzindex = 0;\n        s.status = EXTRA_STATE;\n      }\n    }\n    else // DEFLATE header\n    {\n      var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n      var level_flags = -1;\n\n      if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n        level_flags = 0;\n      } else if (s.level < 6) {\n        level_flags = 1;\n      } else if (s.level === 6) {\n        level_flags = 2;\n      } else {\n        level_flags = 3;\n      }\n      header |= (level_flags << 6);\n      if (s.strstart !== 0) { header |= PRESET_DICT; }\n      header += 31 - (header % 31);\n\n      s.status = BUSY_STATE;\n      putShortMSB(s, header);\n\n      /* Save the adler32 of the preset dictionary: */\n      if (s.strstart !== 0) {\n        putShortMSB(s, strm.adler >>> 16);\n        putShortMSB(s, strm.adler & 0xffff);\n      }\n      strm.adler = 1; // adler32(0L, Z_NULL, 0);\n    }\n  }\n\n//#ifdef GZIP\n  if (s.status === EXTRA_STATE) {\n    if (s.gzhead.extra/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n\n      while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            break;\n          }\n        }\n        put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n        s.gzindex++;\n      }\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (s.gzindex === s.gzhead.extra.length) {\n        s.gzindex = 0;\n        s.status = NAME_STATE;\n      }\n    }\n    else {\n      s.status = NAME_STATE;\n    }\n  }\n  if (s.status === NAME_STATE) {\n    if (s.gzhead.name/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.name.length) {\n          val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.gzindex = 0;\n        s.status = COMMENT_STATE;\n      }\n    }\n    else {\n      s.status = COMMENT_STATE;\n    }\n  }\n  if (s.status === COMMENT_STATE) {\n    if (s.gzhead.comment/* != Z_NULL*/) {\n      beg = s.pending;  /* start of bytes to update crc */\n      //int val;\n\n      do {\n        if (s.pending === s.pending_buf_size) {\n          if (s.gzhead.hcrc && s.pending > beg) {\n            strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n          }\n          flush_pending(strm);\n          beg = s.pending;\n          if (s.pending === s.pending_buf_size) {\n            val = 1;\n            break;\n          }\n        }\n        // JS specific: little magic to add zero terminator to end of string\n        if (s.gzindex < s.gzhead.comment.length) {\n          val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n        } else {\n          val = 0;\n        }\n        put_byte(s, val);\n      } while (val !== 0);\n\n      if (s.gzhead.hcrc && s.pending > beg) {\n        strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n      }\n      if (val === 0) {\n        s.status = HCRC_STATE;\n      }\n    }\n    else {\n      s.status = HCRC_STATE;\n    }\n  }\n  if (s.status === HCRC_STATE) {\n    if (s.gzhead.hcrc) {\n      if (s.pending + 2 > s.pending_buf_size) {\n        flush_pending(strm);\n      }\n      if (s.pending + 2 <= s.pending_buf_size) {\n        put_byte(s, strm.adler & 0xff);\n        put_byte(s, (strm.adler >> 8) & 0xff);\n        strm.adler = 0; //crc32(0L, Z_NULL, 0);\n        s.status = BUSY_STATE;\n      }\n    }\n    else {\n      s.status = BUSY_STATE;\n    }\n  }\n//#endif\n\n  /* Flush as much pending output as possible */\n  if (s.pending !== 0) {\n    flush_pending(strm);\n    if (strm.avail_out === 0) {\n      /* Since avail_out is 0, deflate will be called again with\n       * more output space, but possibly with both pending and\n       * avail_in equal to zero. There won't be anything to do,\n       * but this is not an error situation so make sure we\n       * return OK instead of BUF_ERROR at next call of deflate:\n       */\n      s.last_flush = -1;\n      return Z_OK;\n    }\n\n    /* Make sure there is something to do and avoid duplicate consecutive\n     * flushes. For repeated and useless calls with Z_FINISH, we keep\n     * returning Z_STREAM_END instead of Z_BUF_ERROR.\n     */\n  } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n    flush !== Z_FINISH) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* User must not provide more input after the first FINISH: */\n  if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n    return err(strm, Z_BUF_ERROR);\n  }\n\n  /* Start a new block or continue the current one.\n   */\n  if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n    (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n    var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n      (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n        configuration_table[s.level].func(s, flush));\n\n    if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n      s.status = FINISH_STATE;\n    }\n    if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n      if (strm.avail_out === 0) {\n        s.last_flush = -1;\n        /* avoid BUF_ERROR next call, see above */\n      }\n      return Z_OK;\n      /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n       * of deflate should use the same flush parameter to make sure\n       * that the flush is complete. So we don't have to output an\n       * empty block here, this will be done at next call. This also\n       * ensures that for a very small output buffer, we emit at most\n       * one empty block.\n       */\n    }\n    if (bstate === BS_BLOCK_DONE) {\n      if (flush === Z_PARTIAL_FLUSH) {\n        trees._tr_align(s);\n      }\n      else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n        trees._tr_stored_block(s, 0, 0, false);\n        /* For a full flush, this empty block will be recognized\n         * as a special marker by inflate_sync().\n         */\n        if (flush === Z_FULL_FLUSH) {\n          /*** CLEAR_HASH(s); ***/             /* forget history */\n          zero(s.head); // Fill with NIL (= 0);\n\n          if (s.lookahead === 0) {\n            s.strstart = 0;\n            s.block_start = 0;\n            s.insert = 0;\n          }\n        }\n      }\n      flush_pending(strm);\n      if (strm.avail_out === 0) {\n        s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n        return Z_OK;\n      }\n    }\n  }\n  //Assert(strm->avail_out > 0, \"bug2\");\n  //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n  if (flush !== Z_FINISH) { return Z_OK; }\n  if (s.wrap <= 0) { return Z_STREAM_END; }\n\n  /* Write the trailer */\n  if (s.wrap === 2) {\n    put_byte(s, strm.adler & 0xff);\n    put_byte(s, (strm.adler >> 8) & 0xff);\n    put_byte(s, (strm.adler >> 16) & 0xff);\n    put_byte(s, (strm.adler >> 24) & 0xff);\n    put_byte(s, strm.total_in & 0xff);\n    put_byte(s, (strm.total_in >> 8) & 0xff);\n    put_byte(s, (strm.total_in >> 16) & 0xff);\n    put_byte(s, (strm.total_in >> 24) & 0xff);\n  }\n  else\n  {\n    putShortMSB(s, strm.adler >>> 16);\n    putShortMSB(s, strm.adler & 0xffff);\n  }\n\n  flush_pending(strm);\n  /* If avail_out is zero, the application will call deflate again\n   * to flush the rest.\n   */\n  if (s.wrap > 0) { s.wrap = -s.wrap; }\n  /* write the trailer only once! */\n  return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n  var status;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  status = strm.state.status;\n  if (status !== INIT_STATE &&\n    status !== EXTRA_STATE &&\n    status !== NAME_STATE &&\n    status !== COMMENT_STATE &&\n    status !== HCRC_STATE &&\n    status !== BUSY_STATE &&\n    status !== FINISH_STATE\n  ) {\n    return err(strm, Z_STREAM_ERROR);\n  }\n\n  strm.state = null;\n\n  return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n  var dictLength = dictionary.length;\n\n  var s;\n  var str, n;\n  var wrap;\n  var avail;\n  var next;\n  var input;\n  var tmpDict;\n\n  if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  s = strm.state;\n  wrap = s.wrap;\n\n  if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n    return Z_STREAM_ERROR;\n  }\n\n  /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n  if (wrap === 1) {\n    /* adler32(strm->adler, dictionary, dictLength); */\n    strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n  }\n\n  s.wrap = 0;   /* avoid computing Adler-32 in read_buf */\n\n  /* if dictionary would fill window, just replace the history */\n  if (dictLength >= s.w_size) {\n    if (wrap === 0) {            /* already empty otherwise */\n      /*** CLEAR_HASH(s); ***/\n      zero(s.head); // Fill with NIL (= 0);\n      s.strstart = 0;\n      s.block_start = 0;\n      s.insert = 0;\n    }\n    /* use the tail */\n    // dictionary = dictionary.slice(dictLength - s.w_size);\n    tmpDict = new utils.Buf8(s.w_size);\n    utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n    dictionary = tmpDict;\n    dictLength = s.w_size;\n  }\n  /* insert dictionary into window and hash */\n  avail = strm.avail_in;\n  next = strm.next_in;\n  input = strm.input;\n  strm.avail_in = dictLength;\n  strm.next_in = 0;\n  strm.input = dictionary;\n  fill_window(s);\n  while (s.lookahead >= MIN_MATCH) {\n    str = s.strstart;\n    n = s.lookahead - (MIN_MATCH - 1);\n    do {\n      /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n      s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n      s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n      s.head[s.ins_h] = str;\n      str++;\n    } while (--n);\n    s.strstart = str;\n    s.lookahead = MIN_MATCH - 1;\n    fill_window(s);\n  }\n  s.strstart += s.lookahead;\n  s.block_start = s.strstart;\n  s.insert = s.lookahead;\n  s.lookahead = 0;\n  s.match_length = s.prev_length = MIN_MATCH - 1;\n  s.match_available = 0;\n  strm.next_in = next;\n  strm.input = input;\n  strm.avail_in = avail;\n  s.wrap = wrap;\n  return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n  /* true if compressed data believed to be text */\n  this.text       = 0;\n  /* modification time */\n  this.time       = 0;\n  /* extra flags (not used when writing a gzip file) */\n  this.xflags     = 0;\n  /* operating system */\n  this.os         = 0;\n  /* pointer to extra field or Z_NULL if none */\n  this.extra      = null;\n  /* extra field length (valid if extra != Z_NULL) */\n  this.extra_len  = 0; // Actually, we don't need it in JS,\n                       // but leave for few code modifications\n\n  //\n  // Setup limits is not necessary because in js we should not preallocate memory\n  // for inflate use constant limit in 65536 bytes\n  //\n\n  /* space at extra (only when reading header) */\n  // this.extra_max  = 0;\n  /* pointer to zero-terminated file name or Z_NULL */\n  this.name       = '';\n  /* space at name (only when reading header) */\n  // this.name_max   = 0;\n  /* pointer to zero-terminated comment or Z_NULL */\n  this.comment    = '';\n  /* space at comment (only when reading header) */\n  // this.comm_max   = 0;\n  /* true if there was or will be a header crc */\n  this.hcrc       = 0;\n  /* true when done reading gzip header (not used when writing a gzip file) */\n  this.done       = false;\n}\n\nmodule.exports = GZheader;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30;       /* got a data error -- remain here until reset */\nvar TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\n\n/*\n   Decode literal, length, and distance codes and write out the resulting\n   literal and match bytes until either not enough input or output is\n   available, an end-of-block is encountered, or a data error is encountered.\n   When large enough input and output buffers are supplied to inflate(), for\n   example, a 16K input buffer and a 64K output buffer, more than 95% of the\n   inflate execution time is spent in this routine.\n\n   Entry assumptions:\n\n        state.mode === LEN\n        strm.avail_in >= 6\n        strm.avail_out >= 258\n        start >= strm.avail_out\n        state.bits < 8\n\n   On return, state.mode is one of:\n\n        LEN -- ran out of enough output space or enough available input\n        TYPE -- reached end of block code, inflate() to interpret next block\n        BAD -- error in block data\n\n   Notes:\n\n    - The maximum input bits used by a length/distance pair is 15 bits for the\n      length code, 5 bits for the length extra, 15 bits for the distance code,\n      and 13 bits for the distance extra.  This totals 48 bits, or six bytes.\n      Therefore if strm.avail_in >= 6, then there is enough input to avoid\n      checking for available input while decoding.\n\n    - The maximum bytes that a single length/distance pair can output is 258\n      bytes, which is the maximum length that can be coded.  inflate_fast()\n      requires strm.avail_out >= 258 for each loop to avoid checking for\n      output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n  var state;\n  var _in;                    /* local strm.input */\n  var last;                   /* have enough input while in < last */\n  var _out;                   /* local strm.output */\n  var beg;                    /* inflate()'s initial strm.output */\n  var end;                    /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n  var dmax;                   /* maximum distance from zlib header */\n//#endif\n  var wsize;                  /* window size or zero if not using window */\n  var whave;                  /* valid bytes in the window */\n  var wnext;                  /* window write index */\n  // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n  var s_window;               /* allocated sliding window, if wsize != 0 */\n  var hold;                   /* local strm.hold */\n  var bits;                   /* local strm.bits */\n  var lcode;                  /* local strm.lencode */\n  var dcode;                  /* local strm.distcode */\n  var lmask;                  /* mask for first level of length codes */\n  var dmask;                  /* mask for first level of distance codes */\n  var here;                   /* retrieved table entry */\n  var op;                     /* code bits, operation, extra bits, or */\n                              /*  window position, window bytes to copy */\n  var len;                    /* match length, unused bytes */\n  var dist;                   /* match distance */\n  var from;                   /* where to copy match from */\n  var from_source;\n\n\n  var input, output; // JS specific, because we have no pointers\n\n  /* copy state to local variables */\n  state = strm.state;\n  //here = state.here;\n  _in = strm.next_in;\n  input = strm.input;\n  last = _in + (strm.avail_in - 5);\n  _out = strm.next_out;\n  output = strm.output;\n  beg = _out - (start - strm.avail_out);\n  end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n  dmax = state.dmax;\n//#endif\n  wsize = state.wsize;\n  whave = state.whave;\n  wnext = state.wnext;\n  s_window = state.window;\n  hold = state.hold;\n  bits = state.bits;\n  lcode = state.lencode;\n  dcode = state.distcode;\n  lmask = (1 << state.lenbits) - 1;\n  dmask = (1 << state.distbits) - 1;\n\n\n  /* decode literals and length/distances until end-of-block or not enough\n     input data or output space */\n\n  top:\n  do {\n    if (bits < 15) {\n      hold += input[_in++] << bits;\n      bits += 8;\n      hold += input[_in++] << bits;\n      bits += 8;\n    }\n\n    here = lcode[hold & lmask];\n\n    dolen:\n    for (;;) { // Goto emulation\n      op = here >>> 24/*here.bits*/;\n      hold >>>= op;\n      bits -= op;\n      op = (here >>> 16) & 0xff/*here.op*/;\n      if (op === 0) {                          /* literal */\n        //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n        //        \"inflate:         literal '%c'\\n\" :\n        //        \"inflate:         literal 0x%02x\\n\", here.val));\n        output[_out++] = here & 0xffff/*here.val*/;\n      }\n      else if (op & 16) {                     /* length base */\n        len = here & 0xffff/*here.val*/;\n        op &= 15;                           /* number of extra bits */\n        if (op) {\n          if (bits < op) {\n            hold += input[_in++] << bits;\n            bits += 8;\n          }\n          len += hold & ((1 << op) - 1);\n          hold >>>= op;\n          bits -= op;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", len));\n        if (bits < 15) {\n          hold += input[_in++] << bits;\n          bits += 8;\n          hold += input[_in++] << bits;\n          bits += 8;\n        }\n        here = dcode[hold & dmask];\n\n        dodist:\n        for (;;) { // goto emulation\n          op = here >>> 24/*here.bits*/;\n          hold >>>= op;\n          bits -= op;\n          op = (here >>> 16) & 0xff/*here.op*/;\n\n          if (op & 16) {                      /* distance base */\n            dist = here & 0xffff/*here.val*/;\n            op &= 15;                       /* number of extra bits */\n            if (bits < op) {\n              hold += input[_in++] << bits;\n              bits += 8;\n              if (bits < op) {\n                hold += input[_in++] << bits;\n                bits += 8;\n              }\n            }\n            dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n            if (dist > dmax) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break top;\n            }\n//#endif\n            hold >>>= op;\n            bits -= op;\n            //Tracevv((stderr, \"inflate:         distance %u\\n\", dist));\n            op = _out - beg;                /* max distance in output */\n            if (dist > op) {                /* see if copy from window */\n              op = dist - op;               /* distance back in window */\n              if (op > whave) {\n                if (state.sane) {\n                  strm.msg = 'invalid distance too far back';\n                  state.mode = BAD;\n                  break top;\n                }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//                if (len <= op - whave) {\n//                  do {\n//                    output[_out++] = 0;\n//                  } while (--len);\n//                  continue top;\n//                }\n//                len -= op - whave;\n//                do {\n//                  output[_out++] = 0;\n//                } while (--op > whave);\n//                if (op === 0) {\n//                  from = _out - dist;\n//                  do {\n//                    output[_out++] = output[from++];\n//                  } while (--len);\n//                  continue top;\n//                }\n//#endif\n              }\n              from = 0; // window index\n              from_source = s_window;\n              if (wnext === 0) {           /* very common case */\n                from += wsize - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              else if (wnext < op) {      /* wrap around window */\n                from += wsize + wnext - op;\n                op -= wnext;\n                if (op < len) {         /* some from end of window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = 0;\n                  if (wnext < len) {  /* some from start of window */\n                    op = wnext;\n                    len -= op;\n                    do {\n                      output[_out++] = s_window[from++];\n                    } while (--op);\n                    from = _out - dist;      /* rest from output */\n                    from_source = output;\n                  }\n                }\n              }\n              else {                      /* contiguous in window */\n                from += wnext - op;\n                if (op < len) {         /* some from window */\n                  len -= op;\n                  do {\n                    output[_out++] = s_window[from++];\n                  } while (--op);\n                  from = _out - dist;  /* rest from output */\n                  from_source = output;\n                }\n              }\n              while (len > 2) {\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                output[_out++] = from_source[from++];\n                len -= 3;\n              }\n              if (len) {\n                output[_out++] = from_source[from++];\n                if (len > 1) {\n                  output[_out++] = from_source[from++];\n                }\n              }\n            }\n            else {\n              from = _out - dist;          /* copy direct from output */\n              do {                        /* minimum length is three */\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                output[_out++] = output[from++];\n                len -= 3;\n              } while (len > 2);\n              if (len) {\n                output[_out++] = output[from++];\n                if (len > 1) {\n                  output[_out++] = output[from++];\n                }\n              }\n            }\n          }\n          else if ((op & 64) === 0) {          /* 2nd level distance code */\n            here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n            continue dodist;\n          }\n          else {\n            strm.msg = 'invalid distance code';\n            state.mode = BAD;\n            break top;\n          }\n\n          break; // need to emulate goto via \"continue\"\n        }\n      }\n      else if ((op & 64) === 0) {              /* 2nd level length code */\n        here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n        continue dolen;\n      }\n      else if (op & 32) {                     /* end-of-block */\n        //Tracevv((stderr, \"inflate:         end of block\\n\"));\n        state.mode = TYPE;\n        break top;\n      }\n      else {\n        strm.msg = 'invalid literal/length code';\n        state.mode = BAD;\n        break top;\n      }\n\n      break; // need to emulate goto via \"continue\"\n    }\n  } while (_in < last && _out < end);\n\n  /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n  len = bits >> 3;\n  _in -= len;\n  bits -= len << 3;\n  hold &= (1 << bits) - 1;\n\n  /* update state and return */\n  strm.next_in = _in;\n  strm.next_out = _out;\n  strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n  strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n  state.hold = hold;\n  state.bits = bits;\n  return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils         = require('../utils/common');\nvar adler32       = require('./adler32');\nvar crc32         = require('./crc32');\nvar inflate_fast  = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH      = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH    = 2;\n//var Z_FULL_FLUSH    = 3;\nvar Z_FINISH        = 4;\nvar Z_BLOCK         = 5;\nvar Z_TREES         = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK            = 0;\nvar Z_STREAM_END    = 1;\nvar Z_NEED_DICT     = 2;\n//var Z_ERRNO         = -1;\nvar Z_STREAM_ERROR  = -2;\nvar Z_DATA_ERROR    = -3;\nvar Z_MEM_ERROR     = -4;\nvar Z_BUF_ERROR     = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED  = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar    HEAD = 1;       /* i: waiting for magic header */\nvar    FLAGS = 2;      /* i: waiting for method and flags (gzip) */\nvar    TIME = 3;       /* i: waiting for modification time (gzip) */\nvar    OS = 4;         /* i: waiting for extra flags and operating system (gzip) */\nvar    EXLEN = 5;      /* i: waiting for extra length (gzip) */\nvar    EXTRA = 6;      /* i: waiting for extra bytes (gzip) */\nvar    NAME = 7;       /* i: waiting for end of file name (gzip) */\nvar    COMMENT = 8;    /* i: waiting for end of comment (gzip) */\nvar    HCRC = 9;       /* i: waiting for header crc (gzip) */\nvar    DICTID = 10;    /* i: waiting for dictionary check value */\nvar    DICT = 11;      /* waiting for inflateSetDictionary() call */\nvar        TYPE = 12;      /* i: waiting for type bits, including last-flag bit */\nvar        TYPEDO = 13;    /* i: same, but skip check to exit inflate on new block */\nvar        STORED = 14;    /* i: waiting for stored size (length and complement) */\nvar        COPY_ = 15;     /* i/o: same as COPY below, but only first time in */\nvar        COPY = 16;      /* i/o: waiting for input or output to copy stored block */\nvar        TABLE = 17;     /* i: waiting for dynamic block table lengths */\nvar        LENLENS = 18;   /* i: waiting for code length code lengths */\nvar        CODELENS = 19;  /* i: waiting for length/lit and distance code lengths */\nvar            LEN_ = 20;      /* i: same as LEN below, but only first time in */\nvar            LEN = 21;       /* i: waiting for length/lit/eob code */\nvar            LENEXT = 22;    /* i: waiting for length extra bits */\nvar            DIST = 23;      /* i: waiting for distance code */\nvar            DISTEXT = 24;   /* i: waiting for distance extra bits */\nvar            MATCH = 25;     /* o: waiting for output space to copy string */\nvar            LIT = 26;       /* o: waiting for output space to write literal */\nvar    CHECK = 27;     /* i: waiting for 32-bit check value */\nvar    LENGTH = 28;    /* i: waiting for 32-bit length (gzip) */\nvar    DONE = 29;      /* finished check, done -- remain here until reset */\nvar    BAD = 30;       /* got a data error -- remain here until reset */\nvar    MEM = 31;       /* got an inflate() memory error -- remain here until reset */\nvar    SYNC = 32;      /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH =  (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n  return  (((q >>> 24) & 0xff) +\n          ((q >>> 8) & 0xff00) +\n          ((q & 0xff00) << 8) +\n          ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n  this.mode = 0;             /* current inflate mode */\n  this.last = false;          /* true if processing last block */\n  this.wrap = 0;              /* bit 0 true for zlib, bit 1 true for gzip */\n  this.havedict = false;      /* true if dictionary provided */\n  this.flags = 0;             /* gzip header method and flags (0 if zlib) */\n  this.dmax = 0;              /* zlib header max distance (INFLATE_STRICT) */\n  this.check = 0;             /* protected copy of check value */\n  this.total = 0;             /* protected copy of output count */\n  // TODO: may be {}\n  this.head = null;           /* where to save gzip header information */\n\n  /* sliding window */\n  this.wbits = 0;             /* log base 2 of requested window size */\n  this.wsize = 0;             /* window size or zero if not using window */\n  this.whave = 0;             /* valid bytes in the window */\n  this.wnext = 0;             /* window write index */\n  this.window = null;         /* allocated sliding window, if needed */\n\n  /* bit accumulator */\n  this.hold = 0;              /* input bit accumulator */\n  this.bits = 0;              /* number of bits in \"in\" */\n\n  /* for string and stored block copying */\n  this.length = 0;            /* literal or length of data to copy */\n  this.offset = 0;            /* distance back to copy string from */\n\n  /* for table and code decoding */\n  this.extra = 0;             /* extra bits needed */\n\n  /* fixed and dynamic code tables */\n  this.lencode = null;          /* starting table for length/literal codes */\n  this.distcode = null;         /* starting table for distance codes */\n  this.lenbits = 0;           /* index bits for lencode */\n  this.distbits = 0;          /* index bits for distcode */\n\n  /* dynamic table building */\n  this.ncode = 0;             /* number of code length code lengths */\n  this.nlen = 0;              /* number of length code lengths */\n  this.ndist = 0;             /* number of distance code lengths */\n  this.have = 0;              /* number of code lengths in lens[] */\n  this.next = null;              /* next available space in codes[] */\n\n  this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n  this.work = new utils.Buf16(288); /* work area for code table building */\n\n  /*\n   because we don't have pointers in js, we use lencode and distcode directly\n   as buffers so we don't need codes\n  */\n  //this.codes = new utils.Buf32(ENOUGH);       /* space for code tables */\n  this.lendyn = null;              /* dynamic table for length/literal codes (JS specific) */\n  this.distdyn = null;             /* dynamic table for distance codes (JS specific) */\n  this.sane = 0;                   /* if false, allow invalid distance too far */\n  this.back = 0;                   /* bits back of last unprocessed length/lit */\n  this.was = 0;                    /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  strm.total_in = strm.total_out = state.total = 0;\n  strm.msg = ''; /*Z_NULL*/\n  if (state.wrap) {       /* to support ill-conceived Java test suite */\n    strm.adler = state.wrap & 1;\n  }\n  state.mode = HEAD;\n  state.last = 0;\n  state.havedict = 0;\n  state.dmax = 32768;\n  state.head = null/*Z_NULL*/;\n  state.hold = 0;\n  state.bits = 0;\n  //state.lencode = state.distcode = state.next = state.codes;\n  state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n  state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n  state.sane = 1;\n  state.back = -1;\n  //Tracev((stderr, \"inflate: reset\\n\"));\n  return Z_OK;\n}\n\nfunction inflateReset(strm) {\n  var state;\n\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  state.wsize = 0;\n  state.whave = 0;\n  state.wnext = 0;\n  return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n  var wrap;\n  var state;\n\n  /* get the state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n\n  /* extract wrap request from windowBits parameter */\n  if (windowBits < 0) {\n    wrap = 0;\n    windowBits = -windowBits;\n  }\n  else {\n    wrap = (windowBits >> 4) + 1;\n    if (windowBits < 48) {\n      windowBits &= 15;\n    }\n  }\n\n  /* set number of window bits, free window if different */\n  if (windowBits && (windowBits < 8 || windowBits > 15)) {\n    return Z_STREAM_ERROR;\n  }\n  if (state.window !== null && state.wbits !== windowBits) {\n    state.window = null;\n  }\n\n  /* update state and reset the rest of it */\n  state.wrap = wrap;\n  state.wbits = windowBits;\n  return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n  var ret;\n  var state;\n\n  if (!strm) { return Z_STREAM_ERROR; }\n  //strm.msg = Z_NULL;                 /* in case we return an error */\n\n  state = new InflateState();\n\n  //if (state === Z_NULL) return Z_MEM_ERROR;\n  //Tracev((stderr, \"inflate: allocated\\n\"));\n  strm.state = state;\n  state.window = null/*Z_NULL*/;\n  ret = inflateReset2(strm, windowBits);\n  if (ret !== Z_OK) {\n    strm.state = null/*Z_NULL*/;\n  }\n  return ret;\n}\n\nfunction inflateInit(strm) {\n  return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding.  Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter.  This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time.  However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n  /* build fixed huffman tables if first call (may not be thread safe) */\n  if (virgin) {\n    var sym;\n\n    lenfix = new utils.Buf32(512);\n    distfix = new utils.Buf32(32);\n\n    /* literal/length table */\n    sym = 0;\n    while (sym < 144) { state.lens[sym++] = 8; }\n    while (sym < 256) { state.lens[sym++] = 9; }\n    while (sym < 280) { state.lens[sym++] = 7; }\n    while (sym < 288) { state.lens[sym++] = 8; }\n\n    inflate_table(LENS,  state.lens, 0, 288, lenfix,   0, state.work, { bits: 9 });\n\n    /* distance table */\n    sym = 0;\n    while (sym < 32) { state.lens[sym++] = 5; }\n\n    inflate_table(DISTS, state.lens, 0, 32,   distfix, 0, state.work, { bits: 5 });\n\n    /* do this just once */\n    virgin = false;\n  }\n\n  state.lencode = lenfix;\n  state.lenbits = 9;\n  state.distcode = distfix;\n  state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning.  If window does not exist yet, create it.  This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n  var dist;\n  var state = strm.state;\n\n  /* if it hasn't been done already, allocate space for the window */\n  if (state.window === null) {\n    state.wsize = 1 << state.wbits;\n    state.wnext = 0;\n    state.whave = 0;\n\n    state.window = new utils.Buf8(state.wsize);\n  }\n\n  /* copy state->wsize or less output bytes into the circular window */\n  if (copy >= state.wsize) {\n    utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n    state.wnext = 0;\n    state.whave = state.wsize;\n  }\n  else {\n    dist = state.wsize - state.wnext;\n    if (dist > copy) {\n      dist = copy;\n    }\n    //zmemcpy(state->window + state->wnext, end - copy, dist);\n    utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n    copy -= dist;\n    if (copy) {\n      //zmemcpy(state->window, end - copy, copy);\n      utils.arraySet(state.window, src, end - copy, copy, 0);\n      state.wnext = copy;\n      state.whave = state.wsize;\n    }\n    else {\n      state.wnext += dist;\n      if (state.wnext === state.wsize) { state.wnext = 0; }\n      if (state.whave < state.wsize) { state.whave += dist; }\n    }\n  }\n  return 0;\n}\n\nfunction inflate(strm, flush) {\n  var state;\n  var input, output;          // input/output buffers\n  var next;                   /* next input INDEX */\n  var put;                    /* next output INDEX */\n  var have, left;             /* available input and output */\n  var hold;                   /* bit buffer */\n  var bits;                   /* bits in bit buffer */\n  var _in, _out;              /* save starting available input and output */\n  var copy;                   /* number of stored or match bytes to copy */\n  var from;                   /* where to copy match bytes from */\n  var from_source;\n  var here = 0;               /* current decoding table entry */\n  var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n  //var last;                   /* parent table entry */\n  var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n  var len;                    /* length to copy for repeats, bits to drop */\n  var ret;                    /* return code */\n  var hbuf = new utils.Buf8(4);    /* buffer for gzip header crc calculation */\n  var opts;\n\n  var n; // temporary var for NEED_BITS\n\n  var order = /* permutation of code lengths */\n    [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n  if (!strm || !strm.state || !strm.output ||\n      (!strm.input && strm.avail_in !== 0)) {\n    return Z_STREAM_ERROR;\n  }\n\n  state = strm.state;\n  if (state.mode === TYPE) { state.mode = TYPEDO; }    /* skip check */\n\n\n  //--- LOAD() ---\n  put = strm.next_out;\n  output = strm.output;\n  left = strm.avail_out;\n  next = strm.next_in;\n  input = strm.input;\n  have = strm.avail_in;\n  hold = state.hold;\n  bits = state.bits;\n  //---\n\n  _in = have;\n  _out = left;\n  ret = Z_OK;\n\n  inf_leave: // goto emulation\n  for (;;) {\n    switch (state.mode) {\n      case HEAD:\n        if (state.wrap === 0) {\n          state.mode = TYPEDO;\n          break;\n        }\n        //=== NEEDBITS(16);\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((state.wrap & 2) && hold === 0x8b1f) {  /* gzip header */\n          state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          state.mode = FLAGS;\n          break;\n        }\n        state.flags = 0;           /* expect zlib header */\n        if (state.head) {\n          state.head.done = false;\n        }\n        if (!(state.wrap & 1) ||   /* check if zlib header allowed */\n          (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n          strm.msg = 'incorrect header check';\n          state.mode = BAD;\n          break;\n        }\n        if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n        len = (hold & 0x0f)/*BITS(4)*/ + 8;\n        if (state.wbits === 0) {\n          state.wbits = len;\n        }\n        else if (len > state.wbits) {\n          strm.msg = 'invalid window size';\n          state.mode = BAD;\n          break;\n        }\n        state.dmax = 1 << len;\n        //Tracev((stderr, \"inflate:   zlib header ok\\n\"));\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = hold & 0x200 ? DICTID : TYPE;\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        break;\n      case FLAGS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.flags = hold;\n        if ((state.flags & 0xff) !== Z_DEFLATED) {\n          strm.msg = 'unknown compression method';\n          state.mode = BAD;\n          break;\n        }\n        if (state.flags & 0xe000) {\n          strm.msg = 'unknown header flags set';\n          state.mode = BAD;\n          break;\n        }\n        if (state.head) {\n          state.head.text = ((hold >> 8) & 1);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = TIME;\n        /* falls through */\n      case TIME:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.time = hold;\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC4(state.check, hold)\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          hbuf[2] = (hold >>> 16) & 0xff;\n          hbuf[3] = (hold >>> 24) & 0xff;\n          state.check = crc32(state.check, hbuf, 4, 0);\n          //===\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = OS;\n        /* falls through */\n      case OS:\n        //=== NEEDBITS(16); */\n        while (bits < 16) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if (state.head) {\n          state.head.xflags = (hold & 0xff);\n          state.head.os = (hold >> 8);\n        }\n        if (state.flags & 0x0200) {\n          //=== CRC2(state.check, hold);\n          hbuf[0] = hold & 0xff;\n          hbuf[1] = (hold >>> 8) & 0xff;\n          state.check = crc32(state.check, hbuf, 2, 0);\n          //===//\n        }\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = EXLEN;\n        /* falls through */\n      case EXLEN:\n        if (state.flags & 0x0400) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length = hold;\n          if (state.head) {\n            state.head.extra_len = hold;\n          }\n          if (state.flags & 0x0200) {\n            //=== CRC2(state.check, hold);\n            hbuf[0] = hold & 0xff;\n            hbuf[1] = (hold >>> 8) & 0xff;\n            state.check = crc32(state.check, hbuf, 2, 0);\n            //===//\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        else if (state.head) {\n          state.head.extra = null/*Z_NULL*/;\n        }\n        state.mode = EXTRA;\n        /* falls through */\n      case EXTRA:\n        if (state.flags & 0x0400) {\n          copy = state.length;\n          if (copy > have) { copy = have; }\n          if (copy) {\n            if (state.head) {\n              len = state.head.extra_len - state.length;\n              if (!state.head.extra) {\n                // Use untyped array for more convenient processing later\n                state.head.extra = new Array(state.head.extra_len);\n              }\n              utils.arraySet(\n                state.head.extra,\n                input,\n                next,\n                // extra field is limited to 65536 bytes\n                // - no need for additional size check\n                copy,\n                /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n                len\n              );\n              //zmemcpy(state.head.extra + len, next,\n              //        len + copy > state.head.extra_max ?\n              //        state.head.extra_max - len : copy);\n            }\n            if (state.flags & 0x0200) {\n              state.check = crc32(state.check, input, copy, next);\n            }\n            have -= copy;\n            next += copy;\n            state.length -= copy;\n          }\n          if (state.length) { break inf_leave; }\n        }\n        state.length = 0;\n        state.mode = NAME;\n        /* falls through */\n      case NAME:\n        if (state.flags & 0x0800) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            // TODO: 2 or 1 bytes?\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.name_max*/)) {\n              state.head.name += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n\n          if (state.flags & 0x0200) {\n            state.check = crc32(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.name = null;\n        }\n        state.length = 0;\n        state.mode = COMMENT;\n        /* falls through */\n      case COMMENT:\n        if (state.flags & 0x1000) {\n          if (have === 0) { break inf_leave; }\n          copy = 0;\n          do {\n            len = input[next + copy++];\n            /* use constant limit because in js we should not preallocate memory */\n            if (state.head && len &&\n                (state.length < 65536 /*state.head.comm_max*/)) {\n              state.head.comment += String.fromCharCode(len);\n            }\n          } while (len && copy < have);\n          if (state.flags & 0x0200) {\n            state.check = crc32(state.check, input, copy, next);\n          }\n          have -= copy;\n          next += copy;\n          if (len) { break inf_leave; }\n        }\n        else if (state.head) {\n          state.head.comment = null;\n        }\n        state.mode = HCRC;\n        /* falls through */\n      case HCRC:\n        if (state.flags & 0x0200) {\n          //=== NEEDBITS(16); */\n          while (bits < 16) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.check & 0xffff)) {\n            strm.msg = 'header crc mismatch';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n        }\n        if (state.head) {\n          state.head.hcrc = ((state.flags >> 9) & 1);\n          state.head.done = true;\n        }\n        strm.adler = state.check = 0;\n        state.mode = TYPE;\n        break;\n      case DICTID:\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        strm.adler = state.check = zswap32(hold);\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = DICT;\n        /* falls through */\n      case DICT:\n        if (state.havedict === 0) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          return Z_NEED_DICT;\n        }\n        strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n        state.mode = TYPE;\n        /* falls through */\n      case TYPE:\n        if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case TYPEDO:\n        if (state.last) {\n          //--- BYTEBITS() ---//\n          hold >>>= bits & 7;\n          bits -= bits & 7;\n          //---//\n          state.mode = CHECK;\n          break;\n        }\n        //=== NEEDBITS(3); */\n        while (bits < 3) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.last = (hold & 0x01)/*BITS(1)*/;\n        //--- DROPBITS(1) ---//\n        hold >>>= 1;\n        bits -= 1;\n        //---//\n\n        switch ((hold & 0x03)/*BITS(2)*/) {\n          case 0:                             /* stored block */\n            //Tracev((stderr, \"inflate:     stored block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = STORED;\n            break;\n          case 1:                             /* fixed block */\n            fixedtables(state);\n            //Tracev((stderr, \"inflate:     fixed codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = LEN_;             /* decode codes */\n            if (flush === Z_TREES) {\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n              break inf_leave;\n            }\n            break;\n          case 2:                             /* dynamic block */\n            //Tracev((stderr, \"inflate:     dynamic codes block%s\\n\",\n            //        state.last ? \" (last)\" : \"\"));\n            state.mode = TABLE;\n            break;\n          case 3:\n            strm.msg = 'invalid block type';\n            state.mode = BAD;\n        }\n        //--- DROPBITS(2) ---//\n        hold >>>= 2;\n        bits -= 2;\n        //---//\n        break;\n      case STORED:\n        //--- BYTEBITS() ---// /* go to byte boundary */\n        hold >>>= bits & 7;\n        bits -= bits & 7;\n        //---//\n        //=== NEEDBITS(32); */\n        while (bits < 32) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n          strm.msg = 'invalid stored block lengths';\n          state.mode = BAD;\n          break;\n        }\n        state.length = hold & 0xffff;\n        //Tracev((stderr, \"inflate:       stored length %u\\n\",\n        //        state.length));\n        //=== INITBITS();\n        hold = 0;\n        bits = 0;\n        //===//\n        state.mode = COPY_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case COPY_:\n        state.mode = COPY;\n        /* falls through */\n      case COPY:\n        copy = state.length;\n        if (copy) {\n          if (copy > have) { copy = have; }\n          if (copy > left) { copy = left; }\n          if (copy === 0) { break inf_leave; }\n          //--- zmemcpy(put, next, copy); ---\n          utils.arraySet(output, input, next, copy, put);\n          //---//\n          have -= copy;\n          next += copy;\n          left -= copy;\n          put += copy;\n          state.length -= copy;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       stored end\\n\"));\n        state.mode = TYPE;\n        break;\n      case TABLE:\n        //=== NEEDBITS(14); */\n        while (bits < 14) {\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n        }\n        //===//\n        state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n        //--- DROPBITS(5) ---//\n        hold >>>= 5;\n        bits -= 5;\n        //---//\n        state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n        //--- DROPBITS(4) ---//\n        hold >>>= 4;\n        bits -= 4;\n        //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n        if (state.nlen > 286 || state.ndist > 30) {\n          strm.msg = 'too many length or distance symbols';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracev((stderr, \"inflate:       table sizes ok\\n\"));\n        state.have = 0;\n        state.mode = LENLENS;\n        /* falls through */\n      case LENLENS:\n        while (state.have < state.ncode) {\n          //=== NEEDBITS(3);\n          while (bits < 3) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n          //--- DROPBITS(3) ---//\n          hold >>>= 3;\n          bits -= 3;\n          //---//\n        }\n        while (state.have < 19) {\n          state.lens[order[state.have++]] = 0;\n        }\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        //state.next = state.codes;\n        //state.lencode = state.next;\n        // Switch to use dynamic table\n        state.lencode = state.lendyn;\n        state.lenbits = 7;\n\n        opts = { bits: state.lenbits };\n        ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n        state.lenbits = opts.bits;\n\n        if (ret) {\n          strm.msg = 'invalid code lengths set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, \"inflate:       code lengths ok\\n\"));\n        state.have = 0;\n        state.mode = CODELENS;\n        /* falls through */\n      case CODELENS:\n        while (state.have < state.nlen + state.ndist) {\n          for (;;) {\n            here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          if (here_val < 16) {\n            //--- DROPBITS(here.bits) ---//\n            hold >>>= here_bits;\n            bits -= here_bits;\n            //---//\n            state.lens[state.have++] = here_val;\n          }\n          else {\n            if (here_val === 16) {\n              //=== NEEDBITS(here.bits + 2);\n              n = here_bits + 2;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              if (state.have === 0) {\n                strm.msg = 'invalid bit length repeat';\n                state.mode = BAD;\n                break;\n              }\n              len = state.lens[state.have - 1];\n              copy = 3 + (hold & 0x03);//BITS(2);\n              //--- DROPBITS(2) ---//\n              hold >>>= 2;\n              bits -= 2;\n              //---//\n            }\n            else if (here_val === 17) {\n              //=== NEEDBITS(here.bits + 3);\n              n = here_bits + 3;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 3 + (hold & 0x07);//BITS(3);\n              //--- DROPBITS(3) ---//\n              hold >>>= 3;\n              bits -= 3;\n              //---//\n            }\n            else {\n              //=== NEEDBITS(here.bits + 7);\n              n = here_bits + 7;\n              while (bits < n) {\n                if (have === 0) { break inf_leave; }\n                have--;\n                hold += input[next++] << bits;\n                bits += 8;\n              }\n              //===//\n              //--- DROPBITS(here.bits) ---//\n              hold >>>= here_bits;\n              bits -= here_bits;\n              //---//\n              len = 0;\n              copy = 11 + (hold & 0x7f);//BITS(7);\n              //--- DROPBITS(7) ---//\n              hold >>>= 7;\n              bits -= 7;\n              //---//\n            }\n            if (state.have + copy > state.nlen + state.ndist) {\n              strm.msg = 'invalid bit length repeat';\n              state.mode = BAD;\n              break;\n            }\n            while (copy--) {\n              state.lens[state.have++] = len;\n            }\n          }\n        }\n\n        /* handle error breaks in while */\n        if (state.mode === BAD) { break; }\n\n        /* check for end-of-block code (better have one) */\n        if (state.lens[256] === 0) {\n          strm.msg = 'invalid code -- missing end-of-block';\n          state.mode = BAD;\n          break;\n        }\n\n        /* build code tables -- note: do not change the lenbits or distbits\n           values here (9 and 6) without reading the comments in inftrees.h\n           concerning the ENOUGH constants, which depend on those values */\n        state.lenbits = 9;\n\n        opts = { bits: state.lenbits };\n        ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.lenbits = opts.bits;\n        // state.lencode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid literal/lengths set';\n          state.mode = BAD;\n          break;\n        }\n\n        state.distbits = 6;\n        //state.distcode.copy(state.codes);\n        // Switch to use dynamic table\n        state.distcode = state.distdyn;\n        opts = { bits: state.distbits };\n        ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n        // We have separate tables & no pointers. 2 commented lines below not needed.\n        // state.next_index = opts.table_index;\n        state.distbits = opts.bits;\n        // state.distcode = state.next;\n\n        if (ret) {\n          strm.msg = 'invalid distances set';\n          state.mode = BAD;\n          break;\n        }\n        //Tracev((stderr, 'inflate:       codes ok\\n'));\n        state.mode = LEN_;\n        if (flush === Z_TREES) { break inf_leave; }\n        /* falls through */\n      case LEN_:\n        state.mode = LEN;\n        /* falls through */\n      case LEN:\n        if (have >= 6 && left >= 258) {\n          //--- RESTORE() ---\n          strm.next_out = put;\n          strm.avail_out = left;\n          strm.next_in = next;\n          strm.avail_in = have;\n          state.hold = hold;\n          state.bits = bits;\n          //---\n          inflate_fast(strm, _out);\n          //--- LOAD() ---\n          put = strm.next_out;\n          output = strm.output;\n          left = strm.avail_out;\n          next = strm.next_in;\n          input = strm.input;\n          have = strm.avail_in;\n          hold = state.hold;\n          bits = state.bits;\n          //---\n\n          if (state.mode === TYPE) {\n            state.back = -1;\n          }\n          break;\n        }\n        state.back = 0;\n        for (;;) {\n          here = state.lencode[hold & ((1 << state.lenbits) - 1)];  /*BITS(state.lenbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if (here_bits <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if (here_op && (here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.lencode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        state.length = here_val;\n        if (here_op === 0) {\n          //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n          //        \"inflate:         literal '%c'\\n\" :\n          //        \"inflate:         literal 0x%02x\\n\", here.val));\n          state.mode = LIT;\n          break;\n        }\n        if (here_op & 32) {\n          //Tracevv((stderr, \"inflate:         end of block\\n\"));\n          state.back = -1;\n          state.mode = TYPE;\n          break;\n        }\n        if (here_op & 64) {\n          strm.msg = 'invalid literal/length code';\n          state.mode = BAD;\n          break;\n        }\n        state.extra = here_op & 15;\n        state.mode = LENEXT;\n        /* falls through */\n      case LENEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n        //Tracevv((stderr, \"inflate:         length %u\\n\", state.length));\n        state.was = state.length;\n        state.mode = DIST;\n        /* falls through */\n      case DIST:\n        for (;;) {\n          here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n          here_bits = here >>> 24;\n          here_op = (here >>> 16) & 0xff;\n          here_val = here & 0xffff;\n\n          if ((here_bits) <= bits) { break; }\n          //--- PULLBYTE() ---//\n          if (have === 0) { break inf_leave; }\n          have--;\n          hold += input[next++] << bits;\n          bits += 8;\n          //---//\n        }\n        if ((here_op & 0xf0) === 0) {\n          last_bits = here_bits;\n          last_op = here_op;\n          last_val = here_val;\n          for (;;) {\n            here = state.distcode[last_val +\n                    ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n            here_bits = here >>> 24;\n            here_op = (here >>> 16) & 0xff;\n            here_val = here & 0xffff;\n\n            if ((last_bits + here_bits) <= bits) { break; }\n            //--- PULLBYTE() ---//\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n            //---//\n          }\n          //--- DROPBITS(last.bits) ---//\n          hold >>>= last_bits;\n          bits -= last_bits;\n          //---//\n          state.back += last_bits;\n        }\n        //--- DROPBITS(here.bits) ---//\n        hold >>>= here_bits;\n        bits -= here_bits;\n        //---//\n        state.back += here_bits;\n        if (here_op & 64) {\n          strm.msg = 'invalid distance code';\n          state.mode = BAD;\n          break;\n        }\n        state.offset = here_val;\n        state.extra = (here_op) & 15;\n        state.mode = DISTEXT;\n        /* falls through */\n      case DISTEXT:\n        if (state.extra) {\n          //=== NEEDBITS(state.extra);\n          n = state.extra;\n          while (bits < n) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n          //--- DROPBITS(state.extra) ---//\n          hold >>>= state.extra;\n          bits -= state.extra;\n          //---//\n          state.back += state.extra;\n        }\n//#ifdef INFLATE_STRICT\n        if (state.offset > state.dmax) {\n          strm.msg = 'invalid distance too far back';\n          state.mode = BAD;\n          break;\n        }\n//#endif\n        //Tracevv((stderr, \"inflate:         distance %u\\n\", state.offset));\n        state.mode = MATCH;\n        /* falls through */\n      case MATCH:\n        if (left === 0) { break inf_leave; }\n        copy = _out - left;\n        if (state.offset > copy) {         /* copy from window */\n          copy = state.offset - copy;\n          if (copy > state.whave) {\n            if (state.sane) {\n              strm.msg = 'invalid distance too far back';\n              state.mode = BAD;\n              break;\n            }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n//          Trace((stderr, \"inflate.c too far\\n\"));\n//          copy -= state.whave;\n//          if (copy > state.length) { copy = state.length; }\n//          if (copy > left) { copy = left; }\n//          left -= copy;\n//          state.length -= copy;\n//          do {\n//            output[put++] = 0;\n//          } while (--copy);\n//          if (state.length === 0) { state.mode = LEN; }\n//          break;\n//#endif\n          }\n          if (copy > state.wnext) {\n            copy -= state.wnext;\n            from = state.wsize - copy;\n          }\n          else {\n            from = state.wnext - copy;\n          }\n          if (copy > state.length) { copy = state.length; }\n          from_source = state.window;\n        }\n        else {                              /* copy from output */\n          from_source = output;\n          from = put - state.offset;\n          copy = state.length;\n        }\n        if (copy > left) { copy = left; }\n        left -= copy;\n        state.length -= copy;\n        do {\n          output[put++] = from_source[from++];\n        } while (--copy);\n        if (state.length === 0) { state.mode = LEN; }\n        break;\n      case LIT:\n        if (left === 0) { break inf_leave; }\n        output[put++] = state.length;\n        left--;\n        state.mode = LEN;\n        break;\n      case CHECK:\n        if (state.wrap) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            // Use '|' instead of '+' to make sure that result is signed\n            hold |= input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          _out -= left;\n          strm.total_out += _out;\n          state.total += _out;\n          if (_out) {\n            strm.adler = state.check =\n                /*UPDATE(state.check, put - _out, _out);*/\n                (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n          }\n          _out = left;\n          // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n          if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n            strm.msg = 'incorrect data check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   check matches trailer\\n\"));\n        }\n        state.mode = LENGTH;\n        /* falls through */\n      case LENGTH:\n        if (state.wrap && state.flags) {\n          //=== NEEDBITS(32);\n          while (bits < 32) {\n            if (have === 0) { break inf_leave; }\n            have--;\n            hold += input[next++] << bits;\n            bits += 8;\n          }\n          //===//\n          if (hold !== (state.total & 0xffffffff)) {\n            strm.msg = 'incorrect length check';\n            state.mode = BAD;\n            break;\n          }\n          //=== INITBITS();\n          hold = 0;\n          bits = 0;\n          //===//\n          //Tracev((stderr, \"inflate:   length matches trailer\\n\"));\n        }\n        state.mode = DONE;\n        /* falls through */\n      case DONE:\n        ret = Z_STREAM_END;\n        break inf_leave;\n      case BAD:\n        ret = Z_DATA_ERROR;\n        break inf_leave;\n      case MEM:\n        return Z_MEM_ERROR;\n      case SYNC:\n        /* falls through */\n      default:\n        return Z_STREAM_ERROR;\n    }\n  }\n\n  // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n  /*\n     Return from inflate(), updating the total counts and the check value.\n     If there was no progress during the inflate() call, return a buffer\n     error.  Call updatewindow() to create and/or update the window state.\n     Note: a memory error from inflate() is non-recoverable.\n   */\n\n  //--- RESTORE() ---\n  strm.next_out = put;\n  strm.avail_out = left;\n  strm.next_in = next;\n  strm.avail_in = have;\n  state.hold = hold;\n  state.bits = bits;\n  //---\n\n  if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n                      (state.mode < CHECK || flush !== Z_FINISH))) {\n    if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n      state.mode = MEM;\n      return Z_MEM_ERROR;\n    }\n  }\n  _in -= strm.avail_in;\n  _out -= strm.avail_out;\n  strm.total_in += _in;\n  strm.total_out += _out;\n  state.total += _out;\n  if (state.wrap && _out) {\n    strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n      (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n  }\n  strm.data_type = state.bits + (state.last ? 64 : 0) +\n                    (state.mode === TYPE ? 128 : 0) +\n                    (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n  if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n    ret = Z_BUF_ERROR;\n  }\n  return ret;\n}\n\nfunction inflateEnd(strm) {\n\n  if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n    return Z_STREAM_ERROR;\n  }\n\n  var state = strm.state;\n  if (state.window) {\n    state.window = null;\n  }\n  strm.state = null;\n  return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n  var state;\n\n  /* check state */\n  if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n  state = strm.state;\n  if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n  /* save header structure */\n  state.head = head;\n  head.done = false;\n  return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n  var dictLength = dictionary.length;\n\n  var state;\n  var dictid;\n  var ret;\n\n  /* check state */\n  if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n  state = strm.state;\n\n  if (state.wrap !== 0 && state.mode !== DICT) {\n    return Z_STREAM_ERROR;\n  }\n\n  /* check for correct dictionary identifier */\n  if (state.mode === DICT) {\n    dictid = 1; /* adler32(0, null, 0)*/\n    /* dictid = adler32(dictid, dictionary, dictLength); */\n    dictid = adler32(dictid, dictionary, dictLength, 0);\n    if (dictid !== state.check) {\n      return Z_DATA_ERROR;\n    }\n  }\n  /* copy dictionary to window using updatewindow(), which will amend the\n   existing dictionary if appropriate */\n  ret = updatewindow(strm, dictionary, dictLength, dictLength);\n  if (ret) {\n    state.mode = MEM;\n    return Z_MEM_ERROR;\n  }\n  state.havedict = 1;\n  // Tracev((stderr, \"inflate:   dictionary set\\n\"));\n  return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n  3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n  35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n  16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n  19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n  1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n  257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n  8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n  16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n  23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n  28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n  var bits = opts.bits;\n      //here = opts.here; /* table entry for duplication */\n\n  var len = 0;               /* a code's length in bits */\n  var sym = 0;               /* index of code symbols */\n  var min = 0, max = 0;          /* minimum and maximum code lengths */\n  var root = 0;              /* number of index bits for root table */\n  var curr = 0;              /* number of index bits for current table */\n  var drop = 0;              /* code bits to drop for sub-table */\n  var left = 0;                   /* number of prefix codes available */\n  var used = 0;              /* code entries in table used */\n  var huff = 0;              /* Huffman code */\n  var incr;              /* for incrementing code, index */\n  var fill;              /* index for replicating entries */\n  var low;               /* low bits for current root entry */\n  var mask;              /* mask for low root bits */\n  var next;             /* next available space in table */\n  var base = null;     /* base value table to use */\n  var base_index = 0;\n//  var shoextra;    /* extra bits table to use */\n  var end;                    /* use base and extra for symbol > end */\n  var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];    /* number of codes of each length */\n  var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1];     /* offsets in table for each length */\n  var extra = null;\n  var extra_index = 0;\n\n  var here_bits, here_op, here_val;\n\n  /*\n   Process a set of code lengths to create a canonical Huffman code.  The\n   code lengths are lens[0..codes-1].  Each length corresponds to the\n   symbols 0..codes-1.  The Huffman code is generated by first sorting the\n   symbols by length from short to long, and retaining the symbol order\n   for codes with equal lengths.  Then the code starts with all zero bits\n   for the first code of the shortest length, and the codes are integer\n   increments for the same length, and zeros are appended as the length\n   increases.  For the deflate format, these bits are stored backwards\n   from their more natural integer increment ordering, and so when the\n   decoding tables are built in the large loop below, the integer codes\n   are incremented backwards.\n\n   This routine assumes, but does not check, that all of the entries in\n   lens[] are in the range 0..MAXBITS.  The caller must assure this.\n   1..MAXBITS is interpreted as that code length.  zero means that that\n   symbol does not occur in this code.\n\n   The codes are sorted by computing a count of codes for each length,\n   creating from that a table of starting indices for each length in the\n   sorted table, and then entering the symbols in order in the sorted\n   table.  The sorted table is work[], with that space being provided by\n   the caller.\n\n   The length counts are used for other purposes as well, i.e. finding\n   the minimum and maximum length codes, determining if there are any\n   codes at all, checking for a valid set of lengths, and looking ahead\n   at length counts to determine sub-table sizes when building the\n   decoding tables.\n   */\n\n  /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n  for (len = 0; len <= MAXBITS; len++) {\n    count[len] = 0;\n  }\n  for (sym = 0; sym < codes; sym++) {\n    count[lens[lens_index + sym]]++;\n  }\n\n  /* bound code lengths, force root to be within code lengths */\n  root = bits;\n  for (max = MAXBITS; max >= 1; max--) {\n    if (count[max] !== 0) { break; }\n  }\n  if (root > max) {\n    root = max;\n  }\n  if (max === 0) {                     /* no symbols to code at all */\n    //table.op[opts.table_index] = 64;  //here.op = (var char)64;    /* invalid code marker */\n    //table.bits[opts.table_index] = 1;   //here.bits = (var char)1;\n    //table.val[opts.table_index++] = 0;   //here.val = (var short)0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n    //table.op[opts.table_index] = 64;\n    //table.bits[opts.table_index] = 1;\n    //table.val[opts.table_index++] = 0;\n    table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n    opts.bits = 1;\n    return 0;     /* no symbols, but wait for decoding to report error */\n  }\n  for (min = 1; min < max; min++) {\n    if (count[min] !== 0) { break; }\n  }\n  if (root < min) {\n    root = min;\n  }\n\n  /* check for an over-subscribed or incomplete set of lengths */\n  left = 1;\n  for (len = 1; len <= MAXBITS; len++) {\n    left <<= 1;\n    left -= count[len];\n    if (left < 0) {\n      return -1;\n    }        /* over-subscribed */\n  }\n  if (left > 0 && (type === CODES || max !== 1)) {\n    return -1;                      /* incomplete set */\n  }\n\n  /* generate offsets into symbol table for each length for sorting */\n  offs[1] = 0;\n  for (len = 1; len < MAXBITS; len++) {\n    offs[len + 1] = offs[len] + count[len];\n  }\n\n  /* sort symbols by length, by symbol order within each length */\n  for (sym = 0; sym < codes; sym++) {\n    if (lens[lens_index + sym] !== 0) {\n      work[offs[lens[lens_index + sym]]++] = sym;\n    }\n  }\n\n  /*\n   Create and fill in decoding tables.  In this loop, the table being\n   filled is at next and has curr index bits.  The code being used is huff\n   with length len.  That code is converted to an index by dropping drop\n   bits off of the bottom.  For codes where len is less than drop + curr,\n   those top drop + curr - len bits are incremented through all values to\n   fill the table with replicated entries.\n\n   root is the number of index bits for the root table.  When len exceeds\n   root, sub-tables are created pointed to by the root entry with an index\n   of the low root bits of huff.  This is saved in low to check for when a\n   new sub-table should be started.  drop is zero when the root table is\n   being filled, and drop is root when sub-tables are being filled.\n\n   When a new sub-table is needed, it is necessary to look ahead in the\n   code lengths to determine what size sub-table is needed.  The length\n   counts are used for this, and so count[] is decremented as codes are\n   entered in the tables.\n\n   used keeps track of how many table entries have been allocated from the\n   provided *table space.  It is checked for LENS and DIST tables against\n   the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n   the initial root table size constants.  See the comments in inftrees.h\n   for more information.\n\n   sym increments through all symbols, and the loop terminates when\n   all codes of length max, i.e. all codes, have been processed.  This\n   routine permits incomplete codes, so another loop after this one fills\n   in the rest of the decoding tables with invalid code markers.\n   */\n\n  /* set up for code type */\n  // poor man optimization - use if-else instead of switch,\n  // to avoid deopts in old v8\n  if (type === CODES) {\n    base = extra = work;    /* dummy value--not used */\n    end = 19;\n\n  } else if (type === LENS) {\n    base = lbase;\n    base_index -= 257;\n    extra = lext;\n    extra_index -= 257;\n    end = 256;\n\n  } else {                    /* DISTS */\n    base = dbase;\n    extra = dext;\n    end = -1;\n  }\n\n  /* initialize opts for loop */\n  huff = 0;                   /* starting code */\n  sym = 0;                    /* starting code symbol */\n  len = min;                  /* starting code length */\n  next = table_index;              /* current table to fill in */\n  curr = root;                /* current table index bits */\n  drop = 0;                   /* current bits to drop from code for index */\n  low = -1;                   /* trigger new sub-table when len > root */\n  used = 1 << root;          /* use root table entries */\n  mask = used - 1;            /* mask for comparing low */\n\n  /* check available table space */\n  if ((type === LENS && used > ENOUGH_LENS) ||\n    (type === DISTS && used > ENOUGH_DISTS)) {\n    return 1;\n  }\n\n  /* process all codes and make table entries */\n  for (;;) {\n    /* create table entry */\n    here_bits = len - drop;\n    if (work[sym] < end) {\n      here_op = 0;\n      here_val = work[sym];\n    }\n    else if (work[sym] > end) {\n      here_op = extra[extra_index + work[sym]];\n      here_val = base[base_index + work[sym]];\n    }\n    else {\n      here_op = 32 + 64;         /* end of block */\n      here_val = 0;\n    }\n\n    /* replicate for those indices with low len bits equal to huff */\n    incr = 1 << (len - drop);\n    fill = 1 << curr;\n    min = fill;                 /* save offset to next table */\n    do {\n      fill -= incr;\n      table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n    } while (fill !== 0);\n\n    /* backwards increment the len-bit code huff */\n    incr = 1 << (len - 1);\n    while (huff & incr) {\n      incr >>= 1;\n    }\n    if (incr !== 0) {\n      huff &= incr - 1;\n      huff += incr;\n    } else {\n      huff = 0;\n    }\n\n    /* go to next symbol, update count, len */\n    sym++;\n    if (--count[len] === 0) {\n      if (len === max) { break; }\n      len = lens[lens_index + work[sym]];\n    }\n\n    /* create new sub-table if needed */\n    if (len > root && (huff & mask) !== low) {\n      /* if first time, transition to sub-tables */\n      if (drop === 0) {\n        drop = root;\n      }\n\n      /* increment past last table */\n      next += min;            /* here min is 1 << curr */\n\n      /* determine length of next table */\n      curr = len - drop;\n      left = 1 << curr;\n      while (curr + drop < max) {\n        left -= count[curr + drop];\n        if (left <= 0) { break; }\n        curr++;\n        left <<= 1;\n      }\n\n      /* check for enough space */\n      used += 1 << curr;\n      if ((type === LENS && used > ENOUGH_LENS) ||\n        (type === DISTS && used > ENOUGH_DISTS)) {\n        return 1;\n      }\n\n      /* point entry in root table to sub-table */\n      low = huff & mask;\n      /*table.op[low] = curr;\n      table.bits[low] = root;\n      table.val[low] = next - opts.table_index;*/\n      table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n    }\n  }\n\n  /* fill in remaining table entry if code is incomplete (guaranteed to have\n   at most one remaining entry, since if the code is incomplete, the\n   maximum code length that was allowed to get this far is one bit) */\n  if (huff !== 0) {\n    //table.op[next + huff] = 64;            /* invalid code marker */\n    //table.bits[next + huff] = len - drop;\n    //table.val[next + huff] = 0;\n    table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n  }\n\n  /* set return parameters */\n  //opts.table_index += used;\n  opts.bits = root;\n  return 0;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n  2:      'need dictionary',     /* Z_NEED_DICT       2  */\n  1:      'stream end',          /* Z_STREAM_END      1  */\n  0:      '',                    /* Z_OK              0  */\n  '-1':   'file error',          /* Z_ERRNO         (-1) */\n  '-2':   'stream error',        /* Z_STREAM_ERROR  (-2) */\n  '-3':   'data error',          /* Z_DATA_ERROR    (-3) */\n  '-4':   'insufficient memory', /* Z_MEM_ERROR     (-4) */\n  '-5':   'buffer error',        /* Z_BUF_ERROR     (-5) */\n  '-6':   'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED          = 1;\n//var Z_HUFFMAN_ONLY      = 2;\n//var Z_RLE               = 3;\nvar Z_FIXED               = 4;\n//var Z_DEFAULT_STRATEGY  = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY              = 0;\nvar Z_TEXT                = 1;\n//var Z_ASCII             = 1; // = Z_TEXT\nvar Z_UNKNOWN             = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES    = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH    = 3;\nvar MAX_MATCH    = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES  = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS      = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES       = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES       = 30;\n/* number of distance codes */\n\nvar BL_CODES      = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE     = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS      = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size      = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK   = 256;\n/* end of block literal code */\n\nvar REP_3_6     = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10   = 17;\n/* repeat a zero length 3-10 times  (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times  (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits =   /* extra bits for each length code */\n  [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits =   /* extra bits for each distance code */\n  [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits =  /* extra bits for each bit length code */\n  [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n  [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree  = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree  = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code    = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code  = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length   = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist     = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n  this.static_tree  = static_tree;  /* static tree or NULL */\n  this.extra_bits   = extra_bits;   /* extra bits for each code or NULL */\n  this.extra_base   = extra_base;   /* base index for extra_bits */\n  this.elems        = elems;        /* max number of elements in the tree */\n  this.max_length   = max_length;   /* max bit length for the codes */\n\n  // show if `static_tree` has data or dummy - needed for monomorphic objects\n  this.has_stree    = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n  this.dyn_tree = dyn_tree;     /* the dynamic tree */\n  this.max_code = 0;            /* largest code with non zero frequency */\n  this.stat_desc = stat_desc;   /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n  return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n//    put_byte(s, (uch)((w) & 0xff));\n//    put_byte(s, (uch)((ush)(w) >> 8));\n  s.pending_buf[s.pending++] = (w) & 0xff;\n  s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n  if (s.bi_valid > (Buf_size - length)) {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    put_short(s, s.bi_buf);\n    s.bi_buf = value >> (Buf_size - s.bi_valid);\n    s.bi_valid += length - Buf_size;\n  } else {\n    s.bi_buf |= (value << s.bi_valid) & 0xffff;\n    s.bi_valid += length;\n  }\n}\n\n\nfunction send_code(s, c, tree) {\n  send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n  var res = 0;\n  do {\n    res |= code & 1;\n    code >>>= 1;\n    res <<= 1;\n  } while (--len > 0);\n  return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n  if (s.bi_valid === 16) {\n    put_short(s, s.bi_buf);\n    s.bi_buf = 0;\n    s.bi_valid = 0;\n\n  } else if (s.bi_valid >= 8) {\n    s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n    s.bi_buf >>= 8;\n    s.bi_valid -= 8;\n  }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n *    above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n *     array bl_count contains the frequencies for each bit length.\n *     The length opt_len is updated; static_len is also updated if stree is\n *     not null.\n */\nfunction gen_bitlen(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc;    /* the tree descriptor */\n{\n  var tree            = desc.dyn_tree;\n  var max_code        = desc.max_code;\n  var stree           = desc.stat_desc.static_tree;\n  var has_stree       = desc.stat_desc.has_stree;\n  var extra           = desc.stat_desc.extra_bits;\n  var base            = desc.stat_desc.extra_base;\n  var max_length      = desc.stat_desc.max_length;\n  var h;              /* heap index */\n  var n, m;           /* iterate over the tree elements */\n  var bits;           /* bit length */\n  var xbits;          /* extra bits */\n  var f;              /* frequency */\n  var overflow = 0;   /* number of elements with bit length too large */\n\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    s.bl_count[bits] = 0;\n  }\n\n  /* In a first pass, compute the optimal bit lengths (which may\n   * overflow in the case of the bit length tree).\n   */\n  tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n  for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n    n = s.heap[h];\n    bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n    if (bits > max_length) {\n      bits = max_length;\n      overflow++;\n    }\n    tree[n * 2 + 1]/*.Len*/ = bits;\n    /* We overwrite tree[n].Dad which is no longer needed */\n\n    if (n > max_code) { continue; } /* not a leaf node */\n\n    s.bl_count[bits]++;\n    xbits = 0;\n    if (n >= base) {\n      xbits = extra[n - base];\n    }\n    f = tree[n * 2]/*.Freq*/;\n    s.opt_len += f * (bits + xbits);\n    if (has_stree) {\n      s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n    }\n  }\n  if (overflow === 0) { return; }\n\n  // Trace((stderr,\"\\nbit length overflow\\n\"));\n  /* This happens for example on obj2 and pic of the Calgary corpus */\n\n  /* Find the first bit length which could increase: */\n  do {\n    bits = max_length - 1;\n    while (s.bl_count[bits] === 0) { bits--; }\n    s.bl_count[bits]--;      /* move one leaf down the tree */\n    s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n    s.bl_count[max_length]--;\n    /* The brother of the overflow item also moves one step up,\n     * but this does not affect bl_count[max_length]\n     */\n    overflow -= 2;\n  } while (overflow > 0);\n\n  /* Now recompute all bit lengths, scanning in increasing frequency.\n   * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n   * lengths instead of fixing only the wrong ones. This idea is taken\n   * from 'ar' written by Haruhiko Okumura.)\n   */\n  for (bits = max_length; bits !== 0; bits--) {\n    n = s.bl_count[bits];\n    while (n !== 0) {\n      m = s.heap[--h];\n      if (m > max_code) { continue; }\n      if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n        // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n        s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n        tree[m * 2 + 1]/*.Len*/ = bits;\n      }\n      n--;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n *     zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n//    ct_data *tree;             /* the tree to decorate */\n//    int max_code;              /* largest code with non zero frequency */\n//    ushf *bl_count;            /* number of codes at each bit length */\n{\n  var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n  var code = 0;              /* running code value */\n  var bits;                  /* bit index */\n  var n;                     /* code index */\n\n  /* The distribution counts are first used to generate the code values\n   * without bit reversal.\n   */\n  for (bits = 1; bits <= MAX_BITS; bits++) {\n    next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n  }\n  /* Check that the bit counts in bl_count are consistent. The last code\n   * must be all ones.\n   */\n  //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n  //        \"inconsistent bit counts\");\n  //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n  for (n = 0;  n <= max_code; n++) {\n    var len = tree[n * 2 + 1]/*.Len*/;\n    if (len === 0) { continue; }\n    /* Now reverse the bits */\n    tree[n * 2]/*.Code*/ = bi_reverse(next_code[len]++, len);\n\n    //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n    //     n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n  }\n}\n\n\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\nfunction tr_static_init() {\n  var n;        /* iterates over tree elements */\n  var bits;     /* bit counter */\n  var length;   /* length value */\n  var code;     /* code value */\n  var dist;     /* distance index */\n  var bl_count = new Array(MAX_BITS + 1);\n  /* number of codes at each bit length for an optimal tree */\n\n  // do check in _tr_init()\n  //if (static_init_done) return;\n\n  /* For some embedded targets, global variables are not initialized: */\n/*#ifdef NO_INIT_GLOBAL_POINTERS\n  static_l_desc.static_tree = static_ltree;\n  static_l_desc.extra_bits = extra_lbits;\n  static_d_desc.static_tree = static_dtree;\n  static_d_desc.extra_bits = extra_dbits;\n  static_bl_desc.extra_bits = extra_blbits;\n#endif*/\n\n  /* Initialize the mapping length (0..255) -> length code (0..28) */\n  length = 0;\n  for (code = 0; code < LENGTH_CODES - 1; code++) {\n    base_length[code] = length;\n    for (n = 0; n < (1 << extra_lbits[code]); n++) {\n      _length_code[length++] = code;\n    }\n  }\n  //Assert (length == 256, \"tr_static_init: length != 256\");\n  /* Note that the length 255 (match length 258) can be represented\n   * in two different ways: code 284 + 5 bits or code 285, so we\n   * overwrite length_code[255] to use the best encoding:\n   */\n  _length_code[length - 1] = code;\n\n  /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n  dist = 0;\n  for (code = 0; code < 16; code++) {\n    base_dist[code] = dist;\n    for (n = 0; n < (1 << extra_dbits[code]); n++) {\n      _dist_code[dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: dist != 256\");\n  dist >>= 7; /* from now on, all distances are divided by 128 */\n  for (; code < D_CODES; code++) {\n    base_dist[code] = dist << 7;\n    for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n      _dist_code[256 + dist++] = code;\n    }\n  }\n  //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n  /* Construct the codes of the static literal tree */\n  for (bits = 0; bits <= MAX_BITS; bits++) {\n    bl_count[bits] = 0;\n  }\n\n  n = 0;\n  while (n <= 143) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  while (n <= 255) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 9;\n    n++;\n    bl_count[9]++;\n  }\n  while (n <= 279) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 7;\n    n++;\n    bl_count[7]++;\n  }\n  while (n <= 287) {\n    static_ltree[n * 2 + 1]/*.Len*/ = 8;\n    n++;\n    bl_count[8]++;\n  }\n  /* Codes 286 and 287 do not exist, but we must include them in the\n   * tree construction to get a canonical Huffman tree (longest code\n   * all ones)\n   */\n  gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n  /* The static distance tree is trivial: */\n  for (n = 0; n < D_CODES; n++) {\n    static_dtree[n * 2 + 1]/*.Len*/ = 5;\n    static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n  }\n\n  // Now data ready and we can init static trees\n  static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n  static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS);\n  static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0,         BL_CODES, MAX_BL_BITS);\n\n  //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n  var n; /* iterates over tree elements */\n\n  /* Initialize the trees. */\n  for (n = 0; n < L_CODES;  n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < D_CODES;  n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n  for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n  s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n  s.opt_len = s.static_len = 0;\n  s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n  if (s.bi_valid > 8) {\n    put_short(s, s.bi_buf);\n  } else if (s.bi_valid > 0) {\n    //put_byte(s, (Byte)s->bi_buf);\n    s.pending_buf[s.pending++] = s.bi_buf;\n  }\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf    *buf;    /* the input data */\n//unsigned len;     /* its length */\n//int      header;  /* true if block header must be written */\n{\n  bi_windup(s);        /* align on byte boundary */\n\n  if (header) {\n    put_short(s, len);\n    put_short(s, ~len);\n  }\n//  while (len--) {\n//    put_byte(s, *buf++);\n//  }\n  utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n  s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n  var _n2 = n * 2;\n  var _m2 = m * 2;\n  return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n         (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n//    deflate_state *s;\n//    ct_data *tree;  /* the tree to restore */\n//    int k;               /* node to move down */\n{\n  var v = s.heap[k];\n  var j = k << 1;  /* left son of k */\n  while (j <= s.heap_len) {\n    /* Set j to the smallest of the two sons: */\n    if (j < s.heap_len &&\n      smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n      j++;\n    }\n    /* Exit if v is smaller than both sons */\n    if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n    /* Exchange v with the smallest son */\n    s.heap[k] = s.heap[j];\n    k = j;\n\n    /* And continue down the tree, setting j to the left son of k */\n    j <<= 1;\n  }\n  s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n//    deflate_state *s;\n//    const ct_data *ltree; /* literal tree */\n//    const ct_data *dtree; /* distance tree */\n{\n  var dist;           /* distance of matched string */\n  var lc;             /* match length or unmatched char (if dist == 0) */\n  var lx = 0;         /* running index in l_buf */\n  var code;           /* the code to send */\n  var extra;          /* number of extra bits to send */\n\n  if (s.last_lit !== 0) {\n    do {\n      dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n      lc = s.pending_buf[s.l_buf + lx];\n      lx++;\n\n      if (dist === 0) {\n        send_code(s, lc, ltree); /* send a literal byte */\n        //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n      } else {\n        /* Here, lc is the match length - MIN_MATCH */\n        code = _length_code[lc];\n        send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n        extra = extra_lbits[code];\n        if (extra !== 0) {\n          lc -= base_length[code];\n          send_bits(s, lc, extra);       /* send the extra length bits */\n        }\n        dist--; /* dist is now the match distance - 1 */\n        code = d_code(dist);\n        //Assert (code < D_CODES, \"bad d_code\");\n\n        send_code(s, code, dtree);       /* send the distance code */\n        extra = extra_dbits[code];\n        if (extra !== 0) {\n          dist -= base_dist[code];\n          send_bits(s, dist, extra);   /* send the extra distance bits */\n        }\n      } /* literal or match pair ? */\n\n      /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n      //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n      //       \"pendingBuf overflow\");\n\n    } while (lx < s.last_lit);\n  }\n\n  send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n *     and corresponding code. The length opt_len is updated; static_len is\n *     also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n//    deflate_state *s;\n//    tree_desc *desc; /* the tree descriptor */\n{\n  var tree     = desc.dyn_tree;\n  var stree    = desc.stat_desc.static_tree;\n  var has_stree = desc.stat_desc.has_stree;\n  var elems    = desc.stat_desc.elems;\n  var n, m;          /* iterate over heap elements */\n  var max_code = -1; /* largest code with non zero frequency */\n  var node;          /* new node being created */\n\n  /* Construct the initial heap, with least frequent element in\n   * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n   * heap[0] is not used.\n   */\n  s.heap_len = 0;\n  s.heap_max = HEAP_SIZE;\n\n  for (n = 0; n < elems; n++) {\n    if (tree[n * 2]/*.Freq*/ !== 0) {\n      s.heap[++s.heap_len] = max_code = n;\n      s.depth[n] = 0;\n\n    } else {\n      tree[n * 2 + 1]/*.Len*/ = 0;\n    }\n  }\n\n  /* The pkzip format requires that at least one distance code exists,\n   * and that at least one bit should be sent even if there is only one\n   * possible code. So to avoid special checks later on we force at least\n   * two codes of non zero frequency.\n   */\n  while (s.heap_len < 2) {\n    node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n    tree[node * 2]/*.Freq*/ = 1;\n    s.depth[node] = 0;\n    s.opt_len--;\n\n    if (has_stree) {\n      s.static_len -= stree[node * 2 + 1]/*.Len*/;\n    }\n    /* node is 0 or 1 so it does not have extra bits */\n  }\n  desc.max_code = max_code;\n\n  /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n   * establish sub-heaps of increasing lengths:\n   */\n  for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n  /* Construct the Huffman tree by repeatedly combining the least two\n   * frequent nodes.\n   */\n  node = elems;              /* next internal node of the tree */\n  do {\n    //pqremove(s, tree, n);  /* n = node of least frequency */\n    /*** pqremove ***/\n    n = s.heap[1/*SMALLEST*/];\n    s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n    /***/\n\n    m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n    s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n    s.heap[--s.heap_max] = m;\n\n    /* Create a new node father of n and m */\n    tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n    s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n    tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n    /* and insert the new node in the heap */\n    s.heap[1/*SMALLEST*/] = node++;\n    pqdownheap(s, tree, 1/*SMALLEST*/);\n\n  } while (s.heap_len >= 2);\n\n  s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n  /* At this point, the fields freq and dad are set. We can now\n   * generate the bit lengths.\n   */\n  gen_bitlen(s, desc);\n\n  /* The field len is now set, we can generate the bit codes */\n  gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree;   /* the tree to be scanned */\n//    int max_code;    /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n  tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n    } else if (curlen !== 0) {\n\n      if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n      s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n    } else if (count <= 10) {\n      s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n    } else {\n      s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n    }\n\n    count = 0;\n    prevlen = curlen;\n\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n//    deflate_state *s;\n//    ct_data *tree; /* the tree to be scanned */\n//    int max_code;       /* and its largest code of non zero frequency */\n{\n  var n;                     /* iterates over all tree elements */\n  var prevlen = -1;          /* last emitted length */\n  var curlen;                /* length of current code */\n\n  var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n  var count = 0;             /* repeat count of the current code */\n  var max_count = 7;         /* max repeat count */\n  var min_count = 4;         /* min repeat count */\n\n  /* tree[max_code+1].Len = -1; */  /* guard already set */\n  if (nextlen === 0) {\n    max_count = 138;\n    min_count = 3;\n  }\n\n  for (n = 0; n <= max_code; n++) {\n    curlen = nextlen;\n    nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n    if (++count < max_count && curlen === nextlen) {\n      continue;\n\n    } else if (count < min_count) {\n      do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n    } else if (curlen !== 0) {\n      if (curlen !== prevlen) {\n        send_code(s, curlen, s.bl_tree);\n        count--;\n      }\n      //Assert(count >= 3 && count <= 6, \" 3_6?\");\n      send_code(s, REP_3_6, s.bl_tree);\n      send_bits(s, count - 3, 2);\n\n    } else if (count <= 10) {\n      send_code(s, REPZ_3_10, s.bl_tree);\n      send_bits(s, count - 3, 3);\n\n    } else {\n      send_code(s, REPZ_11_138, s.bl_tree);\n      send_bits(s, count - 11, 7);\n    }\n\n    count = 0;\n    prevlen = curlen;\n    if (nextlen === 0) {\n      max_count = 138;\n      min_count = 3;\n\n    } else if (curlen === nextlen) {\n      max_count = 6;\n      min_count = 3;\n\n    } else {\n      max_count = 7;\n      min_count = 4;\n    }\n  }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n  var max_blindex;  /* index of last bit length code of non zero freq */\n\n  /* Determine the bit length frequencies for literal and distance trees */\n  scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n  scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n  /* Build the bit length tree: */\n  build_tree(s, s.bl_desc);\n  /* opt_len now includes the length of the tree representations, except\n   * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n   */\n\n  /* Determine the number of bit length codes to send. The pkzip format\n   * requires that at least 4 bit length codes be sent. (appnote.txt says\n   * 3 but the actual value used is 4.)\n   */\n  for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n    if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n      break;\n    }\n  }\n  /* Update opt_len to include the bit length tree and counts */\n  s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n  //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n  //        s->opt_len, s->static_len));\n\n  return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n//    deflate_state *s;\n//    int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n  var rank;                    /* index in bl_order */\n\n  //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n  //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n  //        \"too many codes\");\n  //Tracev((stderr, \"\\nbl counts: \"));\n  send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n  send_bits(s, dcodes - 1,   5);\n  send_bits(s, blcodes - 4,  4); /* not -3 as stated in appnote.txt */\n  for (rank = 0; rank < blcodes; rank++) {\n    //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n    send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n  }\n  //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n  //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n  send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n  //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n *    a) There are no non-portable control characters belonging to the\n *       \"black list\" (0..6, 14..25, 28..31).\n *    b) There is at least one printable character belonging to the\n *       \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n *   \"gray list\" that is ignored in this detection algorithm:\n *   (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n  /* black_mask is the bit mask of black-listed bytes\n   * set bits 0..6, 14..25, and 28..31\n   * 0xf3ffc07f = binary 11110011111111111100000001111111\n   */\n  var black_mask = 0xf3ffc07f;\n  var n;\n\n  /* Check for non-textual (\"black-listed\") bytes. */\n  for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n    if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n      return Z_BINARY;\n    }\n  }\n\n  /* Check for textual (\"white-listed\") bytes. */\n  if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n      s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n    return Z_TEXT;\n  }\n  for (n = 32; n < LITERALS; n++) {\n    if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n      return Z_TEXT;\n    }\n  }\n\n  /* There are no \"black-listed\" or \"white-listed\" bytes:\n   * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n   */\n  return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n  if (!static_init_done) {\n    tr_static_init();\n    static_init_done = true;\n  }\n\n  s.l_desc  = new TreeDesc(s.dyn_ltree, static_l_desc);\n  s.d_desc  = new TreeDesc(s.dyn_dtree, static_d_desc);\n  s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n  s.bi_buf = 0;\n  s.bi_valid = 0;\n\n  /* Initialize the first block of the first file: */\n  init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);    /* send block type */\n  copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n  send_bits(s, STATIC_TREES << 1, 3);\n  send_code(s, END_BLOCK, static_ltree);\n  bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf;       /* input block, or NULL if too old */\n//ulg stored_len;   /* length of input block */\n//int last;         /* one if this is the last block for a file */\n{\n  var opt_lenb, static_lenb;  /* opt_len and static_len in bytes */\n  var max_blindex = 0;        /* index of last bit length code of non zero freq */\n\n  /* Build the Huffman trees unless a stored block is forced */\n  if (s.level > 0) {\n\n    /* Check if the file is binary or text */\n    if (s.strm.data_type === Z_UNKNOWN) {\n      s.strm.data_type = detect_data_type(s);\n    }\n\n    /* Construct the literal and distance trees */\n    build_tree(s, s.l_desc);\n    // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n\n    build_tree(s, s.d_desc);\n    // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n    //        s->static_len));\n    /* At this point, opt_len and static_len are the total bit lengths of\n     * the compressed block data, excluding the tree representations.\n     */\n\n    /* Build the bit length tree for the above two trees, and get the index\n     * in bl_order of the last bit length code to send.\n     */\n    max_blindex = build_bl_tree(s);\n\n    /* Determine the best encoding. Compute the block lengths in bytes. */\n    opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n    static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n    // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n    //        opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n    //        s->last_lit));\n\n    if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n  } else {\n    // Assert(buf != (char*)0, \"lost buf\");\n    opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n  }\n\n  if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n    /* 4: two words for the lengths */\n\n    /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n     * Otherwise we can't have processed more than WSIZE input bytes since\n     * the last block flush, because compression would have been\n     * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n     * transform a block into a stored block.\n     */\n    _tr_stored_block(s, buf, stored_len, last);\n\n  } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n    send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n    compress_block(s, static_ltree, static_dtree);\n\n  } else {\n    send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n    send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n    compress_block(s, s.dyn_ltree, s.dyn_dtree);\n  }\n  // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n  /* The above check is made mod 2^32, for files larger than 512 MB\n   * and uLong implemented on 32 bits.\n   */\n  init_block(s);\n\n  if (last) {\n    bi_windup(s);\n  }\n  // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n  //       s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n//    deflate_state *s;\n//    unsigned dist;  /* distance of matched string */\n//    unsigned lc;    /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n  //var out_length, in_length, dcode;\n\n  s.pending_buf[s.d_buf + s.last_lit * 2]     = (dist >>> 8) & 0xff;\n  s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n  s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n  s.last_lit++;\n\n  if (dist === 0) {\n    /* lc is the unmatched char */\n    s.dyn_ltree[lc * 2]/*.Freq*/++;\n  } else {\n    s.matches++;\n    /* Here, lc is the match length - MIN_MATCH */\n    dist--;             /* dist = match distance - 1 */\n    //Assert((ush)dist < (ush)MAX_DIST(s) &&\n    //       (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n    //       (ush)d_code(dist) < (ush)D_CODES,  \"_tr_tally: bad match\");\n\n    s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n    s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n  }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n//  /* Try to guess if it is profitable to stop the current block here */\n//  if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n//    /* Compute an upper bound for the compressed length */\n//    out_length = s.last_lit*8;\n//    in_length = s.strstart - s.block_start;\n//\n//    for (dcode = 0; dcode < D_CODES; dcode++) {\n//      out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n//    }\n//    out_length >>>= 3;\n//    //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n//    //       s->last_lit, in_length, out_length,\n//    //       100L - out_length*100L/in_length));\n//    if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n//      return true;\n//    }\n//  }\n//#endif\n\n  return (s.last_lit === s.lit_bufsize - 1);\n  /* We avoid equality with lit_bufsize because of wraparound at 64K\n   * on 16 bit machines and because stored blocks are restricted to\n   * 64K-1 bytes.\n   */\n}\n\nexports._tr_init  = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block  = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n//   claim that you wrote the original software. If you use this software\n//   in a product, an acknowledgment in the product documentation would be\n//   appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n//   misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n  /* next input byte */\n  this.input = null; // JS specific, because we have no pointers\n  this.next_in = 0;\n  /* number of bytes available at input */\n  this.avail_in = 0;\n  /* total number of input bytes read so far */\n  this.total_in = 0;\n  /* next output byte should be put there */\n  this.output = null; // JS specific, because we have no pointers\n  this.next_out = 0;\n  /* remaining free space at output */\n  this.avail_out = 0;\n  /* total number of bytes output so far */\n  this.total_out = 0;\n  /* last error message, NULL if no error */\n  this.msg = ''/*Z_NULL*/;\n  /* not visible by applications */\n  this.state = null;\n  /* best guess about the data type: binary or text */\n  this.data_type = 2/*Z_UNKNOWN*/;\n  /* adler32 value of the uncompressed data */\n  this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsLib = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(globalThis, () => {\nreturn ","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n  (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n  typeof process === \"object\" &&\n  process + \"\" === \"[object process]\" &&\n  !process.versions.nw &&\n  !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n *  - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n *    `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n *  - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n *    annotations are rendered onto the canvas (i.e. by being included in the\n *    operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n *    and their `annotationMode`-option.\n *  - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n *    `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n  ANY: 0x01,\n  DISPLAY: 0x02,\n  PRINT: 0x04,\n  SAVE: 0x08,\n  ANNOTATIONS_FORMS: 0x10,\n  ANNOTATIONS_STORAGE: 0x20,\n  ANNOTATIONS_DISABLE: 0x40,\n  OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_FORMS: 2,\n  ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n  DISABLE: -1,\n  NONE: 0,\n  FREETEXT: 3,\n  STAMP: 13,\n  INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n  RESIZE: 1,\n  CREATE: 2,\n  FREETEXT_SIZE: 11,\n  FREETEXT_COLOR: 12,\n  FREETEXT_OPACITY: 13,\n  INK_COLOR: 21,\n  INK_THICKNESS: 22,\n  INK_OPACITY: 23,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationReplyType = {\n  GROUP: \"Group\",\n  REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n  E: \"Mouse Enter\",\n  X: \"Mouse Exit\",\n  D: \"Mouse Down\",\n  U: \"Mouse Up\",\n  Fo: \"Focus\",\n  Bl: \"Blur\",\n  PO: \"PageOpen\",\n  PC: \"PageClose\",\n  PV: \"PageVisible\",\n  PI: \"PageInvisible\",\n  K: \"Keystroke\",\n  F: \"Format\",\n  V: \"Validate\",\n  C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n  WC: \"WillClose\",\n  WS: \"WillSave\",\n  DS: \"DidSave\",\n  WP: \"WillPrint\",\n  DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n  O: \"PageOpen\",\n  C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  // PLEASE NOTE: We purposely keep any removed operators commented out, since\n  //              re-numbering the list would risk breaking third-party users.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  // beginAnnotations: 78,\n  // endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  // paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log(`Info: ${msg}`);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log(`Warning: ${msg}`);\n  }\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  switch (url?.protocol) {\n    case \"http:\":\n    case \"https:\":\n    case \"ftp:\":\n    case \"mailto:\":\n    case \"tel:\":\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n  if (!url) {\n    return null;\n  }\n  try {\n    if (options && typeof url === \"string\") {\n      // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n      if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n        const dots = url.match(/\\./g);\n        // Avoid accidentally matching a *relative* URL pointing to a file named\n        // e.g. \"www.pdf\" or similar.\n        if (dots?.length >= 2) {\n          url = `http://${url}`;\n        }\n      }\n\n      // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n      // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n      if (options.tryConvertEncoding) {\n        try {\n          url = stringToUTF8String(url);\n        } catch {}\n      }\n    }\n\n    const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch {\n    /* `new URL()` will throw on incorrect data. */\n  }\n  return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      prop in obj,\n      `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n    );\n  }\n  Object.defineProperty(obj, prop, {\n    value,\n    enumerable: !nonSerializable,\n    configurable: true,\n    writable: false,\n  });\n  return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n  // eslint-disable-next-line no-shadow\n  function BaseException(message, name) {\n    if (this.constructor === BaseException) {\n      unreachable(\"Cannot initialize BaseException.\");\n    }\n    this.message = message;\n    this.name = name;\n  }\n  BaseException.prototype = new Error();\n  BaseException.constructor = BaseException;\n\n  return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n  constructor(msg, code) {\n    super(msg, \"PasswordException\");\n    this.code = code;\n  }\n}\n\nclass UnknownErrorException extends BaseException {\n  constructor(msg, details) {\n    super(msg, \"UnknownErrorException\");\n    this.details = details;\n  }\n}\n\nclass InvalidPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"InvalidPDFException\");\n  }\n}\n\nclass MissingPDFException extends BaseException {\n  constructor(msg) {\n    super(msg, \"MissingPDFException\");\n  }\n}\n\nclass UnexpectedResponseException extends BaseException {\n  constructor(msg, status) {\n    super(msg, \"UnexpectedResponseException\");\n    this.status = status;\n  }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n  constructor(msg) {\n    super(msg, \"FormatError\");\n  }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n  constructor(msg) {\n    super(msg, \"AbortException\");\n  }\n}\n\nfunction bytesToString(bytes) {\n  if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n    unreachable(\"Invalid argument for bytesToString\");\n  }\n  const length = bytes.length;\n  const MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  const strBuf = [];\n  for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    const chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n  if (typeof str !== \"string\") {\n    unreachable(\"Invalid argument for stringToBytes\");\n  }\n  const length = str.length;\n  const bytes = new Uint8Array(length);\n  for (let i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xff;\n  }\n  return bytes;\n}\n\nfunction string32(value) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n      `string32: Unexpected input \"${value}\".`\n    );\n  }\n  return String.fromCharCode(\n    (value >> 24) & 0xff,\n    (value >> 16) & 0xff,\n    (value >> 8) & 0xff,\n    value & 0xff\n  );\n}\n\nfunction objectSize(obj) {\n  return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n  const obj = Object.create(null);\n  for (const [key, value] of map) {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n  const buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(\"\"); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nclass FeatureTest {\n  static get isLittleEndian() {\n    return shadow(this, \"isLittleEndian\", isLittleEndian());\n  }\n\n  static get isEvalSupported() {\n    return shadow(this, \"isEvalSupported\", isEvalSupported());\n  }\n\n  static get isOffscreenCanvasSupported() {\n    return shadow(\n      this,\n      \"isOffscreenCanvasSupported\",\n      typeof OffscreenCanvas !== \"undefined\"\n    );\n  }\n\n  static get platform() {\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n      typeof navigator === \"undefined\"\n    ) {\n      return shadow(this, \"platform\", { isWin: false, isMac: false });\n    }\n    return shadow(this, \"platform\", {\n      isWin: navigator.platform.includes(\"Win\"),\n      isMac: navigator.platform.includes(\"Mac\"),\n    });\n  }\n\n  static get isCSSRoundSupported() {\n    return shadow(\n      this,\n      \"isCSSRoundSupported\",\n      globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n    );\n  }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n  n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n  static makeHexColor(r, g, b) {\n    return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n  }\n\n  // Apply a scaling matrix to some min/max values.\n  // If a scaling factor is negative then min and max must be\n  // swaped.\n  static scaleMinMax(transform, minMax) {\n    let temp;\n    if (transform[0]) {\n      if (transform[0] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[0];\n      minMax[1] *= transform[0];\n\n      if (transform[3] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[3];\n      minMax[3] *= transform[3];\n    } else {\n      temp = minMax[0];\n      minMax[0] = minMax[2];\n      minMax[2] = temp;\n      temp = minMax[1];\n      minMax[1] = minMax[3];\n      minMax[3] = temp;\n\n      if (transform[1] < 0) {\n        temp = minMax[2];\n        minMax[2] = minMax[3];\n        minMax[3] = temp;\n      }\n      minMax[2] *= transform[1];\n      minMax[3] *= transform[1];\n\n      if (transform[2] < 0) {\n        temp = minMax[0];\n        minMax[0] = minMax[1];\n        minMax[1] = temp;\n      }\n      minMax[0] *= transform[2];\n      minMax[1] *= transform[2];\n    }\n    minMax[0] += transform[4];\n    minMax[1] += transform[4];\n    minMax[2] += transform[5];\n    minMax[3] += transform[5];\n  }\n\n  // Concatenates two transformation matrices together and returns the result.\n  static transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n    ];\n  }\n\n  // For 2d affine transforms\n  static applyTransform(p, m) {\n    const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  }\n\n  static applyInverseTransform(p, m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  }\n\n  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  static getAxialAlignedBoundingBox(r, m) {\n    const p1 = this.applyTransform(r, m);\n    const p2 = this.applyTransform(r.slice(2, 4), m);\n    const p3 = this.applyTransform([r[0], r[3]], m);\n    const p4 = this.applyTransform([r[2], r[1]], m);\n    return [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1]),\n    ];\n  }\n\n  static inverseTransform(m) {\n    const d = m[0] * m[3] - m[1] * m[2];\n    return [\n      m[3] / d,\n      -m[1] / d,\n      -m[2] / d,\n      m[0] / d,\n      (m[2] * m[5] - m[4] * m[3]) / d,\n      (m[4] * m[1] - m[5] * m[0]) / d,\n    ];\n  }\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  static singularValueDecompose2dScale(m) {\n    const transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\n    const a = m[0] * transpose[0] + m[1] * transpose[2];\n    const b = m[0] * transpose[1] + m[1] * transpose[3];\n    const c = m[2] * transpose[0] + m[3] * transpose[2];\n    const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n    // Solve the second degree polynomial to get roots.\n    const first = (a + d) / 2;\n    const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n    const sx = first + second || 1;\n    const sy = first - second || 1;\n\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  }\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  static normalizeRect(rect) {\n    const r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  }\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'null'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  static intersect(rect1, rect2) {\n    const xLow = Math.max(\n      Math.min(rect1[0], rect1[2]),\n      Math.min(rect2[0], rect2[2])\n    );\n    const xHigh = Math.min(\n      Math.max(rect1[0], rect1[2]),\n      Math.max(rect2[0], rect2[2])\n    );\n    if (xLow > xHigh) {\n      return null;\n    }\n    const yLow = Math.max(\n      Math.min(rect1[1], rect1[3]),\n      Math.min(rect2[1], rect2[3])\n    );\n    const yHigh = Math.min(\n      Math.max(rect1[1], rect1[3]),\n      Math.max(rect2[1], rect2[3])\n    );\n    if (yLow > yHigh) {\n      return null;\n    }\n\n    return [xLow, yLow, xHigh, yHigh];\n  }\n\n  // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n  static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n    const tvalues = [],\n      bounds = [[], []];\n    let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n    for (let i = 0; i < 2; ++i) {\n      if (i === 0) {\n        b = 6 * x0 - 12 * x1 + 6 * x2;\n        a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n        c = 3 * x1 - 3 * x0;\n      } else {\n        b = 6 * y0 - 12 * y1 + 6 * y2;\n        a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n        c = 3 * y1 - 3 * y0;\n      }\n      if (Math.abs(a) < 1e-12) {\n        if (Math.abs(b) < 1e-12) {\n          continue;\n        }\n        t = -c / b;\n        if (0 < t && t < 1) {\n          tvalues.push(t);\n        }\n        continue;\n      }\n      b2ac = b * b - 4 * c * a;\n      sqrtb2ac = Math.sqrt(b2ac);\n      if (b2ac < 0) {\n        continue;\n      }\n      t1 = (-b + sqrtb2ac) / (2 * a);\n      if (0 < t1 && t1 < 1) {\n        tvalues.push(t1);\n      }\n      t2 = (-b - sqrtb2ac) / (2 * a);\n      if (0 < t2 && t2 < 1) {\n        tvalues.push(t2);\n      }\n    }\n\n    let j = tvalues.length,\n      mt;\n    const jlen = j;\n    while (j--) {\n      t = tvalues[j];\n      mt = 1 - t;\n      bounds[0][j] =\n        mt * mt * mt * x0 +\n        3 * mt * mt * t * x1 +\n        3 * mt * t * t * x2 +\n        t * t * t * x3;\n      bounds[1][j] =\n        mt * mt * mt * y0 +\n        3 * mt * mt * t * y1 +\n        3 * mt * t * t * y2 +\n        t * t * t * y3;\n    }\n\n    bounds[0][jlen] = x0;\n    bounds[1][jlen] = y0;\n    bounds[0][jlen + 1] = x3;\n    bounds[1][jlen + 1] = y3;\n    bounds[0].length = bounds[1].length = jlen + 2;\n\n    return [\n      Math.min(...bounds[0]),\n      Math.min(...bounds[1]),\n      Math.max(...bounds[0]),\n      Math.max(...bounds[1]),\n    ];\n  }\n}\n\nconst PDFStringTranslateTable = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8,\n  0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n  0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n  0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n  0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n  if (str[0] >= \"\\xEF\") {\n    let encoding;\n    if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n      encoding = \"utf-16be\";\n    } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n      encoding = \"utf-16le\";\n    } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n      encoding = \"utf-8\";\n    }\n\n    if (encoding) {\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(str);\n        return decoder.decode(buffer);\n      } catch (ex) {\n        warn(`stringToPDFString: \"${ex}\".`);\n      }\n    }\n  }\n  // ISO Latin 1\n  const strBuf = [];\n  for (let i = 0, ii = str.length; i < ii; i++) {\n    const code = PDFStringTranslateTable[str.charCodeAt(i)];\n    strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n  }\n  return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n  return typeof v === \"object\" && v?.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i = 0, ii = arr1.length; i < ii; i++) {\n    if (arr1[i] !== arr2[i]) {\n      return false;\n    }\n  }\n  return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n  const buffer = [\n    date.getUTCFullYear().toString(),\n    (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n    date.getUTCDate().toString().padStart(2, \"0\"),\n    date.getUTCHours().toString().padStart(2, \"0\"),\n    date.getUTCMinutes().toString().padStart(2, \"0\"),\n    date.getUTCSeconds().toString().padStart(2, \"0\"),\n  ];\n\n  return buffer.join(\"\");\n}\n\nclass PromiseCapability {\n  #settled = false;\n\n  constructor() {\n    /**\n     * @type {Promise<any>} The Promise object.\n     */\n    this.promise = new Promise((resolve, reject) => {\n      /**\n       * @type {function} Fulfills the Promise.\n       */\n      this.resolve = data => {\n        this.#settled = true;\n        resolve(data);\n      };\n\n      /**\n       * @type {function} Rejects the Promise.\n       */\n      this.reject = reason => {\n        if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n          assert(reason instanceof Error, 'Expected valid \"reason\" argument.');\n        }\n        this.#settled = true;\n        reject(reason);\n      };\n    });\n  }\n\n  /**\n   * @type {boolean} If the Promise has been fulfilled/rejected.\n   */\n  get settled() {\n    return this.#settled;\n  }\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n  if (!NormalizeRegex) {\n    // In order to generate the following regex:\n    //  - create a PDF containing all the chars in the range 0000-FFFF with\n    //    a NFKC which is different of the char.\n    //  - copy and paste all those chars and get the ones where NFKC is\n    //    required.\n    // It appears that most the chars here contain some ligatures.\n    NormalizeRegex =\n      /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n    NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n  }\n  return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n    return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n  });\n}\n\nfunction getUuid() {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n  ) {\n    return crypto.randomUUID();\n  }\n  const buf = new Uint8Array(32);\n  if (\n    typeof crypto !== \"undefined\" &&\n    typeof crypto?.getRandomValues === \"function\"\n  ) {\n    crypto.getRandomValues(buf);\n  } else {\n    for (let i = 0; i < 32; i++) {\n      buf[i] = Math.floor(Math.random() * 255);\n    }\n  }\n  return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n  AbortException,\n  AnnotationActionEventType,\n  AnnotationBorderStyleType,\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationMode,\n  AnnotationPrefix,\n  AnnotationReplyType,\n  AnnotationType,\n  assert,\n  BaseException,\n  BASELINE_FACTOR,\n  bytesToString,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  DocumentActionEventType,\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  FormatError,\n  getModificationDate,\n  getUuid,\n  getVerbosityLevel,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isArrayEqual,\n  isNodeJS,\n  LINE_DESCENT_FACTOR,\n  LINE_FACTOR,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  MissingPDFException,\n  normalizeUnicode,\n  objectFromMap,\n  objectSize,\n  OPS,\n  PageActionEventType,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  PromiseCapability,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  utf8StringToString,\n  Util,\n  VerbosityLevel,\n  warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @module pdfjsLib\n */\n\nimport {\n  AbortException,\n  AnnotationMode,\n  assert,\n  getVerbosityLevel,\n  info,\n  InvalidPDFException,\n  isArrayBuffer,\n  isNodeJS,\n  MAX_IMAGE_SIZE_TO_CACHE,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  RenderingIntentFlag,\n  setVerbosityLevel,\n  shadow,\n  stringToBytes,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  AnnotationStorage,\n  PrintAnnotationStorage,\n  SerializableEmpty,\n} from \"./annotation_storage.js\";\nimport {\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMFilterFactory,\n  DOMStandardFontDataFactory,\n  isDataScheme,\n  isValidFetchUrl,\n  loadScript,\n  PageViewport,\n  RenderingCancelledException,\n  StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeFilterFactory,\n  NodeStandardFontDataFactory,\n} from \"display-node_utils\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { PDFFetchStream } from \"display-fetch_stream\";\nimport { PDFNetworkStream } from \"display-network\";\nimport { PDFNodeStream } from \"display-node_stream\";\nimport { SVGGraphics } from \"display-svg\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\nconst DELAYED_CLEANUP_TIMEOUT = 5000; // ms\n\nconst DefaultCanvasFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeCanvasFactory\n    : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeCMapReaderFactory\n    : DOMCMapReaderFactory;\nconst DefaultFilterFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeFilterFactory\n    : DOMFilterFactory;\nconst DefaultStandardFontDataFactory =\n  typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n    ? NodeStandardFontDataFactory\n    : DOMStandardFontDataFactory;\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n *            Int16Array | Uint16Array |\n *            Int32Array | Uint32Array | Float32Array |\n *            Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef { TypedArray | ArrayBuffer | Array<number> | string } BinaryData\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string | URL} [url] - The URL of the PDF.\n * @property {BinaryData} [data] - Binary PDF data.\n *   Use TypedArrays (Uint8Array) to improve the memory usage. If PDF data is\n *   BASE64-encoded, use `atob()` to convert it to a binary string first.\n *\n *   NOTE: If TypedArrays are used they will generally be transferred to the\n *   worker-thread. This will help reduce main-thread memory usage, however\n *   it will take ownership of the TypedArrays.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n *   cross-site Access-Control requests should be made using credentials such\n *   as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {number} [length] - The PDF file length. It's used for progress\n *   reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n *   transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n *   per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n *   parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n *   from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n *   attempting to recover valid absolute URLs for annotations, and outline\n *   items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n *   located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n *   packed or not. The default value is `true`.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n *   reading built-in CMap files. Providing a custom factory is useful for\n *   environments without Fetch API or `XMLHttpRequest` support, such as\n *   Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n *   embedded in the PDF document will fallback to a system font.\n *   The default value is `true` in web environments and `false` in Node.js;\n *   unless `disableFontFace === true` in which case this defaults to `false`\n *   regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n *   files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n *   when reading the standard font files. Providing a custom factory is useful\n *   for environments without Fetch API or `XMLHttpRequest` support, such as\n *   Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n *   worker-thread when reading CMap and standard font files. When `true`,\n *   the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n *   The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - Reject certain promises, e.g.\n *   `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n *   PDF data cannot be successfully parsed, instead of attempting to recover\n *   whatever possible of the data. The default value is `false`.\n * @property {number} [maxImageSize] - The maximum allowed image size in total\n *   pixels, i.e. width * height. Images above this value will not be rendered.\n *   Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n *   as JavaScript. Primarily used to improve performance of font rendering, and\n *   when parsing PDF functions. The default value is `true`.\n * @property {boolean} [isOffscreenCanvasSupported] - Determines if we can use\n *   `OffscreenCanvas` in the worker. Primarily used to improve performance of\n *   image conversion/rendering.\n *   The default value is `true` in web environments and `false` in Node.js.\n * @property {number} [canvasMaxAreaInBytes] - The integer value is used to\n *   know when an image must be resized (uses `OffscreenCanvas` in the worker).\n *   If it's -1 then a possibly slow algorithm is used to guess the max value.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n *   OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n *   If disabled, fonts will be rendered using a built-in font renderer that\n *   constructs the glyphs with primitive path commands.\n *   The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n *   which are unused during rendering of PDF documents, when exporting the\n *   parsed font data from the worker-thread. This may be useful for debugging\n *   purposes (and backwards compatibility), but note that it will lead to\n *   increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n *   The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n *   context to create elements with and to load resources, such as fonts,\n *   into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n *   files. When enabled, and if the server supports partial content requests,\n *   then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n *   By default PDF.js attempts to load PDF files in chunks. The default value\n *   is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n *   data. When range requests are enabled PDF.js will automatically keep\n *   fetching more data even if it isn't needed to display the current page.\n *   The default value is `false`.\n *\n *   NOTE: It is also necessary to disable streaming, see above, in order for\n *   disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n *   (see `web/debugger.js`). The default value is `false`.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n *   when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object} [filterFactory] - A factory instance that will be used\n *   to create SVG filters when rendering some images on the main canvas.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string | URL | TypedArray | ArrayBuffer | DocumentInitParameters}\n *   src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n *         already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n    if (typeof src === \"string\" || src instanceof URL) {\n      src = { url: src };\n    } else if (isArrayBuffer(src)) {\n      src = { data: src };\n    }\n  }\n  if (typeof src !== \"object\") {\n    throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n  }\n  if (!src.url && !src.data && !src.range) {\n    throw new Error(\n      \"Invalid parameter object: need either .data, .range or .url\"\n    );\n  }\n  const task = new PDFDocumentLoadingTask();\n  const { docId } = task;\n\n  const url = src.url ? getUrlProp(src.url) : null;\n  const data = src.data ? getDataProp(src.data) : null;\n  const httpHeaders = src.httpHeaders || null;\n  const withCredentials = src.withCredentials === true;\n  const password = src.password ?? null;\n  const rangeTransport =\n    src.range instanceof PDFDataRangeTransport ? src.range : null;\n  const rangeChunkSize =\n    Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0\n      ? src.rangeChunkSize\n      : DEFAULT_RANGE_CHUNK_SIZE;\n  let worker = src.worker instanceof PDFWorker ? src.worker : null;\n  const verbosity = src.verbosity;\n  // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n  // URLs anyway. We want to avoid sending them to the worker-thread, since\n  // they contain the *entire* PDF document and can thus be arbitrarily long.\n  const docBaseUrl =\n    typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl)\n      ? src.docBaseUrl\n      : null;\n  const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n  const cMapPacked = src.cMapPacked !== false;\n  const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n  const standardFontDataUrl =\n    typeof src.standardFontDataUrl === \"string\"\n      ? src.standardFontDataUrl\n      : null;\n  const StandardFontDataFactory =\n    src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n  const ignoreErrors = src.stopAtErrors !== true;\n  const maxImageSize =\n    Number.isInteger(src.maxImageSize) && src.maxImageSize > -1\n      ? src.maxImageSize\n      : -1;\n  const isEvalSupported = src.isEvalSupported !== false;\n  const isOffscreenCanvasSupported =\n    typeof src.isOffscreenCanvasSupported === \"boolean\"\n      ? src.isOffscreenCanvasSupported\n      : !isNodeJS;\n  const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes)\n    ? src.canvasMaxAreaInBytes\n    : -1;\n  const disableFontFace =\n    typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n  const fontExtraProperties = src.fontExtraProperties === true;\n  const enableXfa = src.enableXfa === true;\n  const ownerDocument = src.ownerDocument || globalThis.document;\n  const disableRange = src.disableRange === true;\n  const disableStream = src.disableStream === true;\n  const disableAutoFetch = src.disableAutoFetch === true;\n  const pdfBug = src.pdfBug === true;\n\n  // Parameters whose default values depend on other parameters.\n  const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n  const useSystemFonts =\n    typeof src.useSystemFonts === \"boolean\"\n      ? src.useSystemFonts\n      : !isNodeJS && !disableFontFace;\n  const useWorkerFetch =\n    typeof src.useWorkerFetch === \"boolean\"\n      ? src.useWorkerFetch\n      : (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        (CMapReaderFactory === DOMCMapReaderFactory &&\n          StandardFontDataFactory === DOMStandardFontDataFactory &&\n          cMapUrl &&\n          standardFontDataUrl &&\n          isValidFetchUrl(cMapUrl, document.baseURI) &&\n          isValidFetchUrl(standardFontDataUrl, document.baseURI));\n  const canvasFactory =\n    src.canvasFactory || new DefaultCanvasFactory({ ownerDocument });\n  const filterFactory =\n    src.filterFactory || new DefaultFilterFactory({ docId, ownerDocument });\n\n  // Parameters only intended for development/testing purposes.\n  const styleElement =\n    typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")\n      ? src.styleElement\n      : null;\n\n  // Set the main-thread verbosity level.\n  setVerbosityLevel(verbosity);\n\n  // Ensure that the various factories can be initialized, when necessary,\n  // since the user may provide *custom* ones.\n  const transportFactory = {\n    canvasFactory,\n    filterFactory,\n  };\n  if (!useWorkerFetch) {\n    transportFactory.cMapReaderFactory = new CMapReaderFactory({\n      baseUrl: cMapUrl,\n      isCompressed: cMapPacked,\n    });\n    transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n      baseUrl: standardFontDataUrl,\n    });\n  }\n\n  if (!worker) {\n    const workerParams = {\n      verbosity,\n      port: GlobalWorkerOptions.workerPort,\n    };\n    // Worker was not provided -- creating and owning our own. If message port\n    // is specified in global worker options, using it.\n    worker = workerParams.port\n      ? PDFWorker.fromPort(workerParams)\n      : new PDFWorker(workerParams);\n    task._worker = worker;\n  }\n\n  const fetchDocParams = {\n    docId,\n    apiVersion:\n      typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n        ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n        : null,\n    data,\n    password,\n    disableAutoFetch,\n    rangeChunkSize,\n    length,\n    docBaseUrl,\n    enableXfa,\n    evaluatorOptions: {\n      maxImageSize,\n      disableFontFace,\n      ignoreErrors,\n      isEvalSupported,\n      isOffscreenCanvasSupported,\n      canvasMaxAreaInBytes,\n      fontExtraProperties,\n      useSystemFonts,\n      cMapUrl: useWorkerFetch ? cMapUrl : null,\n      standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null,\n    },\n  };\n  const transportParams = {\n    ignoreErrors,\n    isEvalSupported,\n    disableFontFace,\n    fontExtraProperties,\n    enableXfa,\n    ownerDocument,\n    disableAutoFetch,\n    pdfBug,\n    styleElement,\n  };\n\n  worker.promise\n    .then(function () {\n      if (task.destroyed) {\n        throw new Error(\"Loading aborted\");\n      }\n\n      const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n      const networkStreamPromise = new Promise(function (resolve) {\n        let networkStream;\n        if (rangeTransport) {\n          networkStream = new PDFDataTransportStream(\n            {\n              length,\n              initialData: rangeTransport.initialData,\n              progressiveDone: rangeTransport.progressiveDone,\n              contentDispositionFilename:\n                rangeTransport.contentDispositionFilename,\n              disableRange,\n              disableStream,\n            },\n            rangeTransport\n          );\n        } else if (!data) {\n          if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n            throw new Error(\"Not implemented: createPDFNetworkStream\");\n          }\n          const createPDFNetworkStream = params => {\n            if (\n              typeof PDFJSDev !== \"undefined\" &&\n              PDFJSDev.test(\"GENERIC\") &&\n              isNodeJS\n            ) {\n              return new PDFNodeStream(params);\n            }\n            return isValidFetchUrl(params.url)\n              ? new PDFFetchStream(params)\n              : new PDFNetworkStream(params);\n          };\n\n          networkStream = createPDFNetworkStream({\n            url,\n            length,\n            httpHeaders,\n            withCredentials,\n            rangeChunkSize,\n            disableRange,\n            disableStream,\n          });\n        }\n        resolve(networkStream);\n      });\n\n      return Promise.all([workerIdPromise, networkStreamPromise]).then(\n        function ([workerId, networkStream]) {\n          if (task.destroyed) {\n            throw new Error(\"Loading aborted\");\n          }\n\n          const messageHandler = new MessageHandler(\n            docId,\n            workerId,\n            worker.port\n          );\n          const transport = new WorkerTransport(\n            messageHandler,\n            task,\n            networkStream,\n            transportParams,\n            transportFactory\n          );\n          task._transport = transport;\n          messageHandler.send(\"Ready\", null);\n        }\n      );\n    })\n    .catch(task._capability.reject);\n\n  return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @returns {Promise<string>} A promise that is resolved when the worker ID of\n *   the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source) {\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n  const workerId = await worker.messageHandler.sendWithPromise(\n    \"GetDocRequest\",\n    source,\n    source.data ? [source.data.buffer] : null\n  );\n\n  if (worker.destroyed) {\n    throw new Error(\"Worker was destroyed\");\n  }\n  return workerId;\n}\n\nfunction getUrlProp(val) {\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n    return null; // The 'url' is unused with `PDFDataRangeTransport`.\n  }\n  if (val instanceof URL) {\n    return val.href;\n  }\n  try {\n    // The full path is required in the 'url' field.\n    return new URL(val, window.location).href;\n  } catch {\n    if (\n      typeof PDFJSDev !== \"undefined\" &&\n      PDFJSDev.test(\"GENERIC\") &&\n      isNodeJS &&\n      typeof val === \"string\"\n    ) {\n      return val; // Use the url as-is in Node.js environments.\n    }\n  }\n  throw new Error(\n    \"Invalid PDF url data: \" +\n      \"either string or URL-object is expected in the url property.\"\n  );\n}\n\nfunction getDataProp(val) {\n  // Converting string or array-like data to Uint8Array.\n  if (\n    typeof PDFJSDev !== \"undefined\" &&\n    PDFJSDev.test(\"GENERIC\") &&\n    isNodeJS &&\n    typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n    val instanceof Buffer // eslint-disable-line no-undef\n  ) {\n    throw new Error(\n      \"Please provide binary data as `Uint8Array`, rather than `Buffer`.\"\n    );\n  }\n  if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n    // Use the data as-is when it's already a Uint8Array that completely\n    // \"utilizes\" its underlying ArrayBuffer, to prevent any possible\n    // issues when transferring it to the worker-thread.\n    return val;\n  }\n  if (typeof val === \"string\") {\n    return stringToBytes(val);\n  }\n  if ((typeof val === \"object\" && !isNaN(val?.length)) || isArrayBuffer(val)) {\n    return new Uint8Array(val);\n  }\n  throw new Error(\n    \"Invalid PDF binary data: either TypedArray, \" +\n      \"string, or array-like object is expected in the data property.\"\n  );\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n  static #docId = 0;\n\n  constructor() {\n    this._capability = new PromiseCapability();\n    this._transport = null;\n    this._worker = null;\n\n    /**\n     * Unique identifier for the document loading task.\n     * @type {string}\n     */\n    this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n\n    /**\n     * Whether the loading task is destroyed or not.\n     * @type {boolean}\n     */\n    this.destroyed = false;\n\n    /**\n     * Callback to request a password if a wrong or no password was provided.\n     * The callback receives two parameters: a function that should be called\n     * with the new password, and a reason (see {@link PasswordResponses}).\n     * @type {function}\n     */\n    this.onPassword = null;\n\n    /**\n     * Callback to be able to monitor the loading progress of the PDF file\n     * (necessary to implement e.g. a loading bar).\n     * The callback receives an {@link OnProgressParameters} argument.\n     * @type {function}\n     */\n    this.onProgress = null;\n  }\n\n  /**\n   * Promise for document loading task completion.\n   * @type {Promise<PDFDocumentProxy>}\n   */\n  get promise() {\n    return this._capability.promise;\n  }\n\n  /**\n   * Abort all network requests and destroy the worker.\n   * @returns {Promise<void>} A promise that is resolved when destruction is\n   *   completed.\n   */\n  async destroy() {\n    this.destroyed = true;\n    try {\n      if (this._worker?.port) {\n        this._worker._pendingDestroy = true;\n      }\n      await this._transport?.destroy();\n    } catch (ex) {\n      if (this._worker?.port) {\n        delete this._worker._pendingDestroy;\n      }\n      throw ex;\n    }\n\n    this._transport = null;\n    if (this._worker) {\n      this._worker.destroy();\n      this._worker = null;\n    }\n  }\n}\n\n/**\n * Abstract class to support range requests file loading.\n *\n * NOTE: The TypedArrays passed to the constructor and relevant methods below\n * will generally be transferred to the worker-thread. This will help reduce\n * main-thread memory usage, however it will take ownership of the TypedArrays.\n */\nclass PDFDataRangeTransport {\n  /**\n   * @param {number} length\n   * @param {Uint8Array|null} initialData\n   * @param {boolean} [progressiveDone]\n   * @param {string} [contentDispositionFilename]\n   */\n  constructor(\n    length,\n    initialData,\n    progressiveDone = false,\n    contentDispositionFilename = null\n  ) {\n    this.length = length;\n    this.initialData = initialData;\n    this.progressiveDone = progressiveDone;\n    this.contentDispositionFilename = contentDispositionFilename;\n\n    this._rangeListeners = [];\n    this._progressListeners = [];\n    this._progressiveReadListeners = [];\n    this._progressiveDoneListeners = [];\n    this._readyCapability = new PromiseCapability();\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  /**\n   * @param {function} listener\n   */\n  addProgressiveDoneListener(listener) {\n    this._progressiveDoneListeners.push(listener);\n  }\n\n  /**\n   * @param {number} begin\n   * @param {Uint8Array|null} chunk\n   */\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  /**\n   * @param {number} loaded\n   * @param {number|undefined} total\n   */\n  onDataProgress(loaded, total) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressListeners) {\n        listener(loaded, total);\n      }\n    });\n  }\n\n  /**\n   * @param {Uint8Array|null} chunk\n   */\n  onDataProgressiveRead(chunk) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveReadListeners) {\n        listener(chunk);\n      }\n    });\n  }\n\n  onDataProgressiveDone() {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveDoneListeners) {\n        listener();\n      }\n    });\n  }\n\n  transportReady() {\n    this._readyCapability.resolve();\n  }\n\n  /**\n   * @param {number} begin\n   * @param {number} end\n   */\n  requestDataRange(begin, end) {\n    unreachable(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n  }\n\n  abort() {}\n}\n\n/**\n * Proxy to a `PDFDocument` in the worker thread.\n */\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport) {\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n      Object.defineProperty(this, \"getJavaScript\", {\n        value: () => {\n          deprecated(\n            \"`PDFDocumentProxy.getJavaScript`, \" +\n              \"please use `PDFDocumentProxy.getJSActions` instead.\"\n          );\n          return this.getJSActions().then(js => {\n            if (!js) {\n              return js;\n            }\n            const jsArr = [];\n            for (const name in js) {\n              jsArr.push(...js[name]);\n            }\n            return jsArr;\n          });\n        },\n      });\n    }\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"getXFADatasets\", {\n        value: () => {\n          return this._transport.getXFADatasets();\n        },\n      });\n      Object.defineProperty(this, \"getXRefPrevValue\", {\n        value: () => {\n          return this._transport.getXRefPrevValue();\n        },\n      });\n      Object.defineProperty(this, \"getAnnotArray\", {\n        value: pageIndex => {\n          return this._transport.getAnnotArray(pageIndex);\n        },\n      });\n    }\n  }\n\n  /**\n   * @type {AnnotationStorage} Storage for annotation data in forms.\n   */\n  get annotationStorage() {\n    return this._transport.annotationStorage;\n  }\n\n  /**\n   * @type {Object} The filter factory instance.\n   */\n  get filterFactory() {\n    return this._transport.filterFactory;\n  }\n\n  /**\n   * @type {number} Total number of pages in the PDF file.\n   */\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n\n  /**\n   * @type {Array<string, string|null>} A (not guaranteed to be) unique ID to\n   *   identify the PDF document.\n   *   NOTE: The first element will always be defined for all PDF documents,\n   *   whereas the second element is only defined for *modified* PDF documents.\n   */\n  get fingerprints() {\n    return this._pdfInfo.fingerprints;\n  }\n\n  /**\n   * @type {boolean} True if only XFA form.\n   */\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n  }\n\n  /**\n   * NOTE: This is (mostly) intended to support printing of XFA forms.\n   *\n   * @type {Object | null} An object representing a HTML tree structure\n   *   to render the XFA, or `null` when no XFA form exists.\n   */\n  get allXfaHtml() {\n    return this._transport._htmlForXfa;\n  }\n\n  /**\n   * @param {number} pageNumber - The page number to get. The first page is 1.\n   * @returns {Promise<PDFPageProxy>} A promise that is resolved with\n   *   a {@link PDFPageProxy} object.\n   */\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n\n  /**\n   * @param {RefProxy} ref - The page reference.\n   * @returns {Promise<number>} A promise that is resolved with the page index,\n   *   starting from zero, that is associated with the reference.\n   */\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n\n  /**\n   * @returns {Promise<Object<string, Array<any>>>} A promise that is resolved\n   *   with a mapping from named destinations to references.\n   *\n   * This can be slow for large documents. Use `getDestination` instead.\n   */\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n\n  /**\n   * @param {string} id - The named destination to get.\n   * @returns {Promise<Array<any> | null>} A promise that is resolved with all\n   *   information of the given named destination, or `null` when the named\n   *   destination is not present in the PDF file.\n   */\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with\n   *   an {Array} containing the page labels that correspond to the page\n   *   indexes, or `null` when no page labels are present in the PDF file.\n   */\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page layout name.\n   */\n  getPageLayout() {\n    return this._transport.getPageLayout();\n  }\n\n  /**\n   * @returns {Promise<string>} A promise that is resolved with a {string}\n   *   containing the page mode name.\n   */\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with an\n   *   {Object} containing the viewer preferences, or `null` when no viewer\n   *   preferences are present in the PDF file.\n   */\n  getViewerPreferences() {\n    return this._transport.getViewerPreferences();\n  }\n\n  /**\n   * @returns {Promise<any | null>} A promise that is resolved with an {Array}\n   *   containing the destination, or `null` when no open action is present\n   *   in the PDF.\n   */\n  getOpenAction() {\n    return this._transport.getOpenAction();\n  }\n\n  /**\n   * @returns {Promise<any>} A promise that is resolved with a lookup table\n   *   for mapping named attachments to their content.\n   */\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with\n   *   an {Object} with the JavaScript actions:\n   *     - from the name tree.\n   *     - from A or AA entries in the catalog dictionary.\n   *   , or `null` if no JavaScript exists.\n   */\n  getJSActions() {\n    return this._transport.getDocJSActions();\n  }\n\n  /**\n   * @typedef {Object} OutlineNode\n   * @property {string} title\n   * @property {boolean} bold\n   * @property {boolean} italic\n   * @property {Uint8ClampedArray} color - The color in RGB format to use for\n   *   display purposes.\n   * @property {string | Array<any> | null} dest\n   * @property {string | null} url\n   * @property {string | undefined} unsafeUrl\n   * @property {boolean | undefined} newWindow\n   * @property {number | undefined} count\n   * @property {Array<OutlineNode>} items\n   */\n\n  /**\n   * @returns {Promise<Array<OutlineNode>>} A promise that is resolved with an\n   *   {Array} that is a tree outline (if it has one) of the PDF file.\n   */\n  getOutline() {\n    return this._transport.getOutline();\n  }\n\n  /**\n   * @returns {Promise<OptionalContentConfig>} A promise that is resolved with\n   *   an {@link OptionalContentConfig} that contains all the optional content\n   *   groups (assuming that the document has any).\n   */\n  getOptionalContentConfig() {\n    return this._transport.getOptionalContentConfig();\n  }\n\n  /**\n   * @returns {Promise<Array<number> | null>} A promise that is resolved with\n   *   an {Array} that contains the permission flags for the PDF document, or\n   *   `null` when no permissions are present in the PDF file.\n   */\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n\n  /**\n   * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n   *   resolved with an {Object} that has `info` and `metadata` properties.\n   *   `info` is an {Object} filled with anything available in the information\n   *   dictionary and similarly `metadata` is a {Metadata} object with\n   *   information from the metadata section of the PDF.\n   */\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n\n  /**\n   * @typedef {Object} MarkInfo\n   * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n   * @property {boolean} Marked\n   * @property {boolean} UserProperties\n   * @property {boolean} Suspects\n   */\n\n  /**\n   * @returns {Promise<MarkInfo | null>} A promise that is resolved with\n   *   a {MarkInfo} object that contains the MarkInfo flags for the PDF\n   *   document, or `null` when no MarkInfo values are present in the PDF file.\n   */\n  getMarkInfo() {\n    return this._transport.getMarkInfo();\n  }\n\n  /**\n   * @returns {Promise<Uint8Array>} A promise that is resolved with a\n   *   {Uint8Array} containing the raw data of the PDF document.\n   */\n  getData() {\n    return this._transport.getData();\n  }\n\n  /**\n   * @returns {Promise<Uint8Array>} A promise that is resolved with a\n   *   {Uint8Array} containing the full data of the saved document.\n   */\n  saveDocument() {\n    return this._transport.saveDocument();\n  }\n\n  /**\n   * @returns {Promise<{ length: number }>} A promise that is resolved when the\n   *   document's data is loaded. It is resolved with an {Object} that contains\n   *   the `length` property that indicates size of the PDF data in bytes.\n   */\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n\n  /**\n   * Cleans up resources allocated by the document on both the main and worker\n   * threads.\n   *\n   * NOTE: Do not, under any circumstances, call this method when rendering is\n   * currently ongoing since that may lead to rendering errors.\n   *\n   * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n   *   NOTE: This will increase persistent memory usage, hence don't use this\n   *   option unless absolutely necessary. The default value is `false`.\n   * @returns {Promise} A promise that is resolved when clean-up has finished.\n   */\n  cleanup(keepLoadedFonts = false) {\n    return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n  }\n\n  /**\n   * Destroys the current document instance and terminates the worker.\n   */\n  destroy() {\n    return this.loadingTask.destroy();\n  }\n\n  /**\n   * @type {DocumentInitParameters} A subset of the current\n   *   {DocumentInitParameters}, which are needed in the viewer.\n   */\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n\n  /**\n   * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n   */\n  get loadingTask() {\n    return this._transport.loadingTask;\n  }\n\n  /**\n   * @returns {Promise<Object<string, Array<Object>> | null>} A promise that is\n   *   resolved with an {Object} containing /AcroForm field data for the JS\n   *   sandbox, or `null` when no field data is present in the PDF file.\n   */\n  getFieldObjects() {\n    return this._transport.getFieldObjects();\n  }\n\n  /**\n   * @returns {Promise<boolean>} A promise that is resolved with `true`\n   *   if some /AcroForm fields have JavaScript actions.\n   */\n  hasJSActions() {\n    return this._transport.hasJSActions();\n  }\n\n  /**\n   * @returns {Promise<Array<string> | null>} A promise that is resolved with an\n   *   {Array<string>} containing IDs of annotations that have a calculation\n   *   action, or `null` when no such annotations are present in the PDF file.\n   */\n  getCalculationOrderIds() {\n    return this._transport.getCalculationOrderIds();\n  }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} [rotation] - The desired rotation, in degrees, of\n *   the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be\n *   flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} [includeMarkedContent] - When true include marked\n *   content items in the items array of TextContent. The default is `false`.\n * @property {boolean} [disableNormalization] - When true the text is *not*\n *   normalized in the worker-thread. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array<TextItem | TextMarkedContent>} items - Array of\n *   {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n *   items are included when includeMarkedContent is true.\n * @property {Object<string, TextStyle>} styles - {@link TextStyle} objects,\n *   indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - Text content.\n * @property {string} dir - Text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {Array<any>} transform - Transformation matrix.\n * @property {number} width - Width in device space.\n * @property {number} height - Height in device space.\n * @property {string} fontName - Font name used by PDF.js for converted font.\n * @property {boolean} hasEOL - Indicating if the text content is followed by a\n *   line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n *   'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n *   'beginMarkedContentProps'.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - Font ascent.\n * @property {number} descent - Font descent.\n * @property {boolean} vertical - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n *   can be 'display' (viewable annotations), 'print' (printable annotations),\n *   or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {CanvasRenderingContext2D} canvasContext - A 2D context of a DOM\n *   Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n *   the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n *   or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n *   onto the canvas, for annotations with appearance-data; the values from\n *   {@link AnnotationMode} should be used. The following values are supported:\n *    - `AnnotationMode.DISABLE`, which disables all annotations.\n *    - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n *      it also depends on the `intent`-option, see above).\n *    - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n *      interactive form elements (those will be rendered in the display layer).\n *    - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n *      (as above) but where interactive form elements are updated with data\n *      from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n *   The default value is `AnnotationMode.ENABLE`.\n * @property {Array<any>} [transform] - Additional transform, applied just\n *   before viewport transform.\n * @property {CanvasGradient | CanvasPattern | string} [background] - Background\n *   to use for the canvas.\n *   Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n *   <color> value, a `CanvasGradient` object (a linear or radial gradient) or\n *   a `CanvasPattern` object (a repetitive image). The default value is\n *   'rgb(255,255,255)'.\n *\n *   NOTE: This option may be partially, or completely, ignored when the\n *   `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n *   with user defined ones in order to improve readability in high contrast\n *   mode.\n * @property {Promise<OptionalContentConfig>} [optionalContentConfigPromise] -\n *   A promise that should resolve with an {@link OptionalContentConfig}\n *   created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n *   the configuration will be fetched automatically with the default visibility\n *   states set.\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap] - Map some\n *   annotation ids with canvases used to render them.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n *   or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n *   in the operatorList, for annotations with appearance-data; the values from\n *   {@link AnnotationMode} should be used. The following values are supported:\n *    - `AnnotationMode.DISABLE`, which disables all annotations.\n *    - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n *      it also depends on the `intent`-option, see above).\n *    - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n *      interactive form elements (those will be rendered in the display layer).\n *    - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n *      (as above) but where interactive form elements are updated with data\n *      from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n *   The default value is `AnnotationMode.ENABLE`.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array<StructTreeNode | StructTreeContent>} children - Array of\n *   {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n *   elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array<number>} fnArray - Array containing the operator functions.\n * @property {Array<any>} argsArray - Array containing the arguments of the\n *   functions.\n */\n\n/**\n * Proxy to a `PDFPage` in the worker thread.\n */\nclass PDFPageProxy {\n  #delayedCleanupTimeout = null;\n\n  #pendingCleanup = false;\n\n  constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n    this._pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this._transport = transport;\n    this._stats = pdfBug ? new StatTimer() : null;\n    this._pdfBug = pdfBug;\n    /** @type {PDFObjects} */\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n\n    this._maybeCleanupAfterRender = false;\n    this._intentStates = new Map();\n    this.destroyed = false;\n  }\n\n  /**\n   * @type {number} Page number of the page. First page is 1.\n   */\n  get pageNumber() {\n    return this._pageIndex + 1;\n  }\n\n  /**\n   * @type {number} The number of degrees the page is rotated clockwise.\n   */\n  get rotate() {\n    return this._pageInfo.rotate;\n  }\n\n  /**\n   * @type {RefProxy | null} The reference that points to this page.\n   */\n  get ref() {\n    return this._pageInfo.ref;\n  }\n\n  /**\n   * @type {number} The default size of units in 1/72nds of an inch.\n   */\n  get userUnit() {\n    return this._pageInfo.userUnit;\n  }\n\n  /**\n   * @type {Array<number>} An array of the visible portion of the PDF page in\n   *   user space units [x1, y1, x2, y2].\n   */\n  get view() {\n    return this._pageInfo.view;\n  }\n\n  /**\n   * @param {GetViewportParameters} params - Viewport parameters.\n   * @returns {PageViewport} Contains 'width' and 'height' properties\n   *   along with transforms required for rendering.\n   */\n  getViewport({\n    scale,\n    rotation = this.rotate,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.view,\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * @param {GetAnnotationsParameters} params - Annotation parameters.\n   * @returns {Promise<Array<any>>} A promise that is resolved with an\n   *   {Array} of the annotation objects.\n   */\n  getAnnotations({ intent = \"display\" } = {}) {\n    const intentArgs = this._transport.getRenderingIntent(intent);\n\n    return this._transport.getAnnotations(\n      this._pageIndex,\n      intentArgs.renderingIntent\n    );\n  }\n\n  /**\n   * @returns {Promise<Object>} A promise that is resolved with an\n   *   {Object} with JS actions.\n   */\n  getJSActions() {\n    return this._transport.getPageJSActions(this._pageIndex);\n  }\n\n  /**\n   * @type {Object} The filter factory instance.\n   */\n  get filterFactory() {\n    return this._transport.filterFactory;\n  }\n\n  /**\n   * @type {boolean} True if only XFA form.\n   */\n  get isPureXfa() {\n    return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n  }\n\n  /**\n   * @returns {Promise<Object | null>} A promise that is resolved with\n   *   an {Object} with a fake DOM object (a tree structure where elements\n   *   are {Object} with a name, attributes (class, style, ...), value and\n   *   children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n   */\n  async getXfa() {\n    return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n  }\n\n  /**\n   * Begins the process of rendering a page to the desired context.\n   *\n   * @param {RenderParameters} params - Page render parameters.\n   * @returns {RenderTask} An object that contains a promise that is\n   *   resolved when the page finishes rendering.\n   */\n  render({\n    canvasContext,\n    viewport,\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n    transform = null,\n    background = null,\n    optionalContentConfigPromise = null,\n    annotationCanvasMap = null,\n    pageColors = null,\n    printAnnotationStorage = null,\n  }) {\n    this._stats?.time(\"Overall\");\n\n    const intentArgs = this._transport.getRenderingIntent(\n      intent,\n      annotationMode,\n      printAnnotationStorage\n    );\n    // If there was a pending destroy, cancel it so no cleanup happens during\n    // this call to render...\n    this.#pendingCleanup = false;\n    // ... and ensure that a delayed cleanup is always aborted.\n    this.#abortDelayedCleanup();\n\n    if (!optionalContentConfigPromise) {\n      optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n    }\n\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n\n    // Ensure that a pending `streamReader` cancel timeout is always aborted.\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n\n    const intentPrint = !!(\n      intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n    );\n\n    // If there's no displayReadyCapability yet, then the operatorList\n    // was never requested before. Make the request and create the promise.\n    if (!intentState.displayReadyCapability) {\n      intentState.displayReadyCapability = new PromiseCapability();\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null,\n      };\n\n      this._stats?.time(\"Page Request\");\n      this._pumpOperatorList(intentArgs);\n    }\n\n    const complete = error => {\n      intentState.renderTasks.delete(internalRenderTask);\n\n      // Attempt to reduce memory usage during *printing*, by always running\n      // cleanup immediately once rendering has finished.\n      if (this._maybeCleanupAfterRender || intentPrint) {\n        this.#pendingCleanup = true;\n      }\n      this.#tryCleanup(/* delayed = */ !intentPrint);\n\n      if (error) {\n        internalRenderTask.capability.reject(error);\n\n        this._abortOperatorList({\n          intentState,\n          reason: error instanceof Error ? error : new Error(error),\n        });\n      } else {\n        internalRenderTask.capability.resolve();\n      }\n\n      this._stats?.timeEnd(\"Rendering\");\n      this._stats?.timeEnd(\"Overall\");\n    };\n\n    const internalRenderTask = new InternalRenderTask({\n      callback: complete,\n      // Only include the required properties, and *not* the entire object.\n      params: {\n        canvasContext,\n        viewport,\n        transform,\n        background,\n      },\n      objs: this.objs,\n      commonObjs: this.commonObjs,\n      annotationCanvasMap,\n      operatorList: intentState.operatorList,\n      pageIndex: this._pageIndex,\n      canvasFactory: this._transport.canvasFactory,\n      filterFactory: this._transport.filterFactory,\n      useRequestAnimationFrame: !intentPrint,\n      pdfBug: this._pdfBug,\n      pageColors,\n    });\n\n    (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n    const renderTask = internalRenderTask.task;\n\n    Promise.all([\n      intentState.displayReadyCapability.promise,\n      optionalContentConfigPromise,\n    ])\n      .then(([transparency, optionalContentConfig]) => {\n        if (this.destroyed) {\n          complete();\n          return;\n        }\n        this._stats?.time(\"Rendering\");\n\n        internalRenderTask.initializeGraphics({\n          transparency,\n          optionalContentConfig,\n        });\n        internalRenderTask.operatorListChanged();\n      })\n      .catch(complete);\n\n    return renderTask;\n  }\n\n  /**\n   * @param {GetOperatorListParameters} params - Page getOperatorList\n   *   parameters.\n   * @returns {Promise<PDFOperatorList>} A promise resolved with an\n   *   {@link PDFOperatorList} object that represents the page's operator list.\n   */\n  getOperatorList({\n    intent = \"display\",\n    annotationMode = AnnotationMode.ENABLE,\n    printAnnotationStorage = null,\n  } = {}) {\n    if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n      throw new Error(\"Not implemented: getOperatorList\");\n    }\n    function operatorListChanged() {\n      if (intentState.operatorList.lastChunk) {\n        intentState.opListReadCapability.resolve(intentState.operatorList);\n\n        intentState.renderTasks.delete(opListTask);\n      }\n    }\n\n    const intentArgs = this._transport.getRenderingIntent(\n      intent,\n      annotationMode,\n      printAnnotationStorage,\n      /* isOpList = */ true\n    );\n    let intentState = this._intentStates.get(intentArgs.cacheKey);\n    if (!intentState) {\n      intentState = Object.create(null);\n      this._intentStates.set(intentArgs.cacheKey, intentState);\n    }\n    let opListTask;\n\n    if (!intentState.opListReadCapability) {\n      opListTask = Object.create(null);\n      opListTask.operatorListChanged = operatorListChanged;\n      intentState.opListReadCapability = new PromiseCapability();\n      (intentState.renderTasks ||= new Set()).add(opListTask);\n      intentState.operatorList = {\n        fnArray: [],\n        argsArray: [],\n        lastChunk: false,\n        separateAnnots: null,\n      };\n\n      this._stats?.time(\"Page Request\");\n      this._pumpOperatorList(intentArgs);\n    }\n    return intentState.opListReadCapability.promise;\n  }\n\n  /**\n   * NOTE: All occurrences of whitespace will be replaced by\n   * standard spaces (0x20).\n   *\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {ReadableStream} Stream for reading text content chunks.\n   */\n  streamTextContent({\n    includeMarkedContent = false,\n    disableNormalization = false,\n  } = {}) {\n    const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n    return this._transport.messageHandler.sendWithStream(\n      \"GetTextContent\",\n      {\n        pageIndex: this._pageIndex,\n        includeMarkedContent: includeMarkedContent === true,\n        disableNormalization: disableNormalization === true,\n      },\n      {\n        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n        size(textContent) {\n          return textContent.items.length;\n        },\n      }\n    );\n  }\n\n  /**\n   * NOTE: All occurrences of whitespace will be replaced by\n   * standard spaces (0x20).\n   *\n   * @param {getTextContentParameters} params - getTextContent parameters.\n   * @returns {Promise<TextContent>} A promise that is resolved with a\n   *   {@link TextContent} object that represents the page's text content.\n   */\n  getTextContent(params = {}) {\n    if (this._transport._htmlForXfa) {\n      // TODO: We need to revisit this once the XFA foreground patch lands and\n      // only do this for non-foreground XFA.\n      return this.getXfa().then(xfa => {\n        return XfaText.textContent(xfa);\n      });\n    }\n    const readableStream = this.streamTextContent(params);\n\n    return new Promise(function (resolve, reject) {\n      function pump() {\n        reader.read().then(function ({ value, done }) {\n          if (done) {\n            resolve(textContent);\n            return;\n          }\n          Object.assign(textContent.styles, value.styles);\n          textContent.items.push(...value.items);\n          pump();\n        }, reject);\n      }\n\n      const reader = readableStream.getReader();\n      const textContent = {\n        items: [],\n        styles: Object.create(null),\n      };\n      pump();\n    });\n  }\n\n  /**\n   * @returns {Promise<StructTreeNode>} A promise that is resolved with a\n   *   {@link StructTreeNode} object that represents the page's structure tree,\n   *   or `null` when no structure tree is present for the current page.\n   */\n  getStructTree() {\n    return this._transport.getStructTree(this._pageIndex);\n  }\n\n  /**\n   * Destroys the page object.\n   * @private\n   */\n  _destroy() {\n    this.destroyed = true;\n\n    const waitOn = [];\n    for (const intentState of this._intentStates.values()) {\n      this._abortOperatorList({\n        intentState,\n        reason: new Error(\"Page was destroyed.\"),\n        force: true,\n      });\n\n      if (intentState.opListReadCapability) {\n        // Avoid errors below, since the renderTasks are just stubs.\n        continue;\n      }\n      for (const internalRenderTask of intentState.renderTasks) {\n        waitOn.push(internalRenderTask.completed);\n        internalRenderTask.cancel();\n      }\n    }\n    this.objs.clear();\n    this.#pendingCleanup = false;\n    this.#abortDelayedCleanup();\n\n    return Promise.all(waitOn);\n  }\n\n  /**\n   * Cleans up resources allocated by the page.\n   *\n   * @param {boolean} [resetStats] - Reset page stats, if enabled.\n   *   The default value is `false`.\n   * @returns {boolean} Indicates if clean-up was successfully run.\n   */\n  cleanup(resetStats = false) {\n    this.#pendingCleanup = true;\n    const success = this.#tryCleanup(/* delayed = */ false);\n\n    if (resetStats && success) {\n      this._stats &&= new StatTimer();\n    }\n    return success;\n  }\n\n  /**\n   * Attempts to clean up if rendering is in a state where that's possible.\n   * @param {boolean} [delayed] - Delay the cleanup, to e.g. improve zooming\n   *   performance in documents with large images.\n   *   The default value is `false`.\n   * @returns {boolean} Indicates if clean-up was successfully run.\n   */\n  #tryCleanup(delayed = false) {\n    this.#abortDelayedCleanup();\n\n    if (!this.#pendingCleanup || this.destroyed) {\n      return false;\n    }\n    if (delayed) {\n      this.#delayedCleanupTimeout = setTimeout(() => {\n        this.#delayedCleanupTimeout = null;\n        this.#tryCleanup(/* delayed = */ false);\n      }, DELAYED_CLEANUP_TIMEOUT);\n\n      return false;\n    }\n    for (const { renderTasks, operatorList } of this._intentStates.values()) {\n      if (renderTasks.size > 0 || !operatorList.lastChunk) {\n        return false;\n      }\n    }\n    this._intentStates.clear();\n    this.objs.clear();\n    this.#pendingCleanup = false;\n    return true;\n  }\n\n  #abortDelayedCleanup() {\n    if (this.#delayedCleanupTimeout) {\n      clearTimeout(this.#delayedCleanupTimeout);\n      this.#delayedCleanupTimeout = null;\n    }\n  }\n\n  /**\n   * @private\n   */\n  _startRenderPage(transparency, cacheKey) {\n    const intentState = this._intentStates.get(cacheKey);\n    if (!intentState) {\n      return; // Rendering was cancelled.\n    }\n    this._stats?.timeEnd(\"Page Request\");\n\n    // TODO Refactor RenderPageRequest to separate rendering\n    // and operator list logic\n    intentState.displayReadyCapability?.resolve(transparency);\n  }\n\n  /**\n   * @private\n   */\n  _renderPageChunk(operatorListChunk, intentState) {\n    // Add the new chunk to the current operator list.\n    for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n      intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n      intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n    }\n    intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n    intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n    // Notify all the rendering tasks there are more operators to be consumed.\n    for (const internalRenderTask of intentState.renderTasks) {\n      internalRenderTask.operatorListChanged();\n    }\n\n    if (operatorListChunk.lastChunk) {\n      this.#tryCleanup(/* delayed = */ true);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _pumpOperatorList({\n    renderingIntent,\n    cacheKey,\n    annotationStorageSerializable,\n  }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        Number.isInteger(renderingIntent) && renderingIntent > 0,\n        '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n      );\n    }\n    const { map, transfers } = annotationStorageSerializable;\n\n    const readableStream = this._transport.messageHandler.sendWithStream(\n      \"GetOperatorList\",\n      {\n        pageIndex: this._pageIndex,\n        intent: renderingIntent,\n        cacheKey,\n        annotationStorage: map,\n      },\n      transfers\n    );\n    const reader = readableStream.getReader();\n\n    const intentState = this._intentStates.get(cacheKey);\n    intentState.streamReader = reader;\n\n    const pump = () => {\n      reader.read().then(\n        ({ value, done }) => {\n          if (done) {\n            intentState.streamReader = null;\n            return;\n          }\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          this._renderPageChunk(value, intentState);\n          pump();\n        },\n        reason => {\n          intentState.streamReader = null;\n\n          if (this._transport.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          if (intentState.operatorList) {\n            // Mark operator list as complete.\n            intentState.operatorList.lastChunk = true;\n\n            for (const internalRenderTask of intentState.renderTasks) {\n              internalRenderTask.operatorListChanged();\n            }\n            this.#tryCleanup(/* delayed = */ true);\n          }\n\n          if (intentState.displayReadyCapability) {\n            intentState.displayReadyCapability.reject(reason);\n          } else if (intentState.opListReadCapability) {\n            intentState.opListReadCapability.reject(reason);\n          } else {\n            throw reason;\n          }\n        }\n      );\n    };\n    pump();\n  }\n\n  /**\n   * @private\n   */\n  _abortOperatorList({ intentState, reason, force = false }) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        reason instanceof Error,\n        '_abortOperatorList: Expected valid \"reason\" argument.'\n      );\n    }\n\n    if (!intentState.streamReader) {\n      return;\n    }\n    // Ensure that a pending `streamReader` cancel timeout is always aborted.\n    if (intentState.streamReaderCancelTimeout) {\n      clearTimeout(intentState.streamReaderCancelTimeout);\n      intentState.streamReaderCancelTimeout = null;\n    }\n\n    if (!force) {\n      // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n      // multiple render() calls on the same canvas, won't break all rendering.\n      if (intentState.renderTasks.size > 0) {\n        return;\n      }\n      // Don't immediately abort parsing on the worker-thread when rendering is\n      // cancelled, since that will unnecessarily delay re-rendering when (for\n      // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n      if (reason instanceof RenderingCancelledException) {\n        let delay = RENDERING_CANCELLED_TIMEOUT;\n        if (reason.extraDelay > 0 && reason.extraDelay < /* ms = */ 1000) {\n          // Above, we prevent the total delay from becoming arbitrarily large.\n          delay += reason.extraDelay;\n        }\n\n        intentState.streamReaderCancelTimeout = setTimeout(() => {\n          intentState.streamReaderCancelTimeout = null;\n          this._abortOperatorList({ intentState, reason, force: true });\n        }, delay);\n        return;\n      }\n    }\n    intentState.streamReader\n      .cancel(new AbortException(reason.message))\n      .catch(() => {\n        // Avoid \"Uncaught promise\" messages in the console.\n      });\n    intentState.streamReader = null;\n\n    if (this._transport.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    // Remove the current `intentState`, since a cancelled `getOperatorList`\n    // call on the worker-thread cannot be re-started...\n    for (const [curCacheKey, curIntentState] of this._intentStates) {\n      if (curIntentState === intentState) {\n        this._intentStates.delete(curCacheKey);\n        break;\n      }\n    }\n    // ... and force clean-up to ensure that any old state is always removed.\n    this.cleanup();\n  }\n\n  /**\n   * @type {StatTimer | null} Returns page stats, if enabled; returns `null`\n   *   otherwise.\n   */\n  get stats() {\n    return this._stats;\n  }\n}\n\nclass LoopbackPort {\n  #listeners = new Set();\n\n  #deferred = Promise.resolve();\n\n  postMessage(obj, transfer) {\n    const event = {\n      data: structuredClone(\n        obj,\n        (typeof PDFJSDev === \"undefined\" ||\n          PDFJSDev.test(\"SKIP_BABEL || TESTING\")) &&\n          transfer\n          ? { transfer }\n          : null\n      ),\n    };\n\n    this.#deferred.then(() => {\n      for (const listener of this.#listeners) {\n        listener.call(this, event);\n      }\n    });\n  }\n\n  addEventListener(name, listener) {\n    this.#listeners.add(listener);\n  }\n\n  removeEventListener(name, listener) {\n    this.#listeners.delete(listener);\n  }\n\n  terminate() {\n    this.#listeners.clear();\n  }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Worker} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n *   the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n  isWorkerDisabled: false,\n  fallbackWorkerSrc: null,\n  fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n  // eslint-disable-next-line no-undef\n  if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n    // Workers aren't supported in Node.js, force-disabling them there.\n    PDFWorkerUtil.isWorkerDisabled = true;\n\n    PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n      ? \"../pdf.worker.js\"\n      : \"./pdf.worker.js\";\n  } else if (typeof document === \"object\") {\n    const pdfjsFilePath = document?.currentScript?.src;\n    if (pdfjsFilePath) {\n      PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n        /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n        \".worker$1$2\"\n      );\n    }\n  }\n\n  // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n  PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n    let base;\n    try {\n      base = new URL(baseUrl);\n      if (!base.origin || base.origin === \"null\") {\n        return false; // non-HTTP url\n      }\n    } catch {\n      return false;\n    }\n\n    const other = new URL(otherUrl, base);\n    return base.origin === other.origin;\n  };\n\n  PDFWorkerUtil.createCDNWrapper = function (url) {\n    // We will rely on blob URL's property to specify origin.\n    // We want this function to fail in case if createObjectURL or Blob do not\n    // exist or fail for some reason -- our Worker creation will fail anyway.\n    const wrapper = `importScripts(\"${url}\");`;\n    return URL.createObjectURL(new Blob([wrapper]));\n  };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n  static #workerPorts;\n\n  constructor({\n    name = null,\n    port = null,\n    verbosity = getVerbosityLevel(),\n  } = {}) {\n    this.name = name;\n    this.destroyed = false;\n    this.verbosity = verbosity;\n\n    this._readyCapability = new PromiseCapability();\n    this._port = null;\n    this._webWorker = null;\n    this._messageHandler = null;\n\n    if (\n      (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n      port\n    ) {\n      if (PDFWorker.#workerPorts?.has(port)) {\n        throw new Error(\"Cannot use more than one PDFWorker per port.\");\n      }\n      (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n      this._initializeFromPort(port);\n      return;\n    }\n    this._initialize();\n  }\n\n  /**\n   * Promise for worker initialization completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._readyCapability.promise;\n  }\n\n  /**\n   * The current `workerPort`, when it exists.\n   * @type {Worker}\n   */\n  get port() {\n    return this._port;\n  }\n\n  /**\n   * The current MessageHandler-instance.\n   * @type {MessageHandler}\n   */\n  get messageHandler() {\n    return this._messageHandler;\n  }\n\n  _initializeFromPort(port) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _initializeFromPort\");\n    }\n    this._port = port;\n    this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n    this._messageHandler.on(\"ready\", function () {\n      // Ignoring \"ready\" event -- MessageHandler should already be initialized\n      // and ready to accept messages.\n    });\n    this._readyCapability.resolve();\n    // Send global setting, e.g. verbosity level.\n    this._messageHandler.send(\"configure\", {\n      verbosity: this.verbosity,\n    });\n  }\n\n  _initialize() {\n    // If worker support isn't disabled explicit and the browser has worker\n    // support, create a new web worker and test if it/the browser fulfills\n    // all requirements to run parts of pdf.js in a web worker.\n    // Right now, the requirement is, that an Uint8Array is still an\n    // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n    if (\n      !PDFWorkerUtil.isWorkerDisabled &&\n      !PDFWorker._mainThreadWorkerMessageHandler\n    ) {\n      let { workerSrc } = PDFWorker;\n\n      try {\n        // Wraps workerSrc path into blob URL, if the former does not belong\n        // to the same origin.\n        if (\n          typeof PDFJSDev !== \"undefined\" &&\n          PDFJSDev.test(\"GENERIC\") &&\n          !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n        ) {\n          workerSrc = PDFWorkerUtil.createCDNWrapper(\n            new URL(workerSrc, window.location).href\n          );\n        }\n\n        const worker =\n          typeof PDFJSDev === \"undefined\" &&\n          !workerSrc.endsWith(\"/build/pdf.worker.js\")\n            ? new Worker(workerSrc, { type: \"module\" })\n            : new Worker(workerSrc);\n        const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n        const terminateEarly = () => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          messageHandler.destroy();\n          worker.terminate();\n          if (this.destroyed) {\n            this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n          } else {\n            // Fall back to fake worker if the termination is caused by an\n            // error (e.g. NetworkError / SecurityError).\n            this._setupFakeWorker();\n          }\n        };\n\n        const onWorkerError = () => {\n          if (!this._webWorker) {\n            // Worker failed to initialize due to an error. Clean up and fall\n            // back to the fake worker.\n            terminateEarly();\n          }\n        };\n        worker.addEventListener(\"error\", onWorkerError);\n\n        messageHandler.on(\"test\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          if (this.destroyed) {\n            terminateEarly();\n            return; // worker was destroyed\n          }\n          if (data) {\n            this._messageHandler = messageHandler;\n            this._port = worker;\n            this._webWorker = worker;\n\n            this._readyCapability.resolve();\n            // Send global setting, e.g. verbosity level.\n            messageHandler.send(\"configure\", {\n              verbosity: this.verbosity,\n            });\n          } else {\n            this._setupFakeWorker();\n            messageHandler.destroy();\n            worker.terminate();\n          }\n        });\n\n        messageHandler.on(\"ready\", data => {\n          worker.removeEventListener(\"error\", onWorkerError);\n          if (this.destroyed) {\n            terminateEarly();\n            return; // worker was destroyed\n          }\n          try {\n            sendTest();\n          } catch {\n            // We need fallback to a faked worker.\n            this._setupFakeWorker();\n          }\n        });\n\n        const sendTest = () => {\n          const testObj = new Uint8Array();\n          // Ensure that we can use `postMessage` transfers.\n          messageHandler.send(\"test\", testObj, [testObj.buffer]);\n        };\n\n        // It might take time for the worker to initialize. We will try to send\n        // the \"test\" message immediately, and once the \"ready\" message arrives.\n        // The worker shall process only the first received \"test\" message.\n        sendTest();\n        return;\n      } catch {\n        info(\"The worker has been disabled.\");\n      }\n    }\n    // Either workers are disabled, not supported or have thrown an exception.\n    // Thus, we fallback to a faked worker.\n    this._setupFakeWorker();\n  }\n\n  _setupFakeWorker() {\n    if (!PDFWorkerUtil.isWorkerDisabled) {\n      warn(\"Setting up fake worker.\");\n      PDFWorkerUtil.isWorkerDisabled = true;\n    }\n\n    PDFWorker._setupFakeWorkerGlobal\n      .then(WorkerMessageHandler => {\n        if (this.destroyed) {\n          this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n          return;\n        }\n        const port = new LoopbackPort();\n        this._port = port;\n\n        // All fake workers use the same port, making id unique.\n        const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n        // If the main thread is our worker, setup the handling for the\n        // messages -- the main thread sends to it self.\n        const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n        WorkerMessageHandler.setup(workerHandler, port);\n\n        const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n        this._messageHandler = messageHandler;\n        this._readyCapability.resolve();\n        // Send global setting, e.g. verbosity level.\n        messageHandler.send(\"configure\", {\n          verbosity: this.verbosity,\n        });\n      })\n      .catch(reason => {\n        this._readyCapability.reject(\n          new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n        );\n      });\n  }\n\n  /**\n   * Destroys the worker instance.\n   */\n  destroy() {\n    this.destroyed = true;\n    if (this._webWorker) {\n      // We need to terminate only web worker created resource.\n      this._webWorker.terminate();\n      this._webWorker = null;\n    }\n    PDFWorker.#workerPorts?.delete(this._port);\n    this._port = null;\n    if (this._messageHandler) {\n      this._messageHandler.destroy();\n      this._messageHandler = null;\n    }\n  }\n\n  /**\n   * @param {PDFWorkerParameters} params - The worker initialization parameters.\n   */\n  static fromPort(params) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: fromPort\");\n    }\n    if (!params?.port) {\n      throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n    }\n    const cachedPort = this.#workerPorts?.get(params.port);\n    if (cachedPort) {\n      if (cachedPort._pendingDestroy) {\n        throw new Error(\n          \"PDFWorker.fromPort - the worker is being destroyed.\\n\" +\n            \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\"\n        );\n      }\n      return cachedPort;\n    }\n    return new PDFWorker(params);\n  }\n\n  /**\n   * The current `workerSrc`, when it exists.\n   * @type {string}\n   */\n  static get workerSrc() {\n    if (GlobalWorkerOptions.workerSrc) {\n      return GlobalWorkerOptions.workerSrc;\n    }\n    if (\n      (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n      PDFWorkerUtil.fallbackWorkerSrc !== null\n    ) {\n      if (!isNodeJS) {\n        deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n      }\n      return PDFWorkerUtil.fallbackWorkerSrc;\n    }\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  static get _mainThreadWorkerMessageHandler() {\n    try {\n      return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n    } catch {\n      return null;\n    }\n  }\n\n  // Loads worker code into the main-thread.\n  static get _setupFakeWorkerGlobal() {\n    const loader = async () => {\n      const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n      if (mainWorkerMessageHandler) {\n        // The worker was already loaded using e.g. a `<script>` tag.\n        return mainWorkerMessageHandler;\n      }\n      if (typeof PDFJSDev === \"undefined\") {\n        const worker = await import(\"pdfjs/pdf.worker.js\");\n        return worker.WorkerMessageHandler;\n      }\n      if (\n        PDFJSDev.test(\"GENERIC\") &&\n        isNodeJS &&\n        // eslint-disable-next-line no-undef\n        typeof __non_webpack_require__ === \"function\"\n      ) {\n        // Since bundlers, such as Webpack, cannot be told to leave `require`\n        // statements alone we are thus forced to jump through hoops in order\n        // to prevent `Critical dependency: ...` warnings in third-party\n        // deployments of the built `pdf.js`/`pdf.worker.js` files; see\n        // https://github.com/webpack/webpack/issues/8826\n        //\n        // The following hack is based on the assumption that code running in\n        // Node.js won't ever be affected by e.g. Content Security Policies that\n        // prevent the use of `eval`. If that ever occurs, we should revert this\n        // to a normal `__non_webpack_require__` statement and simply document\n        // the Webpack warnings instead (telling users to ignore them).\n        //\n        // eslint-disable-next-line no-eval\n        const worker = eval(\"require\")(this.workerSrc);\n        return worker.WorkerMessageHandler;\n      }\n      await loadScript(this.workerSrc);\n      return window.pdfjsWorker.WorkerMessageHandler;\n    };\n\n    return shadow(this, \"_setupFakeWorkerGlobal\", loader());\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n  #methodPromises = new Map();\n\n  #pageCache = new Map();\n\n  #pagePromises = new Map();\n\n  #passwordCapability = null;\n\n  constructor(messageHandler, loadingTask, networkStream, params, factory) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader({\n      ownerDocument: params.ownerDocument,\n      styleElement: params.styleElement,\n    });\n    this._params = params;\n\n    this.canvasFactory = factory.canvasFactory;\n    this.filterFactory = factory.filterFactory;\n    this.cMapReaderFactory = factory.cMapReaderFactory;\n    this.standardFontDataFactory = factory.standardFontDataFactory;\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n    this.downloadInfoCapability = new PromiseCapability();\n\n    this.setupMessageHandler();\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"getXFADatasets\", {\n        value: () => {\n          return this.messageHandler.sendWithPromise(\"GetXFADatasets\", null);\n        },\n      });\n      Object.defineProperty(this, \"getXRefPrevValue\", {\n        value: () => {\n          return this.messageHandler.sendWithPromise(\"GetXRefPrevValue\", null);\n        },\n      });\n      Object.defineProperty(this, \"getAnnotArray\", {\n        value: pageIndex => {\n          return this.messageHandler.sendWithPromise(\"GetAnnotArray\", {\n            pageIndex,\n          });\n        },\n      });\n    }\n  }\n\n  #cacheSimpleMethod(name, data = null) {\n    const cachedPromise = this.#methodPromises.get(name);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler.sendWithPromise(name, data);\n\n    this.#methodPromises.set(name, promise);\n    return promise;\n  }\n\n  get annotationStorage() {\n    return shadow(this, \"annotationStorage\", new AnnotationStorage());\n  }\n\n  getRenderingIntent(\n    intent,\n    annotationMode = AnnotationMode.ENABLE,\n    printAnnotationStorage = null,\n    isOpList = false\n  ) {\n    let renderingIntent = RenderingIntentFlag.DISPLAY; // Default value.\n    let annotationStorageSerializable = SerializableEmpty;\n\n    switch (intent) {\n      case \"any\":\n        renderingIntent = RenderingIntentFlag.ANY;\n        break;\n      case \"display\":\n        break;\n      case \"print\":\n        renderingIntent = RenderingIntentFlag.PRINT;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid intent: ${intent}`);\n    }\n\n    switch (annotationMode) {\n      case AnnotationMode.DISABLE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_DISABLE;\n        break;\n      case AnnotationMode.ENABLE:\n        break;\n      case AnnotationMode.ENABLE_FORMS:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_FORMS;\n        break;\n      case AnnotationMode.ENABLE_STORAGE:\n        renderingIntent += RenderingIntentFlag.ANNOTATIONS_STORAGE;\n\n        const annotationStorage =\n          renderingIntent & RenderingIntentFlag.PRINT &&\n          printAnnotationStorage instanceof PrintAnnotationStorage\n            ? printAnnotationStorage\n            : this.annotationStorage;\n\n        annotationStorageSerializable = annotationStorage.serializable;\n        break;\n      default:\n        warn(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n    }\n\n    if (isOpList) {\n      renderingIntent += RenderingIntentFlag.OPLIST;\n    }\n\n    return {\n      renderingIntent,\n      cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n      annotationStorageSerializable,\n    };\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = new PromiseCapability();\n\n    this.#passwordCapability?.reject(\n      new Error(\"Worker was destroyed during onPassword callback\")\n    );\n\n    const waitOn = [];\n    // We need to wait for all renderings to be completed, e.g.\n    // timeout/rAF can take a long time.\n    for (const page of this.#pageCache.values()) {\n      waitOn.push(page._destroy());\n    }\n    this.#pageCache.clear();\n    this.#pagePromises.clear();\n    // Allow `AnnotationStorage`-related clean-up when destroying the document.\n    if (this.hasOwnProperty(\"annotationStorage\")) {\n      this.annotationStorage.resetModified();\n    }\n    // We also need to wait for the worker to finish its long running tasks.\n    const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n    waitOn.push(terminated);\n\n    Promise.all(waitOn).then(() => {\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n      this.#methodPromises.clear();\n      this.filterFactory.destroy();\n\n      this._networkStream?.cancelAllRequests(\n        new AbortException(\"Worker was terminated.\")\n      );\n\n      if (this.messageHandler) {\n        this.messageHandler.destroy();\n        this.messageHandler = null;\n      }\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n\n  setupMessageHandler() {\n    const { messageHandler, loadingTask } = this;\n\n    messageHandler.on(\"GetReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetReader - no `IPDFStream` instance available.\"\n      );\n      this._fullReader = this._networkStream.getFullReader();\n      this._fullReader.onProgress = evt => {\n        this._lastProgress = {\n          loaded: evt.loaded,\n          total: evt.total,\n        };\n      };\n      sink.onPull = () => {\n        this._fullReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              value instanceof ArrayBuffer,\n              \"GetReader - expected an ArrayBuffer.\"\n            );\n            // Enqueue data chunk into sink, and transfer it\n            // to other side as `Transferable` object.\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        this._fullReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"ReaderHeadersReady\", data => {\n      const headersCapability = new PromiseCapability();\n      const fullReader = this._fullReader;\n      fullReader.headersReady.then(() => {\n        // If stream or range are disabled, it's our only way to report\n        // loading progress.\n        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n          if (this._lastProgress) {\n            loadingTask.onProgress?.(this._lastProgress);\n          }\n          fullReader.onProgress = evt => {\n            loadingTask.onProgress?.({\n              loaded: evt.loaded,\n              total: evt.total,\n            });\n          };\n        }\n\n        headersCapability.resolve({\n          isStreamingSupported: fullReader.isStreamingSupported,\n          isRangeSupported: fullReader.isRangeSupported,\n          contentLength: fullReader.contentLength,\n        });\n      }, headersCapability.reject);\n\n      return headersCapability.promise;\n    });\n\n    messageHandler.on(\"GetRangeReader\", (data, sink) => {\n      assert(\n        this._networkStream,\n        \"GetRangeReader - no `IPDFStream` instance available.\"\n      );\n      const rangeReader = this._networkStream.getRangeReader(\n        data.begin,\n        data.end\n      );\n\n      // When streaming is enabled, it's possible that the data requested here\n      // has already been fetched via the `_fullRequestReader` implementation.\n      // However, given that the PDF data is loaded asynchronously on the\n      // main-thread and then sent via `postMessage` to the worker-thread,\n      // it may not have been available during parsing (hence the attempt to\n      // use range requests here).\n      //\n      // To avoid wasting time and resources here, we'll thus *not* dispatch\n      // range requests if the data was already loaded but has not been sent to\n      // the worker-thread yet (which will happen via the `_fullRequestReader`).\n      if (!rangeReader) {\n        sink.close();\n        return;\n      }\n\n      sink.onPull = () => {\n        rangeReader\n          .read()\n          .then(function ({ value, done }) {\n            if (done) {\n              sink.close();\n              return;\n            }\n            assert(\n              value instanceof ArrayBuffer,\n              \"GetRangeReader - expected an ArrayBuffer.\"\n            );\n            sink.enqueue(new Uint8Array(value), 1, [value]);\n          })\n          .catch(reason => {\n            sink.error(reason);\n          });\n      };\n\n      sink.onCancel = reason => {\n        rangeReader.cancel(reason);\n\n        sink.ready.catch(readyReason => {\n          if (this.destroyed) {\n            return; // Ignore any pending requests if the worker was terminated.\n          }\n          throw readyReason;\n        });\n      };\n    });\n\n    messageHandler.on(\"GetDoc\", ({ pdfInfo }) => {\n      this._numPages = pdfInfo.numPages;\n      this._htmlForXfa = pdfInfo.htmlForXfa;\n      delete pdfInfo.htmlForXfa;\n      loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n    });\n\n    messageHandler.on(\"DocException\", function (ex) {\n      let reason;\n      switch (ex.name) {\n        case \"PasswordException\":\n          reason = new PasswordException(ex.message, ex.code);\n          break;\n        case \"InvalidPDFException\":\n          reason = new InvalidPDFException(ex.message);\n          break;\n        case \"MissingPDFException\":\n          reason = new MissingPDFException(ex.message);\n          break;\n        case \"UnexpectedResponseException\":\n          reason = new UnexpectedResponseException(ex.message, ex.status);\n          break;\n        case \"UnknownErrorException\":\n          reason = new UnknownErrorException(ex.message, ex.details);\n          break;\n        default:\n          unreachable(\"DocException - expected a valid Error.\");\n      }\n      loadingTask._capability.reject(reason);\n    });\n\n    messageHandler.on(\"PasswordRequest\", exception => {\n      this.#passwordCapability = new PromiseCapability();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = password => {\n          if (password instanceof Error) {\n            this.#passwordCapability.reject(password);\n          } else {\n            this.#passwordCapability.resolve({ password });\n          }\n        };\n        try {\n          loadingTask.onPassword(updatePassword, exception.code);\n        } catch (ex) {\n          this.#passwordCapability.reject(ex);\n        }\n      } else {\n        this.#passwordCapability.reject(\n          new PasswordException(exception.message, exception.code)\n        );\n      }\n      return this.#passwordCapability.promise;\n    });\n\n    messageHandler.on(\"DataLoaded\", data => {\n      // For consistency: Ensure that progress is always reported when the\n      // entire PDF file has been loaded, regardless of how it was fetched.\n      loadingTask.onProgress?.({\n        loaded: data.length,\n        total: data.length,\n      });\n\n      this.downloadInfoCapability.resolve(data);\n    });\n\n    messageHandler.on(\"StartRenderPage\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.#pageCache.get(data.pageIndex);\n      page._startRenderPage(data.transparency, data.cacheKey);\n    });\n\n    messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      if (this.commonObjs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Font\":\n          const params = this._params;\n\n          if (\"error\" in exportedData) {\n            const exportedError = exportedData.error;\n            warn(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n\n          const inspectFont =\n            params.pdfBug && globalThis.FontInspector?.enabled\n              ? (font, url) => globalThis.FontInspector.fontAdded(font, url)\n              : null;\n          const font = new FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            inspectFont,\n          });\n\n          this.fontLoader\n            .bind(font)\n            .catch(reason => {\n              return messageHandler.sendWithPromise(\"FontFallback\", { id });\n            })\n            .finally(() => {\n              if (!params.fontExtraProperties && font.data) {\n                // Immediately release the `font.data` property once the font\n                // has been attached to the DOM, since it's no longer needed,\n                // rather than waiting for a `PDFDocumentProxy.cleanup` call.\n                // Since `font.data` could be very large, e.g. in some cases\n                // multiple megabytes, this will help reduce memory usage.\n                font.data = null;\n              }\n              this.commonObjs.resolve(id, font);\n            });\n          break;\n        case \"FontPath\":\n        case \"Image\":\n        case \"Pattern\":\n          this.commonObjs.resolve(id, exportedData);\n          break;\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n    });\n\n    messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n      if (this.destroyed) {\n        // Ignore any pending requests if the worker was terminated.\n        return;\n      }\n\n      const pageProxy = this.#pageCache.get(pageIndex);\n      if (pageProxy.objs.has(id)) {\n        return;\n      }\n\n      switch (type) {\n        case \"Image\":\n          pageProxy.objs.resolve(id, imageData);\n\n          // Heuristic that will allow us not to store large data.\n          if (imageData) {\n            let length;\n            if (imageData.bitmap) {\n              const { width, height } = imageData;\n              length = width * height * 4;\n            } else {\n              length = imageData.data?.length || 0;\n            }\n\n            if (length > MAX_IMAGE_SIZE_TO_CACHE) {\n              pageProxy._maybeCleanupAfterRender = true;\n            }\n          }\n          break;\n        case \"Pattern\":\n          pageProxy.objs.resolve(id, imageData);\n          break;\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n    });\n\n    messageHandler.on(\"DocProgress\", data => {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n      loadingTask.onProgress?.({\n        loaded: data.loaded,\n        total: data.total,\n      });\n    });\n\n    messageHandler.on(\"FetchBuiltInCMap\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n      if (!this.cMapReaderFactory) {\n        return Promise.reject(\n          new Error(\n            \"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"\n          )\n        );\n      }\n      return this.cMapReaderFactory.fetch(data);\n    });\n\n    messageHandler.on(\"FetchStandardFontData\", data => {\n      if (this.destroyed) {\n        return Promise.reject(new Error(\"Worker was destroyed.\"));\n      }\n      if (!this.standardFontDataFactory) {\n        return Promise.reject(\n          new Error(\n            \"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"\n          )\n        );\n      }\n      return this.standardFontDataFactory.fetch(data);\n    });\n  }\n\n  getData() {\n    return this.messageHandler.sendWithPromise(\"GetData\", null);\n  }\n\n  saveDocument() {\n    if (this.annotationStorage.size <= 0) {\n      warn(\n        \"saveDocument called while `annotationStorage` is empty, \" +\n          \"please use the getData-method instead.\"\n      );\n    }\n    const { map, transfers } = this.annotationStorage.serializable;\n\n    return this.messageHandler\n      .sendWithPromise(\n        \"SaveDocument\",\n        {\n          isPureXfa: !!this._htmlForXfa,\n          numPages: this._numPages,\n          annotationStorage: map,\n          filename: this._fullReader?.filename ?? null,\n        },\n        transfers\n      )\n      .finally(() => {\n        this.annotationStorage.resetModified();\n      });\n  }\n\n  getPage(pageNumber) {\n    if (\n      !Number.isInteger(pageNumber) ||\n      pageNumber <= 0 ||\n      pageNumber > this._numPages\n    ) {\n      return Promise.reject(new Error(\"Invalid page request.\"));\n    }\n\n    const pageIndex = pageNumber - 1,\n      cachedPromise = this.#pagePromises.get(pageIndex);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler\n      .sendWithPromise(\"GetPage\", {\n        pageIndex,\n      })\n      .then(pageInfo => {\n        if (this.destroyed) {\n          throw new Error(\"Transport destroyed\");\n        }\n        const page = new PDFPageProxy(\n          pageIndex,\n          pageInfo,\n          this,\n          this._params.pdfBug\n        );\n        this.#pageCache.set(pageIndex, page);\n        return page;\n      });\n    this.#pagePromises.set(pageIndex, promise);\n    return promise;\n  }\n\n  getPageIndex(ref) {\n    if (\n      typeof ref !== \"object\" ||\n      ref === null ||\n      !Number.isInteger(ref.num) ||\n      ref.num < 0 ||\n      !Number.isInteger(ref.gen) ||\n      ref.gen < 0\n    ) {\n      return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n      num: ref.num,\n      gen: ref.gen,\n    });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n      pageIndex,\n      intent,\n    });\n  }\n\n  getFieldObjects() {\n    return this.#cacheSimpleMethod(\"GetFieldObjects\");\n  }\n\n  hasJSActions() {\n    return this.#cacheSimpleMethod(\"HasJSActions\");\n  }\n\n  getCalculationOrderIds() {\n    return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n  }\n\n  getDestinations() {\n    return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n  }\n\n  getDestination(id) {\n    if (typeof id !== \"string\") {\n      return Promise.reject(new Error(\"Invalid destination request.\"));\n    }\n    return this.messageHandler.sendWithPromise(\"GetDestination\", {\n      id,\n    });\n  }\n\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n  }\n\n  getPageLayout() {\n    return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n  }\n\n  getPageMode() {\n    return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n  }\n\n  getViewerPreferences() {\n    return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n  }\n\n  getOpenAction() {\n    return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n  }\n\n  getAttachments() {\n    return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n  }\n\n  getDocJSActions() {\n    return this.#cacheSimpleMethod(\"GetDocJSActions\");\n  }\n\n  getPageJSActions(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n      pageIndex,\n    });\n  }\n\n  getStructTree(pageIndex) {\n    return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n      pageIndex,\n    });\n  }\n\n  getOutline() {\n    return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n  }\n\n  getOptionalContentConfig() {\n    return this.messageHandler\n      .sendWithPromise(\"GetOptionalContentConfig\", null)\n      .then(results => {\n        return new OptionalContentConfig(results);\n      });\n  }\n\n  getPermissions() {\n    return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n  }\n\n  getMetadata() {\n    const name = \"GetMetadata\",\n      cachedPromise = this.#methodPromises.get(name);\n    if (cachedPromise) {\n      return cachedPromise;\n    }\n    const promise = this.messageHandler\n      .sendWithPromise(name, null)\n      .then(results => {\n        return {\n          info: results[0],\n          metadata: results[1] ? new Metadata(results[1]) : null,\n          contentDispositionFilename: this._fullReader?.filename ?? null,\n          contentLength: this._fullReader?.contentLength ?? null,\n        };\n      });\n    this.#methodPromises.set(name, promise);\n    return promise;\n  }\n\n  getMarkInfo() {\n    return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n  }\n\n  async startCleanup(keepLoadedFonts = false) {\n    if (this.destroyed) {\n      return; // No need to manually clean-up when destruction has started.\n    }\n    await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n    for (const page of this.#pageCache.values()) {\n      const cleanupSuccessful = page.cleanup();\n\n      if (!cleanupSuccessful) {\n        throw new Error(\n          `startCleanup: Page ${page.pageNumber} is currently rendering.`\n        );\n      }\n    }\n    this.commonObjs.clear();\n    if (!keepLoadedFonts) {\n      this.fontLoader.clear();\n    }\n    this.#methodPromises.clear();\n    this.filterFactory.destroy(/* keepHCM = */ true);\n  }\n\n  get loadingParams() {\n    const { disableAutoFetch, enableXfa } = this._params;\n    return shadow(this, \"loadingParams\", {\n      disableAutoFetch,\n      enableXfa,\n    });\n  }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects for\n * fonts, images, rendering code, etc. These objects may get processed inside of\n * a worker. This class implements some basic methods to manage these objects.\n */\nclass PDFObjects {\n  #objs = Object.create(null);\n\n  /**\n   * Ensures there is an object defined for `objId`.\n   *\n   * @param {string} objId\n   * @returns {Object}\n   */\n  #ensureObj(objId) {\n    return (this.#objs[objId] ||= {\n      capability: new PromiseCapability(),\n      data: null,\n    });\n  }\n\n  /**\n   * If called *without* callback, this returns the data of `objId` but the\n   * object needs to be resolved. If it isn't, this method throws.\n   *\n   * If called *with* a callback, the callback is called with the data of the\n   * object once the object is resolved. That means, if you call this method\n   * and the object is already resolved, the callback gets called right away.\n   *\n   * @param {string} objId\n   * @param {function} [callback]\n   * @returns {any}\n   */\n  get(objId, callback = null) {\n    // If there is a callback, then the get can be async and the object is\n    // not required to be resolved right now.\n    if (callback) {\n      const obj = this.#ensureObj(objId);\n      obj.capability.promise.then(() => callback(obj.data));\n      return null;\n    }\n    // If there isn't a callback, the user expects to get the resolved data\n    // directly.\n    const obj = this.#objs[objId];\n    // If there isn't an object yet or the object isn't resolved, then the\n    // data isn't ready yet!\n    if (!obj?.capability.settled) {\n      throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n    }\n    return obj.data;\n  }\n\n  /**\n   * @param {string} objId\n   * @returns {boolean}\n   */\n  has(objId) {\n    const obj = this.#objs[objId];\n    return obj?.capability.settled || false;\n  }\n\n  /**\n   * Resolves the object `objId` with optional `data`.\n   *\n   * @param {string} objId\n   * @param {any} [data]\n   */\n  resolve(objId, data = null) {\n    const obj = this.#ensureObj(objId);\n    obj.data = data;\n    obj.capability.resolve();\n  }\n\n  clear() {\n    for (const objId in this.#objs) {\n      const { data } = this.#objs[objId];\n      data?.bitmap?.close(); // Release any `ImageBitmap` data.\n    }\n    this.#objs = Object.create(null);\n  }\n}\n\n/**\n * Allows controlling of the rendering tasks.\n */\nclass RenderTask {\n  #internalRenderTask = null;\n\n  constructor(internalRenderTask) {\n    this.#internalRenderTask = internalRenderTask;\n\n    /**\n     * Callback for incremental rendering -- a function that will be called\n     * each time the rendering is paused.  To continue rendering call the\n     * function that is the first argument to the callback.\n     * @type {function}\n     */\n    this.onContinue = null;\n  }\n\n  /**\n   * Promise for rendering task completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this.#internalRenderTask.capability.promise;\n  }\n\n  /**\n   * Cancels the rendering task. If the task is currently rendering it will\n   * not be cancelled until graphics pauses with a timeout. The promise that\n   * this object extends will be rejected when cancelled.\n   *\n   * @param {number} [extraDelay]\n   */\n  cancel(extraDelay = 0) {\n    this.#internalRenderTask.cancel(/* error = */ null, extraDelay);\n  }\n\n  /**\n   * Whether form fields are rendered separately from the main operatorList.\n   * @type {boolean}\n   */\n  get separateAnnots() {\n    const { separateAnnots } = this.#internalRenderTask.operatorList;\n    if (!separateAnnots) {\n      return false;\n    }\n    const { annotationCanvasMap } = this.#internalRenderTask;\n    return (\n      separateAnnots.form ||\n      (separateAnnots.canvas && annotationCanvasMap?.size > 0)\n    );\n  }\n}\n\n/**\n * For internal use only.\n * @ignore\n */\nclass InternalRenderTask {\n  static #canvasInUse = new WeakSet();\n\n  constructor({\n    callback,\n    params,\n    objs,\n    commonObjs,\n    annotationCanvasMap,\n    operatorList,\n    pageIndex,\n    canvasFactory,\n    filterFactory,\n    useRequestAnimationFrame = false,\n    pdfBug = false,\n    pageColors = null,\n  }) {\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this._pageIndex = pageIndex;\n    this.canvasFactory = canvasFactory;\n    this.filterFactory = filterFactory;\n    this._pdfBug = pdfBug;\n    this.pageColors = pageColors;\n\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this._useRequestAnimationFrame =\n      useRequestAnimationFrame === true && typeof window !== \"undefined\";\n    this.cancelled = false;\n    this.capability = new PromiseCapability();\n    this.task = new RenderTask(this);\n    // caching this-bound methods\n    this._cancelBound = this.cancel.bind(this);\n    this._continueBound = this._continue.bind(this);\n    this._scheduleNextBound = this._scheduleNext.bind(this);\n    this._nextBound = this._next.bind(this);\n    this._canvas = params.canvasContext.canvas;\n  }\n\n  get completed() {\n    return this.capability.promise.catch(function () {\n      // Ignoring errors, since we only want to know when rendering is\n      // no longer pending.\n    });\n  }\n\n  initializeGraphics({ transparency = false, optionalContentConfig }) {\n    if (this.cancelled) {\n      return;\n    }\n    if (this._canvas) {\n      if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n        throw new Error(\n          \"Cannot use the same canvas during multiple render() operations. \" +\n            \"Use different canvas or ensure previous operations were \" +\n            \"cancelled or completed.\"\n        );\n      }\n      InternalRenderTask.#canvasInUse.add(this._canvas);\n    }\n\n    if (this._pdfBug && globalThis.StepperManager?.enabled) {\n      this.stepper = globalThis.StepperManager.create(this._pageIndex);\n      this.stepper.init(this.operatorList);\n      this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n    }\n    const { canvasContext, viewport, transform, background } = this.params;\n\n    this.gfx = new CanvasGraphics(\n      canvasContext,\n      this.commonObjs,\n      this.objs,\n      this.canvasFactory,\n      this.filterFactory,\n      { optionalContentConfig },\n      this.annotationCanvasMap,\n      this.pageColors\n    );\n    this.gfx.beginDrawing({\n      transform,\n      viewport,\n      transparency,\n      background,\n    });\n    this.operatorListIdx = 0;\n    this.graphicsReady = true;\n    this.graphicsReadyCallback?.();\n  }\n\n  cancel(error = null, extraDelay = 0) {\n    this.running = false;\n    this.cancelled = true;\n    this.gfx?.endDrawing();\n    InternalRenderTask.#canvasInUse.delete(this._canvas);\n\n    this.callback(\n      error ||\n        new RenderingCancelledException(\n          `Rendering cancelled, page ${this._pageIndex + 1}`,\n          extraDelay\n        )\n    );\n  }\n\n  operatorListChanged() {\n    if (!this.graphicsReady) {\n      this.graphicsReadyCallback ||= this._continueBound;\n      return;\n    }\n    this.stepper?.updateOperatorList(this.operatorList);\n\n    if (this.running) {\n      return;\n    }\n    this._continue();\n  }\n\n  _continue() {\n    this.running = true;\n    if (this.cancelled) {\n      return;\n    }\n    if (this.task.onContinue) {\n      this.task.onContinue(this._scheduleNextBound);\n    } else {\n      this._scheduleNext();\n    }\n  }\n\n  _scheduleNext() {\n    if (this._useRequestAnimationFrame) {\n      window.requestAnimationFrame(() => {\n        this._nextBound().catch(this._cancelBound);\n      });\n    } else {\n      Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n    }\n  }\n\n  async _next() {\n    if (this.cancelled) {\n      return;\n    }\n    this.operatorListIdx = this.gfx.executeOperatorList(\n      this.operatorList,\n      this.operatorListIdx,\n      this._continueBound,\n      this.stepper\n    );\n    if (this.operatorListIdx === this.operatorList.argsArray.length) {\n      this.running = false;\n      if (this.operatorList.lastChunk) {\n        this.gfx.endDrawing();\n        InternalRenderTask.#canvasInUse.delete(this._canvas);\n\n        this.callback();\n      }\n    }\n  }\n}\n\n/** @type {string} */\nconst version =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : null;\n/** @type {string} */\nconst build =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : null;\n\nexport {\n  build,\n  DefaultCanvasFactory,\n  DefaultCMapReaderFactory,\n  DefaultFilterFactory,\n  DefaultStandardFontDataFactory,\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFDocumentLoadingTask,\n  PDFDocumentProxy,\n  PDFPageProxy,\n  PDFWorker,\n  PDFWorkerUtil,\n  RenderTask,\n  SVGGraphics,\n  version,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap, unreachable } from \"../shared/util.js\";\nimport { AnnotationEditor } from \"./editor/editor.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\n\nconst SerializableEmpty = Object.freeze({\n  map: null,\n  hash: \"\",\n  transfers: undefined,\n});\n\n/**\n * Key/value storage for annotation data in forms.\n */\nclass AnnotationStorage {\n  #modified = false;\n\n  #storage = new Map();\n\n  constructor() {\n    // Callbacks to signal when the modification state is set or reset.\n    // This is used by the viewer to only bind on `beforeunload` if forms\n    // are actually edited to prevent doing so unconditionally since that\n    // can have undesirable effects.\n    this.onSetModified = null;\n    this.onResetModified = null;\n    this.onAnnotationEditor = null;\n  }\n\n  /**\n   * Get the value for a given key if it exists, or return the default value.\n   * @param {string} key\n   * @param {Object} defaultValue\n   * @returns {Object}\n   */\n  getValue(key, defaultValue) {\n    const value = this.#storage.get(key);\n    if (value === undefined) {\n      return defaultValue;\n    }\n\n    return Object.assign(defaultValue, value);\n  }\n\n  /**\n   * Get the value for a given key.\n   * @param {string} key\n   * @returns {Object}\n   */\n  getRawValue(key) {\n    return this.#storage.get(key);\n  }\n\n  /**\n   * Remove a value from the storage.\n   * @param {string} key\n   */\n  remove(key) {\n    this.#storage.delete(key);\n\n    if (this.#storage.size === 0) {\n      this.resetModified();\n    }\n\n    if (typeof this.onAnnotationEditor === \"function\") {\n      for (const value of this.#storage.values()) {\n        if (value instanceof AnnotationEditor) {\n          return;\n        }\n      }\n      this.onAnnotationEditor(null);\n    }\n  }\n\n  /**\n   * Set the value for a given key\n   * @param {string} key\n   * @param {Object} value\n   */\n  setValue(key, value) {\n    const obj = this.#storage.get(key);\n    let modified = false;\n    if (obj !== undefined) {\n      for (const [entry, val] of Object.entries(value)) {\n        if (obj[entry] !== val) {\n          modified = true;\n          obj[entry] = val;\n        }\n      }\n    } else {\n      modified = true;\n      this.#storage.set(key, value);\n    }\n    if (modified) {\n      this.#setModified();\n    }\n\n    if (\n      value instanceof AnnotationEditor &&\n      typeof this.onAnnotationEditor === \"function\"\n    ) {\n      this.onAnnotationEditor(value.constructor._type);\n    }\n  }\n\n  /**\n   * Check if the storage contains the given key.\n   * @param {string} key\n   * @returns {boolean}\n   */\n  has(key) {\n    return this.#storage.has(key);\n  }\n\n  /**\n   * @returns {Object | null}\n   */\n  getAll() {\n    return this.#storage.size > 0 ? objectFromMap(this.#storage) : null;\n  }\n\n  /**\n   * @param {Object} obj\n   */\n  setAll(obj) {\n    for (const [key, val] of Object.entries(obj)) {\n      this.setValue(key, val);\n    }\n  }\n\n  get size() {\n    return this.#storage.size;\n  }\n\n  #setModified() {\n    if (!this.#modified) {\n      this.#modified = true;\n      if (typeof this.onSetModified === \"function\") {\n        this.onSetModified();\n      }\n    }\n  }\n\n  resetModified() {\n    if (this.#modified) {\n      this.#modified = false;\n      if (typeof this.onResetModified === \"function\") {\n        this.onResetModified();\n      }\n    }\n  }\n\n  /**\n   * @returns {PrintAnnotationStorage}\n   */\n  get print() {\n    return new PrintAnnotationStorage(this);\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get serializable() {\n    if (this.#storage.size === 0) {\n      return SerializableEmpty;\n    }\n    const map = new Map(),\n      hash = new MurmurHash3_64(),\n      transfers = [];\n    const context = Object.create(null);\n    let hasBitmap = false;\n\n    for (const [key, val] of this.#storage) {\n      const serialized =\n        val instanceof AnnotationEditor\n          ? val.serialize(/* isForCopying = */ false, context)\n          : val;\n      if (serialized) {\n        map.set(key, serialized);\n\n        hash.update(`${key}:${JSON.stringify(serialized)}`);\n        hasBitmap ||= !!serialized.bitmap;\n      }\n    }\n\n    if (hasBitmap) {\n      // We must transfer the bitmap data separately, since it can be changed\n      // during serialization with SVG images.\n      for (const value of map.values()) {\n        if (value.bitmap) {\n          transfers.push(value.bitmap);\n        }\n      }\n    }\n\n    return map.size > 0\n      ? { map, hash: hash.hexdigest(), transfers }\n      : SerializableEmpty;\n  }\n}\n\n/**\n * A special `AnnotationStorage` for use during printing, where the serializable\n * data is *frozen* upon initialization, to prevent scripting from modifying its\n * contents. (Necessary since printing is triggered synchronously in browsers.)\n */\nclass PrintAnnotationStorage extends AnnotationStorage {\n  #serializable;\n\n  constructor(parent) {\n    super();\n    const { map, hash, transfers } = parent.serializable;\n    // Create a *copy* of the data, since Objects are passed by reference in JS.\n    const clone = structuredClone(\n      map,\n      (typeof PDFJSDev === \"undefined\" ||\n        PDFJSDev.test(\"SKIP_BABEL || TESTING\")) &&\n        transfers\n        ? { transfer: transfers }\n        : null\n    );\n    this.#serializable = { map: clone, hash, transfers };\n  }\n\n  /**\n   * @returns {PrintAnnotationStorage}\n   */\n  // eslint-disable-next-line getter-return\n  get print() {\n    unreachable(\"Should not call PrintAnnotationStorage.print\");\n  }\n\n  /**\n   * PLEASE NOTE: Only intended for usage within the API itself.\n   * @ignore\n   */\n  get serializable() {\n    return this.#serializable;\n  }\n}\n\nexport { AnnotationStorage, PrintAnnotationStorage, SerializableEmpty };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./tools.js\").AnnotationEditorUIManager} AnnotationEditorUIManager */\n\nimport { bindEvents, ColorManager } from \"./tools.js\";\nimport { FeatureTest, shadow, unreachable } from \"../../shared/util.js\";\nimport { noContextMenu } from \"../display_utils.js\";\n\n/**\n * @typedef {Object} AnnotationEditorParameters\n * @property {AnnotationEditorUIManager} uiManager - the global manager\n * @property {AnnotationEditorLayer} parent - the layer containing this editor\n * @property {string} id - editor id\n * @property {number} x - x-coordinate\n * @property {number} y - y-coordinate\n */\n\n/**\n * Base class for editors.\n */\nclass AnnotationEditor {\n  #altText = \"\";\n\n  #altTextDecorative = false;\n\n  #altTextButton = null;\n\n  #altTextTooltip = null;\n\n  #altTextTooltipTimeout = null;\n\n  #keepAspectRatio = false;\n\n  #resizersDiv = null;\n\n  #boundFocusin = this.focusin.bind(this);\n\n  #boundFocusout = this.focusout.bind(this);\n\n  #hasBeenClicked = false;\n\n  #isEditing = false;\n\n  #isInEditMode = false;\n\n  _initialOptions = Object.create(null);\n\n  _uiManager = null;\n\n  _focusEventsAllowed = true;\n\n  _l10nPromise = null;\n\n  #isDraggable = false;\n\n  #zIndex = AnnotationEditor._zIndex++;\n\n  static _borderLineWidth = -1;\n\n  static _colorManager = new ColorManager();\n\n  static _zIndex = 1;\n\n  // When one of the dimensions of an editor is smaller than this value, the\n  // button to edit the alt text is visually moved outside of the editor.\n  static SMALL_EDITOR_SIZE = 0;\n\n  /**\n   * @param {AnnotationEditorParameters} parameters\n   */\n  constructor(parameters) {\n    if (this.constructor === AnnotationEditor) {\n      unreachable(\"Cannot initialize AnnotationEditor.\");\n    }\n\n    this.parent = parameters.parent;\n    this.id = parameters.id;\n    this.width = this.height = null;\n    this.pageIndex = parameters.parent.pageIndex;\n    this.name = parameters.name;\n    this.div = null;\n    this._uiManager = parameters.uiManager;\n    this.annotationElementId = null;\n    this._willKeepAspectRatio = false;\n    this._initialOptions.isCentered = parameters.isCentered;\n    this._structTreeParentId = null;\n\n    const {\n      rotation,\n      rawDims: { pageWidth, pageHeight, pageX, pageY },\n    } = this.parent.viewport;\n\n    this.rotation = rotation;\n    this.pageRotation =\n      (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n    this.pageDimensions = [pageWidth, pageHeight];\n    this.pageTranslation = [pageX, pageY];\n\n    const [width, height] = this.parentDimensions;\n    this.x = parameters.x / width;\n    this.y = parameters.y / height;\n\n    this.isAttachedToDOM = false;\n    this.deleted = false;\n  }\n\n  get editorType() {\n    return Object.getPrototypeOf(this).constructor._type;\n  }\n\n  static get _defaultLineColor() {\n    return shadow(\n      this,\n      \"_defaultLineColor\",\n      this._colorManager.getHexCode(\"CanvasText\")\n    );\n  }\n\n  static deleteAnnotationElement(editor) {\n    const fakeEditor = new FakeEditor({\n      id: editor.parent.getNextId(),\n      parent: editor.parent,\n      uiManager: editor._uiManager,\n    });\n    fakeEditor.annotationElementId = editor.annotationElementId;\n    fakeEditor.deleted = true;\n    fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n  }\n\n  /**\n   * Initialize the l10n stuff for this type of editor.\n   * @param {Object} l10n\n   */\n  static initialize(l10n, options = null) {\n    AnnotationEditor._l10nPromise ||= new Map(\n      [\n        \"editor_alt_text_button_label\",\n        \"editor_alt_text_edit_button_label\",\n        \"editor_alt_text_decorative_tooltip\",\n      ].map(str => [str, l10n.get(str)])\n    );\n    if (options?.strings) {\n      for (const str of options.strings) {\n        AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n      }\n    }\n    if (AnnotationEditor._borderLineWidth !== -1) {\n      return;\n    }\n    const style = getComputedStyle(document.documentElement);\n    AnnotationEditor._borderLineWidth =\n      parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n  }\n\n  /**\n   * Update the default parameters for this type of editor.\n   * @param {number} _type\n   * @param {*} _value\n   */\n  static updateDefaultParams(_type, _value) {}\n\n  /**\n   * Get the default properties to set in the UI for this type of editor.\n   * @returns {Array}\n   */\n  static get defaultPropertiesToUpdate() {\n    return [];\n  }\n\n  /**\n   * Check if this kind of editor is able to handle the given mime type for\n   * pasting.\n   * @param {string} mime\n   * @returns {boolean}\n   */\n  static isHandlingMimeForPasting(mime) {\n    return false;\n  }\n\n  /**\n   * Extract the data from the clipboard item and delegate the creation of the\n   * editor to the parent.\n   * @param {DataTransferItem} item\n   * @param {AnnotationEditorLayer} parent\n   */\n  static paste(item, parent) {\n    unreachable(\"Not implemented\");\n  }\n\n  /**\n   * Get the properties to update in the UI for this editor.\n   * @returns {Array}\n   */\n  get propertiesToUpdate() {\n    return [];\n  }\n\n  get _isDraggable() {\n    return this.#isDraggable;\n  }\n\n  set _isDraggable(value) {\n    this.#isDraggable = value;\n    this.div?.classList.toggle(\"draggable\", value);\n  }\n\n  center() {\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    switch (this.parentRotation) {\n      case 90:\n        this.x -= (this.height * pageHeight) / (pageWidth * 2);\n        this.y += (this.width * pageWidth) / (pageHeight * 2);\n        break;\n      case 180:\n        this.x += this.width / 2;\n        this.y += this.height / 2;\n        break;\n      case 270:\n        this.x += (this.height * pageHeight) / (pageWidth * 2);\n        this.y -= (this.width * pageWidth) / (pageHeight * 2);\n        break;\n      default:\n        this.x -= this.width / 2;\n        this.y -= this.height / 2;\n        break;\n    }\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Add some commands into the CommandManager (undo/redo stuff).\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this._uiManager.addCommands(params);\n  }\n\n  get currentLayer() {\n    return this._uiManager.currentLayer;\n  }\n\n  /**\n   * This editor will be behind the others.\n   */\n  setInBackground() {\n    this.div.style.zIndex = 0;\n  }\n\n  /**\n   * This editor will be in the foreground.\n   */\n  setInForeground() {\n    this.div.style.zIndex = this.#zIndex;\n  }\n\n  setParent(parent) {\n    if (parent !== null) {\n      this.pageIndex = parent.pageIndex;\n      this.pageDimensions = parent.pageDimensions;\n    }\n    this.parent = parent;\n  }\n\n  /**\n   * onfocus callback.\n   */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    if (!this.#hasBeenClicked) {\n      this.parent.setSelected(this);\n    } else {\n      this.#hasBeenClicked = false;\n    }\n  }\n\n  /**\n   * onblur callback.\n   * @param {FocusEvent} event\n   */\n  focusout(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n\n    if (!this.isAttachedToDOM) {\n      return;\n    }\n\n    // In case of focusout, the relatedTarget is the element which\n    // is grabbing the focus.\n    // So if the related target is an element under the div for this\n    // editor, then the editor isn't unactive.\n    const target = event.relatedTarget;\n    if (target?.closest(`#${this.id}`)) {\n      return;\n    }\n\n    event.preventDefault();\n\n    if (!this.parent?.isMultipleSelection) {\n      this.commitOrRemove();\n    }\n  }\n\n  commitOrRemove() {\n    if (this.isEmpty()) {\n      this.remove();\n    } else {\n      this.commit();\n    }\n  }\n\n  /**\n   * Commit the data contained in this editor.\n   */\n  commit() {\n    this.addToAnnotationStorage();\n  }\n\n  addToAnnotationStorage() {\n    this._uiManager.addToAnnotationStorage(this);\n  }\n\n  /**\n   * Set the editor position within its parent.\n   * @param {number} x\n   * @param {number} y\n   * @param {number} tx - x-translation in screen coordinates.\n   * @param {number} ty - y-translation in screen coordinates.\n   */\n  setAt(x, y, tx, ty) {\n    const [width, height] = this.parentDimensions;\n    [tx, ty] = this.screenToPageTranslation(tx, ty);\n\n    this.x = (x + tx) / width;\n    this.y = (y + ty) / height;\n\n    this.fixAndSetPosition();\n  }\n\n  #translate([width, height], x, y) {\n    [x, y] = this.screenToPageTranslation(x, y);\n\n    this.x += x / width;\n    this.y += y / height;\n\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Translate the editor position within its parent.\n   * @param {number} x - x-translation in screen coordinates.\n   * @param {number} y - y-translation in screen coordinates.\n   */\n  translate(x, y) {\n    this.#translate(this.parentDimensions, x, y);\n  }\n\n  /**\n   * Translate the editor position within its page and adjust the scroll\n   * in order to have the editor in the view.\n   * @param {number} x - x-translation in page coordinates.\n   * @param {number} y - y-translation in page coordinates.\n   */\n  translateInPage(x, y) {\n    this.#translate(this.pageDimensions, x, y);\n    this.div.scrollIntoView({ block: \"nearest\" });\n  }\n\n  drag(tx, ty) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.x += tx / parentWidth;\n    this.y += ty / parentHeight;\n    if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n      // It's possible to not have a parent: for example, when the user is\n      // dragging all the selected editors but this one on a page which has been\n      // destroyed.\n      // It's why we need to check for it. In such a situation, it isn't really\n      // a problem to not find a new parent: it's something which is related to\n      // what the user is seeing, hence it depends on how pages are layed out.\n\n      // The element will be outside of its parent so change the parent.\n      const { x, y } = this.div.getBoundingClientRect();\n      if (this.parent.findNewParent(this, x, y)) {\n        this.x -= Math.floor(this.x);\n        this.y -= Math.floor(this.y);\n      }\n    }\n\n    // The editor can be moved wherever the user wants, so we don't need to fix\n    // the position: it'll be done when the user will release the mouse button.\n\n    let { x, y } = this;\n    const [bx, by] = this.#getBaseTranslation();\n    x += bx;\n    y += by;\n\n    this.div.style.left = `${(100 * x).toFixed(2)}%`;\n    this.div.style.top = `${(100 * y).toFixed(2)}%`;\n    this.div.scrollIntoView({ block: \"nearest\" });\n  }\n\n  #getBaseTranslation() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const { _borderLineWidth } = AnnotationEditor;\n    const x = _borderLineWidth / parentWidth;\n    const y = _borderLineWidth / parentHeight;\n    switch (this.rotation) {\n      case 90:\n        return [-x, y];\n      case 180:\n        return [x, y];\n      case 270:\n        return [x, -y];\n      default:\n        return [-x, -y];\n    }\n  }\n\n  fixAndSetPosition() {\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    let { x, y, width, height } = this;\n    width *= pageWidth;\n    height *= pageHeight;\n    x *= pageWidth;\n    y *= pageHeight;\n\n    switch (this.rotation) {\n      case 0:\n        x = Math.max(0, Math.min(pageWidth - width, x));\n        y = Math.max(0, Math.min(pageHeight - height, y));\n        break;\n      case 90:\n        x = Math.max(0, Math.min(pageWidth - height, x));\n        y = Math.min(pageHeight, Math.max(width, y));\n        break;\n      case 180:\n        x = Math.min(pageWidth, Math.max(width, x));\n        y = Math.min(pageHeight, Math.max(height, y));\n        break;\n      case 270:\n        x = Math.min(pageWidth, Math.max(height, x));\n        y = Math.max(0, Math.min(pageHeight - width, y));\n        break;\n    }\n\n    this.x = x /= pageWidth;\n    this.y = y /= pageHeight;\n\n    const [bx, by] = this.#getBaseTranslation();\n    x += bx;\n    y += by;\n\n    const { style } = this.div;\n    style.left = `${(100 * x).toFixed(2)}%`;\n    style.top = `${(100 * y).toFixed(2)}%`;\n\n    this.moveInDOM();\n  }\n\n  static #rotatePoint(x, y, angle) {\n    switch (angle) {\n      case 90:\n        return [y, -x];\n      case 180:\n        return [-x, -y];\n      case 270:\n        return [-y, x];\n      default:\n        return [x, y];\n    }\n  }\n\n  /**\n   * Convert a screen translation into a page one.\n   * @param {number} x\n   * @param {number} y\n   */\n  screenToPageTranslation(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n  }\n\n  /**\n   * Convert a page translation into a screen one.\n   * @param {number} x\n   * @param {number} y\n   */\n  pageTranslationToScreen(x, y) {\n    return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n  }\n\n  #getRotationMatrix(rotation) {\n    switch (rotation) {\n      case 90: {\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n      }\n      case 180:\n        return [-1, 0, 0, -1];\n      case 270: {\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n      }\n      default:\n        return [1, 0, 0, 1];\n    }\n  }\n\n  get parentScale() {\n    return this._uiManager.viewParameters.realScale;\n  }\n\n  get parentRotation() {\n    return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n  }\n\n  get parentDimensions() {\n    const {\n      parentScale,\n      pageDimensions: [pageWidth, pageHeight],\n    } = this;\n    const scaledWidth = pageWidth * parentScale;\n    const scaledHeight = pageHeight * parentScale;\n    return FeatureTest.isCSSRoundSupported\n      ? [Math.round(scaledWidth), Math.round(scaledHeight)]\n      : [scaledWidth, scaledHeight];\n  }\n\n  /**\n   * Set the dimensions of this editor.\n   * @param {number} width\n   * @param {number} height\n   */\n  setDims(width, height) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.div.style.width = `${((100 * width) / parentWidth).toFixed(2)}%`;\n    if (!this.#keepAspectRatio) {\n      this.div.style.height = `${((100 * height) / parentHeight).toFixed(2)}%`;\n    }\n    this.#altTextButton?.classList.toggle(\n      \"small\",\n      width < AnnotationEditor.SMALL_EDITOR_SIZE ||\n        height < AnnotationEditor.SMALL_EDITOR_SIZE\n    );\n  }\n\n  fixDims() {\n    const { style } = this.div;\n    const { height, width } = style;\n    const widthPercent = width.endsWith(\"%\");\n    const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n    if (widthPercent && heightPercent) {\n      return;\n    }\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    if (!widthPercent) {\n      style.width = `${((100 * parseFloat(width)) / parentWidth).toFixed(2)}%`;\n    }\n    if (!this.#keepAspectRatio && !heightPercent) {\n      style.height = `${((100 * parseFloat(height)) / parentHeight).toFixed(\n        2\n      )}%`;\n    }\n  }\n\n  /**\n   * Get the translation used to position this editor when it's created.\n   * @returns {Array<number>}\n   */\n  getInitialTranslation() {\n    return [0, 0];\n  }\n\n  #createResizers() {\n    if (this.#resizersDiv) {\n      return;\n    }\n    this.#resizersDiv = document.createElement(\"div\");\n    this.#resizersDiv.classList.add(\"resizers\");\n    const classes = [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"];\n    if (!this._willKeepAspectRatio) {\n      classes.push(\"topMiddle\", \"middleRight\", \"bottomMiddle\", \"middleLeft\");\n    }\n    for (const name of classes) {\n      const div = document.createElement(\"div\");\n      this.#resizersDiv.append(div);\n      div.classList.add(\"resizer\", name);\n      div.addEventListener(\n        \"pointerdown\",\n        this.#resizerPointerdown.bind(this, name)\n      );\n      div.addEventListener(\"contextmenu\", noContextMenu);\n    }\n    this.div.prepend(this.#resizersDiv);\n  }\n\n  #resizerPointerdown(name, event) {\n    event.preventDefault();\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      return;\n    }\n\n    const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n    const savedDraggable = this._isDraggable;\n    this._isDraggable = false;\n    const pointerMoveOptions = { passive: true, capture: true };\n    window.addEventListener(\n      \"pointermove\",\n      boundResizerPointermove,\n      pointerMoveOptions\n    );\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const savedParentCursor = this.parent.div.style.cursor;\n    const savedCursor = this.div.style.cursor;\n    this.div.style.cursor = this.parent.div.style.cursor =\n      window.getComputedStyle(event.target).cursor;\n\n    const pointerUpCallback = () => {\n      this._isDraggable = savedDraggable;\n      window.removeEventListener(\"pointerup\", pointerUpCallback);\n      window.removeEventListener(\"blur\", pointerUpCallback);\n      window.removeEventListener(\n        \"pointermove\",\n        boundResizerPointermove,\n        pointerMoveOptions\n      );\n      this.parent.div.style.cursor = savedParentCursor;\n      this.div.style.cursor = savedCursor;\n\n      const newX = this.x;\n      const newY = this.y;\n      const newWidth = this.width;\n      const newHeight = this.height;\n      if (\n        newX === savedX &&\n        newY === savedY &&\n        newWidth === savedWidth &&\n        newHeight === savedHeight\n      ) {\n        return;\n      }\n\n      this.addCommands({\n        cmd: () => {\n          this.width = newWidth;\n          this.height = newHeight;\n          this.x = newX;\n          this.y = newY;\n          const [parentWidth, parentHeight] = this.parentDimensions;\n          this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n          this.fixAndSetPosition();\n        },\n        undo: () => {\n          this.width = savedWidth;\n          this.height = savedHeight;\n          this.x = savedX;\n          this.y = savedY;\n          const [parentWidth, parentHeight] = this.parentDimensions;\n          this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n          this.fixAndSetPosition();\n        },\n        mustExec: true,\n      });\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback);\n    // If the user switches to another window (with alt+tab), then we end the\n    // resize session.\n    window.addEventListener(\"blur\", pointerUpCallback);\n  }\n\n  #resizerPointermove(name, event) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const savedX = this.x;\n    const savedY = this.y;\n    const savedWidth = this.width;\n    const savedHeight = this.height;\n    const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n    const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n\n    // 10000 because we multiply by 100 and use toFixed(2) in fixAndSetPosition.\n    // Without rounding, the positions of the corners other than the top left\n    // one can be slightly wrong.\n    const round = x => Math.round(x * 10000) / 10000;\n    const rotationMatrix = this.#getRotationMatrix(this.rotation);\n    const transf = (x, y) => [\n      rotationMatrix[0] * x + rotationMatrix[2] * y,\n      rotationMatrix[1] * x + rotationMatrix[3] * y,\n    ];\n    const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n    const invTransf = (x, y) => [\n      invRotationMatrix[0] * x + invRotationMatrix[2] * y,\n      invRotationMatrix[1] * x + invRotationMatrix[3] * y,\n    ];\n    let getPoint;\n    let getOpposite;\n    let isDiagonal = false;\n    let isHorizontal = false;\n\n    switch (name) {\n      case \"topLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, 0];\n        getOpposite = (w, h) => [w, h];\n        break;\n      case \"topMiddle\":\n        getPoint = (w, h) => [w / 2, 0];\n        getOpposite = (w, h) => [w / 2, h];\n        break;\n      case \"topRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, 0];\n        getOpposite = (w, h) => [0, h];\n        break;\n      case \"middleRight\":\n        isHorizontal = true;\n        getPoint = (w, h) => [w, h / 2];\n        getOpposite = (w, h) => [0, h / 2];\n        break;\n      case \"bottomRight\":\n        isDiagonal = true;\n        getPoint = (w, h) => [w, h];\n        getOpposite = (w, h) => [0, 0];\n        break;\n      case \"bottomMiddle\":\n        getPoint = (w, h) => [w / 2, h];\n        getOpposite = (w, h) => [w / 2, 0];\n        break;\n      case \"bottomLeft\":\n        isDiagonal = true;\n        getPoint = (w, h) => [0, h];\n        getOpposite = (w, h) => [w, 0];\n        break;\n      case \"middleLeft\":\n        isHorizontal = true;\n        getPoint = (w, h) => [0, h / 2];\n        getOpposite = (w, h) => [w, h / 2];\n        break;\n    }\n\n    const point = getPoint(savedWidth, savedHeight);\n    const oppositePoint = getOpposite(savedWidth, savedHeight);\n    let transfOppositePoint = transf(...oppositePoint);\n    const oppositeX = round(savedX + transfOppositePoint[0]);\n    const oppositeY = round(savedY + transfOppositePoint[1]);\n    let ratioX = 1;\n    let ratioY = 1;\n\n    let [deltaX, deltaY] = this.screenToPageTranslation(\n      event.movementX,\n      event.movementY\n    );\n    [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n\n    if (isDiagonal) {\n      const oldDiag = Math.hypot(savedWidth, savedHeight);\n      ratioX = ratioY = Math.max(\n        Math.min(\n          Math.hypot(\n            oppositePoint[0] - point[0] - deltaX,\n            oppositePoint[1] - point[1] - deltaY\n          ) / oldDiag,\n          // Avoid the editor to be larger than the page.\n          1 / savedWidth,\n          1 / savedHeight\n        ),\n        // Avoid the editor to be smaller than the minimum size.\n        minWidth / savedWidth,\n        minHeight / savedHeight\n      );\n    } else if (isHorizontal) {\n      ratioX =\n        Math.max(\n          minWidth,\n          Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))\n        ) / savedWidth;\n    } else {\n      ratioY =\n        Math.max(\n          minHeight,\n          Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))\n        ) / savedHeight;\n    }\n\n    const newWidth = round(savedWidth * ratioX);\n    const newHeight = round(savedHeight * ratioY);\n    transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n    const newX = oppositeX - transfOppositePoint[0];\n    const newY = oppositeY - transfOppositePoint[1];\n\n    this.width = newWidth;\n    this.height = newHeight;\n    this.x = newX;\n    this.y = newY;\n\n    this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n    this.fixAndSetPosition();\n  }\n\n  async addAltTextButton() {\n    if (this.#altTextButton) {\n      return;\n    }\n    const altText = (this.#altTextButton = document.createElement(\"button\"));\n    altText.className = \"altText\";\n    const msg = await AnnotationEditor._l10nPromise.get(\n      \"editor_alt_text_button_label\"\n    );\n    altText.textContent = msg;\n    altText.setAttribute(\"aria-label\", msg);\n    altText.tabIndex = \"0\";\n    altText.addEventListener(\"contextmenu\", noContextMenu);\n    altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n    altText.addEventListener(\n      \"click\",\n      event => {\n        event.preventDefault();\n        this._uiManager.editAltText(this);\n      },\n      { capture: true }\n    );\n    altText.addEventListener(\"keydown\", event => {\n      if (event.target === altText && event.key === \"Enter\") {\n        event.preventDefault();\n        this._uiManager.editAltText(this);\n      }\n    });\n    this.#setAltTextButtonState();\n    this.div.append(altText);\n    if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n      // We take the width of the alt text button and we add 40% to it to be\n      // sure to have enough space for it.\n      const PERCENT = 40;\n      AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(\n        128,\n        Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100))\n      );\n    }\n  }\n\n  async #setAltTextButtonState() {\n    const button = this.#altTextButton;\n    if (!button) {\n      return;\n    }\n    if (!this.#altText && !this.#altTextDecorative) {\n      button.classList.remove(\"done\");\n      this.#altTextTooltip?.remove();\n      return;\n    }\n    AnnotationEditor._l10nPromise\n      .get(\"editor_alt_text_edit_button_label\")\n      .then(msg => {\n        button.setAttribute(\"aria-label\", msg);\n      });\n\n    let tooltip = this.#altTextTooltip;\n    if (!tooltip) {\n      this.#altTextTooltip = tooltip = document.createElement(\"span\");\n      tooltip.className = \"tooltip\";\n      tooltip.setAttribute(\"role\", \"tooltip\");\n      const id = (tooltip.id = `alt-text-tooltip-${this.id}`);\n      button.setAttribute(\"aria-describedby\", id);\n\n      const DELAY_TO_SHOW_TOOLTIP = 100;\n      button.addEventListener(\"mouseenter\", () => {\n        this.#altTextTooltipTimeout = setTimeout(() => {\n          this.#altTextTooltipTimeout = null;\n          this.#altTextTooltip.classList.add(\"show\");\n          this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n            source: this,\n            details: {\n              type: \"editing\",\n              subtype: this.editorType,\n              data: {\n                action: \"alt_text_tooltip\",\n              },\n            },\n          });\n        }, DELAY_TO_SHOW_TOOLTIP);\n      });\n      button.addEventListener(\"mouseleave\", () => {\n        clearTimeout(this.#altTextTooltipTimeout);\n        this.#altTextTooltipTimeout = null;\n        this.#altTextTooltip?.classList.remove(\"show\");\n      });\n    }\n    button.classList.add(\"done\");\n    tooltip.innerText = this.#altTextDecorative\n      ? await AnnotationEditor._l10nPromise.get(\n          \"editor_alt_text_decorative_tooltip\"\n        )\n      : this.#altText;\n\n    if (!tooltip.parentNode) {\n      button.append(tooltip);\n    }\n  }\n\n  getClientDimensions() {\n    return this.div.getBoundingClientRect();\n  }\n\n  get altTextData() {\n    return {\n      altText: this.#altText,\n      decorative: this.#altTextDecorative,\n    };\n  }\n\n  set altTextData({ altText, decorative }) {\n    if (this.#altText === altText && this.#altTextDecorative === decorative) {\n      return;\n    }\n    this.#altText = altText;\n    this.#altTextDecorative = decorative;\n    this.#setAltTextButtonState();\n  }\n\n  /**\n   * Render this editor in a div.\n   * @returns {HTMLDivElement}\n   */\n  render() {\n    this.div = document.createElement(\"div\");\n    this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n    this.div.className = this.name;\n    this.div.setAttribute(\"id\", this.id);\n    this.div.setAttribute(\"tabIndex\", 0);\n\n    this.setInForeground();\n\n    this.div.addEventListener(\"focusin\", this.#boundFocusin);\n    this.div.addEventListener(\"focusout\", this.#boundFocusout);\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    if (this.parentRotation % 180 !== 0) {\n      this.div.style.maxWidth = `${((100 * parentHeight) / parentWidth).toFixed(\n        2\n      )}%`;\n      this.div.style.maxHeight = `${(\n        (100 * parentWidth) /\n        parentHeight\n      ).toFixed(2)}%`;\n    }\n\n    const [tx, ty] = this.getInitialTranslation();\n    this.translate(tx, ty);\n\n    bindEvents(this, this.div, [\"pointerdown\"]);\n\n    return this.div;\n  }\n\n  /**\n   * Onpointerdown callback.\n   * @param {PointerEvent} event\n   */\n  pointerdown(event) {\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Avoid to focus this editor because of a non-left click.\n      event.preventDefault();\n      return;\n    }\n\n    this.#hasBeenClicked = true;\n\n    this.#setUpDragSession(event);\n  }\n\n  #setUpDragSession(event) {\n    if (!this._isDraggable) {\n      return;\n    }\n\n    const isSelected = this._uiManager.isSelected(this);\n    this._uiManager.setUpDragSession();\n\n    let pointerMoveOptions, pointerMoveCallback;\n    if (isSelected) {\n      pointerMoveOptions = { passive: true, capture: true };\n      pointerMoveCallback = e => {\n        const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n        this._uiManager.dragSelectedEditors(tx, ty);\n      };\n      window.addEventListener(\n        \"pointermove\",\n        pointerMoveCallback,\n        pointerMoveOptions\n      );\n    }\n\n    const pointerUpCallback = () => {\n      window.removeEventListener(\"pointerup\", pointerUpCallback);\n      window.removeEventListener(\"blur\", pointerUpCallback);\n      if (isSelected) {\n        window.removeEventListener(\n          \"pointermove\",\n          pointerMoveCallback,\n          pointerMoveOptions\n        );\n      }\n\n      this.#hasBeenClicked = false;\n      if (!this._uiManager.endDragSession()) {\n        const { isMac } = FeatureTest.platform;\n        if (\n          (event.ctrlKey && !isMac) ||\n          event.shiftKey ||\n          (event.metaKey && isMac)\n        ) {\n          this.parent.toggleSelected(this);\n        } else {\n          this.parent.setSelected(this);\n        }\n      }\n    };\n    window.addEventListener(\"pointerup\", pointerUpCallback);\n    // If the user is using alt+tab during the dragging session, the pointerup\n    // event could be not fired, but a blur event is fired so we can use it in\n    // order to interrupt the dragging session.\n    window.addEventListener(\"blur\", pointerUpCallback);\n  }\n\n  moveInDOM() {\n    this.parent?.moveEditorInDOM(this);\n  }\n\n  _setParentAndPosition(parent, x, y) {\n    parent.changeParent(this);\n    this.x = x;\n    this.y = y;\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Convert the current rect into a page one.\n   */\n  getRect(tx, ty) {\n    const scale = this.parentScale;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const [pageX, pageY] = this.pageTranslation;\n    const shiftX = tx / scale;\n    const shiftY = ty / scale;\n    const x = this.x * pageWidth;\n    const y = this.y * pageHeight;\n    const width = this.width * pageWidth;\n    const height = this.height * pageHeight;\n\n    switch (this.rotation) {\n      case 0:\n        return [\n          x + shiftX + pageX,\n          pageHeight - y - shiftY - height + pageY,\n          x + shiftX + width + pageX,\n          pageHeight - y - shiftY + pageY,\n        ];\n      case 90:\n        return [\n          x + shiftY + pageX,\n          pageHeight - y + shiftX + pageY,\n          x + shiftY + height + pageX,\n          pageHeight - y + shiftX + width + pageY,\n        ];\n      case 180:\n        return [\n          x - shiftX - width + pageX,\n          pageHeight - y + shiftY + pageY,\n          x - shiftX + pageX,\n          pageHeight - y + shiftY + height + pageY,\n        ];\n      case 270:\n        return [\n          x - shiftY - height + pageX,\n          pageHeight - y - shiftX - width + pageY,\n          x - shiftY + pageX,\n          pageHeight - y - shiftX + pageY,\n        ];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  getRectInCurrentCoords(rect, pageHeight) {\n    const [x1, y1, x2, y2] = rect;\n\n    const width = x2 - x1;\n    const height = y2 - y1;\n\n    switch (this.rotation) {\n      case 0:\n        return [x1, pageHeight - y2, width, height];\n      case 90:\n        return [x1, pageHeight - y1, height, width];\n      case 180:\n        return [x2, pageHeight - y1, width, height];\n      case 270:\n        return [x2, pageHeight - y2, height, width];\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n  }\n\n  /**\n   * Executed once this editor has been rendered.\n   */\n  onceAdded() {}\n\n  /**\n   * Check if the editor contains something.\n   * @returns {boolean}\n   */\n  isEmpty() {\n    return false;\n  }\n\n  /**\n   * Enable edit mode.\n   */\n  enableEditMode() {\n    this.#isInEditMode = true;\n  }\n\n  /**\n   * Disable edit mode.\n   */\n  disableEditMode() {\n    this.#isInEditMode = false;\n  }\n\n  /**\n   * Check if the editor is edited.\n   * @returns {boolean}\n   */\n  isInEditMode() {\n    return this.#isInEditMode;\n  }\n\n  /**\n   * If it returns true, then this editor handle the keyboard\n   * events itself.\n   * @returns {boolean}\n   */\n  shouldGetKeyboardEvents() {\n    return false;\n  }\n\n  /**\n   * Check if this editor needs to be rebuilt or not.\n   * @returns {boolean}\n   */\n  needsToBeRebuilt() {\n    return this.div && !this.isAttachedToDOM;\n  }\n\n  /**\n   * Rebuild the editor in case it has been removed on undo.\n   *\n   * To implement in subclasses.\n   */\n  rebuild() {\n    this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n    this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n  }\n\n  /**\n   * Serialize the editor.\n   * The result of the serialization will be used to construct a\n   * new annotation to add to the pdf document.\n   *\n   * To implement in subclasses.\n   * @param {boolean} isForCopying\n   * @param {Object} [context]\n   */\n  serialize(isForCopying = false, context = null) {\n    unreachable(\"An editor must be serializable\");\n  }\n\n  /**\n   * Deserialize the editor.\n   * The result of the deserialization is a new editor.\n   *\n   * @param {Object} data\n   * @param {AnnotationEditorLayer} parent\n   * @param {AnnotationEditorUIManager} uiManager\n   * @returns {AnnotationEditor}\n   */\n  static deserialize(data, parent, uiManager) {\n    const editor = new this.prototype.constructor({\n      parent,\n      id: parent.getNextId(),\n      uiManager,\n    });\n    editor.rotation = data.rotation;\n\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const [x, y, width, height] = editor.getRectInCurrentCoords(\n      data.rect,\n      pageHeight\n    );\n    editor.x = x / pageWidth;\n    editor.y = y / pageHeight;\n    editor.width = width / pageWidth;\n    editor.height = height / pageHeight;\n\n    return editor;\n  }\n\n  /**\n   * Remove this editor.\n   * It's used on ctrl+backspace action.\n   */\n  remove() {\n    this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n    this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n\n    if (!this.isEmpty()) {\n      // The editor is removed but it can be back at some point thanks to\n      // undo/redo so we must commit it before.\n      this.commit();\n    }\n    if (this.parent) {\n      this.parent.remove(this);\n    } else {\n      this._uiManager.removeEditor(this);\n    }\n\n    // The editor is removed so we can remove the alt text button and if it's\n    // restored then it's up to the subclass to add it back.\n    this.#altTextButton?.remove();\n    this.#altTextButton = null;\n    this.#altTextTooltip = null;\n  }\n\n  /**\n   * @returns {boolean} true if this editor can be resized.\n   */\n  get isResizable() {\n    return false;\n  }\n\n  /**\n   * Add the resizers to this editor.\n   */\n  makeResizable() {\n    if (this.isResizable) {\n      this.#createResizers();\n      this.#resizersDiv.classList.remove(\"hidden\");\n    }\n  }\n\n  /**\n   * Select this editor.\n   */\n  select() {\n    this.makeResizable();\n    this.div?.classList.add(\"selectedEditor\");\n  }\n\n  /**\n   * Unselect this editor.\n   */\n  unselect() {\n    this.#resizersDiv?.classList.add(\"hidden\");\n    this.div?.classList.remove(\"selectedEditor\");\n    if (this.div?.contains(document.activeElement)) {\n      // Don't use this.div.blur() because we don't know where the focus will\n      // go.\n      this._uiManager.currentLayer.div.focus();\n    }\n  }\n\n  /**\n   * Update some parameters which have been changed through the UI.\n   * @param {number} type\n   * @param {*} value\n   */\n  updateParams(type, value) {}\n\n  /**\n   * When the user disables the editing mode some editors can change some of\n   * their properties.\n   */\n  disableEditing() {\n    if (this.#altTextButton) {\n      this.#altTextButton.hidden = true;\n    }\n  }\n\n  /**\n   * When the user enables the editing mode some editors can change some of\n   * their properties.\n   */\n  enableEditing() {\n    if (this.#altTextButton) {\n      this.#altTextButton.hidden = false;\n    }\n  }\n\n  /**\n   * The editor is about to be edited.\n   */\n  enterInEditMode() {}\n\n  /**\n   * Get the div which really contains the displayed content.\n   */\n  get contentDiv() {\n    return this.div;\n  }\n\n  /**\n   * If true then the editor is currently edited.\n   * @type {boolean}\n   */\n  get isEditing() {\n    return this.#isEditing;\n  }\n\n  /**\n   * When set to true, it means that this editor is currently edited.\n   * @param {boolean} value\n   */\n  set isEditing(value) {\n    this.#isEditing = value;\n    if (!this.parent) {\n      return;\n    }\n    if (value) {\n      this.parent.setSelected(this);\n      this.parent.setActiveEditor(this);\n    } else {\n      this.parent.setActiveEditor(null);\n    }\n  }\n\n  /**\n   * Set the aspect ratio to use when resizing.\n   * @param {number} width\n   * @param {number} height\n   */\n  setAspectRatio(width, height) {\n    this.#keepAspectRatio = true;\n    const aspectRatio = width / height;\n    const { style } = this.div;\n    style.aspectRatio = aspectRatio;\n    style.height = \"auto\";\n  }\n\n  static get MIN_SIZE() {\n    return 16;\n  }\n}\n\n// This class is used to fake an editor which has been deleted.\nclass FakeEditor extends AnnotationEditor {\n  constructor(params) {\n    super(params);\n    this.annotationElementId = params.annotationElementId;\n    this.deleted = true;\n  }\n\n  serialize() {\n    return {\n      id: this.annotationElementId,\n      deleted: true,\n      pageIndex: this.pageIndex,\n    };\n  }\n}\n\nexport { AnnotationEditor };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./editor.js\").AnnotationEditor} AnnotationEditor */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n\nimport {\n  AnnotationEditorParamsType,\n  AnnotationEditorPrefix,\n  AnnotationEditorType,\n  FeatureTest,\n  getUuid,\n  shadow,\n  Util,\n  warn,\n} from \"../../shared/util.js\";\nimport { getColorValues, getRGB, PixelsPerInch } from \"../display_utils.js\";\n\nfunction bindEvents(obj, element, names) {\n  for (const name of names) {\n    element.addEventListener(name, obj[name].bind(obj));\n  }\n}\n\n/**\n * Convert a number between 0 and 100 into an hex number between 0 and 255.\n * @param {number} opacity\n * @return {string}\n */\nfunction opacityToHex(opacity) {\n  return Math.round(Math.min(255, Math.max(1, 255 * opacity)))\n    .toString(16)\n    .padStart(2, \"0\");\n}\n\n/**\n * Class to create some unique ids for the different editors.\n */\nclass IdManager {\n  #id = 0;\n\n  /**\n   * Get a unique id.\n   * @returns {string}\n   */\n  getId() {\n    return `${AnnotationEditorPrefix}${this.#id++}`;\n  }\n}\n\n/**\n * Class to manage the images used by the editors.\n * The main idea is to try to minimize the memory used by the images.\n * The images are cached and reused when possible\n * We use a refCounter to know when an image is not used anymore but we need to\n * be able to restore an image after a remove+undo, so we keep a file reference\n * or an url one.\n */\nclass ImageManager {\n  #baseId = getUuid();\n\n  #id = 0;\n\n  #cache = null;\n\n  static get _isSVGFittingCanvas() {\n    // By default, Firefox doesn't rescale without preserving the aspect ratio\n    // when drawing an SVG image on a canvas, see https://bugzilla.mozilla.org/1547776.\n    // The \"workaround\" is to append \"svgView(preserveAspectRatio(none))\" to the\n    // url, but according to comment #15, it seems that it leads to unexpected\n    // behavior in Safari.\n    const svg = `data:image/svg+xml;charset=UTF-8,<svg viewBox=\"0 0 1 1\" width=\"1\" height=\"1\" xmlns=\"http://www.w3.org/2000/svg\"><rect width=\"1\" height=\"1\" style=\"fill:red;\"/></svg>`;\n    const canvas = new OffscreenCanvas(1, 3);\n    const ctx = canvas.getContext(\"2d\");\n    const image = new Image();\n    image.src = svg;\n    const promise = image.decode().then(() => {\n      ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n      return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n    });\n\n    return shadow(this, \"_isSVGFittingCanvas\", promise);\n  }\n\n  async #get(key, rawData) {\n    this.#cache ||= new Map();\n    let data = this.#cache.get(key);\n    if (data === null) {\n      // We already tried to load the image but it failed.\n      return null;\n    }\n    if (data?.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n    try {\n      data ||= {\n        bitmap: null,\n        id: `image_${this.#baseId}_${this.#id++}`,\n        refCounter: 0,\n        isSvg: false,\n      };\n      let image;\n      if (typeof rawData === \"string\") {\n        data.url = rawData;\n\n        const response = await fetch(rawData);\n        if (!response.ok) {\n          throw new Error(response.statusText);\n        }\n        image = await response.blob();\n      } else {\n        image = data.file = rawData;\n      }\n\n      if (image.type === \"image/svg+xml\") {\n        // Unfortunately, createImageBitmap doesn't work with SVG images.\n        // (see https://bugzilla.mozilla.org/1841972).\n        const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n        const fileReader = new FileReader();\n        const imageElement = new Image();\n        const imagePromise = new Promise((resolve, reject) => {\n          imageElement.onload = () => {\n            data.bitmap = imageElement;\n            data.isSvg = true;\n            resolve();\n          };\n          fileReader.onload = async () => {\n            const url = (data.svgUrl = fileReader.result);\n            // We need to set the preserveAspectRatio to none in order to let\n            // the image fits the canvas when resizing.\n            imageElement.src = (await mustRemoveAspectRatioPromise)\n              ? `${url}#svgView(preserveAspectRatio(none))`\n              : url;\n          };\n          imageElement.onerror = fileReader.onerror = reject;\n        });\n        fileReader.readAsDataURL(image);\n        await imagePromise;\n      } else {\n        data.bitmap = await createImageBitmap(image);\n      }\n      data.refCounter = 1;\n    } catch (e) {\n      console.error(e);\n      data = null;\n    }\n    this.#cache.set(key, data);\n    if (data) {\n      this.#cache.set(data.id, data);\n    }\n    return data;\n  }\n\n  async getFromFile(file) {\n    const { lastModified, name, size, type } = file;\n    return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n  }\n\n  async getFromUrl(url) {\n    return this.#get(url, url);\n  }\n\n  async getFromId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return null;\n    }\n    if (data.bitmap) {\n      data.refCounter += 1;\n      return data;\n    }\n\n    if (data.file) {\n      return this.getFromFile(data.file);\n    }\n    return this.getFromUrl(data.url);\n  }\n\n  getSvgUrl(id) {\n    const data = this.#cache.get(id);\n    if (!data?.isSvg) {\n      return null;\n    }\n    return data.svgUrl;\n  }\n\n  deleteId(id) {\n    this.#cache ||= new Map();\n    const data = this.#cache.get(id);\n    if (!data) {\n      return;\n    }\n    data.refCounter -= 1;\n    if (data.refCounter !== 0) {\n      return;\n    }\n    data.bitmap = null;\n  }\n\n  // We can use the id only if it belongs this manager.\n  // We must take care of having the right manager because we can copy/paste\n  // some images from other documents, hence it'd be a pity to use an id from an\n  // other manager.\n  isValidId(id) {\n    return id.startsWith(`image_${this.#baseId}_`);\n  }\n}\n\n/**\n * Class to handle undo/redo.\n * Commands are just saved in a buffer.\n * If we hit some memory issues we could likely use a circular buffer.\n * It has to be used as a singleton.\n */\nclass CommandManager {\n  #commands = [];\n\n  #locked = false;\n\n  #maxSize;\n\n  #position = -1;\n\n  constructor(maxSize = 128) {\n    this.#maxSize = maxSize;\n  }\n\n  /**\n   * @typedef {Object} addOptions\n   * @property {function} cmd\n   * @property {function} undo\n   * @property {boolean} mustExec\n   * @property {number} type\n   * @property {boolean} overwriteIfSameType\n   * @property {boolean} keepUndo\n   */\n\n  /**\n   * Add a new couple of commands to be used in case of redo/undo.\n   * @param {addOptions} options\n   */\n  add({\n    cmd,\n    undo,\n    mustExec,\n    type = NaN,\n    overwriteIfSameType = false,\n    keepUndo = false,\n  }) {\n    if (mustExec) {\n      cmd();\n    }\n\n    if (this.#locked) {\n      return;\n    }\n\n    const save = { cmd, undo, type };\n    if (this.#position === -1) {\n      if (this.#commands.length > 0) {\n        // All the commands have been undone and then a new one is added\n        // hence we clear the queue.\n        this.#commands.length = 0;\n      }\n      this.#position = 0;\n      this.#commands.push(save);\n      return;\n    }\n\n    if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n      // For example when we change a color we don't want to\n      // be able to undo all the steps, hence we only want to\n      // keep the last undoable action in this sequence of actions.\n      if (keepUndo) {\n        save.undo = this.#commands[this.#position].undo;\n      }\n      this.#commands[this.#position] = save;\n      return;\n    }\n\n    const next = this.#position + 1;\n    if (next === this.#maxSize) {\n      this.#commands.splice(0, 1);\n    } else {\n      this.#position = next;\n      if (next < this.#commands.length) {\n        this.#commands.splice(next);\n      }\n    }\n\n    this.#commands.push(save);\n  }\n\n  /**\n   * Undo the last command.\n   */\n  undo() {\n    if (this.#position === -1) {\n      // Nothing to undo.\n      return;\n    }\n\n    // Avoid to insert something during the undo execution.\n    this.#locked = true;\n    this.#commands[this.#position].undo();\n    this.#locked = false;\n\n    this.#position -= 1;\n  }\n\n  /**\n   * Redo the last command.\n   */\n  redo() {\n    if (this.#position < this.#commands.length - 1) {\n      this.#position += 1;\n\n      // Avoid to insert something during the redo execution.\n      this.#locked = true;\n      this.#commands[this.#position].cmd();\n      this.#locked = false;\n    }\n  }\n\n  /**\n   * Check if there is something to undo.\n   * @returns {boolean}\n   */\n  hasSomethingToUndo() {\n    return this.#position !== -1;\n  }\n\n  /**\n   * Check if there is something to redo.\n   * @returns {boolean}\n   */\n  hasSomethingToRedo() {\n    return this.#position < this.#commands.length - 1;\n  }\n\n  destroy() {\n    this.#commands = null;\n  }\n}\n\n/**\n * Class to handle the different keyboards shortcuts we can have on mac or\n * non-mac OSes.\n */\nclass KeyboardManager {\n  /**\n   * Create a new keyboard manager class.\n   * @param {Array<Array>} callbacks - an array containing an array of shortcuts\n   * and a callback to call.\n   * A shortcut is a string like `ctrl+c` or `mac+ctrl+c` for mac OS.\n   */\n  constructor(callbacks) {\n    this.buffer = [];\n    this.callbacks = new Map();\n    this.allKeys = new Set();\n\n    const { isMac } = FeatureTest.platform;\n    for (const [keys, callback, options = {}] of callbacks) {\n      for (const key of keys) {\n        const isMacKey = key.startsWith(\"mac+\");\n        if (isMac && isMacKey) {\n          this.callbacks.set(key.slice(4), { callback, options });\n          this.allKeys.add(key.split(\"+\").at(-1));\n        } else if (!isMac && !isMacKey) {\n          this.callbacks.set(key, { callback, options });\n          this.allKeys.add(key.split(\"+\").at(-1));\n        }\n      }\n    }\n  }\n\n  /**\n   * Serialize an event into a string in order to match a\n   * potential key for a callback.\n   * @param {KeyboardEvent} event\n   * @returns {string}\n   */\n  #serialize(event) {\n    if (event.altKey) {\n      this.buffer.push(\"alt\");\n    }\n    if (event.ctrlKey) {\n      this.buffer.push(\"ctrl\");\n    }\n    if (event.metaKey) {\n      this.buffer.push(\"meta\");\n    }\n    if (event.shiftKey) {\n      this.buffer.push(\"shift\");\n    }\n    this.buffer.push(event.key);\n    const str = this.buffer.join(\"+\");\n    this.buffer.length = 0;\n\n    return str;\n  }\n\n  /**\n   * Execute a callback, if any, for a given keyboard event.\n   * The self is used as `this` in the callback.\n   * @param {Object} self\n   * @param {KeyboardEvent} event\n   * @returns\n   */\n  exec(self, event) {\n    if (!this.allKeys.has(event.key)) {\n      return;\n    }\n    const info = this.callbacks.get(this.#serialize(event));\n    if (!info) {\n      return;\n    }\n    const {\n      callback,\n      options: { bubbles = false, args = [], checker = null },\n    } = info;\n\n    if (checker && !checker(self, event)) {\n      return;\n    }\n    callback.bind(self, ...args)();\n\n    // For example, ctrl+s in a FreeText must be handled by the viewer, hence\n    // the event must bubble.\n    if (!bubbles) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n  }\n}\n\nclass ColorManager {\n  static _colorsMapping = new Map([\n    [\"CanvasText\", [0, 0, 0]],\n    [\"Canvas\", [255, 255, 255]],\n  ]);\n\n  get _colors() {\n    if (\n      typeof PDFJSDev !== \"undefined\" &&\n      PDFJSDev.test(\"LIB\") &&\n      typeof document === \"undefined\"\n    ) {\n      return shadow(this, \"_colors\", ColorManager._colorsMapping);\n    }\n\n    const colors = new Map([\n      [\"CanvasText\", null],\n      [\"Canvas\", null],\n    ]);\n    getColorValues(colors);\n    return shadow(this, \"_colors\", colors);\n  }\n\n  /**\n   * In High Contrast Mode, the color on the screen is not always the\n   * real color used in the pdf.\n   * For example in some cases white can appear to be black but when saving\n   * we want to have white.\n   * @param {string} color\n   * @returns {Array<number>}\n   */\n  convert(color) {\n    const rgb = getRGB(color);\n    if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n      return rgb;\n    }\n\n    for (const [name, RGB] of this._colors) {\n      if (RGB.every((x, i) => x === rgb[i])) {\n        return ColorManager._colorsMapping.get(name);\n      }\n    }\n    return rgb;\n  }\n\n  /**\n   * An input element must have its color value as a hex string\n   * and not as color name.\n   * So this function converts a name into an hex string.\n   * @param {string} name\n   * @returns {string}\n   */\n  getHexCode(name) {\n    const rgb = this._colors.get(name);\n    if (!rgb) {\n      return name;\n    }\n    return Util.makeHexColor(...rgb);\n  }\n}\n\n/**\n * A pdf has several pages and each of them when it will rendered\n * will have an AnnotationEditorLayer which will contain the some\n * new Annotations associated to an editor in order to modify them.\n *\n * This class is used to manage all the different layers, editors and\n * some action like copy/paste, undo/redo, ...\n */\nclass AnnotationEditorUIManager {\n  #activeEditor = null;\n\n  #allEditors = new Map();\n\n  #allLayers = new Map();\n\n  #altTextManager = null;\n\n  #annotationStorage = null;\n\n  #commandManager = new CommandManager();\n\n  #currentPageIndex = 0;\n\n  #deletedAnnotationsElementIds = new Set();\n\n  #draggingEditors = null;\n\n  #editorTypes = null;\n\n  #editorsToRescale = new Set();\n\n  #filterFactory = null;\n\n  #idManager = new IdManager();\n\n  #isEnabled = false;\n\n  #isWaiting = false;\n\n  #lastActiveElement = null;\n\n  #mode = AnnotationEditorType.NONE;\n\n  #selectedEditors = new Set();\n\n  #pageColors = null;\n\n  #boundBlur = this.blur.bind(this);\n\n  #boundFocus = this.focus.bind(this);\n\n  #boundCopy = this.copy.bind(this);\n\n  #boundCut = this.cut.bind(this);\n\n  #boundPaste = this.paste.bind(this);\n\n  #boundKeydown = this.keydown.bind(this);\n\n  #boundOnEditingAction = this.onEditingAction.bind(this);\n\n  #boundOnPageChanging = this.onPageChanging.bind(this);\n\n  #boundOnScaleChanging = this.onScaleChanging.bind(this);\n\n  #boundOnRotationChanging = this.onRotationChanging.bind(this);\n\n  #previousStates = {\n    isEditing: false,\n    isEmpty: true,\n    hasSomethingToUndo: false,\n    hasSomethingToRedo: false,\n    hasSelectedEditor: false,\n  };\n\n  #translation = [0, 0];\n\n  #translationTimeoutId = null;\n\n  #container = null;\n\n  #viewer = null;\n\n  static TRANSLATE_SMALL = 1; // page units.\n\n  static TRANSLATE_BIG = 10; // page units.\n\n  static get _keyboardManager() {\n    const proto = AnnotationEditorUIManager.prototype;\n\n    const arrowChecker = self => {\n      // If the focused element is an input, we don't want to handle the arrow.\n      // For example, sliders can be controlled with the arrow keys.\n      const { activeElement } = document;\n      return (\n        activeElement &&\n        self.#container.contains(activeElement) &&\n        self.hasSomethingToControl()\n      );\n    };\n\n    const small = this.TRANSLATE_SMALL;\n    const big = this.TRANSLATE_BIG;\n\n    return shadow(\n      this,\n      \"_keyboardManager\",\n      new KeyboardManager([\n        [[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll],\n        [[\"ctrl+z\", \"mac+meta+z\"], proto.undo],\n        [\n          // On mac, depending of the OS version, the event.key is either \"z\" or\n          // \"Z\" when the user presses \"meta+shift+z\".\n          [\n            \"ctrl+y\",\n            \"ctrl+shift+z\",\n            \"mac+meta+shift+z\",\n            \"ctrl+shift+Z\",\n            \"mac+meta+shift+Z\",\n          ],\n          proto.redo,\n        ],\n        [\n          [\n            \"Backspace\",\n            \"alt+Backspace\",\n            \"ctrl+Backspace\",\n            \"shift+Backspace\",\n            \"mac+Backspace\",\n            \"mac+alt+Backspace\",\n            \"mac+ctrl+Backspace\",\n            \"Delete\",\n            \"ctrl+Delete\",\n            \"shift+Delete\",\n            \"mac+Delete\",\n          ],\n          proto.delete,\n        ],\n        [[\"Escape\", \"mac+Escape\"], proto.unselectAll],\n        [\n          [\"ArrowLeft\", \"mac+ArrowLeft\"],\n          proto.translateSelectedEditors,\n          { args: [-small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"],\n          proto.translateSelectedEditors,\n          { args: [-big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowRight\", \"mac+ArrowRight\"],\n          proto.translateSelectedEditors,\n          { args: [small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"],\n          proto.translateSelectedEditors,\n          { args: [big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowUp\", \"mac+ArrowUp\"],\n          proto.translateSelectedEditors,\n          { args: [0, -small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"],\n          proto.translateSelectedEditors,\n          { args: [0, -big], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowDown\", \"mac+ArrowDown\"],\n          proto.translateSelectedEditors,\n          { args: [0, small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"],\n          proto.translateSelectedEditors,\n          { args: [0, big], checker: arrowChecker },\n        ],\n      ])\n    );\n  }\n\n  constructor(\n    container,\n    viewer,\n    altTextManager,\n    eventBus,\n    pdfDocument,\n    pageColors\n  ) {\n    this.#container = container;\n    this.#viewer = viewer;\n    this.#altTextManager = altTextManager;\n    this._eventBus = eventBus;\n    this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n    this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n    this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n    this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n    this.#annotationStorage = pdfDocument.annotationStorage;\n    this.#filterFactory = pdfDocument.filterFactory;\n    this.#pageColors = pageColors;\n    this.viewParameters = {\n      realScale: PixelsPerInch.PDF_TO_CSS_UNITS,\n      rotation: 0,\n    };\n  }\n\n  destroy() {\n    this.#removeKeyboardManager();\n    this.#removeFocusManager();\n    this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n    this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n    this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n    this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n    for (const layer of this.#allLayers.values()) {\n      layer.destroy();\n    }\n    this.#allLayers.clear();\n    this.#allEditors.clear();\n    this.#editorsToRescale.clear();\n    this.#activeEditor = null;\n    this.#selectedEditors.clear();\n    this.#commandManager.destroy();\n    this.#altTextManager.destroy();\n  }\n\n  get hcmFilter() {\n    return shadow(\n      this,\n      \"hcmFilter\",\n      this.#pageColors\n        ? this.#filterFactory.addHCMFilter(\n            this.#pageColors.foreground,\n            this.#pageColors.background\n          )\n        : \"none\"\n    );\n  }\n\n  get direction() {\n    return shadow(\n      this,\n      \"direction\",\n      getComputedStyle(this.#container).direction\n    );\n  }\n\n  editAltText(editor) {\n    this.#altTextManager?.editAltText(this, editor);\n  }\n\n  onPageChanging({ pageNumber }) {\n    this.#currentPageIndex = pageNumber - 1;\n  }\n\n  focusMainContainer() {\n    this.#container.focus();\n  }\n\n  findParent(x, y) {\n    for (const layer of this.#allLayers.values()) {\n      const {\n        x: layerX,\n        y: layerY,\n        width,\n        height,\n      } = layer.div.getBoundingClientRect();\n      if (\n        x >= layerX &&\n        x <= layerX + width &&\n        y >= layerY &&\n        y <= layerY + height\n      ) {\n        return layer;\n      }\n    }\n    return null;\n  }\n\n  disableUserSelect(value = false) {\n    this.#viewer.classList.toggle(\"noUserSelect\", value);\n  }\n\n  addShouldRescale(editor) {\n    this.#editorsToRescale.add(editor);\n  }\n\n  removeShouldRescale(editor) {\n    this.#editorsToRescale.delete(editor);\n  }\n\n  onScaleChanging({ scale }) {\n    this.commitOrRemove();\n    this.viewParameters.realScale = scale * PixelsPerInch.PDF_TO_CSS_UNITS;\n    for (const editor of this.#editorsToRescale) {\n      editor.onScaleChanging();\n    }\n  }\n\n  onRotationChanging({ pagesRotation }) {\n    this.commitOrRemove();\n    this.viewParameters.rotation = pagesRotation;\n  }\n\n  /**\n   * Add an editor in the annotation storage.\n   * @param {AnnotationEditor} editor\n   */\n  addToAnnotationStorage(editor) {\n    if (\n      !editor.isEmpty() &&\n      this.#annotationStorage &&\n      !this.#annotationStorage.has(editor.id)\n    ) {\n      this.#annotationStorage.setValue(editor.id, editor);\n    }\n  }\n\n  #addFocusManager() {\n    window.addEventListener(\"focus\", this.#boundFocus);\n    window.addEventListener(\"blur\", this.#boundBlur);\n  }\n\n  #removeFocusManager() {\n    window.removeEventListener(\"focus\", this.#boundFocus);\n    window.removeEventListener(\"blur\", this.#boundBlur);\n  }\n\n  blur() {\n    if (!this.hasSelection) {\n      return;\n    }\n    // When several editors are selected and the window loses focus, we want to\n    // keep the last active element in order to be able to focus it again when\n    // the window gets the focus back but we don't want to trigger any focus\n    // callbacks else only one editor will be selected.\n    const { activeElement } = document;\n    for (const editor of this.#selectedEditors) {\n      if (editor.div.contains(activeElement)) {\n        this.#lastActiveElement = [editor, activeElement];\n        editor._focusEventsAllowed = false;\n        break;\n      }\n    }\n  }\n\n  focus() {\n    if (!this.#lastActiveElement) {\n      return;\n    }\n    const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n    this.#lastActiveElement = null;\n    lastActiveElement.addEventListener(\n      \"focusin\",\n      () => {\n        lastEditor._focusEventsAllowed = true;\n      },\n      { once: true }\n    );\n    lastActiveElement.focus();\n  }\n\n  #addKeyboardManager() {\n    // The keyboard events are caught at the container level in order to be able\n    // to execute some callbacks even if the current page doesn't have focus.\n    window.addEventListener(\"keydown\", this.#boundKeydown, { capture: true });\n  }\n\n  #removeKeyboardManager() {\n    window.removeEventListener(\"keydown\", this.#boundKeydown, {\n      capture: true,\n    });\n  }\n\n  #addCopyPasteListeners() {\n    document.addEventListener(\"copy\", this.#boundCopy);\n    document.addEventListener(\"cut\", this.#boundCut);\n    document.addEventListener(\"paste\", this.#boundPaste);\n  }\n\n  #removeCopyPasteListeners() {\n    document.removeEventListener(\"copy\", this.#boundCopy);\n    document.removeEventListener(\"cut\", this.#boundCut);\n    document.removeEventListener(\"paste\", this.#boundPaste);\n  }\n\n  addEditListeners() {\n    this.#addKeyboardManager();\n    this.#addCopyPasteListeners();\n  }\n\n  removeEditListeners() {\n    this.#removeKeyboardManager();\n    this.#removeCopyPasteListeners();\n  }\n\n  /**\n   * Copy callback.\n   * @param {ClipboardEvent} event\n   */\n  copy(event) {\n    event.preventDefault();\n\n    // An editor is being edited so just commit it.\n    this.#activeEditor?.commitOrRemove();\n\n    if (!this.hasSelection) {\n      return;\n    }\n\n    const editors = [];\n    for (const editor of this.#selectedEditors) {\n      const serialized = editor.serialize(/* isForCopying = */ true);\n      if (serialized) {\n        editors.push(serialized);\n      }\n    }\n    if (editors.length === 0) {\n      return;\n    }\n\n    event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n  }\n\n  /**\n   * Cut callback.\n   * @param {ClipboardEvent} event\n   */\n  cut(event) {\n    this.copy(event);\n    this.delete();\n  }\n\n  /**\n   * Paste callback.\n   * @param {ClipboardEvent} event\n   */\n  paste(event) {\n    event.preventDefault();\n    const { clipboardData } = event;\n    for (const item of clipboardData.items) {\n      for (const editorType of this.#editorTypes) {\n        if (editorType.isHandlingMimeForPasting(item.type)) {\n          editorType.paste(item, this.currentLayer);\n          return;\n        }\n      }\n    }\n\n    let data = clipboardData.getData(\"application/pdfjs\");\n    if (!data) {\n      return;\n    }\n\n    try {\n      data = JSON.parse(data);\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n      return;\n    }\n\n    if (!Array.isArray(data)) {\n      return;\n    }\n\n    this.unselectAll();\n    const layer = this.currentLayer;\n\n    try {\n      const newEditors = [];\n      for (const editor of data) {\n        const deserializedEditor = layer.deserialize(editor);\n        if (!deserializedEditor) {\n          return;\n        }\n        newEditors.push(deserializedEditor);\n      }\n\n      const cmd = () => {\n        for (const editor of newEditors) {\n          this.#addEditorToLayer(editor);\n        }\n        this.#selectEditors(newEditors);\n      };\n      const undo = () => {\n        for (const editor of newEditors) {\n          editor.remove();\n        }\n      };\n      this.addCommands({ cmd, undo, mustExec: true });\n    } catch (ex) {\n      warn(`paste: \"${ex.message}\".`);\n    }\n  }\n\n  /**\n   * Keydown callback.\n   * @param {KeyboardEvent} event\n   */\n  keydown(event) {\n    if (!this.getActive()?.shouldGetKeyboardEvents()) {\n      AnnotationEditorUIManager._keyboardManager.exec(this, event);\n    }\n  }\n\n  /**\n   * Execute an action for a given name.\n   * For example, the user can click on the \"Undo\" entry in the context menu\n   * and it'll trigger the undo action.\n   * @param {Object} details\n   */\n  onEditingAction(details) {\n    if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n      this[details.name]();\n    }\n  }\n\n  /**\n   * Update the different possible states of this manager, e.g. is there\n   * something to undo, redo, ...\n   * @param {Object} details\n   */\n  #dispatchUpdateStates(details) {\n    const hasChanged = Object.entries(details).some(\n      ([key, value]) => this.#previousStates[key] !== value\n    );\n\n    if (hasChanged) {\n      this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n        source: this,\n        details: Object.assign(this.#previousStates, details),\n      });\n    }\n  }\n\n  #dispatchUpdateUI(details) {\n    this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n      source: this,\n      details,\n    });\n  }\n\n  /**\n   * Set the editing state.\n   * It can be useful to temporarily disable it when the user is editing a\n   * FreeText annotation.\n   * @param {boolean} isEditing\n   */\n  setEditingState(isEditing) {\n    if (isEditing) {\n      this.#addFocusManager();\n      this.#addKeyboardManager();\n      this.#addCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: this.#mode !== AnnotationEditorType.NONE,\n        isEmpty: this.#isEmpty(),\n        hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n        hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n        hasSelectedEditor: false,\n      });\n    } else {\n      this.#removeFocusManager();\n      this.#removeKeyboardManager();\n      this.#removeCopyPasteListeners();\n      this.#dispatchUpdateStates({\n        isEditing: false,\n      });\n      this.disableUserSelect(false);\n    }\n  }\n\n  registerEditorTypes(types) {\n    if (this.#editorTypes) {\n      return;\n    }\n    this.#editorTypes = types;\n    for (const editorType of this.#editorTypes) {\n      this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n    }\n  }\n\n  /**\n   * Get an id.\n   * @returns {string}\n   */\n  getId() {\n    return this.#idManager.getId();\n  }\n\n  get currentLayer() {\n    return this.#allLayers.get(this.#currentPageIndex);\n  }\n\n  getLayer(pageIndex) {\n    return this.#allLayers.get(pageIndex);\n  }\n\n  get currentPageIndex() {\n    return this.#currentPageIndex;\n  }\n\n  /**\n   * Add a new layer for a page which will contains the editors.\n   * @param {AnnotationEditorLayer} layer\n   */\n  addLayer(layer) {\n    this.#allLayers.set(layer.pageIndex, layer);\n    if (this.#isEnabled) {\n      layer.enable();\n    } else {\n      layer.disable();\n    }\n  }\n\n  /**\n   * Remove a layer.\n   * @param {AnnotationEditorLayer} layer\n   */\n  removeLayer(layer) {\n    this.#allLayers.delete(layer.pageIndex);\n  }\n\n  /**\n   * Change the editor mode (None, FreeText, Ink, ...)\n   * @param {number} mode\n   * @param {string|null} editId\n   */\n  updateMode(mode, editId = null) {\n    if (this.#mode === mode) {\n      return;\n    }\n    this.#mode = mode;\n    if (mode === AnnotationEditorType.NONE) {\n      this.setEditingState(false);\n      this.#disableAll();\n      return;\n    }\n    this.setEditingState(true);\n    this.#enableAll();\n    this.unselectAll();\n    for (const layer of this.#allLayers.values()) {\n      layer.updateMode(mode);\n    }\n    if (!editId) {\n      return;\n    }\n    for (const editor of this.#allEditors.values()) {\n      if (editor.annotationElementId === editId) {\n        this.setSelected(editor);\n        editor.enterInEditMode();\n        break;\n      }\n    }\n  }\n\n  /**\n   * Update the toolbar if it's required to reflect the tool currently used.\n   * @param {number} mode\n   * @returns {undefined}\n   */\n  updateToolbar(mode) {\n    if (mode === this.#mode) {\n      return;\n    }\n    this._eventBus.dispatch(\"switchannotationeditormode\", {\n      source: this,\n      mode,\n    });\n  }\n\n  /**\n   * Update a parameter in the current editor or globally.\n   * @param {number} type\n   * @param {*} value\n   */\n  updateParams(type, value) {\n    if (!this.#editorTypes) {\n      return;\n    }\n    if (type === AnnotationEditorParamsType.CREATE) {\n      this.currentLayer.addNewEditor(type);\n      return;\n    }\n\n    for (const editor of this.#selectedEditors) {\n      editor.updateParams(type, value);\n    }\n\n    for (const editorType of this.#editorTypes) {\n      editorType.updateDefaultParams(type, value);\n    }\n  }\n\n  enableWaiting(mustWait = false) {\n    if (this.#isWaiting === mustWait) {\n      return;\n    }\n    this.#isWaiting = mustWait;\n    for (const layer of this.#allLayers.values()) {\n      if (mustWait) {\n        layer.disableClick();\n      } else {\n        layer.enableClick();\n      }\n      layer.div.classList.toggle(\"waiting\", mustWait);\n    }\n  }\n\n  /**\n   * Enable all the layers.\n   */\n  #enableAll() {\n    if (!this.#isEnabled) {\n      this.#isEnabled = true;\n      for (const layer of this.#allLayers.values()) {\n        layer.enable();\n      }\n    }\n  }\n\n  /**\n   * Disable all the layers.\n   */\n  #disableAll() {\n    this.unselectAll();\n    if (this.#isEnabled) {\n      this.#isEnabled = false;\n      for (const layer of this.#allLayers.values()) {\n        layer.disable();\n      }\n    }\n  }\n\n  /**\n   * Get all the editors belonging to a given page.\n   * @param {number} pageIndex\n   * @returns {Array<AnnotationEditor>}\n   */\n  getEditors(pageIndex) {\n    const editors = [];\n    for (const editor of this.#allEditors.values()) {\n      if (editor.pageIndex === pageIndex) {\n        editors.push(editor);\n      }\n    }\n    return editors;\n  }\n\n  /**\n   * Get an editor with the given id.\n   * @param {string} id\n   * @returns {AnnotationEditor}\n   */\n  getEditor(id) {\n    return this.#allEditors.get(id);\n  }\n\n  /**\n   * Add a new editor.\n   * @param {AnnotationEditor} editor\n   */\n  addEditor(editor) {\n    this.#allEditors.set(editor.id, editor);\n  }\n\n  /**\n   * Remove an editor.\n   * @param {AnnotationEditor} editor\n   */\n  removeEditor(editor) {\n    this.#allEditors.delete(editor.id);\n    this.unselect(editor);\n    if (\n      !editor.annotationElementId ||\n      !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)\n    ) {\n      this.#annotationStorage?.remove(editor.id);\n    }\n  }\n\n  /**\n   * The annotation element with the given id has been deleted.\n   * @param {AnnotationEditor} editor\n   */\n  addDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n    editor.deleted = true;\n  }\n\n  /**\n   * Check if the annotation element with the given id has been deleted.\n   * @param {string} annotationElementId\n   * @returns {boolean}\n   */\n  isDeletedAnnotationElement(annotationElementId) {\n    return this.#deletedAnnotationsElementIds.has(annotationElementId);\n  }\n\n  /**\n   * The annotation element with the given id have been restored.\n   * @param {AnnotationEditor} editor\n   */\n  removeDeletedAnnotationElement(editor) {\n    this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n    editor.deleted = false;\n  }\n\n  /**\n   * Add an editor to the layer it belongs to or add it to the global map.\n   * @param {AnnotationEditor} editor\n   */\n  #addEditorToLayer(editor) {\n    const layer = this.#allLayers.get(editor.pageIndex);\n    if (layer) {\n      layer.addOrRebuild(editor);\n    } else {\n      this.addEditor(editor);\n    }\n  }\n\n  /**\n   * Set the given editor as the active one.\n   * @param {AnnotationEditor} editor\n   */\n  setActiveEditor(editor) {\n    if (this.#activeEditor === editor) {\n      return;\n    }\n\n    this.#activeEditor = editor;\n    if (editor) {\n      this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    }\n  }\n\n  /**\n   * Add or remove an editor the current selection.\n   * @param {AnnotationEditor} editor\n   */\n  toggleSelected(editor) {\n    if (this.#selectedEditors.has(editor)) {\n      this.#selectedEditors.delete(editor);\n      editor.unselect();\n      this.#dispatchUpdateStates({\n        hasSelectedEditor: this.hasSelection,\n      });\n      return;\n    }\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true,\n    });\n  }\n\n  /**\n   * Set the last selected editor.\n   * @param {AnnotationEditor} editor\n   */\n  setSelected(editor) {\n    for (const ed of this.#selectedEditors) {\n      if (ed !== editor) {\n        ed.unselect();\n      }\n    }\n    this.#selectedEditors.clear();\n\n    this.#selectedEditors.add(editor);\n    editor.select();\n    this.#dispatchUpdateUI(editor.propertiesToUpdate);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: true,\n    });\n  }\n\n  /**\n   * Check if the editor is selected.\n   * @param {AnnotationEditor} editor\n   */\n  isSelected(editor) {\n    return this.#selectedEditors.has(editor);\n  }\n\n  /**\n   * Unselect an editor.\n   * @param {AnnotationEditor} editor\n   */\n  unselect(editor) {\n    editor.unselect();\n    this.#selectedEditors.delete(editor);\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: this.hasSelection,\n    });\n  }\n\n  get hasSelection() {\n    return this.#selectedEditors.size !== 0;\n  }\n\n  /**\n   * Undo the last command.\n   */\n  undo() {\n    this.#commandManager.undo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n      hasSomethingToRedo: true,\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  /**\n   * Redo the last undoed command.\n   */\n  redo() {\n    this.#commandManager.redo();\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  /**\n   * Add a command to execute (cmd) and another one to undo it.\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this.#commandManager.add(params);\n    this.#dispatchUpdateStates({\n      hasSomethingToUndo: true,\n      hasSomethingToRedo: false,\n      isEmpty: this.#isEmpty(),\n    });\n  }\n\n  #isEmpty() {\n    if (this.#allEditors.size === 0) {\n      return true;\n    }\n\n    if (this.#allEditors.size === 1) {\n      for (const editor of this.#allEditors.values()) {\n        return editor.isEmpty();\n      }\n    }\n\n    return false;\n  }\n\n  /**\n   * Delete the current editor or all.\n   */\n  delete() {\n    this.commitOrRemove();\n    if (!this.hasSelection) {\n      return;\n    }\n\n    const editors = [...this.#selectedEditors];\n    const cmd = () => {\n      for (const editor of editors) {\n        editor.remove();\n      }\n    };\n    const undo = () => {\n      for (const editor of editors) {\n        this.#addEditorToLayer(editor);\n      }\n    };\n\n    this.addCommands({ cmd, undo, mustExec: true });\n  }\n\n  commitOrRemove() {\n    // An editor is being edited so just commit it.\n    this.#activeEditor?.commitOrRemove();\n  }\n\n  hasSomethingToControl() {\n    return this.#activeEditor || this.hasSelection;\n  }\n\n  /**\n   * Select the editors.\n   * @param {Array<AnnotationEditor>} editors\n   */\n  #selectEditors(editors) {\n    this.#selectedEditors.clear();\n    for (const editor of editors) {\n      if (editor.isEmpty()) {\n        continue;\n      }\n      this.#selectedEditors.add(editor);\n      editor.select();\n    }\n    this.#dispatchUpdateStates({ hasSelectedEditor: true });\n  }\n\n  /**\n   * Select all the editors.\n   */\n  selectAll() {\n    for (const editor of this.#selectedEditors) {\n      editor.commit();\n    }\n    this.#selectEditors(this.#allEditors.values());\n  }\n\n  /**\n   * Unselect all the selected editors.\n   */\n  unselectAll() {\n    if (this.#activeEditor) {\n      // An editor is being edited so just commit it.\n      this.#activeEditor.commitOrRemove();\n      return;\n    }\n\n    if (!this.hasSelection) {\n      return;\n    }\n    for (const editor of this.#selectedEditors) {\n      editor.unselect();\n    }\n    this.#selectedEditors.clear();\n    this.#dispatchUpdateStates({\n      hasSelectedEditor: false,\n    });\n  }\n\n  translateSelectedEditors(x, y, noCommit = false) {\n    if (!noCommit) {\n      this.commitOrRemove();\n    }\n    if (!this.hasSelection) {\n      return;\n    }\n\n    this.#translation[0] += x;\n    this.#translation[1] += y;\n    const [totalX, totalY] = this.#translation;\n    const editors = [...this.#selectedEditors];\n\n    // We don't want to have an undo/redo for each translation so we wait a bit\n    // before adding the command to the command manager.\n    const TIME_TO_WAIT = 1000;\n\n    if (this.#translationTimeoutId) {\n      clearTimeout(this.#translationTimeoutId);\n    }\n\n    this.#translationTimeoutId = setTimeout(() => {\n      this.#translationTimeoutId = null;\n      this.#translation[0] = this.#translation[1] = 0;\n\n      this.addCommands({\n        cmd: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(totalX, totalY);\n            }\n          }\n        },\n        undo: () => {\n          for (const editor of editors) {\n            if (this.#allEditors.has(editor.id)) {\n              editor.translateInPage(-totalX, -totalY);\n            }\n          }\n        },\n        mustExec: false,\n      });\n    }, TIME_TO_WAIT);\n\n    for (const editor of editors) {\n      editor.translateInPage(x, y);\n    }\n  }\n\n  /**\n   * Set up the drag session for moving the selected editors.\n   */\n  setUpDragSession() {\n    // Note: don't use any references to the editor's parent which can be null\n    // if the editor belongs to a destroyed page.\n    if (!this.hasSelection) {\n      return;\n    }\n    // Avoid to have spurious text selection in the text layer when dragging.\n    this.disableUserSelect(true);\n    this.#draggingEditors = new Map();\n    for (const editor of this.#selectedEditors) {\n      this.#draggingEditors.set(editor, {\n        savedX: editor.x,\n        savedY: editor.y,\n        savedPageIndex: editor.pageIndex,\n        newX: 0,\n        newY: 0,\n        newPageIndex: -1,\n      });\n    }\n  }\n\n  /**\n   * Ends the drag session.\n   * @returns {boolean} true if at least one editor has been moved.\n   */\n  endDragSession() {\n    if (!this.#draggingEditors) {\n      return false;\n    }\n    this.disableUserSelect(false);\n    const map = this.#draggingEditors;\n    this.#draggingEditors = null;\n    let mustBeAddedInUndoStack = false;\n\n    for (const [{ x, y, pageIndex }, value] of map) {\n      value.newX = x;\n      value.newY = y;\n      value.newPageIndex = pageIndex;\n      mustBeAddedInUndoStack ||=\n        x !== value.savedX ||\n        y !== value.savedY ||\n        pageIndex !== value.savedPageIndex;\n    }\n\n    if (!mustBeAddedInUndoStack) {\n      return false;\n    }\n\n    const move = (editor, x, y, pageIndex) => {\n      if (this.#allEditors.has(editor.id)) {\n        // The editor can be undone/redone on a page which is not visible (and\n        // which potentially has no annotation editor layer), hence we need to\n        // use the pageIndex instead of the parent.\n        const parent = this.#allLayers.get(pageIndex);\n        if (parent) {\n          editor._setParentAndPosition(parent, x, y);\n        } else {\n          editor.pageIndex = pageIndex;\n          editor.x = x;\n          editor.y = y;\n        }\n      }\n    };\n\n    this.addCommands({\n      cmd: () => {\n        for (const [editor, { newX, newY, newPageIndex }] of map) {\n          move(editor, newX, newY, newPageIndex);\n        }\n      },\n      undo: () => {\n        for (const [editor, { savedX, savedY, savedPageIndex }] of map) {\n          move(editor, savedX, savedY, savedPageIndex);\n        }\n      },\n      mustExec: true,\n    });\n\n    return true;\n  }\n\n  /**\n   * Drag the set of selected editors.\n   * @param {number} tx\n   * @param {number} ty\n   */\n  dragSelectedEditors(tx, ty) {\n    if (!this.#draggingEditors) {\n      return;\n    }\n    for (const editor of this.#draggingEditors.keys()) {\n      editor.drag(tx, ty);\n    }\n  }\n\n  /**\n   * Rebuild the editor (usually on undo/redo actions) on a potentially\n   * non-rendered page.\n   * @param {AnnotationEditor} editor\n   */\n  rebuild(editor) {\n    if (editor.parent === null) {\n      const parent = this.getLayer(editor.pageIndex);\n      if (parent) {\n        parent.changeParent(editor);\n        parent.addOrRebuild(editor);\n      } else {\n        this.addEditor(editor);\n        this.addToAnnotationStorage(editor);\n        editor.rebuild();\n      }\n    } else {\n      editor.parent.addOrRebuild(editor);\n    }\n  }\n\n  /**\n   * Is the current editor the one passed as argument?\n   * @param {AnnotationEditor} editor\n   * @returns\n   */\n  isActive(editor) {\n    return this.#activeEditor === editor;\n  }\n\n  /**\n   * Get the current active editor.\n   * @returns {AnnotationEditor|null}\n   */\n  getActive() {\n    return this.#activeEditor;\n  }\n\n  /**\n   * Get the current editor mode.\n   * @returns {number}\n   */\n  getMode() {\n    return this.#mode;\n  }\n\n  get imageManager() {\n    return shadow(this, \"imageManager\", new ImageManager());\n  }\n}\n\nexport {\n  AnnotationEditorUIManager,\n  bindEvents,\n  ColorManager,\n  CommandManager,\n  KeyboardManager,\n  opacityToHex,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n} from \"./base_factory.js\";\nimport {\n  BaseException,\n  FeatureTest,\n  shadow,\n  stringToBytes,\n  Util,\n  warn,\n} from \"../shared/util.js\";\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass PixelsPerInch {\n  static CSS = 96.0;\n\n  static PDF = 72.0;\n\n  static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\n/**\n * FilterFactory aims to create some SVG filters we can use when drawing an\n * image (or whatever) on a canvas.\n * Filters aren't applied with ctx.putImageData because it just overwrites the\n * underlying pixels.\n * With these filters, it's possible for example to apply some transfer maps on\n * an image without the need to apply them on the pixel arrays: the renderer\n * does the magic for us.\n */\nclass DOMFilterFactory extends BaseFilterFactory {\n  #_cache;\n\n  #_defs;\n\n  #docId;\n\n  #document;\n\n  #hcmFilter;\n\n  #hcmKey;\n\n  #hcmUrl;\n\n  #hcmHighlightFilter;\n\n  #hcmHighlightKey;\n\n  #hcmHighlightUrl;\n\n  #id = 0;\n\n  constructor({ docId, ownerDocument = globalThis.document } = {}) {\n    super();\n    this.#docId = docId;\n    this.#document = ownerDocument;\n  }\n\n  get #cache() {\n    return (this.#_cache ||= new Map());\n  }\n\n  get #defs() {\n    if (!this.#_defs) {\n      const div = this.#document.createElement(\"div\");\n      const { style } = div;\n      style.visibility = \"hidden\";\n      style.contain = \"strict\";\n      style.width = style.height = 0;\n      style.position = \"absolute\";\n      style.top = style.left = 0;\n      style.zIndex = -1;\n\n      const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n      svg.setAttribute(\"width\", 0);\n      svg.setAttribute(\"height\", 0);\n      this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n      div.append(svg);\n      svg.append(this.#_defs);\n      this.#document.body.append(div);\n    }\n    return this.#_defs;\n  }\n\n  addFilter(maps) {\n    if (!maps) {\n      return \"none\";\n    }\n\n    // When a page is zoomed the page is re-drawn but the maps are likely\n    // the same.\n    let value = this.#cache.get(maps);\n    if (value) {\n      return value;\n    }\n\n    let tableR, tableG, tableB, key;\n    if (maps.length === 1) {\n      const mapR = maps[0];\n      const buffer = new Array(256);\n      for (let i = 0; i < 256; i++) {\n        buffer[i] = mapR[i] / 255;\n      }\n      key = tableR = tableG = tableB = buffer.join(\",\");\n    } else {\n      const [mapR, mapG, mapB] = maps;\n      const bufferR = new Array(256);\n      const bufferG = new Array(256);\n      const bufferB = new Array(256);\n      for (let i = 0; i < 256; i++) {\n        bufferR[i] = mapR[i] / 255;\n        bufferG[i] = mapG[i] / 255;\n        bufferB[i] = mapB[i] / 255;\n      }\n      tableR = bufferR.join(\",\");\n      tableG = bufferG.join(\",\");\n      tableB = bufferB.join(\",\");\n      key = `${tableR}${tableG}${tableB}`;\n    }\n\n    value = this.#cache.get(key);\n    if (value) {\n      this.#cache.set(maps, value);\n      return value;\n    }\n\n    // We create a SVG filter: feComponentTransferElement\n    //  https://www.w3.org/TR/SVG11/filters.html#feComponentTransferElement\n\n    const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n    const url = `url(#${id})`;\n    this.#cache.set(maps, url);\n    this.#cache.set(key, url);\n\n    const filter = this.#createFilter(id);\n    this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n\n    return url;\n  }\n\n  addHCMFilter(fgColor, bgColor) {\n    const key = `${fgColor}-${bgColor}`;\n    if (this.#hcmKey === key) {\n      return this.#hcmUrl;\n    }\n\n    this.#hcmKey = key;\n    this.#hcmUrl = \"none\";\n    this.#hcmFilter?.remove();\n\n    if (!fgColor || !bgColor) {\n      return this.#hcmUrl;\n    }\n\n    const fgRGB = this.#getRGB(fgColor);\n    fgColor = Util.makeHexColor(...fgRGB);\n    const bgRGB = this.#getRGB(bgColor);\n    bgColor = Util.makeHexColor(...bgRGB);\n    this.#defs.style.color = \"\";\n\n    if (\n      (fgColor === \"#000000\" && bgColor === \"#ffffff\") ||\n      fgColor === bgColor\n    ) {\n      return this.#hcmUrl;\n    }\n\n    // https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_Colors_and_Luminance\n    //\n    // Relative luminance:\n    // https://www.w3.org/TR/WCAG20/#relativeluminancedef\n    //\n    // We compute the rounded luminance of the default background color.\n    // Then for every color in the pdf, if its rounded luminance is the\n    // same as the background one then it's replaced by the new\n    // background color else by the foreground one.\n    const map = new Array(256);\n    for (let i = 0; i <= 255; i++) {\n      const x = i / 255;\n      map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n    }\n    const table = map.join(\",\");\n\n    const id = `g_${this.#docId}_hcm_filter`;\n    const filter = (this.#hcmHighlightFilter = this.#createFilter(id));\n    this.#addTransferMapConversion(table, table, table, filter);\n    this.#addGrayConversion(filter);\n\n    const getSteps = (c, n) => {\n      const start = fgRGB[c] / 255;\n      const end = bgRGB[c] / 255;\n      const arr = new Array(n + 1);\n      for (let i = 0; i <= n; i++) {\n        arr[i] = start + (i / n) * (end - start);\n      }\n      return arr.join(\",\");\n    };\n    this.#addTransferMapConversion(\n      getSteps(0, 5),\n      getSteps(1, 5),\n      getSteps(2, 5),\n      filter\n    );\n\n    this.#hcmUrl = `url(#${id})`;\n    return this.#hcmUrl;\n  }\n\n  addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n    const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n    if (this.#hcmHighlightKey === key) {\n      return this.#hcmHighlightUrl;\n    }\n\n    this.#hcmHighlightKey = key;\n    this.#hcmHighlightUrl = \"none\";\n    this.#hcmHighlightFilter?.remove();\n\n    if (!fgColor || !bgColor) {\n      return this.#hcmHighlightUrl;\n    }\n\n    const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n    let fgGray = Math.round(\n      0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]\n    );\n    let bgGray = Math.round(\n      0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]\n    );\n    let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(\n      this.#getRGB.bind(this)\n    );\n    if (bgGray < fgGray) {\n      [fgGray, bgGray, newFgRGB, newBgRGB] = [\n        bgGray,\n        fgGray,\n        newBgRGB,\n        newFgRGB,\n      ];\n    }\n    this.#defs.style.color = \"\";\n\n    // Now we can create the filters to highlight some canvas parts.\n    // The colors in the pdf will almost be Canvas and CanvasText, hence we\n    // want to filter them to finally get Highlight and HighlightText.\n    // Since we're in HCM the background color and the foreground color should\n    // be really different when converted to grayscale (if they're not then it\n    // means that we've a poor contrast). Once the canvas colors are converted\n    // to grayscale we can easily map them on their new colors.\n    // The grayscale step is important because if we've something like:\n    //   fgColor = #FF....\n    //   bgColor = #FF....\n    //   then we are enable to map the red component on the new red components\n    //   which can be different.\n\n    const getSteps = (fg, bg, n) => {\n      const arr = new Array(256);\n      const step = (bgGray - fgGray) / n;\n      const newStart = fg / 255;\n      const newStep = (bg - fg) / (255 * n);\n      let prev = 0;\n      for (let i = 0; i <= n; i++) {\n        const k = Math.round(fgGray + i * step);\n        const value = newStart + i * newStep;\n        for (let j = prev; j <= k; j++) {\n          arr[j] = value;\n        }\n        prev = k + 1;\n      }\n      for (let i = prev; i < 256; i++) {\n        arr[i] = arr[prev - 1];\n      }\n      return arr.join(\",\");\n    };\n\n    const id = `g_${this.#docId}_hcm_highlight_filter`;\n    const filter = (this.#hcmHighlightFilter = this.#createFilter(id));\n\n    this.#addGrayConversion(filter);\n    this.#addTransferMapConversion(\n      getSteps(newFgRGB[0], newBgRGB[0], 5),\n      getSteps(newFgRGB[1], newBgRGB[1], 5),\n      getSteps(newFgRGB[2], newBgRGB[2], 5),\n      filter\n    );\n\n    this.#hcmHighlightUrl = `url(#${id})`;\n    return this.#hcmHighlightUrl;\n  }\n\n  destroy(keepHCM = false) {\n    if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n      return;\n    }\n    if (this.#_defs) {\n      this.#_defs.parentNode.parentNode.remove();\n      this.#_defs = null;\n    }\n    if (this.#_cache) {\n      this.#_cache.clear();\n      this.#_cache = null;\n    }\n    this.#id = 0;\n  }\n\n  #addGrayConversion(filter) {\n    const feColorMatrix = this.#document.createElementNS(\n      SVG_NS,\n      \"feColorMatrix\"\n    );\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\n      \"values\",\n      \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\"\n    );\n    filter.append(feColorMatrix);\n  }\n\n  #createFilter(id) {\n    const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n    filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.setAttribute(\"id\", id);\n    this.#defs.append(filter);\n\n    return filter;\n  }\n\n  #appendFeFunc(feComponentTransfer, func, table) {\n    const feFunc = this.#document.createElementNS(SVG_NS, func);\n    feFunc.setAttribute(\"type\", \"discrete\");\n    feFunc.setAttribute(\"tableValues\", table);\n    feComponentTransfer.append(feFunc);\n  }\n\n  #addTransferMapConversion(rTable, gTable, bTable, filter) {\n    const feComponentTransfer = this.#document.createElementNS(\n      SVG_NS,\n      \"feComponentTransfer\"\n    );\n    filter.append(feComponentTransfer);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n    this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n  }\n\n  #getRGB(color) {\n    this.#defs.style.color = color;\n    return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n  }\n}\n\nclass DOMCanvasFactory extends BaseCanvasFactory {\n  constructor({ ownerDocument = globalThis.document } = {}) {\n    super();\n    this._document = ownerDocument;\n  }\n\n  /**\n   * @ignore\n   */\n  _createCanvas(width, height) {\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.width = width;\n    canvas.height = height;\n    return canvas;\n  }\n}\n\nasync function fetchData(url, asTypedArray = false) {\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    isValidFetchUrl(url, document.baseURI)\n  ) {\n    const response = await fetch(url);\n    if (!response.ok) {\n      throw new Error(response.statusText);\n    }\n    return asTypedArray\n      ? new Uint8Array(await response.arrayBuffer())\n      : stringToBytes(await response.text());\n  }\n\n  // The Fetch API is not supported.\n  return new Promise((resolve, reject) => {\n    const request = new XMLHttpRequest();\n    request.open(\"GET\", url, /* asTypedArray = */ true);\n\n    if (asTypedArray) {\n      request.responseType = \"arraybuffer\";\n    }\n    request.onreadystatechange = () => {\n      if (request.readyState !== XMLHttpRequest.DONE) {\n        return;\n      }\n      if (request.status === 200 || request.status === 0) {\n        let data;\n        if (asTypedArray && request.response) {\n          data = new Uint8Array(request.response);\n        } else if (!asTypedArray && request.responseText) {\n          data = stringToBytes(request.responseText);\n        }\n        if (data) {\n          resolve(data);\n          return;\n        }\n      }\n      reject(new Error(request.statusText));\n    };\n\n    request.send(null);\n  });\n}\n\nclass DOMCMapReaderFactory extends BaseCMapReaderFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url, compressionType) {\n    return fetchData(url, /* asTypedArray = */ this.isCompressed).then(data => {\n      return { cMapData: data, compressionType };\n    });\n  }\n}\n\nclass DOMStandardFontDataFactory extends BaseStandardFontDataFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url) {\n    return fetchData(url, /* asTypedArray = */ true);\n  }\n}\n\nclass DOMSVGFactory extends BaseSVGFactory {\n  /**\n   * @ignore\n   */\n  _createSVG(type) {\n    return document.createElementNS(SVG_NS, type);\n  }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array<number>} viewBox - The xMin, yMin, xMax and\n *   yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset. The\n *   default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset. The\n *   default value is `0`.\n * @property {boolean} [dontFlip] - If true, the y-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} [scale] - The scale, overriding the one in the cloned\n *   viewport. The default value is `this.scale`.\n * @property {number} [rotation] - The rotation, in degrees, overriding the one\n *   in the cloned viewport. The default value is `this.rotation`.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n *   The default value is `this.offsetX`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n *   The default value is `this.offsetY`.\n * @property {boolean} [dontFlip] - If true, the x-axis will not be flipped.\n *   The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n  /**\n   * @param {PageViewportParameters}\n   */\n  constructor({\n    viewBox,\n    scale,\n    rotation,\n    offsetX = 0,\n    offsetY = 0,\n    dontFlip = false,\n  }) {\n    this.viewBox = viewBox;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n\n    // creating transform to convert pdf coordinate system to the normal\n    // canvas like coordinates taking in account scale and rotation\n    const centerX = (viewBox[2] + viewBox[0]) / 2;\n    const centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    // Normalize the rotation, by clamping it to the [0, 360) range.\n    rotation %= 360;\n    if (rotation < 0) {\n      rotation += 360;\n    }\n    switch (rotation) {\n      case 180:\n        rotateA = -1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = 1;\n        break;\n      case 90:\n        rotateA = 0;\n        rotateB = 1;\n        rotateC = 1;\n        rotateD = 0;\n        break;\n      case 270:\n        rotateA = 0;\n        rotateB = -1;\n        rotateC = -1;\n        rotateD = 0;\n        break;\n      case 0:\n        rotateA = 1;\n        rotateB = 0;\n        rotateC = 0;\n        rotateD = -1;\n        break;\n      default:\n        throw new Error(\n          \"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\"\n        );\n    }\n\n    if (dontFlip) {\n      rotateC = -rotateC;\n      rotateD = -rotateD;\n    }\n\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = (viewBox[3] - viewBox[1]) * scale;\n      height = (viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = (viewBox[2] - viewBox[0]) * scale;\n      height = (viewBox[3] - viewBox[1]) * scale;\n    }\n    // creating transform for the following operations:\n    // translate(-centerX, -centerY), rotate and flip vertically,\n    // scale, and translate(offsetCanvasX, offsetCanvasY)\n    this.transform = [\n      rotateA * scale,\n      rotateB * scale,\n      rotateC * scale,\n      rotateD * scale,\n      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY,\n    ];\n\n    this.width = width;\n    this.height = height;\n  }\n\n  /**\n   * The original, un-scaled, viewport dimensions.\n   * @type {Object}\n   */\n  get rawDims() {\n    const { viewBox } = this;\n    return shadow(this, \"rawDims\", {\n      pageWidth: viewBox[2] - viewBox[0],\n      pageHeight: viewBox[3] - viewBox[1],\n      pageX: viewBox[0],\n      pageY: viewBox[1],\n    });\n  }\n\n  /**\n   * Clones viewport, with optional additional properties.\n   * @param {PageViewportCloneParameters} [params]\n   * @returns {PageViewport} Cloned viewport.\n   */\n  clone({\n    scale = this.scale,\n    rotation = this.rotation,\n    offsetX = this.offsetX,\n    offsetY = this.offsetY,\n    dontFlip = false,\n  } = {}) {\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      scale,\n      rotation,\n      offsetX,\n      offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * Converts PDF point to the viewport coordinates. For examples, useful for\n   * converting PDF location into canvas pixel coordinates.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Array} Array containing `x`- and `y`-coordinates of the\n   *   point in the viewport coordinate space.\n   * @see {@link convertToPdfPoint}\n   * @see {@link convertToViewportRectangle}\n   */\n  convertToViewportPoint(x, y) {\n    return Util.applyTransform([x, y], this.transform);\n  }\n\n  /**\n   * Converts PDF rectangle to the viewport coordinates.\n   * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n   * @returns {Array} Array containing corresponding coordinates of the\n   *   rectangle in the viewport coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToViewportRectangle(rect) {\n    const topLeft = Util.applyTransform([rect[0], rect[1]], this.transform);\n    const bottomRight = Util.applyTransform([rect[2], rect[3]], this.transform);\n    return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n  }\n\n  /**\n   * Converts viewport coordinates to the PDF location. For examples, useful\n   * for converting canvas pixel location into PDF one.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @returns {Array} Array containing `x`- and `y`-coordinates of the\n   *   point in the PDF coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToPdfPoint(x, y) {\n    return Util.applyInverseTransform([x, y], this.transform);\n  }\n}\n\nclass RenderingCancelledException extends BaseException {\n  constructor(msg, extraDelay = 0) {\n    super(msg, \"RenderingCancelledException\");\n    this.extraDelay = extraDelay;\n  }\n}\n\nfunction isDataScheme(url) {\n  const ii = url.length;\n  let i = 0;\n  while (i < ii && url[i].trim() === \"\") {\n    i++;\n  }\n  return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n  return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\n/**\n * Gets the filename from a given URL.\n * @param {string} url\n * @param {boolean} [onlyStripPath]\n * @returns {string}\n */\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n  if (!onlyStripPath) {\n    [url] = url.split(/[#?]/, 1);\n  }\n  return url.substring(url.lastIndexOf(\"/\") + 1);\n}\n\n/**\n * Returns the filename or guessed filename from the url (see issue 3455).\n * @param {string} url - The original PDF location.\n * @param {string} defaultFilename - The value returned if the filename is\n *   unknown, or the protocol is unsupported.\n * @returns {string} Guessed PDF filename.\n */\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n  if (typeof url !== \"string\") {\n    return defaultFilename;\n  }\n  if (isDataScheme(url)) {\n    warn('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n    return defaultFilename;\n  }\n  const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n  //              SCHEME        HOST        1.PATH  2.QUERY   3.REF\n  // Pattern to get last matching NAME.pdf\n  const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n  const splitURI = reURI.exec(url);\n  let suggestedFilename =\n    reFilename.exec(splitURI[1]) ||\n    reFilename.exec(splitURI[2]) ||\n    reFilename.exec(splitURI[3]);\n  if (suggestedFilename) {\n    suggestedFilename = suggestedFilename[0];\n    if (suggestedFilename.includes(\"%\")) {\n      // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf\n      try {\n        suggestedFilename = reFilename.exec(\n          decodeURIComponent(suggestedFilename)\n        )[0];\n      } catch {\n        // Possible (extremely rare) errors:\n        // URIError \"Malformed URI\", e.g. for \"%AA.pdf\"\n        // TypeError \"null has no properties\", e.g. for \"%2F.pdf\"\n      }\n    }\n  }\n  return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n  started = Object.create(null);\n\n  times = [];\n\n  time(name) {\n    if (name in this.started) {\n      warn(`Timer is already running for ${name}`);\n    }\n    this.started[name] = Date.now();\n  }\n\n  timeEnd(name) {\n    if (!(name in this.started)) {\n      warn(`Timer has not been started for ${name}`);\n    }\n    this.times.push({\n      name,\n      start: this.started[name],\n      end: Date.now(),\n    });\n    // Remove timer from started so it can be called again.\n    delete this.started[name];\n  }\n\n  toString() {\n    // Find the longest name for padding purposes.\n    const outBuf = [];\n    let longest = 0;\n    for (const { name } of this.times) {\n      longest = Math.max(name.length, longest);\n    }\n    for (const { name, start, end } of this.times) {\n      outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n    }\n    return outBuf.join(\"\");\n  }\n}\n\nfunction isValidFetchUrl(url, baseUrl) {\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n    throw new Error(\"Not implemented: isValidFetchUrl\");\n  }\n  try {\n    const { protocol } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    // The Fetch API only supports the http/https protocols, and not file/ftp.\n    return protocol === \"http:\" || protocol === \"https:\";\n  } catch {\n    return false; // `new URL()` will throw on incorrect data.\n  }\n}\n\n/**\n * Event handler to suppress context menu.\n */\nfunction noContextMenu(e) {\n  e.preventDefault();\n}\n\n/**\n * @param {string} src\n * @param {boolean} [removeScriptElement]\n * @returns {Promise<void>}\n */\nfunction loadScript(src, removeScriptElement = false) {\n  return new Promise((resolve, reject) => {\n    const script = document.createElement(\"script\");\n    script.src = src;\n\n    script.onload = function (evt) {\n      if (removeScriptElement) {\n        script.remove();\n      }\n      resolve(evt);\n    };\n    script.onerror = function () {\n      reject(new Error(`Cannot load script at: ${script.src}`));\n    };\n    (document.head || document.documentElement).append(script);\n  });\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\nfunction deprecated(details) {\n  console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n  /**\n   * Convert a PDF date string to a JavaScript `Date` object.\n   *\n   * The PDF date string format is described in section 7.9.4 of the official\n   * PDF 32000-1:2008 specification. However, in the PDF 1.7 reference (sixth\n   * edition) Adobe describes the same format including a trailing apostrophe.\n   * This syntax in incorrect, but Adobe Acrobat creates PDF files that contain\n   * them. We ignore all apostrophes as they are not necessary for date parsing.\n   *\n   * Moreover, Adobe Acrobat doesn't handle changing the date to universal time\n   * and doesn't use the user's time zone (effectively ignoring the HH' and mm'\n   * parts of the date string).\n   *\n   * @param {string} input\n   * @returns {Date|null}\n   */\n  static toDateObject(input) {\n    if (!input || typeof input !== \"string\") {\n      return null;\n    }\n\n    // Lazily initialize the regular expression.\n    pdfDateStringRegex ||= new RegExp(\n      \"^D:\" + // Prefix (required)\n        \"(\\\\d{4})\" + // Year (required)\n        \"(\\\\d{2})?\" + // Month (optional)\n        \"(\\\\d{2})?\" + // Day (optional)\n        \"(\\\\d{2})?\" + // Hour (optional)\n        \"(\\\\d{2})?\" + // Minute (optional)\n        \"(\\\\d{2})?\" + // Second (optional)\n        \"([Z|+|-])?\" + // Universal time relation (optional)\n        \"(\\\\d{2})?\" + // Offset hour (optional)\n        \"'?\" + // Splitting apostrophe (optional)\n        \"(\\\\d{2})?\" + // Offset minute (optional)\n        \"'?\" // Trailing apostrophe (optional)\n    );\n\n    // Optional fields that don't satisfy the requirements from the regular\n    // expression (such as incorrect digit counts or numbers that are out of\n    // range) will fall back the defaults from the specification.\n    const matches = pdfDateStringRegex.exec(input);\n    if (!matches) {\n      return null;\n    }\n\n    // JavaScript's `Date` object expects the month to be between 0 and 11\n    // instead of 1 and 12, so we have to correct for that.\n    const year = parseInt(matches[1], 10);\n    let month = parseInt(matches[2], 10);\n    month = month >= 1 && month <= 12 ? month - 1 : 0;\n    let day = parseInt(matches[3], 10);\n    day = day >= 1 && day <= 31 ? day : 1;\n    let hour = parseInt(matches[4], 10);\n    hour = hour >= 0 && hour <= 23 ? hour : 0;\n    let minute = parseInt(matches[5], 10);\n    minute = minute >= 0 && minute <= 59 ? minute : 0;\n    let second = parseInt(matches[6], 10);\n    second = second >= 0 && second <= 59 ? second : 0;\n    const universalTimeRelation = matches[7] || \"Z\";\n    let offsetHour = parseInt(matches[8], 10);\n    offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n    let offsetMinute = parseInt(matches[9], 10) || 0;\n    offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n    // Universal time relation 'Z' means that the local time is equal to the\n    // universal time, whereas the relations '+'/'-' indicate that the local\n    // time is later respectively earlier than the universal time. Every date\n    // is normalized to universal time.\n    if (universalTimeRelation === \"-\") {\n      hour += offsetHour;\n      minute += offsetMinute;\n    } else if (universalTimeRelation === \"+\") {\n      hour -= offsetHour;\n      minute -= offsetMinute;\n    }\n\n    return new Date(Date.UTC(year, month, day, hour, minute, second));\n  }\n}\n\n/**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n */\nfunction getXfaPageViewport(xfaPage, { scale = 1, rotation = 0 }) {\n  const { width, height } = xfaPage.attributes.style;\n  const viewBox = [0, 0, parseInt(width), parseInt(height)];\n\n  return new PageViewport({\n    viewBox,\n    scale,\n    rotation,\n  });\n}\n\nfunction getRGB(color) {\n  if (color.startsWith(\"#\")) {\n    const colorRGB = parseInt(color.slice(1), 16);\n    return [\n      (colorRGB & 0xff0000) >> 16,\n      (colorRGB & 0x00ff00) >> 8,\n      colorRGB & 0x0000ff,\n    ];\n  }\n\n  if (color.startsWith(\"rgb(\")) {\n    // getComputedStyle(...).color returns a `rgb(R, G, B)` color.\n    return color\n      .slice(/* \"rgb(\".length */ 4, -1) // Strip out \"rgb(\" and \")\".\n      .split(\",\")\n      .map(x => parseInt(x));\n  }\n\n  if (color.startsWith(\"rgba(\")) {\n    return color\n      .slice(/* \"rgba(\".length */ 5, -1) // Strip out \"rgba(\" and \")\".\n      .split(\",\")\n      .map(x => parseInt(x))\n      .slice(0, 3);\n  }\n\n  warn(`Not a valid color format: \"${color}\"`);\n  return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n  const span = document.createElement(\"span\");\n  span.style.visibility = \"hidden\";\n  document.body.append(span);\n  for (const name of colors.keys()) {\n    span.style.color = name;\n    const computedColor = window.getComputedStyle(span).color;\n    colors.set(name, getRGB(computedColor));\n  }\n  span.remove();\n}\n\nfunction getCurrentTransform(ctx) {\n  const { a, b, c, d, e, f } = ctx.getTransform();\n  return [a, b, c, d, e, f];\n}\n\nfunction getCurrentTransformInverse(ctx) {\n  const { a, b, c, d, e, f } = ctx.getTransform().invertSelf();\n  return [a, b, c, d, e, f];\n}\n\n/**\n * @param {HTMLDivElement} div\n * @param {PageViewport} viewport\n * @param {boolean} mustFlip\n * @param {boolean} mustRotate\n */\nfunction setLayerDimensions(\n  div,\n  viewport,\n  mustFlip = false,\n  mustRotate = true\n) {\n  if (viewport instanceof PageViewport) {\n    const { pageWidth, pageHeight } = viewport.rawDims;\n    const { style } = div;\n    const useRound = FeatureTest.isCSSRoundSupported;\n\n    const w = `var(--scale-factor) * ${pageWidth}px`,\n      h = `var(--scale-factor) * ${pageHeight}px`;\n    const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n      heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n\n    if (!mustFlip || viewport.rotation % 180 === 0) {\n      style.width = widthStr;\n      style.height = heightStr;\n    } else {\n      style.width = heightStr;\n      style.height = widthStr;\n    }\n  }\n\n  if (mustRotate) {\n    div.setAttribute(\"data-main-rotation\", viewport.rotation);\n  }\n}\n\nexport {\n  deprecated,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMFilterFactory,\n  DOMStandardFontDataFactory,\n  DOMSVGFactory,\n  getColorValues,\n  getCurrentTransform,\n  getCurrentTransformInverse,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getRGB,\n  getXfaPageViewport,\n  isDataScheme,\n  isPdfFile,\n  isValidFetchUrl,\n  loadScript,\n  noContextMenu,\n  PageViewport,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  setLayerDimensions,\n  StatTimer,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CMapCompressionType, unreachable } from \"../shared/util.js\";\n\nclass BaseFilterFactory {\n  constructor() {\n    if (this.constructor === BaseFilterFactory) {\n      unreachable(\"Cannot initialize BaseFilterFactory.\");\n    }\n  }\n\n  addFilter(maps) {\n    return \"none\";\n  }\n\n  addHCMFilter(fgColor, bgColor) {\n    return \"none\";\n  }\n\n  addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n    return \"none\";\n  }\n\n  destroy(keepHCM = false) {}\n}\n\nclass BaseCanvasFactory {\n  constructor() {\n    if (this.constructor === BaseCanvasFactory) {\n      unreachable(\"Cannot initialize BaseCanvasFactory.\");\n    }\n  }\n\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    const canvas = this._createCanvas(width, height);\n    return {\n      canvas,\n      context: canvas.getContext(\"2d\"),\n    };\n  }\n\n  reset(canvasAndContext, width, height) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid canvas size\");\n    }\n    canvasAndContext.canvas.width = width;\n    canvasAndContext.canvas.height = height;\n  }\n\n  destroy(canvasAndContext) {\n    if (!canvasAndContext.canvas) {\n      throw new Error(\"Canvas is not specified\");\n    }\n    // Zeroing the width and height cause Firefox to release graphics\n    // resources immediately, which can greatly reduce memory consumption.\n    canvasAndContext.canvas.width = 0;\n    canvasAndContext.canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n\n  /**\n   * @ignore\n   */\n  _createCanvas(width, height) {\n    unreachable(\"Abstract method `_createCanvas` called.\");\n  }\n}\n\nclass BaseCMapReaderFactory {\n  constructor({ baseUrl = null, isCompressed = true }) {\n    if (this.constructor === BaseCMapReaderFactory) {\n      unreachable(\"Cannot initialize BaseCMapReaderFactory.\");\n    }\n    this.baseUrl = baseUrl;\n    this.isCompressed = isCompressed;\n  }\n\n  async fetch({ name }) {\n    if (!this.baseUrl) {\n      throw new Error(\n        'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n          'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'\n      );\n    }\n    if (!name) {\n      throw new Error(\"CMap name must be specified.\");\n    }\n    const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n    const compressionType = this.isCompressed\n      ? CMapCompressionType.BINARY\n      : CMapCompressionType.NONE;\n\n    return this._fetchData(url, compressionType).catch(reason => {\n      throw new Error(\n        `Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`\n      );\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  _fetchData(url, compressionType) {\n    unreachable(\"Abstract method `_fetchData` called.\");\n  }\n}\n\nclass BaseStandardFontDataFactory {\n  constructor({ baseUrl = null }) {\n    if (this.constructor === BaseStandardFontDataFactory) {\n      unreachable(\"Cannot initialize BaseStandardFontDataFactory.\");\n    }\n    this.baseUrl = baseUrl;\n  }\n\n  async fetch({ filename }) {\n    if (!this.baseUrl) {\n      throw new Error(\n        'The standard font \"baseUrl\" parameter must be specified, ensure that ' +\n          'the \"standardFontDataUrl\" API parameter is provided.'\n      );\n    }\n    if (!filename) {\n      throw new Error(\"Font filename must be specified.\");\n    }\n    const url = `${this.baseUrl}${filename}`;\n\n    return this._fetchData(url).catch(reason => {\n      throw new Error(`Unable to load font data at: ${url}`);\n    });\n  }\n\n  /**\n   * @ignore\n   */\n  _fetchData(url) {\n    unreachable(\"Abstract method `_fetchData` called.\");\n  }\n}\n\nclass BaseSVGFactory {\n  constructor() {\n    if (this.constructor === BaseSVGFactory) {\n      unreachable(\"Cannot initialize BaseSVGFactory.\");\n    }\n  }\n\n  create(width, height, skipDimensions = false) {\n    if (width <= 0 || height <= 0) {\n      throw new Error(\"Invalid SVG dimensions\");\n    }\n    const svg = this._createSVG(\"svg:svg\");\n    svg.setAttribute(\"version\", \"1.1\");\n\n    if (!skipDimensions) {\n      svg.setAttribute(\"width\", `${width}px`);\n      svg.setAttribute(\"height\", `${height}px`);\n    }\n\n    svg.setAttribute(\"preserveAspectRatio\", \"none\");\n    svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n\n    return svg;\n  }\n\n  createElement(type) {\n    if (typeof type !== \"string\") {\n      throw new Error(\"Invalid SVG element type\");\n    }\n    return this._createSVG(type);\n  }\n\n  /**\n   * @ignore\n   */\n  _createSVG(type) {\n    unreachable(\"Abstract method `_createSVG` called.\");\n  }\n}\n\nexport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n  BaseSVGFactory,\n};\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n  constructor(seed) {\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  update(input) {\n    let data, length;\n    if (typeof input === \"string\") {\n      data = new Uint8Array(input.length * 2);\n      length = 0;\n      for (let i = 0, ii = input.length; i < ii; i++) {\n        const code = input.charCodeAt(i);\n        if (code <= 0xff) {\n          data[length++] = code;\n        } else {\n          data[length++] = code >>> 8;\n          data[length++] = code & 0xff;\n        }\n      }\n    } else if (isArrayBuffer(input)) {\n      data = input.slice();\n      length = data.byteLength;\n    } else {\n      throw new Error(\n        \"Wrong data format in MurmurHash3_64_update. \" +\n          \"Input must be a string or array.\"\n      );\n    }\n\n    const blockCounts = length >> 2;\n    const tailLength = length - blockCounts * 4;\n    // We don't care about endianness here.\n    const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n    let k1 = 0,\n      k2 = 0;\n    let h1 = this.h1,\n      h2 = this.h2;\n    const C1 = 0xcc9e2d51,\n      C2 = 0x1b873593;\n    const C1_LOW = C1 & MASK_LOW,\n      C2_LOW = C2 & MASK_LOW;\n\n    for (let i = 0; i < blockCounts; i++) {\n      if (i & 1) {\n        k1 = dataUint32[i];\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        h1 ^= k1;\n        h1 = (h1 << 13) | (h1 >>> 19);\n        h1 = h1 * 5 + 0xe6546b64;\n      } else {\n        k2 = dataUint32[i];\n        k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n        k2 = (k2 << 15) | (k2 >>> 17);\n        k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n        h2 ^= k2;\n        h2 = (h2 << 13) | (h2 >>> 19);\n        h2 = h2 * 5 + 0xe6546b64;\n      }\n    }\n\n    k1 = 0;\n\n    switch (tailLength) {\n      case 3:\n        k1 ^= data[blockCounts * 4 + 2] << 16;\n      /* falls through */\n      case 2:\n        k1 ^= data[blockCounts * 4 + 1] << 8;\n      /* falls through */\n      case 1:\n        k1 ^= data[blockCounts * 4];\n        /* falls through */\n\n        k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n        k1 = (k1 << 15) | (k1 >>> 17);\n        k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n        if (blockCounts & 1) {\n          h1 ^= k1;\n        } else {\n          h2 ^= k1;\n        }\n    }\n\n    this.h1 = h1;\n    this.h2 = h2;\n  }\n\n  hexdigest() {\n    let h1 = this.h1,\n      h2 = this.h2;\n\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n    h2 =\n      ((h2 * 0xff51afd7) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n    h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n    h2 =\n      ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n      (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n    h1 ^= h2 >>> 1;\n\n    return (\n      (h1 >>> 0).toString(16).padStart(8, \"0\") +\n      (h2 >>> 0).toString(16).padStart(8, \"0\")\n    );\n  }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  bytesToString,\n  FeatureTest,\n  isNodeJS,\n  shadow,\n  string32,\n  unreachable,\n  warn,\n} from \"../shared/util.js\";\n\nclass FontLoader {\n  #systemFonts = new Set();\n\n  constructor({\n    ownerDocument = globalThis.document,\n    styleElement = null, // For testing only.\n  }) {\n    this._document = ownerDocument;\n\n    this.nativeFontFaces = new Set();\n    this.styleElement =\n      typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")\n        ? styleElement\n        : null;\n\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n      this.loadingRequests = [];\n      this.loadTestFontId = 0;\n    }\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.add(nativeFontFace);\n    this._document.fonts.add(nativeFontFace);\n  }\n\n  removeNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.delete(nativeFontFace);\n    this._document.fonts.delete(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    if (!this.styleElement) {\n      this.styleElement = this._document.createElement(\"style\");\n      this._document.documentElement\n        .getElementsByTagName(\"head\")[0]\n        .append(this.styleElement);\n    }\n    const styleSheet = this.styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n\n  clear() {\n    for (const nativeFontFace of this.nativeFontFaces) {\n      this._document.fonts.delete(nativeFontFace);\n    }\n    this.nativeFontFaces.clear();\n    this.#systemFonts.clear();\n\n    if (this.styleElement) {\n      // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n\n  async loadSystemFont(info) {\n    if (!info || this.#systemFonts.has(info.loadedName)) {\n      return;\n    }\n    assert(\n      !this.disableFontFace,\n      \"loadSystemFont shouldn't be called when `disableFontFace` is set.\"\n    );\n\n    if (this.isFontLoadingAPISupported) {\n      const { loadedName, src, style } = info;\n      const fontFace = new FontFace(loadedName, src, style);\n      this.addNativeFontFace(fontFace);\n      try {\n        await fontFace.load();\n        this.#systemFonts.add(loadedName);\n      } catch {\n        warn(\n          `Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`\n        );\n\n        this.removeNativeFontFace(fontFace);\n      }\n      return;\n    }\n\n    unreachable(\n      \"Not implemented: loadSystemFont without the Font Loading API.\"\n    );\n  }\n\n  async bind(font) {\n    // Add the font to the DOM only once; skip if the font is already loaded.\n    if (font.attached || (font.missingFile && !font.systemFontInfo)) {\n      return;\n    }\n    font.attached = true;\n\n    if (font.systemFontInfo) {\n      await this.loadSystemFont(font.systemFontInfo);\n      return;\n    }\n\n    if (this.isFontLoadingAPISupported) {\n      const nativeFontFace = font.createNativeFontFace();\n      if (nativeFontFace) {\n        this.addNativeFontFace(nativeFontFace);\n        try {\n          await nativeFontFace.loaded;\n        } catch (ex) {\n          warn(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n\n          // When font loading failed, fall back to the built-in font renderer.\n          font.disableFontFace = true;\n          throw ex;\n        }\n      }\n      return; // The font was, asynchronously, loaded.\n    }\n\n    // !this.isFontLoadingAPISupported\n    const rule = font.createFontFaceRule();\n    if (rule) {\n      this.insertRule(rule);\n\n      if (this.isSyncFontLoadingSupported) {\n        return; // The font was, synchronously, loaded.\n      }\n      if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n        throw new Error(\"Not implemented: async font loading\");\n      }\n      await new Promise(resolve => {\n        const request = this._queueLoadingCallback(resolve);\n        this._prepareFontLoadEvent(font, request);\n      });\n      // The font was, asynchronously, loaded.\n    }\n  }\n\n  get isFontLoadingAPISupported() {\n    const hasFonts = !!this._document?.fonts;\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      return shadow(\n        this,\n        \"isFontLoadingAPISupported\",\n        hasFonts && !this.styleElement\n      );\n    }\n    return shadow(this, \"isFontLoadingAPISupported\", hasFonts);\n  }\n\n  get isSyncFontLoadingSupported() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      return shadow(this, \"isSyncFontLoadingSupported\", true);\n    }\n\n    let supported = false;\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"CHROME\")) {\n      if (isNodeJS) {\n        // Node.js - we can pretend that sync font loading is supported.\n        supported = true;\n      } else if (\n        typeof navigator !== \"undefined\" &&\n        // User agent string sniffing is bad, but there is no reliable way to\n        // tell if the font is fully loaded and ready to be used with canvas.\n        /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)\n      ) {\n        // Firefox, from version 14, supports synchronous font loading.\n        supported = true;\n      }\n    }\n    return shadow(this, \"isSyncFontLoadingSupported\", supported);\n  }\n\n  _queueLoadingCallback(callback) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _queueLoadingCallback\");\n    }\n\n    function completeRequest() {\n      assert(!request.done, \"completeRequest() cannot be called twice.\");\n      request.done = true;\n\n      // Sending all completed requests in order of how they were queued.\n      while (loadingRequests.length > 0 && loadingRequests[0].done) {\n        const otherRequest = loadingRequests.shift();\n        setTimeout(otherRequest.callback, 0);\n      }\n    }\n\n    const { loadingRequests } = this;\n    const request = {\n      done: false,\n      complete: completeRequest,\n      callback,\n    };\n    loadingRequests.push(request);\n    return request;\n  }\n\n  get _loadTestFont() {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _loadTestFont\");\n    }\n\n    // This is a CFF font with 1 glyph for '.' that fills its entire width\n    // and height.\n    const testFont = atob(\n      \"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" +\n        \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" +\n        \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" +\n        \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" +\n        \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" +\n        \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" +\n        \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" +\n        \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" +\n        \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" +\n        \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" +\n        \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" +\n        \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" +\n        \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n        \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n        \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n        \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n        \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" +\n        \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" +\n        \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" +\n        \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" +\n        \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" +\n        \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\"\n    );\n    return shadow(this, \"_loadTestFont\", testFont);\n  }\n\n  _prepareFontLoadEvent(font, request) {\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      throw new Error(\"Not implemented: _prepareFontLoadEvent\");\n    }\n\n    /** Hack begin */\n    // There's currently no event when a font has finished downloading so the\n    // following code is a dirty hack to 'guess' when a font is ready.\n    // It's assumed fonts are loaded in order, so add a known test font after\n    // the desired fonts and then test for the loading of that test font.\n\n    function int32(data, offset) {\n      return (\n        (data.charCodeAt(offset) << 24) |\n        (data.charCodeAt(offset + 1) << 16) |\n        (data.charCodeAt(offset + 2) << 8) |\n        (data.charCodeAt(offset + 3) & 0xff)\n      );\n    }\n    function spliceString(s, offset, remove, insert) {\n      const chunk1 = s.substring(0, offset);\n      const chunk2 = s.substring(offset + remove);\n      return chunk1 + insert + chunk2;\n    }\n    let i, ii;\n\n    // The temporary canvas is used to determine if fonts are loaded.\n    const canvas = this._document.createElement(\"canvas\");\n    canvas.width = 1;\n    canvas.height = 1;\n    const ctx = canvas.getContext(\"2d\");\n\n    let called = 0;\n    function isFontReady(name, callback) {\n      // With setTimeout clamping this gives the font ~100ms to load.\n      if (++called > 30) {\n        warn(\"Load test font never loaded.\");\n        callback();\n        return;\n      }\n      ctx.font = \"30px \" + name;\n      ctx.fillText(\".\", 0, 20);\n      const imageData = ctx.getImageData(0, 0, 1, 1);\n      if (imageData.data[3] > 0) {\n        callback();\n        return;\n      }\n      setTimeout(isFontReady.bind(null, name, callback));\n    }\n\n    const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n    // Chromium seems to cache fonts based on a hash of the actual font data,\n    // so the font must be modified for each load test else it will appear to\n    // be loaded already.\n    // TODO: This could maybe be made faster by avoiding the btoa of the full\n    // font by splitting it in chunks before hand and padding the font id.\n    let data = this._loadTestFont;\n    const COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n    data = spliceString(\n      data,\n      COMMENT_OFFSET,\n      loadTestFontId.length,\n      loadTestFontId\n    );\n    // CFF checksum is important for IE, adjusting it\n    const CFF_CHECKSUM_OFFSET = 16;\n    const XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n    let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n    for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n      checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n    }\n    if (i < loadTestFontId.length) {\n      // align to 4 bytes boundary\n      checksum = (checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i)) | 0;\n    }\n    data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n    const url = `url(data:font/opentype;base64,${btoa(data)});`;\n    const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n    this.insertRule(rule);\n\n    const div = this._document.createElement(\"div\");\n    div.style.visibility = \"hidden\";\n    div.style.width = div.style.height = \"10px\";\n    div.style.position = \"absolute\";\n    div.style.top = div.style.left = \"0px\";\n\n    for (const name of [font.loadedName, loadTestFontId]) {\n      const span = this._document.createElement(\"span\");\n      span.textContent = \"Hi\";\n      span.style.fontFamily = name;\n      div.append(span);\n    }\n    this._document.body.append(div);\n\n    isFontReady(loadTestFontId, () => {\n      div.remove();\n      request.complete();\n    });\n    /** Hack end */\n  }\n}\n\nclass FontFaceObject {\n  constructor(\n    translatedData,\n    {\n      isEvalSupported = true,\n      disableFontFace = false,\n      ignoreErrors = false,\n      inspectFont = null,\n    }\n  ) {\n    this.compiledGlyphs = Object.create(null);\n    // importing translated data\n    for (const i in translatedData) {\n      this[i] = translatedData[i];\n    }\n    this.isEvalSupported = isEvalSupported !== false;\n    this.disableFontFace = disableFontFace === true;\n    this.ignoreErrors = ignoreErrors === true;\n    this._inspectFont = inspectFont;\n  }\n\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    let nativeFontFace;\n    if (!this.cssFontInfo) {\n      nativeFontFace = new FontFace(this.loadedName, this.data, {});\n    } else {\n      const css = {\n        weight: this.cssFontInfo.fontWeight,\n      };\n      if (this.cssFontInfo.italicAngle) {\n        css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n      }\n      nativeFontFace = new FontFace(\n        this.cssFontInfo.fontFamily,\n        this.data,\n        css\n      );\n    }\n\n    this._inspectFont?.(this);\n    return nativeFontFace;\n  }\n\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const data = bytesToString(this.data);\n    // Add the @font-face rule to the document.\n    const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n    let rule;\n    if (!this.cssFontInfo) {\n      rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n    } else {\n      let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n      if (this.cssFontInfo.italicAngle) {\n        css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n      }\n      rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n    }\n\n    this._inspectFont?.(this, url);\n    return rule;\n  }\n\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n\n    let cmds;\n    try {\n      cmds = objs.get(this.loadedName + \"_path_\" + character);\n    } catch (ex) {\n      if (!this.ignoreErrors) {\n        throw ex;\n      }\n      warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n      return (this.compiledGlyphs[character] = function (c, size) {\n        // No-op function, to allow rendering to continue.\n      });\n    }\n\n    // If we can, compile cmds into JS for MAXIMUM SPEED...\n    if (this.isEvalSupported && FeatureTest.isEvalSupported) {\n      const jsBuf = [];\n      for (const current of cmds) {\n        const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n        jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n      }\n      // eslint-disable-next-line no-new-func\n      return (this.compiledGlyphs[character] = new Function(\n        \"c\",\n        \"size\",\n        jsBuf.join(\"\")\n      ));\n    }\n    // ... but fall back on using Function.prototype.apply() if we're\n    // blocked from using eval() for whatever reason (like CSP policies).\n    return (this.compiledGlyphs[character] = function (c, size) {\n      for (const current of cmds) {\n        if (current.cmd === \"scale\") {\n          current.args = [size, -size];\n        }\n        // eslint-disable-next-line prefer-spread\n        c[current.cmd].apply(c, current.args);\n      }\n    });\n  }\n}\n\nexport { FontFaceObject, FontLoader };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  BaseCanvasFactory,\n  BaseCMapReaderFactory,\n  BaseFilterFactory,\n  BaseStandardFontDataFactory,\n} from \"./base_factory.js\";\nimport { isNodeJS, warn } from \"../shared/util.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./node_utils.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"SKIP_BABEL\")) {\n  (function checkDOMMatrix() {\n    if (globalThis.DOMMatrix || !isNodeJS) {\n      return;\n    }\n    try {\n      globalThis.DOMMatrix = __non_webpack_require__(\"canvas\").DOMMatrix;\n    } catch (ex) {\n      warn(`Cannot polyfill \\`DOMMatrix\\`, rendering may be broken: \"${ex}\".`);\n    }\n  })();\n\n  (function checkPath2D() {\n    if (globalThis.Path2D || !isNodeJS) {\n      return;\n    }\n    try {\n      const { CanvasRenderingContext2D } = __non_webpack_require__(\"canvas\");\n      const { polyfillPath2D } = __non_webpack_require__(\"path2d-polyfill\");\n\n      globalThis.CanvasRenderingContext2D = CanvasRenderingContext2D;\n      polyfillPath2D(globalThis);\n    } catch (ex) {\n      warn(`Cannot polyfill \\`Path2D\\`, rendering may be broken: \"${ex}\".`);\n    }\n  })();\n}\n\nconst fetchData = function (url) {\n  return new Promise((resolve, reject) => {\n    const fs = __non_webpack_require__(\"fs\");\n    fs.readFile(url, (error, data) => {\n      if (error || !data) {\n        reject(new Error(error));\n        return;\n      }\n      resolve(new Uint8Array(data));\n    });\n  });\n};\n\nclass NodeFilterFactory extends BaseFilterFactory {}\n\nclass NodeCanvasFactory extends BaseCanvasFactory {\n  /**\n   * @ignore\n   */\n  _createCanvas(width, height) {\n    const Canvas = __non_webpack_require__(\"canvas\");\n    return Canvas.createCanvas(width, height);\n  }\n}\n\nclass NodeCMapReaderFactory extends BaseCMapReaderFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url, compressionType) {\n    return fetchData(url).then(data => {\n      return { cMapData: data, compressionType };\n    });\n  }\n}\n\nclass NodeStandardFontDataFactory extends BaseStandardFontDataFactory {\n  /**\n   * @ignore\n   */\n  _fetchData(url) {\n    return fetchData(url);\n  }\n}\n\nexport {\n  NodeCanvasFactory,\n  NodeCMapReaderFactory,\n  NodeFilterFactory,\n  NodeStandardFontDataFactory,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  FeatureTest,\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  info,\n  isNodeJS,\n  OPS,\n  shadow,\n  TextRenderingMode,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  getCurrentTransform,\n  getCurrentTransformInverse,\n  PixelsPerInch,\n} from \"./display_utils.js\";\nimport {\n  getShadingPattern,\n  PathType,\n  TilingPattern,\n} from \"./pattern_helper.js\";\nimport { convertBlackAndWhiteToRGBA } from \"../shared/image_utils.js\";\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n// Minimal font size that would be used during canvas fillText operations.\nconst MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\n\n// Defines the time the `executeOperatorList`-method is going to be executing\n// before it stops and schedules a continue of execution.\nconst EXECUTION_TIME = 15; // ms\n// Defines the number of steps before checking the execution time.\nconst EXECUTION_STEPS = 10;\n\n// To disable Type3 compilation, set the value to `-1`.\nconst MAX_SIZE_TO_COMPILE = 1000;\n\nconst FULL_CHUNK_HEIGHT = 16;\n\n/**\n * Overrides certain methods on a 2d ctx so that when they are called they\n * will also call the same method on the destCtx. The methods that are\n * overridden are all the transformation state modifiers, path creation, and\n * save/restore. We only forward these specific methods because they are the\n * only state modifiers that we cannot copy over when we switch contexts.\n *\n * To remove mirroring call `ctx._removeMirroring()`.\n *\n * @param {Object} ctx - The 2d canvas context that will duplicate its calls on\n *   the destCtx.\n * @param {Object} destCtx - The 2d canvas context that will receive the\n *   forwarded calls.\n */\nfunction mirrorContextOperations(ctx, destCtx) {\n  if (ctx._removeMirroring) {\n    throw new Error(\"Context is already forwarding operations.\");\n  }\n  ctx.__originalSave = ctx.save;\n  ctx.__originalRestore = ctx.restore;\n  ctx.__originalRotate = ctx.rotate;\n  ctx.__originalScale = ctx.scale;\n  ctx.__originalTranslate = ctx.translate;\n  ctx.__originalTransform = ctx.transform;\n  ctx.__originalSetTransform = ctx.setTransform;\n  ctx.__originalResetTransform = ctx.resetTransform;\n  ctx.__originalClip = ctx.clip;\n  ctx.__originalMoveTo = ctx.moveTo;\n  ctx.__originalLineTo = ctx.lineTo;\n  ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n  ctx.__originalRect = ctx.rect;\n  ctx.__originalClosePath = ctx.closePath;\n  ctx.__originalBeginPath = ctx.beginPath;\n\n  ctx._removeMirroring = () => {\n    ctx.save = ctx.__originalSave;\n    ctx.restore = ctx.__originalRestore;\n    ctx.rotate = ctx.__originalRotate;\n    ctx.scale = ctx.__originalScale;\n    ctx.translate = ctx.__originalTranslate;\n    ctx.transform = ctx.__originalTransform;\n    ctx.setTransform = ctx.__originalSetTransform;\n    ctx.resetTransform = ctx.__originalResetTransform;\n\n    ctx.clip = ctx.__originalClip;\n    ctx.moveTo = ctx.__originalMoveTo;\n    ctx.lineTo = ctx.__originalLineTo;\n    ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n    ctx.rect = ctx.__originalRect;\n    ctx.closePath = ctx.__originalClosePath;\n    ctx.beginPath = ctx.__originalBeginPath;\n    delete ctx._removeMirroring;\n  };\n\n  ctx.save = function ctxSave() {\n    destCtx.save();\n    this.__originalSave();\n  };\n\n  ctx.restore = function ctxRestore() {\n    destCtx.restore();\n    this.__originalRestore();\n  };\n\n  ctx.translate = function ctxTranslate(x, y) {\n    destCtx.translate(x, y);\n    this.__originalTranslate(x, y);\n  };\n\n  ctx.scale = function ctxScale(x, y) {\n    destCtx.scale(x, y);\n    this.__originalScale(x, y);\n  };\n\n  ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n    destCtx.transform(a, b, c, d, e, f);\n    this.__originalTransform(a, b, c, d, e, f);\n  };\n\n  ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n    destCtx.setTransform(a, b, c, d, e, f);\n    this.__originalSetTransform(a, b, c, d, e, f);\n  };\n\n  ctx.resetTransform = function ctxResetTransform() {\n    destCtx.resetTransform();\n    this.__originalResetTransform();\n  };\n\n  ctx.rotate = function ctxRotate(angle) {\n    destCtx.rotate(angle);\n    this.__originalRotate(angle);\n  };\n\n  ctx.clip = function ctxRotate(rule) {\n    destCtx.clip(rule);\n    this.__originalClip(rule);\n  };\n\n  ctx.moveTo = function (x, y) {\n    destCtx.moveTo(x, y);\n    this.__originalMoveTo(x, y);\n  };\n\n  ctx.lineTo = function (x, y) {\n    destCtx.lineTo(x, y);\n    this.__originalLineTo(x, y);\n  };\n\n  ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n    destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n    this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n  };\n\n  ctx.rect = function (x, y, width, height) {\n    destCtx.rect(x, y, width, height);\n    this.__originalRect(x, y, width, height);\n  };\n\n  ctx.closePath = function () {\n    destCtx.closePath();\n    this.__originalClosePath();\n  };\n\n  ctx.beginPath = function () {\n    destCtx.beginPath();\n    this.__originalBeginPath();\n  };\n}\n\nclass CachedCanvases {\n  constructor(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n\n  getCanvas(id, width, height) {\n    let canvasEntry;\n    if (this.cache[id] !== undefined) {\n      canvasEntry = this.cache[id];\n      this.canvasFactory.reset(canvasEntry, width, height);\n    } else {\n      canvasEntry = this.canvasFactory.create(width, height);\n      this.cache[id] = canvasEntry;\n    }\n    return canvasEntry;\n  }\n\n  delete(id) {\n    delete this.cache[id];\n  }\n\n  clear() {\n    for (const id in this.cache) {\n      const canvasEntry = this.cache[id];\n      this.canvasFactory.destroy(canvasEntry);\n      delete this.cache[id];\n    }\n  }\n}\n\nfunction drawImageAtIntegerCoords(\n  ctx,\n  srcImg,\n  srcX,\n  srcY,\n  srcW,\n  srcH,\n  destX,\n  destY,\n  destW,\n  destH\n) {\n  const [a, b, c, d, tx, ty] = getCurrentTransform(ctx);\n  if (b === 0 && c === 0) {\n    // top-left corner is at (X, Y) and\n    // bottom-right one is at (X + width, Y + height).\n\n    // If leftX is 4.321 then it's rounded to 4.\n    // If width is 10.432 then it's rounded to 11 because\n    // rightX = leftX + width = 14.753 which is rounded to 15\n    // so after rounding the total width is 11 (15 - 4).\n    // It's why we can't just floor/ceil uniformly, it just depends\n    // on the values we've.\n\n    const tlX = destX * a + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destY * d + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destX + destW) * a + tx;\n\n    // Some pdf contains images with 1x1 images so in case of 0-width after\n    // scaling we must fallback on 1 to be sure there is something.\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destY + destH) * d + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n\n    // We must apply a transformation in order to apply it on the image itself.\n    // For example if a == 1 && d == -1, it means that the image itself is\n    // mirrored w.r.t. the x-axis.\n    ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n    ctx.setTransform(a, b, c, d, tx, ty);\n\n    return [rWidth, rHeight];\n  }\n\n  if (a === 0 && d === 0) {\n    // This path is taken in issue9462.pdf (page 3).\n    const tlX = destY * c + tx;\n    const rTlX = Math.round(tlX);\n    const tlY = destX * b + ty;\n    const rTlY = Math.round(tlY);\n    const brX = (destY + destH) * c + tx;\n    const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n    const brY = (destX + destW) * b + ty;\n    const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n\n    ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n    ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n    ctx.setTransform(a, b, c, d, tx, ty);\n\n    return [rHeight, rWidth];\n  }\n\n  // Not a scale matrix so let the render handle the case without rounding.\n  ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n\n  const scaleX = Math.hypot(a, b);\n  const scaleY = Math.hypot(c, d);\n  return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n  const { width, height } = imgData;\n  if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n    return null;\n  }\n\n  const POINT_TO_PROCESS_LIMIT = 1000;\n  const POINT_TYPES = new Uint8Array([\n    0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0,\n  ]);\n\n  const width1 = width + 1;\n  let points = new Uint8Array(width1 * (height + 1));\n  let i, j, j0;\n\n  // decodes bit-packed mask data\n  const lineSize = (width + 7) & ~7;\n  let data = new Uint8Array(lineSize * height),\n    pos = 0;\n  for (const elem of imgData.data) {\n    let mask = 128;\n    while (mask > 0) {\n      data[pos++] = elem & mask ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  // finding interesting points: every point is located between mask pixels,\n  // so there will be points of the (width + 1)x(height + 1) grid. Every point\n  // will have flags assigned based on neighboring mask pixels:\n  //   4 | 8\n  //   --P--\n  //   2 | 1\n  // We are interested only in points with the flags:\n  //   - outside corners: 1, 2, 4, 8;\n  //   - inside corners: 7, 11, 13, 14;\n  //   - and, intersections: 5, 10.\n  let count = 0;\n  pos = 0;\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    // 'sum' is the position of the current pixel configuration in the 'TYPES'\n    // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n    let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum =\n        (sum >> 2) +\n        (data[pos + 1] ? 4 : 0) +\n        (data[pos - lineSize + 1] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos++;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  // building outlines\n  const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  const path = new Path2D();\n\n  for (i = 0; count && i <= height; i++) {\n    let p = i * width1;\n    const end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    path.moveTo(p % width1, i);\n\n    const p0 = p;\n    let type = points[p];\n    do {\n      const step = steps[type];\n      do {\n        p += step;\n      } while (!points[p]);\n\n      const pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        // set new direction\n        type = pp;\n        // delete mark\n        points[p] = 0;\n      } else {\n        // type is 5 or 10, ie, a crossing\n        // set new direction\n        type = pp & ((0x33 * type) >> 4);\n        // set new type for \"future hit\"\n        points[p] &= (type >> 2) | (type << 2);\n      }\n      path.lineTo(p % width1, (p / width1) | 0);\n\n      if (!points[p]) {\n        --count;\n      }\n    } while (p0 !== p);\n    --i;\n  }\n\n  // Immediately release the, potentially large, `Uint8Array`s after parsing.\n  data = null;\n  points = null;\n\n  const drawOutline = function (c) {\n    c.save();\n    // the path shall be painted in [0..1]x[0..1] space\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.fill(path);\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nclass CanvasExtraState {\n  constructor(width, height) {\n    // Are soft masks and alpha values shapes or opacities?\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = IDENTITY_MATRIX;\n    this.textMatrixScale = 1;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textRise = 0;\n    // Default fore and background colors\n    this.fillColor = \"#000000\";\n    this.strokeColor = \"#000000\";\n    this.patternFill = false;\n    // Note: fill alpha applies to all non-stroking operations\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.activeSMask = null;\n    this.transferMaps = \"none\";\n\n    this.startNewPathAndClipBox([0, 0, width, height]);\n  }\n\n  clone() {\n    const clone = Object.create(this);\n    clone.clipBox = this.clipBox.slice();\n    return clone;\n  }\n\n  setCurrentPoint(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  updatePathMinMax(transform, x, y) {\n    [x, y] = Util.applyTransform([x, y], transform);\n    this.minX = Math.min(this.minX, x);\n    this.minY = Math.min(this.minY, y);\n    this.maxX = Math.max(this.maxX, x);\n    this.maxY = Math.max(this.maxY, y);\n  }\n\n  updateRectMinMax(transform, rect) {\n    const p1 = Util.applyTransform(rect, transform);\n    const p2 = Util.applyTransform(rect.slice(2), transform);\n    this.minX = Math.min(this.minX, p1[0], p2[0]);\n    this.minY = Math.min(this.minY, p1[1], p2[1]);\n    this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n    this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n  }\n\n  updateScalingPathMinMax(transform, minMax) {\n    Util.scaleMinMax(transform, minMax);\n    this.minX = Math.min(this.minX, minMax[0]);\n    this.maxX = Math.max(this.maxX, minMax[1]);\n    this.minY = Math.min(this.minY, minMax[2]);\n    this.maxY = Math.max(this.maxY, minMax[3]);\n  }\n\n  updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n    const box = Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n    if (minMax) {\n      minMax[0] = Math.min(minMax[0], box[0], box[2]);\n      minMax[1] = Math.max(minMax[1], box[0], box[2]);\n      minMax[2] = Math.min(minMax[2], box[1], box[3]);\n      minMax[3] = Math.max(minMax[3], box[1], box[3]);\n      return;\n    }\n    this.updateRectMinMax(transform, box);\n  }\n\n  getPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    const box = [this.minX, this.minY, this.maxX, this.maxY];\n    if (pathType === PathType.STROKE) {\n      if (!transform) {\n        unreachable(\"Stroke bounding box must include transform.\");\n      }\n      // Stroked paths can be outside of the path bounding box by 1/2 the line\n      // width.\n      const scale = Util.singularValueDecompose2dScale(transform);\n      const xStrokePad = (scale[0] * this.lineWidth) / 2;\n      const yStrokePad = (scale[1] * this.lineWidth) / 2;\n      box[0] -= xStrokePad;\n      box[1] -= yStrokePad;\n      box[2] += xStrokePad;\n      box[3] += yStrokePad;\n    }\n    return box;\n  }\n\n  updateClipFromPath() {\n    const intersect = Util.intersect(this.clipBox, this.getPathBoundingBox());\n    this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n  }\n\n  isEmptyClip() {\n    return this.minX === Infinity;\n  }\n\n  startNewPathAndClipBox(box) {\n    this.clipBox = box;\n    this.minX = Infinity;\n    this.minY = Infinity;\n    this.maxX = 0;\n    this.maxY = 0;\n  }\n\n  getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) {\n    return Util.intersect(\n      this.clipBox,\n      this.getPathBoundingBox(pathType, transform)\n    );\n  }\n}\n\nfunction putBinaryImageData(ctx, imgData) {\n  if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n    ctx.putImageData(imgData, 0, 0);\n    return;\n  }\n\n  // Put the image data to the canvas in chunks, rather than putting the\n  // whole image at once.  This saves JS memory, because the ImageData object\n  // is smaller. It also possibly saves C++ memory within the implementation\n  // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n  // the data passed to putImageData()). |n| shouldn't be too small, however,\n  // because too many putImageData() calls will slow things down.\n  //\n  // Note: as written, if the last chunk is partial, the putImageData() call\n  // will (conceptually) put pixels past the bounds of the canvas.  But\n  // that's ok; any such pixels are ignored.\n\n  const height = imgData.height,\n    width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0,\n    destPos;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n  let i, j, thisChunkHeight, elemsInThisChunk;\n\n  // There are multiple forms in which the pixel data can be passed, and\n  // imgData.kind tells us which one this is.\n  if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n    // Grayscale, 1 bit per pixel (i.e. black-and-white).\n    const srcLength = src.byteLength;\n    const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n    const dest32DataLength = dest32.length;\n    const fullSrcDiff = (width + 7) >> 3;\n    const white = 0xffffffff;\n    const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n\n    for (i = 0; i < totalChunks; i++) {\n      thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n      destPos = 0;\n      for (j = 0; j < thisChunkHeight; j++) {\n        const srcDiff = srcLength - srcPos;\n        let k = 0;\n        const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n        const kEndUnrolled = kEnd & ~7;\n        let mask = 0;\n        let srcByte = 0;\n        for (; k < kEndUnrolled; k += 8) {\n          srcByte = src[srcPos++];\n          dest32[destPos++] = srcByte & 128 ? white : black;\n          dest32[destPos++] = srcByte & 64 ? white : black;\n          dest32[destPos++] = srcByte & 32 ? white : black;\n          dest32[destPos++] = srcByte & 16 ? white : black;\n          dest32[destPos++] = srcByte & 8 ? white : black;\n          dest32[destPos++] = srcByte & 4 ? white : black;\n          dest32[destPos++] = srcByte & 2 ? white : black;\n          dest32[destPos++] = srcByte & 1 ? white : black;\n        }\n        for (; k < kEnd; k++) {\n          if (mask === 0) {\n            srcByte = src[srcPos++];\n            mask = 128;\n          }\n\n          dest32[destPos++] = srcByte & mask ? white : black;\n          mask >>= 1;\n        }\n      }\n      // We ran out of input. Make all remaining pixels transparent.\n      while (destPos < dest32DataLength) {\n        dest32[destPos++] = 0;\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n    // RGBA, 32-bits per pixel.\n    j = 0;\n    elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n    for (i = 0; i < fullChunks; i++) {\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n      srcPos += elemsInThisChunk;\n\n      ctx.putImageData(chunkImgData, 0, j);\n      j += FULL_CHUNK_HEIGHT;\n    }\n    if (i < totalChunks) {\n      elemsInThisChunk = width * partialChunkHeight * 4;\n      dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n      ctx.putImageData(chunkImgData, 0, j);\n    }\n  } else if (imgData.kind === ImageKind.RGB_24BPP) {\n    // RGB, 24-bits per pixel.\n    thisChunkHeight = FULL_CHUNK_HEIGHT;\n    elemsInThisChunk = width * thisChunkHeight;\n    for (i = 0; i < totalChunks; i++) {\n      if (i >= fullChunks) {\n        thisChunkHeight = partialChunkHeight;\n        elemsInThisChunk = width * thisChunkHeight;\n      }\n\n      destPos = 0;\n      for (j = elemsInThisChunk; j--; ) {\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = src[srcPos++];\n        dest[destPos++] = 255;\n      }\n\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  } else {\n    throw new Error(`bad image kind: ${imgData.kind}`);\n  }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n  if (imgData.bitmap) {\n    // The bitmap has been created in the worker.\n    ctx.drawImage(imgData.bitmap, 0, 0);\n    return;\n  }\n\n  // Slow path: OffscreenCanvas isn't available in the worker.\n  const height = imgData.height,\n    width = imgData.width;\n  const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n  const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n  const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n  const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n  let srcPos = 0;\n  const src = imgData.data;\n  const dest = chunkImgData.data;\n\n  for (let i = 0; i < totalChunks; i++) {\n    const thisChunkHeight =\n      i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n    // Expand the mask so it can be used by the canvas.  Any required\n    // inversion has already been handled.\n\n    ({ srcPos } = convertBlackAndWhiteToRGBA({\n      src,\n      srcPos,\n      dest,\n      width,\n      height: thisChunkHeight,\n      nonBlackColor: 0,\n    }));\n\n    ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n  }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n  const properties = [\n    \"strokeStyle\",\n    \"fillStyle\",\n    \"fillRule\",\n    \"globalAlpha\",\n    \"lineWidth\",\n    \"lineCap\",\n    \"lineJoin\",\n    \"miterLimit\",\n    \"globalCompositeOperation\",\n    \"font\",\n    \"filter\",\n  ];\n  for (const property of properties) {\n    if (sourceCtx[property] !== undefined) {\n      destCtx[property] = sourceCtx[property];\n    }\n  }\n  if (sourceCtx.setLineDash !== undefined) {\n    destCtx.setLineDash(sourceCtx.getLineDash());\n    destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n  }\n}\n\nfunction resetCtxToDefault(ctx) {\n  ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n  ctx.fillRule = \"nonzero\";\n  ctx.globalAlpha = 1;\n  ctx.lineWidth = 1;\n  ctx.lineCap = \"butt\";\n  ctx.lineJoin = \"miter\";\n  ctx.miterLimit = 10;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.font = \"10px sans-serif\";\n  if (ctx.setLineDash !== undefined) {\n    ctx.setLineDash([]);\n    ctx.lineDashOffset = 0;\n  }\n  if (\n    (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n    !isNodeJS\n  ) {\n    const { filter } = ctx;\n    if (filter !== \"none\" && filter !== \"\") {\n      ctx.filter = \"none\";\n    }\n  }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n  const length = bytes.length;\n  for (let i = 3; i < length; i += 4) {\n    const alpha = bytes[i];\n    if (alpha === 0) {\n      bytes[i - 3] = r0;\n      bytes[i - 2] = g0;\n      bytes[i - 1] = b0;\n    } else if (alpha < 255) {\n      const alpha_ = 255 - alpha;\n      bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n      bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n      bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n    }\n  }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n  const length = maskData.length;\n  const scale = 1 / 255;\n  for (let i = 3; i < length; i += 4) {\n    const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n    layerData[i] = (layerData[i] * alpha * scale) | 0;\n  }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n  const length = maskData.length;\n  for (let i = 3; i < length; i += 4) {\n    const y =\n      maskData[i - 3] * 77 + // * 0.3 / 255 * 0x10000\n      maskData[i - 2] * 152 + // * 0.59 ....\n      maskData[i - 1] * 28; // * 0.11 ....\n    layerData[i] = transferMap\n      ? (layerData[i] * transferMap[y >> 8]) >> 8\n      : (layerData[i] * y) >> 16;\n  }\n}\n\nfunction genericComposeSMask(\n  maskCtx,\n  layerCtx,\n  width,\n  height,\n  subtype,\n  backdrop,\n  transferMap,\n  layerOffsetX,\n  layerOffsetY,\n  maskOffsetX,\n  maskOffsetY\n) {\n  const hasBackdrop = !!backdrop;\n  const r0 = hasBackdrop ? backdrop[0] : 0;\n  const g0 = hasBackdrop ? backdrop[1] : 0;\n  const b0 = hasBackdrop ? backdrop[2] : 0;\n\n  const composeFn =\n    subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\n\n  // processing image in chunks to save memory\n  const PIXELS_TO_PROCESS = 1048576;\n  const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n  for (let row = 0; row < height; row += chunkSize) {\n    const chunkHeight = Math.min(chunkSize, height - row);\n    const maskData = maskCtx.getImageData(\n      layerOffsetX - maskOffsetX,\n      row + (layerOffsetY - maskOffsetY),\n      width,\n      chunkHeight\n    );\n    const layerData = layerCtx.getImageData(\n      layerOffsetX,\n      row + layerOffsetY,\n      width,\n      chunkHeight\n    );\n\n    if (hasBackdrop) {\n      composeSMaskBackdrop(maskData.data, r0, g0, b0);\n    }\n    composeFn(maskData.data, layerData.data, transferMap);\n\n    layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n  }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n  const layerOffsetX = layerBox[0];\n  const layerOffsetY = layerBox[1];\n  const layerWidth = layerBox[2] - layerOffsetX;\n  const layerHeight = layerBox[3] - layerOffsetY;\n  if (layerWidth === 0 || layerHeight === 0) {\n    return;\n  }\n  genericComposeSMask(\n    smask.context,\n    layerCtx,\n    layerWidth,\n    layerHeight,\n    smask.subtype,\n    smask.backdrop,\n    smask.transferMap,\n    layerOffsetX,\n    layerOffsetY,\n    smask.offsetX,\n    smask.offsetY\n  );\n  ctx.save();\n  ctx.globalAlpha = 1;\n  ctx.globalCompositeOperation = \"source-over\";\n  ctx.setTransform(1, 0, 0, 1, 0, 0);\n  ctx.drawImage(layerCtx.canvas, 0, 0);\n  ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n  const scale = Util.singularValueDecompose2dScale(transform);\n  // Round to a 32bit float so that `<=` check below will pass for numbers that\n  // are very close, but not exactly the same 64bit floats.\n  scale[0] = Math.fround(scale[0]);\n  scale[1] = Math.fround(scale[1]);\n  const actualScale = Math.fround(\n    (globalThis.devicePixelRatio || 1) * PixelsPerInch.PDF_TO_CSS_UNITS\n  );\n  if (interpolate !== undefined) {\n    // If the value is explicitly set use it.\n    return interpolate;\n  } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n    // Smooth when downscaling.\n    return true;\n  }\n  // Don't smooth when upscaling.\n  return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n  constructor(\n    canvasCtx,\n    commonObjs,\n    objs,\n    canvasFactory,\n    filterFactory,\n    { optionalContentConfig, markedContentStack = null },\n    annotationCanvasMap,\n    pageColors\n  ) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState(\n      this.ctx.canvas.width,\n      this.ctx.canvas.height\n    );\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.filterFactory = filterFactory;\n    this.groupStack = [];\n    this.processingType3 = null;\n    // Patterns are painted relative to the initial page/form transform, see\n    // PDF spec 8.7.2 NOTE 1.\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.smaskCounter = 0;\n    this.tempSMask = null;\n    this.suspendedCtx = null;\n    this.contentVisible = true;\n    this.markedContentStack = markedContentStack || [];\n    this.optionalContentConfig = optionalContentConfig;\n    this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n    this.cachedPatterns = new Map();\n    this.annotationCanvasMap = annotationCanvasMap;\n    this.viewportScale = 1;\n    this.outputScaleX = 1;\n    this.outputScaleY = 1;\n    this.pageColors = pageColors;\n\n    this._cachedScaleForStroking = [-1, 0];\n    this._cachedGetSinglePixelWidth = null;\n    this._cachedBitmapsMap = new Map();\n  }\n\n  getObject(data, fallback = null) {\n    if (typeof data === \"string\") {\n      return data.startsWith(\"g_\")\n        ? this.commonObjs.get(data)\n        : this.objs.get(data);\n    }\n    return fallback;\n  }\n\n  beginDrawing({\n    transform,\n    viewport,\n    transparency = false,\n    background = null,\n  }) {\n    // For pdfs that use blend modes we have to clear the canvas else certain\n    // blend modes can look wrong since we'd be blending with a white\n    // backdrop. The problem with a transparent backdrop though is we then\n    // don't get sub pixel anti aliasing on text, creating temporary\n    // transparent canvas when we have blend modes.\n    const width = this.ctx.canvas.width;\n    const height = this.ctx.canvas.height;\n\n    const savedFillStyle = this.ctx.fillStyle;\n    this.ctx.fillStyle = background || \"#ffffff\";\n    this.ctx.fillRect(0, 0, width, height);\n    this.ctx.fillStyle = savedFillStyle;\n\n    if (transparency) {\n      const transparentCanvas = this.cachedCanvases.getCanvas(\n        \"transparent\",\n        width,\n        height\n      );\n      this.compositeCtx = this.ctx;\n      this.transparentCanvas = transparentCanvas.canvas;\n      this.ctx = transparentCanvas.context;\n      this.ctx.save();\n      // The transform can be applied before rendering, transferring it to\n      // the new canvas.\n      this.ctx.transform(...getCurrentTransform(this.compositeCtx));\n    }\n\n    this.ctx.save();\n    resetCtxToDefault(this.ctx);\n    if (transform) {\n      this.ctx.transform(...transform);\n      this.outputScaleX = transform[0];\n      this.outputScaleY = transform[0];\n    }\n    this.ctx.transform(...viewport.transform);\n    this.viewportScale = viewport.scale;\n\n    this.baseTransform = getCurrentTransform(this.ctx);\n  }\n\n  executeOperatorList(\n    operatorList,\n    executionStartIdx,\n    continueCallback,\n    stepper\n  ) {\n    const argsArray = operatorList.argsArray;\n    const fnArray = operatorList.fnArray;\n    let i = executionStartIdx || 0;\n    const argsArrayLen = argsArray.length;\n\n    // Sometimes the OperatorList to execute is empty.\n    if (argsArrayLen === i) {\n      return i;\n    }\n\n    const chunkOperations =\n      argsArrayLen - i > EXECUTION_STEPS &&\n      typeof continueCallback === \"function\";\n    const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n    let steps = 0;\n\n    const commonObjs = this.commonObjs;\n    const objs = this.objs;\n    let fnId;\n\n    while (true) {\n      if (stepper !== undefined && i === stepper.nextBreakPoint) {\n        stepper.breakIt(i, continueCallback);\n        return i;\n      }\n\n      fnId = fnArray[i];\n\n      if (fnId !== OPS.dependency) {\n        // eslint-disable-next-line prefer-spread\n        this[fnId].apply(this, argsArray[i]);\n      } else {\n        for (const depObjId of argsArray[i]) {\n          const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n          // If the promise isn't resolved yet, add the continueCallback\n          // to the promise and bail out.\n          if (!objsPool.has(depObjId)) {\n            objsPool.get(depObjId, continueCallback);\n            return i;\n          }\n        }\n      }\n\n      i++;\n\n      // If the entire operatorList was executed, stop as were done.\n      if (i === argsArrayLen) {\n        return i;\n      }\n\n      // If the execution took longer then a certain amount of time and\n      // `continueCallback` is specified, interrupt the execution.\n      if (chunkOperations && ++steps > EXECUTION_STEPS) {\n        if (Date.now() > endTime) {\n          continueCallback();\n          return i;\n        }\n        steps = 0;\n      }\n\n      // If the operatorList isn't executed completely yet OR the execution\n      // time was short enough, do another execution round.\n    }\n  }\n\n  #restoreInitialState() {\n    // Finishing all opened operations such as SMask group painting.\n    while (this.stateStack.length || this.inSMaskMode) {\n      this.restore();\n    }\n\n    this.ctx.restore();\n\n    if (this.transparentCanvas) {\n      this.ctx = this.compositeCtx;\n      this.ctx.save();\n      this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n      this.ctx.drawImage(this.transparentCanvas, 0, 0);\n      this.ctx.restore();\n      this.transparentCanvas = null;\n    }\n  }\n\n  endDrawing() {\n    this.#restoreInitialState();\n\n    this.cachedCanvases.clear();\n    this.cachedPatterns.clear();\n\n    for (const cache of this._cachedBitmapsMap.values()) {\n      for (const canvas of cache.values()) {\n        if (\n          typeof HTMLCanvasElement !== \"undefined\" &&\n          canvas instanceof HTMLCanvasElement\n        ) {\n          canvas.width = canvas.height = 0;\n        }\n      }\n      cache.clear();\n    }\n    this._cachedBitmapsMap.clear();\n    this.#drawFilter();\n  }\n\n  #drawFilter() {\n    if (this.pageColors) {\n      const hcmFilterId = this.filterFactory.addHCMFilter(\n        this.pageColors.foreground,\n        this.pageColors.background\n      );\n      if (hcmFilterId !== \"none\") {\n        const savedFilter = this.ctx.filter;\n        this.ctx.filter = hcmFilterId;\n        this.ctx.drawImage(this.ctx.canvas, 0, 0);\n        this.ctx.filter = savedFilter;\n      }\n    }\n  }\n\n  _scaleImage(img, inverseTransform) {\n    // Vertical or horizontal scaling shall not be more than 2 to not lose the\n    // pixels during drawImage operation, painting on the temporary canvas(es)\n    // that are twice smaller in size.\n    const width = img.width;\n    const height = img.height;\n    let widthScale = Math.max(\n      Math.hypot(inverseTransform[0], inverseTransform[1]),\n      1\n    );\n    let heightScale = Math.max(\n      Math.hypot(inverseTransform[2], inverseTransform[3]),\n      1\n    );\n\n    let paintWidth = width,\n      paintHeight = height;\n    let tmpCanvasId = \"prescale1\";\n    let tmpCanvas, tmpCtx;\n    while (\n      (widthScale > 2 && paintWidth > 1) ||\n      (heightScale > 2 && paintHeight > 1)\n    ) {\n      let newWidth = paintWidth,\n        newHeight = paintHeight;\n      if (widthScale > 2 && paintWidth > 1) {\n        // See bug 1820511 (Windows specific bug).\n        // TODO: once the above bug is fixed we could revert to:\n        // newWidth = Math.ceil(paintWidth / 2);\n        newWidth =\n          paintWidth >= 16384\n            ? Math.floor(paintWidth / 2) - 1 || 1\n            : Math.ceil(paintWidth / 2);\n        widthScale /= paintWidth / newWidth;\n      }\n      if (heightScale > 2 && paintHeight > 1) {\n        // TODO: see the comment above.\n        newHeight =\n          paintHeight >= 16384\n            ? Math.floor(paintHeight / 2) - 1 || 1\n            : Math.ceil(paintHeight) / 2;\n        heightScale /= paintHeight / newHeight;\n      }\n      tmpCanvas = this.cachedCanvases.getCanvas(\n        tmpCanvasId,\n        newWidth,\n        newHeight\n      );\n      tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, newWidth, newHeight);\n      tmpCtx.drawImage(\n        img,\n        0,\n        0,\n        paintWidth,\n        paintHeight,\n        0,\n        0,\n        newWidth,\n        newHeight\n      );\n      img = tmpCanvas.canvas;\n      paintWidth = newWidth;\n      paintHeight = newHeight;\n      tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n    }\n    return {\n      img,\n      paintWidth,\n      paintHeight,\n    };\n  }\n\n  _createMaskCanvas(img) {\n    const ctx = this.ctx;\n    const { width, height } = img;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    const currentTransform = getCurrentTransform(ctx);\n\n    let cache, cacheKey, scaled, maskCanvas;\n    if ((img.bitmap || img.data) && img.count > 1) {\n      const mainKey = img.bitmap || img.data.buffer;\n      // We're reusing the same image several times, so we can cache it.\n      // In case we've a pattern fill we just keep the scaled version of\n      // the image.\n      // Only the scaling part matters, the translation part is just used\n      // to compute offsets (but not when filling patterns see #15573).\n      // TODO: handle the case of a pattern fill if it's possible.\n      cacheKey = JSON.stringify(\n        isPatternFill\n          ? currentTransform\n          : [currentTransform.slice(0, 4), fillColor]\n      );\n\n      cache = this._cachedBitmapsMap.get(mainKey);\n      if (!cache) {\n        cache = new Map();\n        this._cachedBitmapsMap.set(mainKey, cache);\n      }\n      const cachedImage = cache.get(cacheKey);\n      if (cachedImage && !isPatternFill) {\n        const offsetX = Math.round(\n          Math.min(currentTransform[0], currentTransform[2]) +\n            currentTransform[4]\n        );\n        const offsetY = Math.round(\n          Math.min(currentTransform[1], currentTransform[3]) +\n            currentTransform[5]\n        );\n        return {\n          canvas: cachedImage,\n          offsetX,\n          offsetY,\n        };\n      }\n      scaled = cachedImage;\n    }\n\n    if (!scaled) {\n      maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n      putBinaryImageMask(maskCanvas.context, img);\n    }\n\n    // Create the mask canvas at the size it will be drawn at and also set\n    // its transform to match the current transform so if there are any\n    // patterns applied they will be applied relative to the correct\n    // transform.\n\n    let maskToCanvas = Util.transform(currentTransform, [\n      1 / width,\n      0,\n      0,\n      -1 / height,\n      0,\n      0,\n    ]);\n    maskToCanvas = Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n    const cord1 = Util.applyTransform([0, 0], maskToCanvas);\n    const cord2 = Util.applyTransform([width, height], maskToCanvas);\n    const rect = Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n    const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n    const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n    const fillCanvas = this.cachedCanvases.getCanvas(\n      \"fillCanvas\",\n      drawnWidth,\n      drawnHeight\n    );\n    const fillCtx = fillCanvas.context;\n\n    // The offset will be the top-left cordinate mask.\n    // If objToCanvas is [a,b,c,d,e,f] then:\n    //   - offsetX = min(a, c) + e\n    //   - offsetY = min(b, d) + f\n    const offsetX = Math.min(cord1[0], cord2[0]);\n    const offsetY = Math.min(cord1[1], cord2[1]);\n    fillCtx.translate(-offsetX, -offsetY);\n    fillCtx.transform(...maskToCanvas);\n\n    if (!scaled) {\n      // Pre-scale if needed to improve image smoothing.\n      scaled = this._scaleImage(\n        maskCanvas.canvas,\n        getCurrentTransformInverse(fillCtx)\n      );\n      scaled = scaled.img;\n      if (cache && isPatternFill) {\n        cache.set(cacheKey, scaled);\n      }\n    }\n\n    fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      getCurrentTransform(fillCtx),\n      img.interpolate\n    );\n\n    drawImageAtIntegerCoords(\n      fillCtx,\n      scaled,\n      0,\n      0,\n      scaled.width,\n      scaled.height,\n      0,\n      0,\n      width,\n      height\n    );\n    fillCtx.globalCompositeOperation = \"source-in\";\n\n    const inverse = Util.transform(getCurrentTransformInverse(fillCtx), [\n      1,\n      0,\n      0,\n      1,\n      -offsetX,\n      -offsetY,\n    ]);\n    fillCtx.fillStyle = isPatternFill\n      ? fillColor.getPattern(ctx, this, inverse, PathType.FILL)\n      : fillColor;\n\n    fillCtx.fillRect(0, 0, width, height);\n\n    if (cache && !isPatternFill) {\n      // The fill canvas is put in the cache associated to the mask image\n      // so we must remove from the cached canvas: it mustn't be used again.\n      this.cachedCanvases.delete(\"fillCanvas\");\n      cache.set(cacheKey, fillCanvas.canvas);\n    }\n\n    // Round the offsets to avoid drawing fractional pixels.\n    return {\n      canvas: fillCanvas.canvas,\n      offsetX: Math.round(offsetX),\n      offsetY: Math.round(offsetY),\n    };\n  }\n\n  // Graphics state\n  setLineWidth(width) {\n    if (width !== this.current.lineWidth) {\n      this._cachedScaleForStroking[0] = -1;\n    }\n    this.current.lineWidth = width;\n    this.ctx.lineWidth = width;\n  }\n\n  setLineCap(style) {\n    this.ctx.lineCap = LINE_CAP_STYLES[style];\n  }\n\n  setLineJoin(style) {\n    this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n  }\n\n  setMiterLimit(limit) {\n    this.ctx.miterLimit = limit;\n  }\n\n  setDash(dashArray, dashPhase) {\n    const ctx = this.ctx;\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash(dashArray);\n      ctx.lineDashOffset = dashPhase;\n    }\n  }\n\n  setRenderingIntent(intent) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setFlatness(flatness) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setGState(states) {\n    for (const [key, value] of states) {\n      switch (key) {\n        case \"LW\":\n          this.setLineWidth(value);\n          break;\n        case \"LC\":\n          this.setLineCap(value);\n          break;\n        case \"LJ\":\n          this.setLineJoin(value);\n          break;\n        case \"ML\":\n          this.setMiterLimit(value);\n          break;\n        case \"D\":\n          this.setDash(value[0], value[1]);\n          break;\n        case \"RI\":\n          this.setRenderingIntent(value);\n          break;\n        case \"FL\":\n          this.setFlatness(value);\n          break;\n        case \"Font\":\n          this.setFont(value[0], value[1]);\n          break;\n        case \"CA\":\n          this.current.strokeAlpha = value;\n          break;\n        case \"ca\":\n          this.current.fillAlpha = value;\n          this.ctx.globalAlpha = value;\n          break;\n        case \"BM\":\n          this.ctx.globalCompositeOperation = value;\n          break;\n        case \"SMask\":\n          this.current.activeSMask = value ? this.tempSMask : null;\n          this.tempSMask = null;\n          this.checkSMaskState();\n          break;\n        case \"TR\":\n          this.ctx.filter = this.current.transferMaps =\n            this.filterFactory.addFilter(value);\n          break;\n      }\n    }\n  }\n\n  get inSMaskMode() {\n    return !!this.suspendedCtx;\n  }\n\n  checkSMaskState() {\n    const inSMaskMode = this.inSMaskMode;\n    if (this.current.activeSMask && !inSMaskMode) {\n      this.beginSMaskMode();\n    } else if (!this.current.activeSMask && inSMaskMode) {\n      this.endSMaskMode();\n    }\n    // Else, the state is okay and nothing needs to be done.\n  }\n\n  /**\n   * Soft mask mode takes the current main drawing canvas and replaces it with\n   * a temporary canvas. Any drawing operations that happen on the temporary\n   * canvas need to be composed with the main canvas that was suspended (see\n   * `compose()`). The temporary canvas also duplicates many of its operations\n   * on the suspended canvas to keep them in sync, so that when the soft mask\n   * mode ends any clipping paths or transformations will still be active and in\n   * the right order on the canvas' graphics state stack.\n   */\n  beginSMaskMode() {\n    if (this.inSMaskMode) {\n      throw new Error(\"beginSMaskMode called while already in smask mode\");\n    }\n    const drawnWidth = this.ctx.canvas.width;\n    const drawnHeight = this.ctx.canvas.height;\n    const cacheId = \"smaskGroupAt\" + this.groupLevel;\n    const scratchCanvas = this.cachedCanvases.getCanvas(\n      cacheId,\n      drawnWidth,\n      drawnHeight\n    );\n    this.suspendedCtx = this.ctx;\n    this.ctx = scratchCanvas.context;\n    const ctx = this.ctx;\n    ctx.setTransform(...getCurrentTransform(this.suspendedCtx));\n    copyCtxState(this.suspendedCtx, ctx);\n    mirrorContextOperations(ctx, this.suspendedCtx);\n\n    this.setGState([\n      [\"BM\", \"source-over\"],\n      [\"ca\", 1],\n      [\"CA\", 1],\n    ]);\n  }\n\n  endSMaskMode() {\n    if (!this.inSMaskMode) {\n      throw new Error(\"endSMaskMode called while not in smask mode\");\n    }\n    // The soft mask is done, now restore the suspended canvas as the main\n    // drawing canvas.\n    this.ctx._removeMirroring();\n    copyCtxState(this.ctx, this.suspendedCtx);\n    this.ctx = this.suspendedCtx;\n\n    this.suspendedCtx = null;\n  }\n\n  compose(dirtyBox) {\n    if (!this.current.activeSMask) {\n      return;\n    }\n\n    if (!dirtyBox) {\n      dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n    } else {\n      dirtyBox[0] = Math.floor(dirtyBox[0]);\n      dirtyBox[1] = Math.floor(dirtyBox[1]);\n      dirtyBox[2] = Math.ceil(dirtyBox[2]);\n      dirtyBox[3] = Math.ceil(dirtyBox[3]);\n    }\n    const smask = this.current.activeSMask;\n    const suspendedCtx = this.suspendedCtx;\n\n    composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n    // Whatever was drawn has been moved to the suspended canvas, now clear it\n    // out of the current canvas.\n    this.ctx.save();\n    this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n    this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n    this.ctx.restore();\n  }\n\n  save() {\n    if (this.inSMaskMode) {\n      // SMask mode may be turned on/off causing us to lose graphics state.\n      // Copy the temporary canvas state to the main(suspended) canvas to keep\n      // it in sync.\n      copyCtxState(this.ctx, this.suspendedCtx);\n      // Don't bother calling save on the temporary canvas since state is not\n      // saved there.\n      this.suspendedCtx.save();\n    } else {\n      this.ctx.save();\n    }\n    const old = this.current;\n    this.stateStack.push(old);\n    this.current = old.clone();\n  }\n\n  restore() {\n    if (this.stateStack.length === 0 && this.inSMaskMode) {\n      this.endSMaskMode();\n    }\n    if (this.stateStack.length !== 0) {\n      this.current = this.stateStack.pop();\n      if (this.inSMaskMode) {\n        // Graphics state is stored on the main(suspended) canvas. Restore its\n        // state then copy it over to the temporary canvas.\n        this.suspendedCtx.restore();\n        copyCtxState(this.suspendedCtx, this.ctx);\n      } else {\n        this.ctx.restore();\n      }\n      this.checkSMaskState();\n\n      // Ensure that the clipping path is reset (fixes issue6413.pdf).\n      this.pendingClip = null;\n\n      this._cachedScaleForStroking[0] = -1;\n      this._cachedGetSinglePixelWidth = null;\n    }\n  }\n\n  transform(a, b, c, d, e, f) {\n    this.ctx.transform(a, b, c, d, e, f);\n\n    this._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  // Path\n  constructPath(ops, args, minMax) {\n    const ctx = this.ctx;\n    const current = this.current;\n    let x = current.x,\n      y = current.y;\n    let startX, startY;\n    const currentTransform = getCurrentTransform(ctx);\n\n    // Most of the time the current transform is a scaling matrix\n    // so we don't need to transform points before computing min/max:\n    // we can compute min/max first and then smartly \"apply\" the\n    // transform (see Util.scaleMinMax).\n    // For rectangle, moveTo and lineTo, min/max are computed in the\n    // worker (see evaluator.js).\n    const isScalingMatrix =\n      (currentTransform[0] === 0 && currentTransform[3] === 0) ||\n      (currentTransform[1] === 0 && currentTransform[2] === 0);\n    const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\n    for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n      switch (ops[i] | 0) {\n        case OPS.rectangle:\n          x = args[j++];\n          y = args[j++];\n          const width = args[j++];\n          const height = args[j++];\n\n          const xw = x + width;\n          const yh = y + height;\n          ctx.moveTo(x, y);\n          if (width === 0 || height === 0) {\n            ctx.lineTo(xw, yh);\n          } else {\n            ctx.lineTo(xw, y);\n            ctx.lineTo(xw, yh);\n            ctx.lineTo(x, yh);\n          }\n          if (!isScalingMatrix) {\n            current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n          }\n          ctx.closePath();\n          break;\n        case OPS.moveTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.moveTo(x, y);\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\n          break;\n        case OPS.lineTo:\n          x = args[j++];\n          y = args[j++];\n          ctx.lineTo(x, y);\n          if (!isScalingMatrix) {\n            current.updatePathMinMax(currentTransform, x, y);\n          }\n          break;\n        case OPS.curveTo:\n          startX = x;\n          startY = y;\n          x = args[j + 4];\n          y = args[j + 5];\n          ctx.bezierCurveTo(\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            x,\n            y\n          );\n          current.updateCurvePathMinMax(\n            currentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            x,\n            y,\n            minMaxForBezier\n          );\n          j += 6;\n          break;\n        case OPS.curveTo2:\n          startX = x;\n          startY = y;\n          ctx.bezierCurveTo(\n            x,\n            y,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3]\n          );\n          current.updateCurvePathMinMax(\n            currentTransform,\n            startX,\n            startY,\n            x,\n            y,\n            args[j],\n            args[j + 1],\n            args[j + 2],\n            args[j + 3],\n            minMaxForBezier\n          );\n          x = args[j + 2];\n          y = args[j + 3];\n          j += 4;\n          break;\n        case OPS.curveTo3:\n          startX = x;\n          startY = y;\n          x = args[j + 2];\n          y = args[j + 3];\n          ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n          current.updateCurvePathMinMax(\n            currentTransform,\n            startX,\n            startY,\n            args[j],\n            args[j + 1],\n            x,\n            y,\n            x,\n            y,\n            minMaxForBezier\n          );\n          j += 4;\n          break;\n        case OPS.closePath:\n          ctx.closePath();\n          break;\n      }\n    }\n\n    if (isScalingMatrix) {\n      current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n    }\n\n    current.setCurrentPoint(x, y);\n  }\n\n  closePath() {\n    this.ctx.closePath();\n  }\n\n  stroke(consumePath = true) {\n    const ctx = this.ctx;\n    const strokeColor = this.current.strokeColor;\n    // For stroke we want to temporarily change the global alpha to the\n    // stroking alpha.\n    ctx.globalAlpha = this.current.strokeAlpha;\n    if (this.contentVisible) {\n      if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(\n          ctx,\n          this,\n          getCurrentTransformInverse(ctx),\n          PathType.STROKE\n        );\n        this.rescaleAndStroke(/* saveRestore */ false);\n        ctx.restore();\n      } else {\n        this.rescaleAndStroke(/* saveRestore */ true);\n      }\n    }\n    if (consumePath) {\n      this.consumePath(this.current.getClippedPathBoundingBox());\n    }\n    // Restore the global alpha to the fill alpha\n    ctx.globalAlpha = this.current.fillAlpha;\n  }\n\n  closeStroke() {\n    this.closePath();\n    this.stroke();\n  }\n\n  fill(consumePath = true) {\n    const ctx = this.ctx;\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n    let needRestore = false;\n\n    if (isPatternFill) {\n      ctx.save();\n      ctx.fillStyle = fillColor.getPattern(\n        ctx,\n        this,\n        getCurrentTransformInverse(ctx),\n        PathType.FILL\n      );\n      needRestore = true;\n    }\n\n    const intersect = this.current.getClippedPathBoundingBox();\n    if (this.contentVisible && intersect !== null) {\n      if (this.pendingEOFill) {\n        ctx.fill(\"evenodd\");\n        this.pendingEOFill = false;\n      } else {\n        ctx.fill();\n      }\n    }\n\n    if (needRestore) {\n      ctx.restore();\n    }\n    if (consumePath) {\n      this.consumePath(intersect);\n    }\n  }\n\n  eoFill() {\n    this.pendingEOFill = true;\n    this.fill();\n  }\n\n  fillStroke() {\n    this.fill(false);\n    this.stroke(false);\n\n    this.consumePath();\n  }\n\n  eoFillStroke() {\n    this.pendingEOFill = true;\n    this.fillStroke();\n  }\n\n  closeFillStroke() {\n    this.closePath();\n    this.fillStroke();\n  }\n\n  closeEOFillStroke() {\n    this.pendingEOFill = true;\n    this.closePath();\n    this.fillStroke();\n  }\n\n  endPath() {\n    this.consumePath();\n  }\n\n  // Clipping\n  clip() {\n    this.pendingClip = NORMAL_CLIP;\n  }\n\n  eoClip() {\n    this.pendingClip = EO_CLIP;\n  }\n\n  // Text\n  beginText() {\n    this.current.textMatrix = IDENTITY_MATRIX;\n    this.current.textMatrixScale = 1;\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  endText() {\n    const paths = this.pendingTextPaths;\n    const ctx = this.ctx;\n    if (paths === undefined) {\n      ctx.beginPath();\n      return;\n    }\n\n    ctx.save();\n    ctx.beginPath();\n    for (const path of paths) {\n      ctx.setTransform(...path.transform);\n      ctx.translate(path.x, path.y);\n      path.addToPath(ctx, path.fontSize);\n    }\n    ctx.restore();\n    ctx.clip();\n    ctx.beginPath();\n    delete this.pendingTextPaths;\n  }\n\n  setCharSpacing(spacing) {\n    this.current.charSpacing = spacing;\n  }\n\n  setWordSpacing(spacing) {\n    this.current.wordSpacing = spacing;\n  }\n\n  setHScale(scale) {\n    this.current.textHScale = scale / 100;\n  }\n\n  setLeading(leading) {\n    this.current.leading = -leading;\n  }\n\n  setFont(fontRefName, size) {\n    const fontObj = this.commonObjs.get(fontRefName);\n    const current = this.current;\n\n    if (!fontObj) {\n      throw new Error(`Can't find font for ${fontRefName}`);\n    }\n    current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n    // A valid matrix needs all main diagonal elements to be non-zero\n    // This also ensures we bypass FF bugzilla bug #719844.\n    if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n      warn(\"Invalid font matrix for font \" + fontRefName);\n    }\n\n    // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n    // and in some docs this can be negative (inverted x-y axes).\n    if (size < 0) {\n      size = -size;\n      current.fontDirection = -1;\n    } else {\n      current.fontDirection = 1;\n    }\n\n    this.current.font = fontObj;\n    this.current.fontSize = size;\n\n    if (fontObj.isType3Font) {\n      return; // we don't need ctx.font for Type3 fonts\n    }\n\n    const name = fontObj.loadedName || \"sans-serif\";\n    const typeface =\n      fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n\n    let bold = \"normal\";\n    if (fontObj.black) {\n      bold = \"900\";\n    } else if (fontObj.bold) {\n      bold = \"bold\";\n    }\n    const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n    // Some font backends cannot handle fonts below certain size.\n    // Keeping the font at minimal size and using the fontSizeScale to change\n    // the current transformation matrix before the fillText/strokeText.\n    // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n    let browserFontSize = size;\n    if (size < MIN_FONT_SIZE) {\n      browserFontSize = MIN_FONT_SIZE;\n    } else if (size > MAX_FONT_SIZE) {\n      browserFontSize = MAX_FONT_SIZE;\n    }\n    this.current.fontSizeScale = size / browserFontSize;\n\n    this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n  }\n\n  setTextRenderingMode(mode) {\n    this.current.textRenderingMode = mode;\n  }\n\n  setTextRise(rise) {\n    this.current.textRise = rise;\n  }\n\n  moveText(x, y) {\n    this.current.x = this.current.lineX += x;\n    this.current.y = this.current.lineY += y;\n  }\n\n  setLeadingMoveText(x, y) {\n    this.setLeading(-y);\n    this.moveText(x, y);\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    this.current.textMatrix = [a, b, c, d, e, f];\n    this.current.textMatrixScale = Math.hypot(a, b);\n\n    this.current.x = this.current.lineX = 0;\n    this.current.y = this.current.lineY = 0;\n  }\n\n  nextLine() {\n    this.moveText(0, this.current.leading);\n  }\n\n  paintChar(character, x, y, patternTransform) {\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const textRenderingMode = current.textRenderingMode;\n    const fontSize = current.fontSize / current.fontSizeScale;\n    const fillStrokeMode =\n      textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n    const isAddToPathSet = !!(\n      textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n    );\n    const patternFill = current.patternFill && !font.missingFile;\n\n    let addToPath;\n    if (font.disableFontFace || isAddToPathSet || patternFill) {\n      addToPath = font.getPathGenerator(this.commonObjs, character);\n    }\n\n    if (font.disableFontFace || patternFill) {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.beginPath();\n      addToPath(ctx, fontSize);\n      if (patternTransform) {\n        ctx.setTransform(...patternTransform);\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.fill();\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.stroke();\n      }\n      ctx.restore();\n    } else {\n      if (\n        fillStrokeMode === TextRenderingMode.FILL ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.fillText(character, x, y);\n      }\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        ctx.strokeText(character, x, y);\n      }\n    }\n\n    if (isAddToPathSet) {\n      const paths = (this.pendingTextPaths ||= []);\n      paths.push({\n        transform: getCurrentTransform(ctx),\n        x,\n        y,\n        fontSize,\n        addToPath,\n      });\n    }\n  }\n\n  get isFontSubpixelAAEnabled() {\n    // Checks if anti-aliasing is enabled when scaled text is painted.\n    // On Windows GDI scaled fonts looks bad.\n    const { context: ctx } = this.cachedCanvases.getCanvas(\n      \"isFontSubpixelAAEnabled\",\n      10,\n      10\n    );\n    ctx.scale(1.5, 1);\n    ctx.fillText(\"I\", 0, 10);\n    const data = ctx.getImageData(0, 0, 10, 10).data;\n    let enabled = false;\n    for (let i = 3; i < data.length; i += 4) {\n      if (data[i] > 0 && data[i] < 255) {\n        enabled = true;\n        break;\n      }\n    }\n    return shadow(this, \"isFontSubpixelAAEnabled\", enabled);\n  }\n\n  showText(glyphs) {\n    const current = this.current;\n    const font = current.font;\n    if (font.isType3Font) {\n      return this.showType3Text(glyphs);\n    }\n\n    const fontSize = current.fontSize;\n    if (fontSize === 0) {\n      return undefined;\n    }\n\n    const ctx = this.ctx;\n    const fontSizeScale = current.fontSizeScale;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const fontDirection = current.fontDirection;\n    const textHScale = current.textHScale * fontDirection;\n    const glyphsLength = glyphs.length;\n    const vertical = font.vertical;\n    const spacingDir = vertical ? 1 : -1;\n    const defaultVMetrics = font.defaultVMetrics;\n    const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n    const simpleFillText =\n      current.textRenderingMode === TextRenderingMode.FILL &&\n      !font.disableFontFace &&\n      !current.patternFill;\n\n    ctx.save();\n    ctx.transform(...current.textMatrix);\n    ctx.translate(current.x, current.y + current.textRise);\n\n    if (fontDirection > 0) {\n      ctx.scale(textHScale, -1);\n    } else {\n      ctx.scale(textHScale, 1);\n    }\n\n    let patternTransform;\n    if (current.patternFill) {\n      ctx.save();\n      const pattern = current.fillColor.getPattern(\n        ctx,\n        this,\n        getCurrentTransformInverse(ctx),\n        PathType.FILL\n      );\n      patternTransform = getCurrentTransform(ctx);\n      ctx.restore();\n      ctx.fillStyle = pattern;\n    }\n\n    let lineWidth = current.lineWidth;\n    const scale = current.textMatrixScale;\n    if (scale === 0 || lineWidth === 0) {\n      const fillStrokeMode =\n        current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n      if (\n        fillStrokeMode === TextRenderingMode.STROKE ||\n        fillStrokeMode === TextRenderingMode.FILL_STROKE\n      ) {\n        lineWidth = this.getSinglePixelWidth();\n      }\n    } else {\n      lineWidth /= scale;\n    }\n\n    if (fontSizeScale !== 1.0) {\n      ctx.scale(fontSizeScale, fontSizeScale);\n      lineWidth /= fontSizeScale;\n    }\n\n    ctx.lineWidth = lineWidth;\n\n    if (font.isInvalidPDFjsFont) {\n      const chars = [];\n      let width = 0;\n      for (const glyph of glyphs) {\n        chars.push(glyph.unicode);\n        width += glyph.width;\n      }\n      ctx.fillText(chars.join(\"\"), 0, 0);\n      current.x += width * widthAdvanceScale * textHScale;\n      ctx.restore();\n      this.compose();\n\n      return undefined;\n    }\n\n    let x = 0,\n      i;\n    for (i = 0; i < glyphsLength; ++i) {\n      const glyph = glyphs[i];\n      if (typeof glyph === \"number\") {\n        x += (spacingDir * glyph * fontSize) / 1000;\n        continue;\n      }\n\n      let restoreNeeded = false;\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const character = glyph.fontChar;\n      const accent = glyph.accent;\n      let scaledX, scaledY;\n      let width = glyph.width;\n      if (vertical) {\n        const vmetric = glyph.vmetric || defaultVMetrics;\n        const vx =\n          -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n        const vy = vmetric[2] * widthAdvanceScale;\n\n        width = vmetric ? -vmetric[0] : width;\n        scaledX = vx / fontSizeScale;\n        scaledY = (x + vy) / fontSizeScale;\n      } else {\n        scaledX = x / fontSizeScale;\n        scaledY = 0;\n      }\n\n      if (font.remeasure && width > 0) {\n        // Some standard fonts may not have the exact width: rescale per\n        // character if measured width is greater than expected glyph width\n        // and subpixel-aa is enabled, otherwise just center the glyph.\n        const measuredWidth =\n          ((ctx.measureText(character).width * 1000) / fontSize) *\n          fontSizeScale;\n        if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n          const characterScaleX = width / measuredWidth;\n          restoreNeeded = true;\n          ctx.save();\n          ctx.scale(characterScaleX, 1);\n          scaledX /= characterScaleX;\n        } else if (width !== measuredWidth) {\n          scaledX +=\n            (((width - measuredWidth) / 2000) * fontSize) / fontSizeScale;\n        }\n      }\n\n      // Only attempt to draw the glyph if it is actually in the embedded font\n      // file or if there isn't a font file so the fallback font is shown.\n      if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n        if (simpleFillText && !accent) {\n          // common case\n          ctx.fillText(character, scaledX, scaledY);\n        } else {\n          this.paintChar(character, scaledX, scaledY, patternTransform);\n          if (accent) {\n            const scaledAccentX =\n              scaledX + (fontSize * accent.offset.x) / fontSizeScale;\n            const scaledAccentY =\n              scaledY - (fontSize * accent.offset.y) / fontSizeScale;\n            this.paintChar(\n              accent.fontChar,\n              scaledAccentX,\n              scaledAccentY,\n              patternTransform\n            );\n          }\n        }\n      }\n\n      const charWidth = vertical\n        ? width * widthAdvanceScale - spacing * fontDirection\n        : width * widthAdvanceScale + spacing * fontDirection;\n      x += charWidth;\n\n      if (restoreNeeded) {\n        ctx.restore();\n      }\n    }\n    if (vertical) {\n      current.y -= x;\n    } else {\n      current.x += x * textHScale;\n    }\n    ctx.restore();\n    this.compose();\n\n    return undefined;\n  }\n\n  showType3Text(glyphs) {\n    // Type3 fonts - each glyph is a \"mini-PDF\"\n    const ctx = this.ctx;\n    const current = this.current;\n    const font = current.font;\n    const fontSize = current.fontSize;\n    const fontDirection = current.fontDirection;\n    const spacingDir = font.vertical ? 1 : -1;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const textHScale = current.textHScale * fontDirection;\n    const fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n    const glyphsLength = glyphs.length;\n    const isTextInvisible =\n      current.textRenderingMode === TextRenderingMode.INVISIBLE;\n    let i, glyph, width, spacingLength;\n\n    if (isTextInvisible || fontSize === 0) {\n      return;\n    }\n    this._cachedScaleForStroking[0] = -1;\n    this._cachedGetSinglePixelWidth = null;\n\n    ctx.save();\n    ctx.transform(...current.textMatrix);\n    ctx.translate(current.x, current.y);\n\n    ctx.scale(textHScale, fontDirection);\n\n    for (i = 0; i < glyphsLength; ++i) {\n      glyph = glyphs[i];\n      if (typeof glyph === \"number\") {\n        spacingLength = (spacingDir * glyph * fontSize) / 1000;\n        this.ctx.translate(spacingLength, 0);\n        current.x += spacingLength * textHScale;\n        continue;\n      }\n\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const operatorList = font.charProcOperatorList[glyph.operatorListId];\n      if (!operatorList) {\n        warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n        continue;\n      }\n      if (this.contentVisible) {\n        this.processingType3 = glyph;\n        this.save();\n        ctx.scale(fontSize, fontSize);\n        ctx.transform(...fontMatrix);\n        this.executeOperatorList(operatorList);\n        this.restore();\n      }\n\n      const transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n      width = transformed[0] * fontSize + spacing;\n\n      ctx.translate(width, 0);\n      current.x += width * textHScale;\n    }\n    ctx.restore();\n    this.processingType3 = null;\n  }\n\n  // Type3 fonts\n  setCharWidth(xWidth, yWidth) {\n    // We can safely ignore this since the width should be the same\n    // as the width in the Widths array.\n  }\n\n  setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n    this.ctx.rect(llx, lly, urx - llx, ury - lly);\n    this.ctx.clip();\n    this.endPath();\n  }\n\n  // Color\n  getColorN_Pattern(IR) {\n    let pattern;\n    if (IR[0] === \"TilingPattern\") {\n      const color = IR[1];\n      const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);\n      const canvasGraphicsFactory = {\n        createCanvasGraphics: ctx => {\n          return new CanvasGraphics(\n            ctx,\n            this.commonObjs,\n            this.objs,\n            this.canvasFactory,\n            this.filterFactory,\n            {\n              optionalContentConfig: this.optionalContentConfig,\n              markedContentStack: this.markedContentStack,\n            }\n          );\n        },\n      };\n      pattern = new TilingPattern(\n        IR,\n        color,\n        this.ctx,\n        canvasGraphicsFactory,\n        baseTransform\n      );\n    } else {\n      pattern = this._getPattern(IR[1], IR[2]);\n    }\n    return pattern;\n  }\n\n  setStrokeColorN() {\n    this.current.strokeColor = this.getColorN_Pattern(arguments);\n  }\n\n  setFillColorN() {\n    this.current.fillColor = this.getColorN_Pattern(arguments);\n    this.current.patternFill = true;\n  }\n\n  setStrokeRGBColor(r, g, b) {\n    const color = Util.makeHexColor(r, g, b);\n    this.ctx.strokeStyle = color;\n    this.current.strokeColor = color;\n  }\n\n  setFillRGBColor(r, g, b) {\n    const color = Util.makeHexColor(r, g, b);\n    this.ctx.fillStyle = color;\n    this.current.fillColor = color;\n    this.current.patternFill = false;\n  }\n\n  _getPattern(objId, matrix = null) {\n    let pattern;\n    if (this.cachedPatterns.has(objId)) {\n      pattern = this.cachedPatterns.get(objId);\n    } else {\n      pattern = getShadingPattern(this.getObject(objId));\n      this.cachedPatterns.set(objId, pattern);\n    }\n    if (matrix) {\n      pattern.matrix = matrix;\n    }\n    return pattern;\n  }\n\n  shadingFill(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n\n    this.save();\n    const pattern = this._getPattern(objId);\n    ctx.fillStyle = pattern.getPattern(\n      ctx,\n      this,\n      getCurrentTransformInverse(ctx),\n      PathType.SHADING\n    );\n\n    const inv = getCurrentTransformInverse(ctx);\n    if (inv) {\n      const { width, height } = ctx.canvas;\n      const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox(\n        [0, 0, width, height],\n        inv\n      );\n\n      this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n    } else {\n      // HACK to draw the gradient onto an infinite rectangle.\n      // PDF gradients are drawn across the entire image while\n      // Canvas only allows gradients to be drawn in a rectangle\n      // The following bug should allow us to remove this.\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n      this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n    }\n\n    this.compose(this.current.getClippedPathBoundingBox());\n    this.restore();\n  }\n\n  // Images\n  beginInlineImage() {\n    unreachable(\"Should not call beginInlineImage\");\n  }\n\n  beginImageData() {\n    unreachable(\"Should not call beginImageData\");\n  }\n\n  paintFormXObjectBegin(matrix, bbox) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.save();\n    this.baseTransformStack.push(this.baseTransform);\n\n    if (Array.isArray(matrix) && matrix.length === 6) {\n      this.transform(...matrix);\n    }\n\n    this.baseTransform = getCurrentTransform(this.ctx);\n\n    if (bbox) {\n      const width = bbox[2] - bbox[0];\n      const height = bbox[3] - bbox[1];\n      this.ctx.rect(bbox[0], bbox[1], width, height);\n      this.current.updateRectMinMax(getCurrentTransform(this.ctx), bbox);\n      this.clip();\n      this.endPath();\n    }\n  }\n\n  paintFormXObjectEnd() {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.restore();\n    this.baseTransform = this.baseTransformStack.pop();\n  }\n\n  beginGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    this.save();\n    // If there's an active soft mask we don't want it enabled for the group, so\n    // clear it out. The mask and suspended canvas will be restored in endGroup.\n    if (this.inSMaskMode) {\n      this.endSMaskMode();\n      this.current.activeSMask = null;\n    }\n\n    const currentCtx = this.ctx;\n    // TODO non-isolated groups - according to Rik at adobe non-isolated\n    // group results aren't usually that different and they even have tools\n    // that ignore this setting. Notes from Rik on implementing:\n    // - When you encounter an transparency group, create a new canvas with\n    // the dimensions of the bbox\n    // - copy the content from the previous canvas to the new canvas\n    // - draw as usual\n    // - remove the backdrop alpha:\n    // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n    // value of your transparency group and 'alphaBackdrop' the alpha of the\n    // backdrop\n    // - remove background color:\n    // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n    if (!group.isolated) {\n      info(\"TODO: Support non-isolated groups.\");\n    }\n\n    // TODO knockout - supposedly possible with the clever use of compositing\n    // modes.\n    if (group.knockout) {\n      warn(\"Knockout groups not supported.\");\n    }\n\n    const currentTransform = getCurrentTransform(currentCtx);\n    if (group.matrix) {\n      currentCtx.transform(...group.matrix);\n    }\n    if (!group.bbox) {\n      throw new Error(\"Bounding box is required.\");\n    }\n\n    // Based on the current transform figure out how big the bounding box\n    // will actually be.\n    let bounds = Util.getAxialAlignedBoundingBox(\n      group.bbox,\n      getCurrentTransform(currentCtx)\n    );\n    // Clip the bounding box to the current canvas.\n    const canvasBounds = [\n      0,\n      0,\n      currentCtx.canvas.width,\n      currentCtx.canvas.height,\n    ];\n    bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n    // Use ceil in case we're between sizes so we don't create canvas that is\n    // too small and make the canvas at least 1x1 pixels.\n    const offsetX = Math.floor(bounds[0]);\n    const offsetY = Math.floor(bounds[1]);\n    let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n    let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n    let scaleX = 1,\n      scaleY = 1;\n    if (drawnWidth > MAX_GROUP_SIZE) {\n      scaleX = drawnWidth / MAX_GROUP_SIZE;\n      drawnWidth = MAX_GROUP_SIZE;\n    }\n    if (drawnHeight > MAX_GROUP_SIZE) {\n      scaleY = drawnHeight / MAX_GROUP_SIZE;\n      drawnHeight = MAX_GROUP_SIZE;\n    }\n\n    this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n\n    let cacheId = \"groupAt\" + this.groupLevel;\n    if (group.smask) {\n      // Using two cache entries is case if masks are used one after another.\n      cacheId += \"_smask_\" + (this.smaskCounter++ % 2);\n    }\n    const scratchCanvas = this.cachedCanvases.getCanvas(\n      cacheId,\n      drawnWidth,\n      drawnHeight\n    );\n    const groupCtx = scratchCanvas.context;\n\n    // Since we created a new canvas that is just the size of the bounding box\n    // we have to translate the group ctx.\n    groupCtx.scale(1 / scaleX, 1 / scaleY);\n    groupCtx.translate(-offsetX, -offsetY);\n    groupCtx.transform(...currentTransform);\n\n    if (group.smask) {\n      // Saving state and cached mask to be used in setGState.\n      this.smaskStack.push({\n        canvas: scratchCanvas.canvas,\n        context: groupCtx,\n        offsetX,\n        offsetY,\n        scaleX,\n        scaleY,\n        subtype: group.smask.subtype,\n        backdrop: group.smask.backdrop,\n        transferMap: group.smask.transferMap || null,\n        startTransformInverse: null, // used during suspend operation\n      });\n    } else {\n      // Setup the current ctx so when the group is popped we draw it at the\n      // right location.\n      currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n      currentCtx.translate(offsetX, offsetY);\n      currentCtx.scale(scaleX, scaleY);\n      currentCtx.save();\n    }\n    // The transparency group inherits all off the current graphics state\n    // except the blend mode, soft mask, and alpha constants.\n    copyCtxState(currentCtx, groupCtx);\n    this.ctx = groupCtx;\n    this.setGState([\n      [\"BM\", \"source-over\"],\n      [\"ca\", 1],\n      [\"CA\", 1],\n    ]);\n    this.groupStack.push(currentCtx);\n    this.groupLevel++;\n  }\n\n  endGroup(group) {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.groupLevel--;\n    const groupCtx = this.ctx;\n    const ctx = this.groupStack.pop();\n    this.ctx = ctx;\n    // Turn off image smoothing to avoid sub pixel interpolation which can\n    // look kind of blurry for some pdfs.\n    this.ctx.imageSmoothingEnabled = false;\n\n    if (group.smask) {\n      this.tempSMask = this.smaskStack.pop();\n      this.restore();\n    } else {\n      this.ctx.restore();\n      const currentMtx = getCurrentTransform(this.ctx);\n      this.restore();\n      this.ctx.save();\n      this.ctx.setTransform(...currentMtx);\n      const dirtyBox = Util.getAxialAlignedBoundingBox(\n        [0, 0, groupCtx.canvas.width, groupCtx.canvas.height],\n        currentMtx\n      );\n      this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      this.ctx.restore();\n      this.compose(dirtyBox);\n    }\n  }\n\n  beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n    // The annotations are drawn just after the page content.\n    // The page content drawing can potentially have set a transform,\n    // a clipping path, whatever...\n    // So in order to have something clean, we restore the initial state.\n    this.#restoreInitialState();\n    resetCtxToDefault(this.ctx);\n\n    this.ctx.save();\n    this.save();\n\n    if (this.baseTransform) {\n      this.ctx.setTransform(...this.baseTransform);\n    }\n\n    if (Array.isArray(rect) && rect.length === 4) {\n      const width = rect[2] - rect[0];\n      const height = rect[3] - rect[1];\n\n      if (hasOwnCanvas && this.annotationCanvasMap) {\n        transform = transform.slice();\n        transform[4] -= rect[0];\n        transform[5] -= rect[1];\n\n        rect = rect.slice();\n        rect[0] = rect[1] = 0;\n        rect[2] = width;\n        rect[3] = height;\n\n        const [scaleX, scaleY] = Util.singularValueDecompose2dScale(\n          getCurrentTransform(this.ctx)\n        );\n        const { viewportScale } = this;\n        const canvasWidth = Math.ceil(\n          width * this.outputScaleX * viewportScale\n        );\n        const canvasHeight = Math.ceil(\n          height * this.outputScaleY * viewportScale\n        );\n\n        this.annotationCanvas = this.canvasFactory.create(\n          canvasWidth,\n          canvasHeight\n        );\n        const { canvas, context } = this.annotationCanvas;\n        this.annotationCanvasMap.set(id, canvas);\n        this.annotationCanvas.savedCtx = this.ctx;\n        this.ctx = context;\n        this.ctx.save();\n        this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n\n        resetCtxToDefault(this.ctx);\n      } else {\n        resetCtxToDefault(this.ctx);\n\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.ctx.clip();\n        this.endPath();\n      }\n    }\n\n    this.current = new CanvasExtraState(\n      this.ctx.canvas.width,\n      this.ctx.canvas.height\n    );\n\n    this.transform(...transform);\n    this.transform(...matrix);\n  }\n\n  endAnnotation() {\n    if (this.annotationCanvas) {\n      this.ctx.restore();\n      this.#drawFilter();\n\n      this.ctx = this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas.savedCtx;\n      delete this.annotationCanvas;\n    }\n  }\n\n  paintImageMaskXObject(img) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const count = img.count;\n    img = this.getObject(img.data, img);\n    img.count = count;\n\n    const ctx = this.ctx;\n    const glyph = this.processingType3;\n\n    if (glyph) {\n      if (glyph.compiled === undefined) {\n        glyph.compiled = compileType3Glyph(img);\n      }\n\n      if (glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\n    }\n    const mask = this._createMaskCanvas(img);\n    const maskCanvas = mask.canvas;\n\n    ctx.save();\n    // The mask is drawn with the transform applied. Reset the current\n    // transform to draw to the identity.\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectRepeat(\n    img,\n    scaleX,\n    skewX = 0,\n    skewY = 0,\n    scaleY,\n    positions\n  ) {\n    if (!this.contentVisible) {\n      return;\n    }\n\n    img = this.getObject(img.data, img);\n\n    const ctx = this.ctx;\n    ctx.save();\n    const currentTransform = getCurrentTransform(ctx);\n    ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n    const mask = this._createMaskCanvas(img);\n\n    ctx.setTransform(\n      1,\n      0,\n      0,\n      1,\n      mask.offsetX - currentTransform[4],\n      mask.offsetY - currentTransform[5]\n    );\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      const trans = Util.transform(currentTransform, [\n        scaleX,\n        skewX,\n        skewY,\n        scaleY,\n        positions[i],\n        positions[i + 1],\n      ]);\n\n      const [x, y] = Util.applyTransform([0, 0], trans);\n      ctx.drawImage(mask.canvas, x, y);\n    }\n    ctx.restore();\n    this.compose();\n  }\n\n  paintImageMaskXObjectGroup(images) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n\n    const fillColor = this.current.fillColor;\n    const isPatternFill = this.current.patternFill;\n\n    for (const image of images) {\n      const { data, width, height, transform } = image;\n\n      const maskCanvas = this.cachedCanvases.getCanvas(\n        \"maskCanvas\",\n        width,\n        height\n      );\n      const maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      const img = this.getObject(data, image);\n      putBinaryImageMask(maskCtx, img);\n\n      maskCtx.globalCompositeOperation = \"source-in\";\n\n      maskCtx.fillStyle = isPatternFill\n        ? fillColor.getPattern(\n            maskCtx,\n            this,\n            getCurrentTransformInverse(ctx),\n            PathType.FILL\n          )\n        : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      ctx.save();\n      ctx.transform(...transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(\n        ctx,\n        maskCanvas.canvas,\n        0,\n        0,\n        width,\n        height,\n        0,\n        -1,\n        1,\n        1\n      );\n      ctx.restore();\n    }\n    this.compose();\n  }\n\n  paintImageXObject(objId) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = this.getObject(objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    this.paintInlineImageXObject(imgData);\n  }\n\n  paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const imgData = this.getObject(objId);\n    if (!imgData) {\n      warn(\"Dependent image isn't ready yet\");\n      return;\n    }\n\n    const width = imgData.width;\n    const height = imgData.height;\n    const map = [];\n    for (let i = 0, ii = positions.length; i < ii; i += 2) {\n      map.push({\n        transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n        x: 0,\n        y: 0,\n        w: width,\n        h: height,\n      });\n    }\n    this.paintInlineImageXObjectGroup(imgData, map);\n  }\n\n  applyTransferMapsToCanvas(ctx) {\n    if (this.current.transferMaps !== \"none\") {\n      ctx.filter = this.current.transferMaps;\n      ctx.drawImage(ctx.canvas, 0, 0);\n      ctx.filter = \"none\";\n    }\n    return ctx.canvas;\n  }\n\n  applyTransferMapsToBitmap(imgData) {\n    if (this.current.transferMaps === \"none\") {\n      return imgData.bitmap;\n    }\n    const { bitmap, width, height } = imgData;\n    const tmpCanvas = this.cachedCanvases.getCanvas(\n      \"inlineImage\",\n      width,\n      height\n    );\n    const tmpCtx = tmpCanvas.context;\n    tmpCtx.filter = this.current.transferMaps;\n    tmpCtx.drawImage(bitmap, 0, 0);\n    tmpCtx.filter = \"none\";\n\n    return tmpCanvas.canvas;\n  }\n\n  paintInlineImageXObject(imgData) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const width = imgData.width;\n    const height = imgData.height;\n    const ctx = this.ctx;\n\n    this.save();\n\n    if (\n      (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n      !isNodeJS\n    ) {\n      // The filter, if any, will be applied in applyTransferMapsToBitmap.\n      // It must be applied to the image before rescaling else some artifacts\n      // could appear.\n      // The final restore will reset it to its value.\n      const { filter } = ctx;\n      if (filter !== \"none\" && filter !== \"\") {\n        ctx.filter = \"none\";\n      }\n    }\n\n    // scale the image to the unit square\n    ctx.scale(1 / width, -1 / height);\n\n    let imgToPaint;\n    if (imgData.bitmap) {\n      imgToPaint = this.applyTransferMapsToBitmap(imgData);\n    } else if (\n      (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement) ||\n      !imgData.data\n    ) {\n      // typeof check is needed due to node.js support, see issue #8489\n      imgToPaint = imgData;\n    } else {\n      const tmpCanvas = this.cachedCanvases.getCanvas(\n        \"inlineImage\",\n        width,\n        height\n      );\n      const tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n    }\n\n    const scaled = this._scaleImage(\n      imgToPaint,\n      getCurrentTransformInverse(ctx)\n    );\n    ctx.imageSmoothingEnabled = getImageSmoothingEnabled(\n      getCurrentTransform(ctx),\n      imgData.interpolate\n    );\n\n    drawImageAtIntegerCoords(\n      ctx,\n      scaled.img,\n      0,\n      0,\n      scaled.paintWidth,\n      scaled.paintHeight,\n      0,\n      -height,\n      width,\n      height\n    );\n    this.compose();\n    this.restore();\n  }\n\n  paintInlineImageXObjectGroup(imgData, map) {\n    if (!this.contentVisible) {\n      return;\n    }\n    const ctx = this.ctx;\n    let imgToPaint;\n    if (imgData.bitmap) {\n      imgToPaint = imgData.bitmap;\n    } else {\n      const w = imgData.width;\n      const h = imgData.height;\n\n      const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n      const tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData);\n      imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n    }\n\n    for (const entry of map) {\n      ctx.save();\n      ctx.transform(...entry.transform);\n      ctx.scale(1, -1);\n      drawImageAtIntegerCoords(\n        ctx,\n        imgToPaint,\n        entry.x,\n        entry.y,\n        entry.w,\n        entry.h,\n        0,\n        -1,\n        1,\n        1\n      );\n      ctx.restore();\n    }\n    this.compose();\n  }\n\n  paintSolidColorImageMask() {\n    if (!this.contentVisible) {\n      return;\n    }\n    this.ctx.fillRect(0, 0, 1, 1);\n    this.compose();\n  }\n\n  // Marked content\n\n  markPoint(tag) {\n    // TODO Marked content.\n  }\n\n  markPointProps(tag, properties) {\n    // TODO Marked content.\n  }\n\n  beginMarkedContent(tag) {\n    this.markedContentStack.push({\n      visible: true,\n    });\n  }\n\n  beginMarkedContentProps(tag, properties) {\n    if (tag === \"OC\") {\n      this.markedContentStack.push({\n        visible: this.optionalContentConfig.isVisible(properties),\n      });\n    } else {\n      this.markedContentStack.push({\n        visible: true,\n      });\n    }\n    this.contentVisible = this.isContentVisible();\n  }\n\n  endMarkedContent() {\n    this.markedContentStack.pop();\n    this.contentVisible = this.isContentVisible();\n  }\n\n  // Compatibility\n\n  beginCompat() {\n    // TODO ignore undefined operators (should we do that anyway?)\n  }\n\n  endCompat() {\n    // TODO stop ignoring undefined operators\n  }\n\n  // Helper functions\n\n  consumePath(clipBox) {\n    const isEmpty = this.current.isEmptyClip();\n    if (this.pendingClip) {\n      this.current.updateClipFromPath();\n    }\n    if (!this.pendingClip) {\n      this.compose(clipBox);\n    }\n    const ctx = this.ctx;\n    if (this.pendingClip) {\n      if (!isEmpty) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip(\"evenodd\");\n        } else {\n          ctx.clip();\n        }\n      }\n      this.pendingClip = null;\n    }\n    this.current.startNewPathAndClipBox(this.current.clipBox);\n    ctx.beginPath();\n  }\n\n  getSinglePixelWidth() {\n    if (!this._cachedGetSinglePixelWidth) {\n      const m = getCurrentTransform(this.ctx);\n      if (m[1] === 0 && m[2] === 0) {\n        // Fast path\n        this._cachedGetSinglePixelWidth =\n          1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n      } else {\n        const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n        const normX = Math.hypot(m[0], m[2]);\n        const normY = Math.hypot(m[1], m[3]);\n        this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n      }\n    }\n    return this._cachedGetSinglePixelWidth;\n  }\n\n  getScaleForStroking() {\n    // A pixel has thicknessX = thicknessY = 1;\n    // A transformed pixel is a parallelogram and the thicknesses\n    // corresponds to the heights.\n    // The goal of this function is to rescale before setting the\n    // lineWidth in order to have both thicknesses greater or equal\n    // to 1 after transform.\n    if (this._cachedScaleForStroking[0] === -1) {\n      const { lineWidth } = this.current;\n      const { a, b, c, d } = this.ctx.getTransform();\n      let scaleX, scaleY;\n\n      if (b === 0 && c === 0) {\n        // Fast path\n        const normX = Math.abs(a);\n        const normY = Math.abs(d);\n        if (normX === normY) {\n          if (lineWidth === 0) {\n            scaleX = scaleY = 1 / normX;\n          } else {\n            const scaledLineWidth = normX * lineWidth;\n            scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n          }\n        } else if (lineWidth === 0) {\n          scaleX = 1 / normX;\n          scaleY = 1 / normY;\n        } else {\n          const scaledXLineWidth = normX * lineWidth;\n          const scaledYLineWidth = normY * lineWidth;\n          scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n          scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n        }\n      } else {\n        // A pixel (base (x, y)) is transformed by M into a parallelogram:\n        //  - its area is |det(M)|;\n        //  - heightY (orthogonal to Mx) has a length: |det(M)| / norm(Mx);\n        //  - heightX (orthogonal to My) has a length: |det(M)| / norm(My).\n        // heightX and heightY are the thicknesses of the transformed pixel\n        // and they must be both greater or equal to 1.\n        const absDet = Math.abs(a * d - b * c);\n        const normX = Math.hypot(a, b);\n        const normY = Math.hypot(c, d);\n        if (lineWidth === 0) {\n          scaleX = normY / absDet;\n          scaleY = normX / absDet;\n        } else {\n          const baseArea = lineWidth * absDet;\n          scaleX = normY > baseArea ? normY / baseArea : 1;\n          scaleY = normX > baseArea ? normX / baseArea : 1;\n        }\n      }\n      this._cachedScaleForStroking[0] = scaleX;\n      this._cachedScaleForStroking[1] = scaleY;\n    }\n    return this._cachedScaleForStroking;\n  }\n\n  // Rescale before stroking in order to have a final lineWidth\n  // with both thicknesses greater or equal to 1.\n  rescaleAndStroke(saveRestore) {\n    const { ctx } = this;\n    const { lineWidth } = this.current;\n    const [scaleX, scaleY] = this.getScaleForStroking();\n\n    ctx.lineWidth = lineWidth || 1;\n\n    if (scaleX === 1 && scaleY === 1) {\n      ctx.stroke();\n      return;\n    }\n\n    const dashes = ctx.getLineDash();\n    if (saveRestore) {\n      ctx.save();\n    }\n\n    ctx.scale(scaleX, scaleY);\n\n    // How the dashed line is rendered depends on the current transform...\n    // so we added a rescale to handle too thin lines and consequently\n    // the way the line is dashed will be modified.\n    // If scaleX === scaleY, the dashed lines will be rendered correctly\n    // else we'll have some bugs (but only with too thin lines).\n    // Here we take the max... why not taking the min... or something else.\n    // Anyway, as said it's buggy when scaleX !== scaleY.\n    if (dashes.length > 0) {\n      const scale = Math.max(scaleX, scaleY);\n      ctx.setLineDash(dashes.map(x => x / scale));\n      ctx.lineDashOffset /= scale;\n    }\n\n    ctx.stroke();\n\n    if (saveRestore) {\n      ctx.restore();\n    }\n  }\n\n  isContentVisible() {\n    for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n      if (!this.markedContentStack[i].visible) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nfor (const op in OPS) {\n  if (CanvasGraphics.prototype[op] !== undefined) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n}\n\nexport { CanvasGraphics };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, info, unreachable, Util } from \"../shared/util.js\";\nimport { getCurrentTransform } from \"./display_utils.js\";\n\nconst PathType = {\n  FILL: \"Fill\",\n  STROKE: \"Stroke\",\n  SHADING: \"Shading\",\n};\n\nfunction applyBoundingBox(ctx, bbox) {\n  if (!bbox) {\n    return;\n  }\n  const width = bbox[2] - bbox[0];\n  const height = bbox[3] - bbox[1];\n  const region = new Path2D();\n  region.rect(bbox[0], bbox[1], width, height);\n  ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n  constructor() {\n    if (this.constructor === BaseShadingPattern) {\n      unreachable(\"Cannot initialize BaseShadingPattern.\");\n    }\n  }\n\n  getPattern() {\n    unreachable(\"Abstract method `getPattern` called.\");\n  }\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._type = IR[1];\n    this._bbox = IR[2];\n    this._colorStops = IR[3];\n    this._p0 = IR[4];\n    this._p1 = IR[5];\n    this._r0 = IR[6];\n    this._r1 = IR[7];\n    this.matrix = null;\n  }\n\n  _createGradient(ctx) {\n    let grad;\n    if (this._type === \"axial\") {\n      grad = ctx.createLinearGradient(\n        this._p0[0],\n        this._p0[1],\n        this._p1[0],\n        this._p1[1]\n      );\n    } else if (this._type === \"radial\") {\n      grad = ctx.createRadialGradient(\n        this._p0[0],\n        this._p0[1],\n        this._r0,\n        this._p1[0],\n        this._p1[1],\n        this._r1\n      );\n    }\n\n    for (const colorStop of this._colorStops) {\n      grad.addColorStop(colorStop[0], colorStop[1]);\n    }\n    return grad;\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    let pattern;\n    if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n      const ownerBBox = owner.current.getClippedPathBoundingBox(\n        pathType,\n        getCurrentTransform(ctx)\n      ) || [0, 0, 0, 0];\n      // Create a canvas that is only as big as the current path. This doesn't\n      // allow us to cache the pattern, but it generally creates much smaller\n      // canvases and saves memory use. See bug 1722807 for an example.\n      const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n      const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n\n      const tmpCanvas = owner.cachedCanvases.getCanvas(\n        \"pattern\",\n        width,\n        height,\n        true\n      );\n\n      const tmpCtx = tmpCanvas.context;\n      tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      tmpCtx.beginPath();\n      tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n      // Non shading fill patterns are positioned relative to the base transform\n      // (usually the page's initial transform), but we may have created a\n      // smaller canvas based on the path, so we must account for the shift.\n      tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n      inverse = Util.transform(inverse, [\n        1,\n        0,\n        0,\n        1,\n        ownerBBox[0],\n        ownerBBox[1],\n      ]);\n\n      tmpCtx.transform(...owner.baseTransform);\n      if (this.matrix) {\n        tmpCtx.transform(...this.matrix);\n      }\n      applyBoundingBox(tmpCtx, this._bbox);\n\n      tmpCtx.fillStyle = this._createGradient(tmpCtx);\n      tmpCtx.fill();\n\n      pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n      const domMatrix = new DOMMatrix(inverse);\n      pattern.setTransform(domMatrix);\n    } else {\n      // Shading fills are applied relative to the current matrix which is also\n      // how canvas gradients work, so there's no need to do anything special\n      // here.\n      applyBoundingBox(ctx, this._bbox);\n      pattern = this._createGradient(ctx);\n    }\n    return pattern;\n  }\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n  // Very basic Gouraud-shaded triangle rasterization algorithm.\n  const coords = context.coords,\n    colors = context.colors;\n  const bytes = data.data,\n    rowSize = data.width * 4;\n  let tmp;\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  if (coords[p2 + 1] > coords[p3 + 1]) {\n    tmp = p2;\n    p2 = p3;\n    p3 = tmp;\n    tmp = c2;\n    c2 = c3;\n    c3 = tmp;\n  }\n  if (coords[p1 + 1] > coords[p2 + 1]) {\n    tmp = p1;\n    p1 = p2;\n    p2 = tmp;\n    tmp = c1;\n    c1 = c2;\n    c2 = tmp;\n  }\n  const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n  const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n  const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n  const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n  const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n  const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n  if (y1 >= y3) {\n    return;\n  }\n  const c1r = colors[c1],\n    c1g = colors[c1 + 1],\n    c1b = colors[c1 + 2];\n  const c2r = colors[c2],\n    c2g = colors[c2 + 1],\n    c2b = colors[c2 + 2];\n  const c3r = colors[c3],\n    c3g = colors[c3 + 1],\n    c3b = colors[c3 + 2];\n\n  const minY = Math.round(y1),\n    maxY = Math.round(y3);\n  let xa, car, cag, cab;\n  let xb, cbr, cbg, cbb;\n  for (let y = minY; y <= maxY; y++) {\n    if (y < y2) {\n      const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n      xa = x1 - (x1 - x2) * k;\n      car = c1r - (c1r - c2r) * k;\n      cag = c1g - (c1g - c2g) * k;\n      cab = c1b - (c1b - c2b) * k;\n    } else {\n      let k;\n      if (y > y3) {\n        k = 1;\n      } else if (y2 === y3) {\n        k = 0;\n      } else {\n        k = (y2 - y) / (y2 - y3);\n      }\n      xa = x2 - (x2 - x3) * k;\n      car = c2r - (c2r - c3r) * k;\n      cag = c2g - (c2g - c3g) * k;\n      cab = c2b - (c2b - c3b) * k;\n    }\n\n    let k;\n    if (y < y1) {\n      k = 0;\n    } else if (y > y3) {\n      k = 1;\n    } else {\n      k = (y1 - y) / (y1 - y3);\n    }\n    xb = x1 - (x1 - x3) * k;\n    cbr = c1r - (c1r - c3r) * k;\n    cbg = c1g - (c1g - c3g) * k;\n    cbb = c1b - (c1b - c3b) * k;\n    const x1_ = Math.round(Math.min(xa, xb));\n    const x2_ = Math.round(Math.max(xa, xb));\n    let j = rowSize * y + x1_ * 4;\n    for (let x = x1_; x <= x2_; x++) {\n      k = (xa - x) / (xa - xb);\n      if (k < 0) {\n        k = 0;\n      } else if (k > 1) {\n        k = 1;\n      }\n      bytes[j++] = (car - (car - cbr) * k) | 0;\n      bytes[j++] = (cag - (cag - cbg) * k) | 0;\n      bytes[j++] = (cab - (cab - cbb) * k) | 0;\n      bytes[j++] = 255;\n    }\n  }\n}\n\nfunction drawFigure(data, figure, context) {\n  const ps = figure.coords;\n  const cs = figure.colors;\n  let i, ii;\n  switch (figure.type) {\n    case \"lattice\":\n      const verticesPerRow = figure.verticesPerRow;\n      const rows = Math.floor(ps.length / verticesPerRow) - 1;\n      const cols = verticesPerRow - 1;\n      for (i = 0; i < rows; i++) {\n        let q = i * verticesPerRow;\n        for (let j = 0; j < cols; j++, q++) {\n          drawTriangle(\n            data,\n            context,\n            ps[q],\n            ps[q + 1],\n            ps[q + verticesPerRow],\n            cs[q],\n            cs[q + 1],\n            cs[q + verticesPerRow]\n          );\n          drawTriangle(\n            data,\n            context,\n            ps[q + verticesPerRow + 1],\n            ps[q + 1],\n            ps[q + verticesPerRow],\n            cs[q + verticesPerRow + 1],\n            cs[q + 1],\n            cs[q + verticesPerRow]\n          );\n        }\n      }\n      break;\n    case \"triangles\":\n      for (i = 0, ii = ps.length; i < ii; i += 3) {\n        drawTriangle(\n          data,\n          context,\n          ps[i],\n          ps[i + 1],\n          ps[i + 2],\n          cs[i],\n          cs[i + 1],\n          cs[i + 2]\n        );\n      }\n      break;\n    default:\n      throw new Error(\"illegal figure\");\n  }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n  constructor(IR) {\n    super();\n    this._coords = IR[2];\n    this._colors = IR[3];\n    this._figures = IR[4];\n    this._bounds = IR[5];\n    this._bbox = IR[7];\n    this._background = IR[8];\n    this.matrix = null;\n  }\n\n  _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n    // we will increase scale on some weird factor to let antialiasing take\n    // care of \"rough\" edges\n    const EXPECTED_SCALE = 1.1;\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    const MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n    // We need to keep transparent border around our pattern for fill():\n    // createPattern with 'no-repeat' will bleed edges across entire area.\n    const BORDER_SIZE = 2;\n\n    const offsetX = Math.floor(this._bounds[0]);\n    const offsetY = Math.floor(this._bounds[1]);\n    const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n    const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n\n    const width = Math.min(\n      Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    const height = Math.min(\n      Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)),\n      MAX_PATTERN_SIZE\n    );\n    const scaleX = boundsWidth / width;\n    const scaleY = boundsHeight / height;\n\n    const context = {\n      coords: this._coords,\n      colors: this._colors,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY,\n    };\n\n    const paddedWidth = width + BORDER_SIZE * 2;\n    const paddedHeight = height + BORDER_SIZE * 2;\n\n    const tmpCanvas = cachedCanvases.getCanvas(\n      \"mesh\",\n      paddedWidth,\n      paddedHeight,\n      false\n    );\n    const tmpCtx = tmpCanvas.context;\n\n    const data = tmpCtx.createImageData(width, height);\n    if (backgroundColor) {\n      const bytes = data.data;\n      for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n        bytes[i] = backgroundColor[0];\n        bytes[i + 1] = backgroundColor[1];\n        bytes[i + 2] = backgroundColor[2];\n        bytes[i + 3] = 255;\n      }\n    }\n    for (const figure of this._figures) {\n      drawFigure(data, figure, context);\n    }\n    tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n    const canvas = tmpCanvas.canvas;\n\n    return {\n      canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY,\n    };\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    applyBoundingBox(ctx, this._bbox);\n    let scale;\n    if (pathType === PathType.SHADING) {\n      scale = Util.singularValueDecompose2dScale(getCurrentTransform(ctx));\n    } else {\n      // Obtain scale from matrix and current transformation matrix.\n      scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n      if (this.matrix) {\n        const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n        scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n      }\n    }\n\n    // Rasterizing on the main thread since sending/queue large canvases\n    // might cause OOM.\n    const temporaryPatternCanvas = this._createMeshCanvas(\n      scale,\n      pathType === PathType.SHADING ? null : this._background,\n      owner.cachedCanvases\n    );\n\n    if (pathType !== PathType.SHADING) {\n      ctx.setTransform(...owner.baseTransform);\n      if (this.matrix) {\n        ctx.transform(...this.matrix);\n      }\n    }\n\n    ctx.translate(\n      temporaryPatternCanvas.offsetX,\n      temporaryPatternCanvas.offsetY\n    );\n    ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n\n    return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n  }\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n  getPattern() {\n    return \"hotpink\";\n  }\n}\n\nfunction getShadingPattern(IR) {\n  switch (IR[0]) {\n    case \"RadialAxial\":\n      return new RadialAxialShadingPattern(IR);\n    case \"Mesh\":\n      return new MeshShadingPattern(IR);\n    case \"Dummy\":\n      return new DummyShadingPattern();\n  }\n  throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n  COLORED: 1,\n  UNCOLORED: 2,\n};\n\nclass TilingPattern {\n  // 10in @ 300dpi shall be enough.\n  static MAX_PATTERN_SIZE = 3000;\n\n  constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.ctx = ctx;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n  }\n\n  createPatternCanvas(owner) {\n    const operatorList = this.operatorList;\n    const bbox = this.bbox;\n    const xstep = this.xstep;\n    const ystep = this.ystep;\n    const paintType = this.paintType;\n    const tilingType = this.tilingType;\n    const color = this.color;\n    const canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n    info(\"TilingType: \" + tilingType);\n\n    // A tiling pattern as defined by PDF spec 8.7.2 is a cell whose size is\n    // described by bbox, and may repeat regularly by shifting the cell by\n    // xstep and ystep.\n    // Because the HTML5 canvas API does not support pattern repetition with\n    // gaps in between, we use the xstep/ystep instead of the bbox's size.\n    //\n    // This has the following consequences (similarly for ystep):\n    //\n    // - If xstep is the same as bbox, then there is no observable difference.\n    //\n    // - If xstep is larger than bbox, then the pattern canvas is partially\n    //   empty: the area bounded by bbox is painted, the outside area is void.\n    //\n    // - If xstep is smaller than bbox, then the pixels between xstep and the\n    //   bbox boundary will be missing. This is INCORRECT behavior.\n    //   \"Figures on adjacent tiles should not overlap\" (PDF spec 8.7.3.1),\n    //   but overlapping cells without common pixels are still valid.\n    //   TODO: Fix the implementation, to allow this scenario to be painted\n    //   correctly.\n\n    const x0 = bbox[0],\n      y0 = bbox[1],\n      x1 = bbox[2],\n      y1 = bbox[3];\n\n    // Obtain scale from matrix and current transformation matrix.\n    const matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n    const curMatrixScale = Util.singularValueDecompose2dScale(\n      this.baseTransform\n    );\n    const combinedScale = [\n      matrixScale[0] * curMatrixScale[0],\n      matrixScale[1] * curMatrixScale[1],\n    ];\n\n    // Use width and height values that are as close as possible to the end\n    // result when the pattern is used. Too low value makes the pattern look\n    // blurry. Too large value makes it look too crispy.\n    const dimx = this.getSizeAndScale(\n      xstep,\n      this.ctx.canvas.width,\n      combinedScale[0]\n    );\n    const dimy = this.getSizeAndScale(\n      ystep,\n      this.ctx.canvas.height,\n      combinedScale[1]\n    );\n\n    const tmpCanvas = owner.cachedCanvases.getCanvas(\n      \"pattern\",\n      dimx.size,\n      dimy.size,\n      true\n    );\n    const tmpCtx = tmpCanvas.context;\n    const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n    graphics.groupLevel = owner.groupLevel;\n\n    this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n    let adjustedX0 = x0;\n    let adjustedY0 = y0;\n    let adjustedX1 = x1;\n    let adjustedY1 = y1;\n    // Some bounding boxes have negative x0/y0 coordinates which will cause the\n    // some of the drawing to be off of the canvas. To avoid this shift the\n    // bounding box over.\n    if (x0 < 0) {\n      adjustedX0 = 0;\n      adjustedX1 += Math.abs(x0);\n    }\n    if (y0 < 0) {\n      adjustedY0 = 0;\n      adjustedY1 += Math.abs(y0);\n    }\n    tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n    graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n\n    // To match CanvasGraphics beginDrawing we must save the context here or\n    // else we end up with unbalanced save/restores.\n    tmpCtx.save();\n\n    this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n\n    graphics.baseTransform = getCurrentTransform(graphics.ctx);\n\n    graphics.executeOperatorList(operatorList);\n\n    graphics.endDrawing();\n\n    return {\n      canvas: tmpCanvas.canvas,\n      scaleX: dimx.scale,\n      scaleY: dimy.scale,\n      offsetX: adjustedX0,\n      offsetY: adjustedY0,\n    };\n  }\n\n  getSizeAndScale(step, realOutputSize, scale) {\n    // xstep / ystep may be negative -- normalize.\n    step = Math.abs(step);\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    // Use the destination canvas's size if it is bigger than the hard-coded\n    // limit of MAX_PATTERN_SIZE to avoid clipping patterns that cover the\n    // whole canvas.\n    const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n    let size = Math.ceil(step * scale);\n    if (size >= maxSize) {\n      size = maxSize;\n    } else {\n      scale = size / step;\n    }\n    return { scale, size };\n  }\n\n  clipBbox(graphics, x0, y0, x1, y1) {\n    const bboxWidth = x1 - x0;\n    const bboxHeight = y1 - y0;\n    graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n    graphics.current.updateRectMinMax(getCurrentTransform(graphics.ctx), [\n      x0,\n      y0,\n      x1,\n      y1,\n    ]);\n    graphics.clip();\n    graphics.endPath();\n  }\n\n  setFillAndStrokeStyleToContext(graphics, paintType, color) {\n    const context = graphics.ctx,\n      current = graphics.current;\n    switch (paintType) {\n      case PaintType.COLORED:\n        const ctx = this.ctx;\n        context.fillStyle = ctx.fillStyle;\n        context.strokeStyle = ctx.strokeStyle;\n        current.fillColor = ctx.fillStyle;\n        current.strokeColor = ctx.strokeStyle;\n        break;\n      case PaintType.UNCOLORED:\n        const cssColor = Util.makeHexColor(color[0], color[1], color[2]);\n        context.fillStyle = cssColor;\n        context.strokeStyle = cssColor;\n        // Set color needed by image masks (fixes issues 3226 and 8741).\n        current.fillColor = cssColor;\n        current.strokeColor = cssColor;\n        break;\n      default:\n        throw new FormatError(`Unsupported paint type: ${paintType}`);\n    }\n  }\n\n  getPattern(ctx, owner, inverse, pathType) {\n    // PDF spec 8.7.2 NOTE 1: pattern's matrix is relative to initial matrix.\n    let matrix = inverse;\n    if (pathType !== PathType.SHADING) {\n      matrix = Util.transform(matrix, owner.baseTransform);\n      if (this.matrix) {\n        matrix = Util.transform(matrix, this.matrix);\n      }\n    }\n\n    const temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n    let domMatrix = new DOMMatrix(matrix);\n    // Rescale and so that the ctx.createPattern call generates a pattern with\n    // the desired size.\n    domMatrix = domMatrix.translate(\n      temporaryPatternCanvas.offsetX,\n      temporaryPatternCanvas.offsetY\n    );\n    domMatrix = domMatrix.scale(\n      1 / temporaryPatternCanvas.scaleX,\n      1 / temporaryPatternCanvas.scaleY\n    );\n\n    const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n    pattern.setTransform(domMatrix);\n\n    return pattern;\n  }\n}\n\nexport { getShadingPattern, PathType, TilingPattern };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n  switch (params.kind) {\n    case ImageKind.GRAYSCALE_1BPP:\n      return convertBlackAndWhiteToRGBA(params);\n    case ImageKind.RGB_24BPP:\n      return convertRGBToRGBA(params);\n  }\n\n  return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  width,\n  height,\n  nonBlackColor = 0xffffffff,\n  inverseDecode = false,\n}) {\n  const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n  const [zeroMapping, oneMapping] = inverseDecode\n    ? [nonBlackColor, black]\n    : [black, nonBlackColor];\n  const widthInSource = width >> 3;\n  const widthRemainder = width & 7;\n  const srcLength = src.length;\n  dest = new Uint32Array(dest.buffer);\n  let destPos = 0;\n\n  for (let i = 0; i < height; i++) {\n    for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n      const elem = srcPos < srcLength ? src[srcPos] : 255;\n      dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n      dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n    }\n    if (widthRemainder === 0) {\n      continue;\n    }\n    const elem = srcPos < srcLength ? src[srcPos++] : 255;\n    for (let j = 0; j < widthRemainder; j++) {\n      dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n    }\n  }\n  return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n  src,\n  srcPos = 0,\n  dest,\n  destPos = 0,\n  width,\n  height,\n}) {\n  let i = 0;\n  const len32 = src.length >> 2;\n  const src32 = new Uint32Array(src.buffer, srcPos, len32);\n\n  if (FeatureTest.isLittleEndian) {\n    // It's a way faster to do the shuffle manually instead of working\n    // component by component with some Uint8 arrays.\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R2B1G1R1\n      const s2 = src32[i + 1]; // G3R3B2G2\n      const s3 = src32[i + 2]; // B4G4R4B3\n\n      dest[destPos] = s1 | 0xff000000;\n      dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | 0xff000000;\n      dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | 0xff000000;\n      dest[destPos + 3] = (s3 >>> 8) | 0xff000000;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | 0xff000000;\n    }\n  } else {\n    for (; i < len32 - 2; i += 3, destPos += 4) {\n      const s1 = src32[i]; // R1G1B1R2\n      const s2 = src32[i + 1]; // G2B2R3G3\n      const s3 = src32[i + 2]; // B3R4G4B4\n\n      dest[destPos] = s1 | 0xff;\n      dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | 0xff;\n      dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | 0xff;\n      dest[destPos + 3] = (s3 << 8) | 0xff;\n    }\n\n    for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n      dest[destPos++] =\n        (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | 0xff;\n    }\n  }\n\n  return { srcPos, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n  if (FeatureTest.isLittleEndian) {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x10101) | 0xff000000;\n    }\n  } else {\n    for (let i = 0, ii = src.length; i < ii; i++) {\n      dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n    }\n  }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @typedef {Object} GlobalWorkerOptionsType\n * @property {Worker | null} workerPort - Defines global port for worker\n *   process. Overrides the `workerSrc` option.\n * @property {string} workerSrc - A string containing the path and filename\n *   of the worker file.\n *\n *   NOTE: The `workerSrc` option should always be set, in order to prevent any\n *         issues when using the PDF.js library.\n */\n\n/** @type {GlobalWorkerOptionsType} */\nconst GlobalWorkerOptions = Object.create(null);\n\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\nexport { GlobalWorkerOptions };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  MissingPDFException,\n  PasswordException,\n  PromiseCapability,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n  UNKNOWN: 0,\n  DATA: 1,\n  ERROR: 2,\n};\n\nconst StreamKind = {\n  UNKNOWN: 0,\n  CANCEL: 1,\n  CANCEL_COMPLETE: 2,\n  CLOSE: 3,\n  ENQUEUE: 4,\n  ERROR: 5,\n  PULL: 6,\n  PULL_COMPLETE: 7,\n  START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n  if (\n    !(\n      reason instanceof Error ||\n      (typeof reason === \"object\" && reason !== null)\n    )\n  ) {\n    unreachable(\n      'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n    );\n  }\n  switch (reason.name) {\n    case \"AbortException\":\n      return new AbortException(reason.message);\n    case \"MissingPDFException\":\n      return new MissingPDFException(reason.message);\n    case \"PasswordException\":\n      return new PasswordException(reason.message, reason.code);\n    case \"UnexpectedResponseException\":\n      return new UnexpectedResponseException(reason.message, reason.status);\n    case \"UnknownErrorException\":\n      return new UnknownErrorException(reason.message, reason.details);\n    default:\n      return new UnknownErrorException(reason.message, reason.toString());\n  }\n}\n\nclass MessageHandler {\n  constructor(sourceName, targetName, comObj) {\n    this.sourceName = sourceName;\n    this.targetName = targetName;\n    this.comObj = comObj;\n    this.callbackId = 1;\n    this.streamId = 1;\n    this.streamSinks = Object.create(null);\n    this.streamControllers = Object.create(null);\n    this.callbackCapabilities = Object.create(null);\n    this.actionHandler = Object.create(null);\n\n    this._onComObjOnMessage = event => {\n      const data = event.data;\n      if (data.targetName !== this.sourceName) {\n        return;\n      }\n      if (data.stream) {\n        this.#processStreamMessage(data);\n        return;\n      }\n      if (data.callback) {\n        const callbackId = data.callbackId;\n        const capability = this.callbackCapabilities[callbackId];\n        if (!capability) {\n          throw new Error(`Cannot resolve callback ${callbackId}`);\n        }\n        delete this.callbackCapabilities[callbackId];\n\n        if (data.callback === CallbackKind.DATA) {\n          capability.resolve(data.data);\n        } else if (data.callback === CallbackKind.ERROR) {\n          capability.reject(wrapReason(data.reason));\n        } else {\n          throw new Error(\"Unexpected callback case\");\n        }\n        return;\n      }\n      const action = this.actionHandler[data.action];\n      if (!action) {\n        throw new Error(`Unknown action from worker: ${data.action}`);\n      }\n      if (data.callbackId) {\n        const cbSourceName = this.sourceName;\n        const cbTargetName = data.sourceName;\n\n        new Promise(function (resolve) {\n          resolve(action(data.data));\n        }).then(\n          function (result) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.DATA,\n              callbackId: data.callbackId,\n              data: result,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName: cbSourceName,\n              targetName: cbTargetName,\n              callback: CallbackKind.ERROR,\n              callbackId: data.callbackId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        return;\n      }\n      if (data.streamId) {\n        this.#createStreamSink(data);\n        return;\n      }\n      action(data.data);\n    };\n    comObj.addEventListener(\"message\", this._onComObjOnMessage);\n  }\n\n  on(actionName, handler) {\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      assert(\n        typeof handler === \"function\",\n        'MessageHandler.on: Expected \"handler\" to be a function.'\n      );\n    }\n    const ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = handler;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   */\n  send(actionName, data, transfers) {\n    this.comObj.postMessage(\n      {\n        sourceName: this.sourceName,\n        targetName: this.targetName,\n        action: actionName,\n        data,\n      },\n      transfers\n    );\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    const callbackId = this.callbackId++;\n    const capability = new PromiseCapability();\n    this.callbackCapabilities[callbackId] = capability;\n    try {\n      this.comObj.postMessage(\n        {\n          sourceName: this.sourceName,\n          targetName: this.targetName,\n          action: actionName,\n          callbackId,\n          data,\n        },\n        transfers\n      );\n    } catch (ex) {\n      capability.reject(ex);\n    }\n    return capability.promise;\n  }\n\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {string} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n   * @returns {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    const streamId = this.streamId++,\n      sourceName = this.sourceName,\n      targetName = this.targetName,\n      comObj = this.comObj;\n\n    return new ReadableStream(\n      {\n        start: controller => {\n          const startCapability = new PromiseCapability();\n          this.streamControllers[streamId] = {\n            controller,\n            startCall: startCapability,\n            pullCall: null,\n            cancelCall: null,\n            isClosed: false,\n          };\n          comObj.postMessage(\n            {\n              sourceName,\n              targetName,\n              action: actionName,\n              streamId,\n              data,\n              desiredSize: controller.desiredSize,\n            },\n            transfers\n          );\n          // Return Promise for Async process, to signal success/failure.\n          return startCapability.promise;\n        },\n\n        pull: controller => {\n          const pullCapability = new PromiseCapability();\n          this.streamControllers[streamId].pullCall = pullCapability;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL,\n            streamId,\n            desiredSize: controller.desiredSize,\n          });\n          // Returning Promise will not call \"pull\"\n          // again until current pull is resolved.\n          return pullCapability.promise;\n        },\n\n        cancel: reason => {\n          assert(reason instanceof Error, \"cancel must have a valid reason\");\n          const cancelCapability = new PromiseCapability();\n          this.streamControllers[streamId].cancelCall = cancelCapability;\n          this.streamControllers[streamId].isClosed = true;\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.CANCEL,\n            streamId,\n            reason: wrapReason(reason),\n          });\n          // Return Promise to signal success or failure.\n          return cancelCapability.promise;\n        },\n      },\n      queueingStrategy\n    );\n  }\n\n  #createStreamSink(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const self = this,\n      action = this.actionHandler[data.action];\n\n    const streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        const lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = new PromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        comObj.postMessage(\n          {\n            sourceName,\n            targetName,\n            stream: StreamKind.ENQUEUE,\n            streamId,\n            chunk,\n          },\n          transfers\n        );\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.CLOSE,\n          streamId,\n        });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        assert(reason instanceof Error, \"error must have a valid reason\");\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.ERROR,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      },\n\n      sinkCapability: new PromiseCapability(),\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: data.desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n\n    new Promise(function (resolve) {\n      resolve(action(data.data, streamSink));\n    }).then(\n      function () {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          success: true,\n        });\n      },\n      function (reason) {\n        comObj.postMessage({\n          sourceName,\n          targetName,\n          stream: StreamKind.START_COMPLETE,\n          streamId,\n          reason: wrapReason(reason),\n        });\n      }\n    );\n  }\n\n  #processStreamMessage(data) {\n    const streamId = data.streamId,\n      sourceName = this.sourceName,\n      targetName = data.sourceName,\n      comObj = this.comObj;\n    const streamController = this.streamControllers[streamId],\n      streamSink = this.streamSinks[streamId];\n\n    switch (data.stream) {\n      case StreamKind.START_COMPLETE:\n        if (data.success) {\n          streamController.startCall.resolve();\n        } else {\n          streamController.startCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL_COMPLETE:\n        if (data.success) {\n          streamController.pullCall.resolve();\n        } else {\n          streamController.pullCall.reject(wrapReason(data.reason));\n        }\n        break;\n      case StreamKind.PULL:\n        // Ignore any pull after close is called.\n        if (!streamSink) {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            stream: StreamKind.PULL_COMPLETE,\n            streamId,\n            success: true,\n          });\n          break;\n        }\n        // Pull increases the desiredSize property of sink, so when it changes\n        // from negative to positive, set ready property as resolved promise.\n        if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n          streamSink.sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        streamSink.desiredSize = data.desiredSize;\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onPull?.());\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.PULL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        break;\n      case StreamKind.ENQUEUE:\n        assert(streamController, \"enqueue should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.controller.enqueue(data.chunk);\n        break;\n      case StreamKind.CLOSE:\n        assert(streamController, \"close should have stream controller\");\n        if (streamController.isClosed) {\n          break;\n        }\n        streamController.isClosed = true;\n        streamController.controller.close();\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.ERROR:\n        assert(streamController, \"error should have stream controller\");\n        streamController.controller.error(wrapReason(data.reason));\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL_COMPLETE:\n        if (data.success) {\n          streamController.cancelCall.resolve();\n        } else {\n          streamController.cancelCall.reject(wrapReason(data.reason));\n        }\n        this.#deleteStreamController(streamController, streamId);\n        break;\n      case StreamKind.CANCEL:\n        if (!streamSink) {\n          break;\n        }\n\n        new Promise(function (resolve) {\n          resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n        }).then(\n          function () {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              success: true,\n            });\n          },\n          function (reason) {\n            comObj.postMessage({\n              sourceName,\n              targetName,\n              stream: StreamKind.CANCEL_COMPLETE,\n              streamId,\n              reason: wrapReason(reason),\n            });\n          }\n        );\n        streamSink.sinkCapability.reject(wrapReason(data.reason));\n        streamSink.isCancelled = true;\n        delete this.streamSinks[streamId];\n        break;\n      default:\n        throw new Error(\"Unexpected stream case\");\n    }\n  }\n\n  async #deleteStreamController(streamController, streamId) {\n    // Delete the `streamController` only when the start, pull, and cancel\n    // capabilities have settled, to prevent `TypeError`s.\n    await Promise.allSettled([\n      streamController.startCall?.promise,\n      streamController.pullCall?.promise,\n      streamController.cancelCall?.promise,\n    ]);\n    delete this.streamControllers[streamId];\n  }\n\n  destroy() {\n    this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n  }\n}\n\nexport { MessageHandler };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap } from \"../shared/util.js\";\n\nclass Metadata {\n  #metadataMap;\n\n  #data;\n\n  constructor({ parsedData, rawData }) {\n    this.#metadataMap = parsedData;\n    this.#data = rawData;\n  }\n\n  getRaw() {\n    return this.#data;\n  }\n\n  get(name) {\n    return this.#metadataMap.get(name) ?? null;\n  }\n\n  getAll() {\n    return objectFromMap(this.#metadataMap);\n  }\n\n  has(name) {\n    return this.#metadataMap.has(name);\n  }\n}\n\nexport { Metadata };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { objectFromMap, unreachable, warn } from \"../shared/util.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nclass OptionalContentGroup {\n  #visible = true;\n\n  constructor(name, intent) {\n    this.name = name;\n    this.intent = intent;\n  }\n\n  /**\n   * @type {boolean}\n   */\n  get visible() {\n    return this.#visible;\n  }\n\n  /**\n   * @ignore\n   */\n  _setVisible(internal, visible) {\n    if (internal !== INTERNAL) {\n      unreachable(\"Internal method `_setVisible` called.\");\n    }\n    this.#visible = visible;\n  }\n}\n\nclass OptionalContentConfig {\n  #cachedGetHash = null;\n\n  #groups = new Map();\n\n  #initialHash = null;\n\n  #order = null;\n\n  constructor(data) {\n    this.name = null;\n    this.creator = null;\n\n    if (data === null) {\n      return;\n    }\n    this.name = data.name;\n    this.creator = data.creator;\n    this.#order = data.order;\n    for (const group of data.groups) {\n      this.#groups.set(\n        group.id,\n        new OptionalContentGroup(group.name, group.intent)\n      );\n    }\n\n    if (data.baseState === \"OFF\") {\n      for (const group of this.#groups.values()) {\n        group._setVisible(INTERNAL, false);\n      }\n    }\n\n    for (const on of data.on) {\n      this.#groups.get(on)._setVisible(INTERNAL, true);\n    }\n\n    for (const off of data.off) {\n      this.#groups.get(off)._setVisible(INTERNAL, false);\n    }\n\n    // The following code must always run *last* in the constructor.\n    this.#initialHash = this.getHash();\n  }\n\n  #evaluateVisibilityExpression(array) {\n    const length = array.length;\n    if (length < 2) {\n      return true;\n    }\n    const operator = array[0];\n    for (let i = 1; i < length; i++) {\n      const element = array[i];\n      let state;\n      if (Array.isArray(element)) {\n        state = this.#evaluateVisibilityExpression(element);\n      } else if (this.#groups.has(element)) {\n        state = this.#groups.get(element).visible;\n      } else {\n        warn(`Optional content group not found: ${element}`);\n        return true;\n      }\n      switch (operator) {\n        case \"And\":\n          if (!state) {\n            return false;\n          }\n          break;\n        case \"Or\":\n          if (state) {\n            return true;\n          }\n          break;\n        case \"Not\":\n          return !state;\n        default:\n          return true;\n      }\n    }\n    return operator === \"And\";\n  }\n\n  isVisible(group) {\n    if (this.#groups.size === 0) {\n      return true;\n    }\n    if (!group) {\n      warn(\"Optional content group not defined.\");\n      return true;\n    }\n    if (group.type === \"OCG\") {\n      if (!this.#groups.has(group.id)) {\n        warn(`Optional content group not found: ${group.id}`);\n        return true;\n      }\n      return this.#groups.get(group.id).visible;\n    } else if (group.type === \"OCMD\") {\n      // Per the spec, the expression should be preferred if available.\n      if (group.expression) {\n        return this.#evaluateVisibilityExpression(group.expression);\n      }\n      if (!group.policy || group.policy === \"AnyOn\") {\n        // Default\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this.#groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOn\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this.#groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      } else if (group.policy === \"AnyOff\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (!this.#groups.get(id).visible) {\n            return true;\n          }\n        }\n        return false;\n      } else if (group.policy === \"AllOff\") {\n        for (const id of group.ids) {\n          if (!this.#groups.has(id)) {\n            warn(`Optional content group not found: ${id}`);\n            return true;\n          }\n          if (this.#groups.get(id).visible) {\n            return false;\n          }\n        }\n        return true;\n      }\n      warn(`Unknown optional content policy ${group.policy}.`);\n      return true;\n    }\n    warn(`Unknown group type ${group.type}.`);\n    return true;\n  }\n\n  setVisibility(id, visible = true) {\n    if (!this.#groups.has(id)) {\n      warn(`Optional content group not found: ${id}`);\n      return;\n    }\n    this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n\n    this.#cachedGetHash = null;\n  }\n\n  get hasInitialVisibility() {\n    return this.#initialHash === null || this.getHash() === this.#initialHash;\n  }\n\n  getOrder() {\n    if (!this.#groups.size) {\n      return null;\n    }\n    if (this.#order) {\n      return this.#order.slice();\n    }\n    return [...this.#groups.keys()];\n  }\n\n  getGroups() {\n    return this.#groups.size > 0 ? objectFromMap(this.#groups) : null;\n  }\n\n  getGroup(id) {\n    return this.#groups.get(id) || null;\n  }\n\n  getHash() {\n    if (this.#cachedGetHash !== null) {\n      return this.#cachedGetHash;\n    }\n    const hash = new MurmurHash3_64();\n\n    for (const [id, group] of this.#groups) {\n      hash.update(`${id}:${group.visible}`);\n    }\n    return (this.#cachedGetHash = hash.hexdigest());\n  }\n}\n\nexport { OptionalContentConfig };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"../interfaces\").IPDFStream} IPDFStream */\n/** @typedef {import(\"../interfaces\").IPDFStreamReader} IPDFStreamReader */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../interfaces\").IPDFStreamRangeReader} IPDFStreamRangeReader */\n\nimport { assert, PromiseCapability } from \"../shared/util.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\n/** @implements {IPDFStream} */\nclass PDFDataTransportStream {\n  constructor(\n    {\n      length,\n      initialData,\n      progressiveDone = false,\n      contentDispositionFilename = null,\n      disableRange = false,\n      disableStream = false,\n    },\n    pdfDataRangeTransport\n  ) {\n    assert(\n      pdfDataRangeTransport,\n      'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.'\n    );\n\n    this._queuedChunks = [];\n    this._progressiveDone = progressiveDone;\n    this._contentDispositionFilename = contentDispositionFilename;\n\n    if (initialData?.length > 0) {\n      // Prevent any possible issues by only transferring a Uint8Array that\n      // completely \"utilizes\" its underlying ArrayBuffer.\n      const buffer =\n        initialData instanceof Uint8Array &&\n        initialData.byteLength === initialData.buffer.byteLength\n          ? initialData.buffer\n          : new Uint8Array(initialData).buffer;\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !disableStream;\n    this._isRangeSupported = !disableRange;\n    this._contentLength = length;\n\n    this._fullRequestReader = null;\n    this._rangeReaders = [];\n\n    this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n      this._onReceiveData({ begin, chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n      this._onProgress({ loaded, total });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n      this._onReceiveData({ chunk });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n      this._onProgressiveDone();\n    });\n\n    this._pdfDataRangeTransport.transportReady();\n  }\n\n  _onReceiveData({ begin, chunk }) {\n    // Prevent any possible issues by only transferring a Uint8Array that\n    // completely \"utilizes\" its underlying ArrayBuffer.\n    const buffer =\n      chunk instanceof Uint8Array &&\n      chunk.byteLength === chunk.buffer.byteLength\n        ? chunk.buffer\n        : new Uint8Array(chunk).buffer;\n\n    if (begin === undefined) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader._enqueue(buffer);\n      } else {\n        this._queuedChunks.push(buffer);\n      }\n    } else {\n      const found = this._rangeReaders.some(function (rangeReader) {\n        if (rangeReader._begin !== begin) {\n          return false;\n        }\n        rangeReader._enqueue(buffer);\n        return true;\n      });\n      assert(\n        found,\n        \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\"\n      );\n    }\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  _onProgress(evt) {\n    if (evt.total === undefined) {\n      // Reporting to first range reader, if it exists.\n      this._rangeReaders[0]?.onProgress?.({ loaded: evt.loaded });\n    } else {\n      this._fullRequestReader?.onProgress?.({\n        loaded: evt.loaded,\n        total: evt.total,\n      });\n    }\n  }\n\n  _onProgressiveDone() {\n    this._fullRequestReader?.progressiveDone();\n    this._progressiveDone = true;\n  }\n\n  _removeRangeReader(reader) {\n    const i = this._rangeReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFDataTransportStream.getFullReader can only be called once.\"\n    );\n    const queuedChunks = this._queuedChunks;\n    this._queuedChunks = null;\n    return new PDFDataTransportStreamReader(\n      this,\n      queuedChunks,\n      this._progressiveDone,\n      this._contentDispositionFilename\n    );\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n    this._pdfDataRangeTransport.requestDataRange(begin, end);\n    this._rangeReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n    this._pdfDataRangeTransport.abort();\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFDataTransportStreamReader {\n  constructor(\n    stream,\n    queuedChunks,\n    progressiveDone = false,\n    contentDispositionFilename = null\n  ) {\n    this._stream = stream;\n    this._done = progressiveDone || false;\n    this._filename = isPdfFile(contentDispositionFilename)\n      ? contentDispositionFilename\n      : null;\n    this._queuedChunks = queuedChunks || [];\n    this._loaded = 0;\n    for (const chunk of this._queuedChunks) {\n      this._loaded += chunk.byteLength;\n    }\n    this._requests = [];\n    this._headersReady = Promise.resolve();\n    stream._fullRequestReader = this;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // Ignore new data.\n    }\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunks.push(chunk);\n    }\n    this._loaded += chunk.byteLength;\n  }\n\n  get headersReady() {\n    return this._headersReady;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._stream._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._stream._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._stream._contentLength;\n  }\n\n  async read() {\n    if (this._queuedChunks.length > 0) {\n      const chunk = this._queuedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = new PromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n  }\n\n  progressiveDone() {\n    if (this._done) {\n      return;\n    }\n    this._done = true;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFDataTransportStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._begin = begin;\n    this._end = end;\n    this._queuedChunk = null;\n    this._requests = [];\n    this._done = false;\n\n    this.onProgress = null;\n  }\n\n  _enqueue(chunk) {\n    if (this._done) {\n      return; // ignore new data\n    }\n    if (this._requests.length === 0) {\n      this._queuedChunk = chunk;\n    } else {\n      const requestsCapability = this._requests.shift();\n      requestsCapability.resolve({ value: chunk, done: false });\n      for (const requestCapability of this._requests) {\n        requestCapability.resolve({ value: undefined, done: true });\n      }\n      this._requests.length = 0;\n    }\n    this._done = true;\n    this._stream._removeRangeReader(this);\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._queuedChunk) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = new PromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    this._stream._removeRangeReader(this);\n  }\n}\n\nexport { PDFDataTransportStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException,\n  assert,\n  PromiseCapability,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./fetch_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n  return {\n    method: \"GET\",\n    headers,\n    signal: abortController.signal,\n    mode: \"cors\",\n    credentials: withCredentials ? \"include\" : \"same-origin\",\n    redirect: \"follow\",\n  };\n}\n\nfunction createHeaders(httpHeaders) {\n  const headers = new Headers();\n  for (const property in httpHeaders) {\n    const value = httpHeaders[property];\n    if (value === undefined) {\n      continue;\n    }\n    headers.append(property, value);\n  }\n  return headers;\n}\n\nfunction getArrayBuffer(val) {\n  if (val instanceof Uint8Array) {\n    return val.buffer;\n  }\n  if (val instanceof ArrayBuffer) {\n    return val;\n  }\n  warn(`getArrayBuffer - unexpected data format: ${val}`);\n  return new Uint8Array(val).buffer;\n}\n\n/** @implements {IPDFStream} */\nclass PDFFetchStream {\n  constructor(source) {\n    this.source = source;\n    this.isHttp = /^https?:/i.test(source.url);\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFFetchStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFFetchStreamReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const reader = new PDFFetchStreamRangeReader(this, begin, end);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFFetchStreamReader {\n  constructor(stream) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    this._filename = null;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._contentLength = source.length;\n    this._headersCapability = new PromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._abortController = new AbortController();\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._headers = createHeaders(this._stream.httpHeaders);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._reader = response.body.getReader();\n        this._headersCapability.resolve();\n\n        const getResponseHeader = name => {\n          return response.headers.get(name);\n        };\n        const { allowRangeRequests, suggestedLength } =\n          validateRangeRequestCapabilities({\n            getResponseHeader,\n            isHttp: this._stream.isHttp,\n            rangeChunkSize: this._rangeChunkSize,\n            disableRange: this._disableRange,\n          });\n\n        this._isRangeSupported = allowRangeRequests;\n        // Setting right content length.\n        this._contentLength = suggestedLength || this._contentLength;\n\n        this._filename = extractFilenameFromHeader(getResponseHeader);\n\n        // We need to stop reading when range is supported and streaming is\n        // disabled.\n        if (!this._isStreamingSupported && this._isRangeSupported) {\n          this.cancel(new AbortException(\"Streaming is disabled.\"));\n        }\n      })\n      .catch(this._headersCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._headersCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    this.onProgress?.({\n      loaded: this._loaded,\n      total: this._contentLength,\n    });\n\n    return { value: getArrayBuffer(value), done: false };\n  }\n\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFFetchStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    const source = stream.source;\n    this._withCredentials = source.withCredentials || false;\n    this._readCapability = new PromiseCapability();\n    this._isStreamingSupported = !source.disableStream;\n\n    this._abortController = new AbortController();\n    this._headers = createHeaders(this._stream.httpHeaders);\n    this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n    const url = source.url;\n    fetch(\n      url,\n      createFetchOptions(\n        this._headers,\n        this._withCredentials,\n        this._abortController\n      )\n    )\n      .then(response => {\n        if (!validateResponseStatus(response.status)) {\n          throw createResponseStatusError(response.status, url);\n        }\n        this._readCapability.resolve();\n        this._reader = response.body.getReader();\n      })\n      .catch(this._readCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    const { value, done } = await this._reader.read();\n    if (done) {\n      return { value, done };\n    }\n    this._loaded += value.byteLength;\n    this.onProgress?.({ loaded: this._loaded });\n\n    return { value: getArrayBuffer(value), done: false };\n  }\n\n  cancel(reason) {\n    this._reader?.cancel(reason);\n    this._abortController.abort();\n  }\n}\n\nexport { PDFFetchStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert,\n  MissingPDFException,\n  UnexpectedResponseException,\n} from \"../shared/util.js\";\nimport { getFilenameFromContentDispositionHeader } from \"./content_disposition.js\";\nimport { isPdfFile } from \"./display_utils.js\";\n\nfunction validateRangeRequestCapabilities({\n  getResponseHeader,\n  isHttp,\n  rangeChunkSize,\n  disableRange,\n}) {\n  if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n    assert(\n      Number.isInteger(rangeChunkSize) && rangeChunkSize > 0,\n      \"rangeChunkSize must be an integer larger than zero.\"\n    );\n  }\n  const returnValues = {\n    allowRangeRequests: false,\n    suggestedLength: undefined,\n  };\n\n  const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n  if (!Number.isInteger(length)) {\n    return returnValues;\n  }\n\n  returnValues.suggestedLength = length;\n\n  if (length <= 2 * rangeChunkSize) {\n    // The file size is smaller than the size of two chunks, so it does not\n    // make any sense to abort the request and retry with a range request.\n    return returnValues;\n  }\n\n  if (disableRange || !isHttp) {\n    return returnValues;\n  }\n  if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n    return returnValues;\n  }\n\n  const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n  if (contentEncoding !== \"identity\") {\n    return returnValues;\n  }\n\n  returnValues.allowRangeRequests = true;\n  return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n  const contentDisposition = getResponseHeader(\"Content-Disposition\");\n  if (contentDisposition) {\n    let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n    if (filename.includes(\"%\")) {\n      try {\n        filename = decodeURIComponent(filename);\n      } catch {}\n    }\n    if (isPdfFile(filename)) {\n      return filename;\n    }\n  }\n  return null;\n}\n\nfunction createResponseStatusError(status, url) {\n  if (status === 404 || (status === 0 && url.startsWith(\"file:\"))) {\n    return new MissingPDFException('Missing PDF \"' + url + '\".');\n  }\n  return new UnexpectedResponseException(\n    `Unexpected server response (${status}) while retrieving PDF \"${url}\".`,\n    status\n  );\n}\n\nfunction validateResponseStatus(status) {\n  return status === 200 || status === 206;\n}\n\nexport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToBytes } from \"../shared/util.js\";\n\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Move return to the end of the function to prevent Babel from dropping the\n//   function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @returns {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n\n  // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n  let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n  // filename*n*=part\n  // filename*n=part\n  tmp = rfc2231getparam(contentDisposition);\n  if (tmp) {\n    // RFC 2047, section\n    const filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n\n  // filename=value (RFC 5987, section 4.1).\n  tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // After this line there are only function declarations. We cannot put\n  // \"return\" here for readability because babel would then drop the function\n  // declarations...\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\n      \"(?:^|;)\\\\s*\" +\n        attributePattern +\n        \"\\\\s*=\\\\s*\" +\n        // Captures: value = token | quoted-string\n        // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n        \"(\" +\n        '[^\";\\\\s][^;\\\\s]*' +\n        \"|\" +\n        '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n        \")\",\n      flags\n    );\n  }\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n      try {\n        const decoder = new TextDecoder(encoding, { fatal: true });\n        const buffer = stringToBytes(value);\n        value = decoder.decode(buffer);\n        needsEncodingFixup = false;\n      } catch {\n        // TextDecoder constructor threw - unrecognized encoding.\n      }\n    }\n    return value;\n  }\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      // Maybe multi-byte UTF-8.\n      value = textdecode(\"utf-8\", value);\n      if (needsEncodingFixup) {\n        // Try iso-8859-1 encoding.\n        value = textdecode(\"iso-8859-1\", value);\n      }\n    }\n    return value;\n  }\n  function rfc2231getparam(contentDispositionStr) {\n    const matches = [];\n    let match;\n    // Iterate over all filename*n= and filename*n*= with n being an integer\n    // of at least zero. Any non-zero number must not start with '0'.\n    const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n    while ((match = iter.exec(contentDispositionStr)) !== null) {\n      let [, n, quot, part] = match; // eslint-disable-line prefer-const\n      n = parseInt(n, 10);\n      if (n in matches) {\n        // Ignore anything after the invalid second filename*0.\n        if (n === 0) {\n          break;\n        }\n        continue;\n      }\n      matches[n] = [quot, part];\n    }\n    const parts = [];\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        // Numbers must be consecutive. Truncate when there is a hole.\n        break;\n      }\n      let [quot, part] = matches[n]; // eslint-disable-line prefer-const\n      part = rfc2616unquote(part);\n      if (quot) {\n        part = unescape(part);\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n      parts.push(part);\n    }\n    return parts.join(\"\");\n  }\n  function rfc2616unquote(value) {\n    if (value.startsWith('\"')) {\n      const parts = value.slice(1).split('\\\\\"');\n      // Find the first unescaped \" and terminate there.\n      for (let i = 0; i < parts.length; ++i) {\n        const quotindex = parts[i].indexOf('\"');\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1; // Truncates and stop the iteration.\n        }\n        parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n      }\n      value = parts.join('\"');\n    }\n    return value;\n  }\n  function rfc5987decode(extvalue) {\n    // Decodes \"ext-value\" from RFC 5987.\n    const encodingend = extvalue.indexOf(\"'\");\n    if (encodingend === -1) {\n      // Some servers send \"filename*=\" without encoding 'language' prefix,\n      // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n      // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n      return extvalue;\n    }\n    const encoding = extvalue.slice(0, encodingend);\n    const langvalue = extvalue.slice(encodingend + 1);\n    // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n    const value = langvalue.replace(/^[^']*'/, \"\");\n    return textdecode(encoding, value);\n  }\n  function rfc2047decode(value) {\n    // RFC 2047-decode the result. Firefox tried to drop support for it, but\n    // backed out because some servers use it - https://bugzil.la/875615\n    // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n    // We are more strict and only recognize RFC 2047-encoding if the value\n    // starts with \"=?\", since then it is likely that the full value is\n    // RFC 2047-encoded.\n\n    // Firefox also decodes words even where RFC 2047 section 5 states:\n    // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n    if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n    // RFC 2047, section 2.4\n    // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n    // charset = token (but let's restrict to characters that denote a\n    //       possibly valid encoding).\n    // encoding = q or b\n    // encoded-text = any printable ASCII character other than ? or space.\n    //        ... but Firefox permits ? and space.\n    return value.replaceAll(\n      /=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n      function (matches, charset, encoding, text) {\n        if (encoding === \"q\" || encoding === \"Q\") {\n          // RFC 2047 section 4.2.\n          text = text.replaceAll(\"_\", \" \");\n          text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n            return String.fromCharCode(parseInt(hex, 16));\n          });\n          return textdecode(charset, text);\n        } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n        try {\n          text = atob(text);\n        } catch {}\n        return textdecode(charset, text);\n      }\n    );\n  }\n\n  return \"\";\n}\n\nexport { getFilenameFromContentDispositionHeader };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, PromiseCapability, stringToBytes } from \"../shared/util.js\";\nimport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./network.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n  const data = xhr.response;\n  if (typeof data !== \"string\") {\n    return data;\n  }\n  return stringToBytes(data).buffer;\n}\n\nclass NetworkManager {\n  constructor(url, args = {}) {\n    this.url = url;\n    this.isHttp = /^https?:/i.test(url);\n    this.httpHeaders = (this.isHttp && args.httpHeaders) || Object.create(null);\n    this.withCredentials = args.withCredentials || false;\n\n    this.currXhrId = 0;\n    this.pendingRequests = Object.create(null);\n  }\n\n  requestRange(begin, end, listeners) {\n    const args = {\n      begin,\n      end,\n    };\n    for (const prop in listeners) {\n      args[prop] = listeners[prop];\n    }\n    return this.request(args);\n  }\n\n  requestFull(listeners) {\n    return this.request(listeners);\n  }\n\n  request(args) {\n    const xhr = new XMLHttpRequest();\n    const xhrId = this.currXhrId++;\n    const pendingRequest = (this.pendingRequests[xhrId] = { xhr });\n\n    xhr.open(\"GET\", this.url);\n    xhr.withCredentials = this.withCredentials;\n    for (const property in this.httpHeaders) {\n      const value = this.httpHeaders[property];\n      if (value === undefined) {\n        continue;\n      }\n      xhr.setRequestHeader(property, value);\n    }\n    if (this.isHttp && \"begin\" in args && \"end\" in args) {\n      xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n      pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n    } else {\n      pendingRequest.expectedStatus = OK_RESPONSE;\n    }\n    xhr.responseType = \"arraybuffer\";\n\n    if (args.onError) {\n      xhr.onerror = function (evt) {\n        args.onError(xhr.status);\n      };\n    }\n    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n    xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n    pendingRequest.onHeadersReceived = args.onHeadersReceived;\n    pendingRequest.onDone = args.onDone;\n    pendingRequest.onError = args.onError;\n    pendingRequest.onProgress = args.onProgress;\n\n    xhr.send(null);\n\n    return xhrId;\n  }\n\n  onProgress(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      return; // Maybe abortRequest was called...\n    }\n    pendingRequest.onProgress?.(evt);\n  }\n\n  onStateChange(xhrId, evt) {\n    const pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      return; // Maybe abortRequest was called...\n    }\n\n    const xhr = pendingRequest.xhr;\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (!(xhrId in this.pendingRequests)) {\n      // The XHR request might have been aborted in onHeadersReceived()\n      // callback, in which case we should abort request.\n      return;\n    }\n\n    delete this.pendingRequests[xhrId];\n\n    // Success status == 0 can be on ftp, file and other protocols.\n    if (xhr.status === 0 && this.isHttp) {\n      pendingRequest.onError?.(xhr.status);\n      return;\n    }\n    const xhrStatus = xhr.status || OK_RESPONSE;\n\n    // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n    // \"A server MAY ignore the Range header\". This means it's possible to\n    // get a 200 rather than a 206 response from a range request.\n    const ok_response_on_range_request =\n      xhrStatus === OK_RESPONSE &&\n      pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n    if (\n      !ok_response_on_range_request &&\n      xhrStatus !== pendingRequest.expectedStatus\n    ) {\n      pendingRequest.onError?.(xhr.status);\n      return;\n    }\n\n    const chunk = getArrayBuffer(xhr);\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n      const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n      pendingRequest.onDone({\n        begin: parseInt(matches[1], 10),\n        chunk,\n      });\n    } else if (chunk) {\n      pendingRequest.onDone({\n        begin: 0,\n        chunk,\n      });\n    } else {\n      pendingRequest.onError?.(xhr.status);\n    }\n  }\n\n  getRequestXhr(xhrId) {\n    return this.pendingRequests[xhrId].xhr;\n  }\n\n  isPendingRequest(xhrId) {\n    return xhrId in this.pendingRequests;\n  }\n\n  abortRequest(xhrId) {\n    const xhr = this.pendingRequests[xhrId].xhr;\n    delete this.pendingRequests[xhrId];\n    xhr.abort();\n  }\n}\n\n/** @implements {IPDFStream} */\nclass PDFNetworkStream {\n  constructor(source) {\n    this._source = source;\n    this._manager = new NetworkManager(source.url, {\n      httpHeaders: source.httpHeaders,\n      withCredentials: source.withCredentials,\n    });\n    this._rangeChunkSize = source.rangeChunkSize;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  _onRangeRequestReaderClosed(reader) {\n    const i = this._rangeRequestReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeRequestReaders.splice(i, 1);\n    }\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNetworkStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = new PDFNetworkStreamFullRequestReader(\n      this._manager,\n      this._source\n    );\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    const reader = new PDFNetworkStreamRangeRequestReader(\n      this._manager,\n      begin,\n      end\n    );\n    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFNetworkStreamFullRequestReader {\n  constructor(manager, source) {\n    this._manager = manager;\n\n    const args = {\n      onHeadersReceived: this._onHeadersReceived.bind(this),\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._url = source.url;\n    this._fullRequestId = manager.requestFull(args);\n    this._headersReceivedCapability = new PromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._contentLength = source.length; // Optional\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = false;\n    this._isRangeSupported = false;\n\n    this._cachedChunks = [];\n    this._requests = [];\n    this._done = false;\n    this._storedError = undefined;\n    this._filename = null;\n\n    this.onProgress = null;\n  }\n\n  _onHeadersReceived() {\n    const fullRequestXhrId = this._fullRequestId;\n    const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n    const getResponseHeader = name => {\n      return fullRequestXhr.getResponseHeader(name);\n    };\n    const { allowRangeRequests, suggestedLength } =\n      validateRangeRequestCapabilities({\n        getResponseHeader,\n        isHttp: this._manager.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange,\n      });\n\n    if (allowRangeRequests) {\n      this._isRangeSupported = true;\n    }\n    // Setting right content length.\n    this._contentLength = suggestedLength || this._contentLength;\n\n    this._filename = extractFilenameFromHeader(getResponseHeader);\n\n    if (this._isRangeSupported) {\n      // NOTE: by cancelling the full request, and then issuing range\n      // requests, there will be an issue for sites where you can only\n      // request the pdf once. However, if this is the case, then the\n      // server should not be returning that it can support range requests.\n      this._manager.abortRequest(fullRequestXhrId);\n    }\n\n    this._headersReceivedCapability.resolve();\n  }\n\n  _onDone(data) {\n    if (data) {\n      if (this._requests.length > 0) {\n        const requestCapability = this._requests.shift();\n        requestCapability.resolve({ value: data.chunk, done: false });\n      } else {\n        this._cachedChunks.push(data.chunk);\n      }\n    }\n    this._done = true;\n    if (this._cachedChunks.length > 0) {\n      return;\n    }\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n  }\n\n  _onError(status) {\n    this._storedError = createResponseStatusError(status, this._url);\n    this._headersReceivedCapability.reject(this._storedError);\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._cachedChunks.length = 0;\n  }\n\n  _onProgress(evt) {\n    this.onProgress?.({\n      loaded: evt.loaded,\n      total: evt.lengthComputable ? evt.total : this._contentLength,\n    });\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get headersReady() {\n    return this._headersReceivedCapability.promise;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._cachedChunks.length > 0) {\n      const chunk = this._cachedChunks.shift();\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = new PromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    this._headersReceivedCapability.reject(reason);\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    if (this._manager.isPendingRequest(this._fullRequestId)) {\n      this._manager.abortRequest(this._fullRequestId);\n    }\n    this._fullRequestReader = null;\n  }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFNetworkStreamRangeRequestReader {\n  constructor(manager, begin, end) {\n    this._manager = manager;\n\n    const args = {\n      onDone: this._onDone.bind(this),\n      onError: this._onError.bind(this),\n      onProgress: this._onProgress.bind(this),\n    };\n    this._url = manager.url;\n    this._requestId = manager.requestRange(begin, end, args);\n    this._requests = [];\n    this._queuedChunk = null;\n    this._done = false;\n    this._storedError = undefined;\n\n    this.onProgress = null;\n    this.onClosed = null;\n  }\n\n  _close() {\n    this.onClosed?.(this);\n  }\n\n  _onDone(data) {\n    const chunk = data.chunk;\n    if (this._requests.length > 0) {\n      const requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false });\n    } else {\n      this._queuedChunk = chunk;\n    }\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    this._close();\n  }\n\n  _onError(status) {\n    this._storedError = createResponseStatusError(status, this._url);\n    for (const requestCapability of this._requests) {\n      requestCapability.reject(this._storedError);\n    }\n    this._requests.length = 0;\n    this._queuedChunk = null;\n  }\n\n  _onProgress(evt) {\n    if (!this.isStreamingSupported) {\n      this.onProgress?.({ loaded: evt.loaded });\n    }\n  }\n\n  get isStreamingSupported() {\n    return false;\n  }\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._queuedChunk !== null) {\n      const chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false };\n    }\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    const requestCapability = new PromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  }\n\n  cancel(reason) {\n    this._done = true;\n    for (const requestCapability of this._requests) {\n      requestCapability.resolve({ value: undefined, done: true });\n    }\n    this._requests.length = 0;\n    if (this._manager.isPendingRequest(this._requestId)) {\n      this._manager.abortRequest(this._requestId);\n    }\n    this._close();\n  }\n}\n\nexport { PDFNetworkStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  AbortException,\n  assert,\n  MissingPDFException,\n  PromiseCapability,\n} from \"../shared/util.js\";\nimport {\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n} from \"./network_utils.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n  throw new Error(\n    'Module \"./node_stream.js\" shall not be used with MOZCENTRAL builds.'\n  );\n}\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n  const url = __non_webpack_require__(\"url\");\n  const parsedUrl = url.parse(sourceUrl);\n  if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n    return parsedUrl;\n  }\n  // Prepending 'file:///' to Windows absolute path.\n  if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n    return url.parse(`file:///${sourceUrl}`);\n  }\n  // Changes protocol to 'file:' if url refers to filesystem.\n  if (!parsedUrl.host) {\n    parsedUrl.protocol = \"file:\";\n  }\n  return parsedUrl;\n}\n\nclass PDFNodeStream {\n  constructor(source) {\n    this.source = source;\n    this.url = parseUrl(source.url);\n    this.isHttp =\n      this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n    // Check if url refers to filesystem.\n    this.isFsUrl = this.url.protocol === \"file:\";\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  get _progressiveDataLength() {\n    return this._fullRequestReader?._loaded ?? 0;\n  }\n\n  getFullReader() {\n    assert(\n      !this._fullRequestReader,\n      \"PDFNodeStream.getFullReader can only be called once.\"\n    );\n    this._fullRequestReader = this.isFsUrl\n      ? new PDFNodeStreamFsFullReader(this)\n      : new PDFNodeStreamFullReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(start, end) {\n    if (end <= this._progressiveDataLength) {\n      return null;\n    }\n    const rangeReader = this.isFsUrl\n      ? new PDFNodeStreamFsRangeReader(this, start, end)\n      : new PDFNodeStreamRangeReader(this, start, end);\n    this._rangeRequestReaders.push(rangeReader);\n    return rangeReader;\n  }\n\n  cancelAllRequests(reason) {\n    this._fullRequestReader?.cancel(reason);\n\n    for (const reader of this._rangeRequestReaders.slice(0)) {\n      reader.cancel(reason);\n    }\n  }\n}\n\nclass BaseFullReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    const source = stream.source;\n    this._contentLength = source.length; // optional\n    this._loaded = 0;\n    this._filename = null;\n\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._readableStream = null;\n    this._readCapability = new PromiseCapability();\n    this._headersCapability = new PromiseCapability();\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = new PromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    this.onProgress?.({\n      loaded: this._loaded,\n      total: this._contentLength,\n    });\n\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readable to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // We need to stop reading when range is supported and streaming is\n    // disabled.\n    if (!this._isStreamingSupported && this._isRangeSupported) {\n      this._error(new AbortException(\"streaming is disabled\"));\n    }\n\n    // Destroy ReadableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nclass BaseRangeReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    this._loaded = 0;\n    this._readableStream = null;\n    this._readCapability = new PromiseCapability();\n    const source = stream.source;\n    this._isStreamingSupported = !source.disableStream;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    const chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = new PromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    this.onProgress?.({ loaded: this._loaded });\n\n    // Ensure that `read()` method returns ArrayBuffer.\n    const buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on(\"readable\", () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"end\", () => {\n      // Destroy readableStream to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on(\"error\", reason => {\n      this._error(reason);\n    });\n\n    // Destroy readableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n  return {\n    protocol: parsedUrl.protocol,\n    auth: parsedUrl.auth,\n    host: parsedUrl.hostname,\n    port: parsedUrl.port,\n    path: parsedUrl.path,\n    method: \"GET\",\n    headers,\n  };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      this._headersCapability.resolve();\n      this._setReadableStream(response);\n\n      const getResponseHeader = name => {\n        // Make sure that headers name are in lower case, as mentioned\n        // here: https://nodejs.org/api/http.html#http_message_headers.\n        return this._readableStream.headers[name.toLowerCase()];\n      };\n      const { allowRangeRequests, suggestedLength } =\n        validateRangeRequestCapabilities({\n          getResponseHeader,\n          isHttp: stream.isHttp,\n          rangeChunkSize: this._rangeChunkSize,\n          disableRange: this._disableRange,\n        });\n\n      this._isRangeSupported = allowRangeRequests;\n      // Setting right content length.\n      this._contentLength = suggestedLength || this._contentLength;\n\n      this._filename = extractFilenameFromHeader(getResponseHeader);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      const http = __non_webpack_require__(\"http\");\n      this._request = http.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    } else {\n      const https = __non_webpack_require__(\"https\");\n      this._request = https.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n      this._headersCapability.reject(reason);\n    });\n    // Note: `request.end(data)` is used to write `data` to request body\n    // and notify end of request. But one should always call `request.end()`\n    // even if there is no data to write -- (to notify the end of request).\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    this._httpHeaders = {};\n    for (const property in stream.httpHeaders) {\n      const value = stream.httpHeaders[property];\n      if (value === undefined) {\n        continue;\n      }\n      this._httpHeaders[property] = value;\n    }\n    this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n    const handleResponse = response => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        return;\n      }\n      this._setReadableStream(response);\n    };\n\n    this._request = null;\n    if (this._url.protocol === \"http:\") {\n      const http = __non_webpack_require__(\"http\");\n      this._request = http.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    } else {\n      const https = __non_webpack_require__(\"https\");\n      this._request = https.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse\n      );\n    }\n\n    this._request.on(\"error\", reason => {\n      this._storedError = reason;\n    });\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    const fs = __non_webpack_require__(\"fs\");\n    fs.lstat(path, (error, stat) => {\n      if (error) {\n        if (error.code === \"ENOENT\") {\n          error = new MissingPDFException(`Missing PDF \"${path}\".`);\n        }\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      // Setting right content length.\n      this._contentLength = stat.size;\n\n      this._setReadableStream(fs.createReadStream(path));\n      this._headersCapability.resolve();\n    });\n  }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, \"\");\n    }\n\n    const fs = __non_webpack_require__(\"fs\");\n    this._setReadableStream(fs.createReadStream(path, { start, end: end - 1 }));\n  }\n}\n\nexport { PDFNodeStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport { deprecated, DOMSVGFactory } from \"./display_utils.js\";\nimport {\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  ImageKind,\n  isNodeJS,\n  OPS,\n  TextRenderingMode,\n  Util,\n  warn,\n} from \"../shared/util.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n  throw new Error(\n    'Module \"SVGGraphics\" shall not be used outside GENERIC builds.'\n  );\n}\n\nconst SVG_DEFAULTS = {\n  fontStyle: \"normal\",\n  fontWeight: \"normal\",\n  fillColor: \"#000000\",\n};\nconst XML_NS = \"http://www.w3.org/XML/1998/namespace\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\nconst createObjectURL = function (\n  data,\n  contentType = \"\",\n  forceDataSchema = false\n) {\n  if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n    return URL.createObjectURL(new Blob([data], { type: contentType }));\n  }\n  // Blob/createObjectURL is not available, falling back to data schema.\n  const digits =\n    \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n  let buffer = `data:${contentType};base64,`;\n  for (let i = 0, ii = data.length; i < ii; i += 3) {\n    const b1 = data[i] & 0xff;\n    const b2 = data[i + 1] & 0xff;\n    const b3 = data[i + 2] & 0xff;\n    const d1 = b1 >> 2,\n      d2 = ((b1 & 3) << 4) | (b2 >> 4);\n    const d3 = i + 1 < ii ? ((b2 & 0xf) << 2) | (b3 >> 6) : 64;\n    const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n    buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n  }\n  return buffer;\n};\n\nconst convertImgDataToPng = (function () {\n  const PNG_HEADER = new Uint8Array([\n    0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a,\n  ]);\n  const CHUNK_WRAPPER_SIZE = 12;\n\n  const crcTable = new Int32Array(256);\n  for (let i = 0; i < 256; i++) {\n    let c = i;\n    for (let h = 0; h < 8; h++) {\n      c = c & 1 ? 0xedb88320 ^ ((c >> 1) & 0x7fffffff) : (c >> 1) & 0x7fffffff;\n    }\n    crcTable[i] = c;\n  }\n\n  function crc32(data, start, end) {\n    let crc = -1;\n    for (let i = start; i < end; i++) {\n      const a = (crc ^ data[i]) & 0xff;\n      const b = crcTable[a];\n      crc = (crc >>> 8) ^ b;\n    }\n    return crc ^ -1;\n  }\n\n  function writePngChunk(type, body, data, offset) {\n    let p = offset;\n    const len = body.length;\n\n    data[p] = (len >> 24) & 0xff;\n    data[p + 1] = (len >> 16) & 0xff;\n    data[p + 2] = (len >> 8) & 0xff;\n    data[p + 3] = len & 0xff;\n    p += 4;\n\n    data[p] = type.charCodeAt(0) & 0xff;\n    data[p + 1] = type.charCodeAt(1) & 0xff;\n    data[p + 2] = type.charCodeAt(2) & 0xff;\n    data[p + 3] = type.charCodeAt(3) & 0xff;\n    p += 4;\n\n    data.set(body, p);\n    p += body.length;\n\n    const crc = crc32(data, offset + 4, p);\n    data[p] = (crc >> 24) & 0xff;\n    data[p + 1] = (crc >> 16) & 0xff;\n    data[p + 2] = (crc >> 8) & 0xff;\n    data[p + 3] = crc & 0xff;\n  }\n\n  function adler32(data, start, end) {\n    let a = 1;\n    let b = 0;\n    for (let i = start; i < end; ++i) {\n      a = (a + (data[i] & 0xff)) % 65521;\n      b = (b + a) % 65521;\n    }\n    return (b << 16) | a;\n  }\n\n  /**\n   * @param {Uint8Array} literals The input data.\n   * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n   *   This is the required format for compressed streams in the PNG format:\n   *   http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n   */\n  function deflateSync(literals) {\n    if (!isNodeJS) {\n      // zlib is certainly not available outside of Node.js. We can either use\n      // the pako library for client-side DEFLATE compression, or use the\n      // canvas API of the browser to obtain a more optimal PNG file.\n      return deflateSyncUncompressed(literals);\n    }\n    try {\n      // NOTE: This implementation is far from perfect, but already way better\n      // than not applying any compression.\n      //\n      // A better algorithm will try to choose a good predictor/filter and\n      // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n      //\n      // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n      // Node v3.0.0   Buffer inherits from Uint8Array.\n      // Node v8.0.0   zlib.deflateSync accepts Uint8Array as input.\n      const input =\n        // eslint-disable-next-line no-undef\n        parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals);\n      const output = __non_webpack_require__(\"zlib\").deflateSync(input, {\n        level: 9,\n      });\n      return output instanceof Uint8Array ? output : new Uint8Array(output);\n    } catch (e) {\n      warn(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n    }\n\n    return deflateSyncUncompressed(literals);\n  }\n\n  // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n  function deflateSyncUncompressed(literals) {\n    let len = literals.length;\n    const maxBlockLength = 0xffff;\n\n    const deflateBlocks = Math.ceil(len / maxBlockLength);\n    const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n    let pi = 0;\n    idat[pi++] = 0x78; // compression method and flags\n    idat[pi++] = 0x9c; // flags\n\n    let pos = 0;\n    while (len > maxBlockLength) {\n      // writing non-final DEFLATE blocks type 0 and length of 65535\n      idat[pi++] = 0x00;\n      idat[pi++] = 0xff;\n      idat[pi++] = 0xff;\n      idat[pi++] = 0x00;\n      idat[pi++] = 0x00;\n      idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n      pi += maxBlockLength;\n      pos += maxBlockLength;\n      len -= maxBlockLength;\n    }\n\n    // writing non-final DEFLATE blocks type 0\n    idat[pi++] = 0x01;\n    idat[pi++] = len & 0xff;\n    idat[pi++] = (len >> 8) & 0xff;\n    idat[pi++] = ~len & 0xffff & 0xff;\n    idat[pi++] = ((~len & 0xffff) >> 8) & 0xff;\n    idat.set(literals.subarray(pos), pi);\n    pi += literals.length - pos;\n\n    const adler = adler32(literals, 0, literals.length); // checksum\n    idat[pi++] = (adler >> 24) & 0xff;\n    idat[pi++] = (adler >> 16) & 0xff;\n    idat[pi++] = (adler >> 8) & 0xff;\n    idat[pi++] = adler & 0xff;\n    return idat;\n  }\n\n  function encode(imgData, kind, forceDataSchema, isMask) {\n    const width = imgData.width;\n    const height = imgData.height;\n    let bitDepth, colorType, lineSize;\n    const bytes = imgData.data;\n\n    switch (kind) {\n      case ImageKind.GRAYSCALE_1BPP:\n        colorType = 0;\n        bitDepth = 1;\n        lineSize = (width + 7) >> 3;\n        break;\n      case ImageKind.RGB_24BPP:\n        colorType = 2;\n        bitDepth = 8;\n        lineSize = width * 3;\n        break;\n      case ImageKind.RGBA_32BPP:\n        colorType = 6;\n        bitDepth = 8;\n        lineSize = width * 4;\n        break;\n      default:\n        throw new Error(\"invalid format\");\n    }\n\n    // prefix every row with predictor 0\n    const literals = new Uint8Array((1 + lineSize) * height);\n    let offsetLiterals = 0,\n      offsetBytes = 0;\n    for (let y = 0; y < height; ++y) {\n      literals[offsetLiterals++] = 0; // no prediction\n      literals.set(\n        bytes.subarray(offsetBytes, offsetBytes + lineSize),\n        offsetLiterals\n      );\n      offsetBytes += lineSize;\n      offsetLiterals += lineSize;\n    }\n\n    if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n      // inverting for image masks\n      offsetLiterals = 0;\n      for (let y = 0; y < height; y++) {\n        offsetLiterals++; // skipping predictor\n        for (let i = 0; i < lineSize; i++) {\n          literals[offsetLiterals++] ^= 0xff;\n        }\n      }\n    }\n\n    const ihdr = new Uint8Array([\n      (width >> 24) & 0xff,\n      (width >> 16) & 0xff,\n      (width >> 8) & 0xff,\n      width & 0xff,\n      (height >> 24) & 0xff,\n      (height >> 16) & 0xff,\n      (height >> 8) & 0xff,\n      height & 0xff,\n      bitDepth, // bit depth\n      colorType, // color type\n      0x00, // compression method\n      0x00, // filter method\n      0x00, // interlace method\n    ]);\n    const idat = deflateSync(literals);\n\n    // PNG consists of: header, IHDR+data, IDAT+data, and IEND.\n    const pngLength =\n      PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n    const data = new Uint8Array(pngLength);\n    let offset = 0;\n    data.set(PNG_HEADER, offset);\n    offset += PNG_HEADER.length;\n    writePngChunk(\"IHDR\", ihdr, data, offset);\n    offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n    writePngChunk(\"IDATA\", idat, data, offset);\n    offset += CHUNK_WRAPPER_SIZE + idat.length;\n    writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n\n    return createObjectURL(data, \"image/png\", forceDataSchema);\n  }\n\n  // eslint-disable-next-line no-shadow\n  return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n    const kind =\n      imgData.kind === undefined ? ImageKind.GRAYSCALE_1BPP : imgData.kind;\n    return encode(imgData, kind, forceDataSchema, isMask);\n  };\n})();\n\nclass SVGExtraState {\n  constructor() {\n    this.fontSizeScale = 1;\n    this.fontWeight = SVG_DEFAULTS.fontWeight;\n    this.fontSize = 0;\n\n    this.textMatrix = IDENTITY_MATRIX;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textMatrixScale = 1;\n\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n\n    // Default foreground and background colors\n    this.fillColor = SVG_DEFAULTS.fillColor;\n    this.strokeColor = \"#000000\";\n\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.lineJoin = \"\";\n    this.lineCap = \"\";\n    this.miterLimit = 0;\n\n    this.dashArray = [];\n    this.dashPhase = 0;\n\n    this.dependencies = [];\n\n    // Clipping\n    this.activeClipUrl = null;\n    this.clipGroup = null;\n\n    this.maskId = \"\";\n  }\n\n  clone() {\n    return Object.create(this);\n  }\n\n  setCurrentPoint(x, y) {\n    this.x = x;\n    this.y = y;\n  }\n}\n\nfunction opListToTree(opList) {\n  let opTree = [];\n  const tmp = [];\n\n  for (const opListElement of opList) {\n    if (opListElement.fn === \"save\") {\n      opTree.push({ fnId: 92, fn: \"group\", items: [] });\n      tmp.push(opTree);\n      opTree = opTree.at(-1).items;\n      continue;\n    }\n\n    if (opListElement.fn === \"restore\") {\n      opTree = tmp.pop();\n    } else {\n      opTree.push(opListElement);\n    }\n  }\n  return opTree;\n}\n\n/**\n * Format a float number as a string.\n *\n * @param value {number} - The float number to format.\n * @returns {string}\n */\nfunction pf(value) {\n  if (Number.isInteger(value)) {\n    return value.toString();\n  }\n  const s = value.toFixed(10);\n  let i = s.length - 1;\n  if (s[i] !== \"0\") {\n    return s;\n  }\n\n  // Remove trailing zeros.\n  do {\n    i--;\n  } while (s[i] === \"0\");\n  return s.substring(0, s[i] === \".\" ? i : i + 1);\n}\n\n/**\n * Format a transform matrix as a string. The standard rotation, scale and\n * translation matrices are replaced by their shorter forms, and for\n * identity matrices an empty string is returned to save memory.\n *\n * @param m {Array} - The transform matrix to format.\n * @returns {string}\n */\nfunction pm(m) {\n  if (m[4] === 0 && m[5] === 0) {\n    if (m[1] === 0 && m[2] === 0) {\n      if (m[0] === 1 && m[3] === 1) {\n        return \"\";\n      }\n      return `scale(${pf(m[0])} ${pf(m[3])})`;\n    }\n    if (m[0] === m[3] && m[1] === -m[2]) {\n      const a = (Math.acos(m[0]) * 180) / Math.PI;\n      return `rotate(${pf(a)})`;\n    }\n  } else if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n    return `translate(${pf(m[4])} ${pf(m[5])})`;\n  }\n  return (\n    `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` +\n    `${pf(m[5])})`\n  );\n}\n\n// The counts below are relevant for all pages, so they have to be global\n// instead of being members of `SVGGraphics` (which is recreated for\n// each page).\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\n\nclass SVGGraphics {\n  constructor(commonObjs, objs, forceDataSchema = false) {\n    deprecated(\n      \"The SVG back-end is no longer maintained and *may* be removed in the future.\"\n    );\n    this.svgFactory = new DOMSVGFactory();\n\n    this.current = new SVGExtraState();\n    this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n    this.transformStack = [];\n    this.extraStack = [];\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n\n    this.embedFonts = false;\n    this.embeddedFonts = Object.create(null);\n    this.cssStyle = null;\n    this.forceDataSchema = !!forceDataSchema;\n\n    // In `src/shared/util.js` the operator names are mapped to IDs.\n    // The list below represents the reverse of that, i.e., it maps IDs\n    // to operator names.\n    this._operatorIdMapping = [];\n    for (const op in OPS) {\n      this._operatorIdMapping[OPS[op]] = op;\n    }\n  }\n\n  getObject(data, fallback = null) {\n    if (typeof data === \"string\") {\n      return data.startsWith(\"g_\")\n        ? this.commonObjs.get(data)\n        : this.objs.get(data);\n    }\n    return fallback;\n  }\n\n  save() {\n    this.transformStack.push(this.transformMatrix);\n    const old = this.current;\n    this.extraStack.push(old);\n    this.current = old.clone();\n  }\n\n  restore() {\n    this.transformMatrix = this.transformStack.pop();\n    this.current = this.extraStack.pop();\n    this.pendingClip = null;\n    this.tgrp = null;\n  }\n\n  group(items) {\n    this.save();\n    this.executeOpTree(items);\n    this.restore();\n  }\n\n  loadDependencies(operatorList) {\n    const fnArray = operatorList.fnArray;\n    const argsArray = operatorList.argsArray;\n\n    for (let i = 0, ii = fnArray.length; i < ii; i++) {\n      if (fnArray[i] !== OPS.dependency) {\n        continue;\n      }\n\n      for (const obj of argsArray[i]) {\n        const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n        const promise = new Promise(resolve => {\n          objsPool.get(obj, resolve);\n        });\n        this.current.dependencies.push(promise);\n      }\n    }\n    return Promise.all(this.current.dependencies);\n  }\n\n  transform(a, b, c, d, e, f) {\n    const transformMatrix = [a, b, c, d, e, f];\n    this.transformMatrix = Util.transform(\n      this.transformMatrix,\n      transformMatrix\n    );\n    this.tgrp = null;\n  }\n\n  getSVG(operatorList, viewport) {\n    this.viewport = viewport;\n\n    const svgElement = this._initialize(viewport);\n    return this.loadDependencies(operatorList).then(() => {\n      this.transformMatrix = IDENTITY_MATRIX;\n      this.executeOpTree(this.convertOpList(operatorList));\n      return svgElement;\n    });\n  }\n\n  convertOpList(operatorList) {\n    const operatorIdMapping = this._operatorIdMapping;\n    const argsArray = operatorList.argsArray;\n    const fnArray = operatorList.fnArray;\n    const opList = [];\n    for (let i = 0, ii = fnArray.length; i < ii; i++) {\n      const fnId = fnArray[i];\n      opList.push({\n        fnId,\n        fn: operatorIdMapping[fnId],\n        args: argsArray[i],\n      });\n    }\n    return opListToTree(opList);\n  }\n\n  executeOpTree(opTree) {\n    for (const opTreeElement of opTree) {\n      const fn = opTreeElement.fn;\n      const fnId = opTreeElement.fnId;\n      const args = opTreeElement.args;\n\n      switch (fnId | 0) {\n        case OPS.beginText:\n          this.beginText();\n          break;\n        case OPS.dependency:\n          // Handled in `loadDependencies`, so no warning should be shown.\n          break;\n        case OPS.setLeading:\n          this.setLeading(args);\n          break;\n        case OPS.setLeadingMoveText:\n          this.setLeadingMoveText(args[0], args[1]);\n          break;\n        case OPS.setFont:\n          this.setFont(args);\n          break;\n        case OPS.showText:\n          this.showText(args[0]);\n          break;\n        case OPS.showSpacedText:\n          this.showText(args[0]);\n          break;\n        case OPS.endText:\n          this.endText();\n          break;\n        case OPS.moveText:\n          this.moveText(args[0], args[1]);\n          break;\n        case OPS.setCharSpacing:\n          this.setCharSpacing(args[0]);\n          break;\n        case OPS.setWordSpacing:\n          this.setWordSpacing(args[0]);\n          break;\n        case OPS.setHScale:\n          this.setHScale(args[0]);\n          break;\n        case OPS.setTextMatrix:\n          this.setTextMatrix(\n            args[0],\n            args[1],\n            args[2],\n            args[3],\n            args[4],\n            args[5]\n          );\n          break;\n        case OPS.setTextRise:\n          this.setTextRise(args[0]);\n          break;\n        case OPS.setTextRenderingMode:\n          this.setTextRenderingMode(args[0]);\n          break;\n        case OPS.setLineWidth:\n          this.setLineWidth(args[0]);\n          break;\n        case OPS.setLineJoin:\n          this.setLineJoin(args[0]);\n          break;\n        case OPS.setLineCap:\n          this.setLineCap(args[0]);\n          break;\n        case OPS.setMiterLimit:\n          this.setMiterLimit(args[0]);\n          break;\n        case OPS.setFillRGBColor:\n          this.setFillRGBColor(args[0], args[1], args[2]);\n          break;\n        case OPS.setStrokeRGBColor:\n          this.setStrokeRGBColor(args[0], args[1], args[2]);\n          break;\n        case OPS.setStrokeColorN:\n          this.setStrokeColorN(args);\n          break;\n        case OPS.setFillColorN:\n          this.setFillColorN(args);\n          break;\n        case OPS.shadingFill:\n          this.shadingFill(args[0]);\n          break;\n        case OPS.setDash:\n          this.setDash(args[0], args[1]);\n          break;\n        case OPS.setRenderingIntent:\n          this.setRenderingIntent(args[0]);\n          break;\n        case OPS.setFlatness:\n          this.setFlatness(args[0]);\n          break;\n        case OPS.setGState:\n          this.setGState(args[0]);\n          break;\n        case OPS.fill:\n          this.fill();\n          break;\n        case OPS.eoFill:\n          this.eoFill();\n          break;\n        case OPS.stroke:\n          this.stroke();\n          break;\n        case OPS.fillStroke:\n          this.fillStroke();\n          break;\n        case OPS.eoFillStroke:\n          this.eoFillStroke();\n          break;\n        case OPS.clip:\n          this.clip(\"nonzero\");\n          break;\n        case OPS.eoClip:\n          this.clip(\"evenodd\");\n          break;\n        case OPS.paintSolidColorImageMask:\n          this.paintSolidColorImageMask();\n          break;\n        case OPS.paintImageXObject:\n          this.paintImageXObject(args[0]);\n          break;\n        case OPS.paintInlineImageXObject:\n          this.paintInlineImageXObject(args[0]);\n          break;\n        case OPS.paintImageMaskXObject:\n          this.paintImageMaskXObject(args[0]);\n          break;\n        case OPS.paintFormXObjectBegin:\n          this.paintFormXObjectBegin(args[0], args[1]);\n          break;\n        case OPS.paintFormXObjectEnd:\n          this.paintFormXObjectEnd();\n          break;\n        case OPS.closePath:\n          this.closePath();\n          break;\n        case OPS.closeStroke:\n          this.closeStroke();\n          break;\n        case OPS.closeFillStroke:\n          this.closeFillStroke();\n          break;\n        case OPS.closeEOFillStroke:\n          this.closeEOFillStroke();\n          break;\n        case OPS.nextLine:\n          this.nextLine();\n          break;\n        case OPS.transform:\n          this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n          break;\n        case OPS.constructPath:\n          this.constructPath(args[0], args[1]);\n          break;\n        case OPS.endPath:\n          this.endPath();\n          break;\n        case 92:\n          this.group(opTreeElement.items);\n          break;\n        default:\n          warn(`Unimplemented operator ${fn}`);\n          break;\n      }\n    }\n  }\n\n  setWordSpacing(wordSpacing) {\n    this.current.wordSpacing = wordSpacing;\n  }\n\n  setCharSpacing(charSpacing) {\n    this.current.charSpacing = charSpacing;\n  }\n\n  nextLine() {\n    this.moveText(0, this.current.leading);\n  }\n\n  setTextMatrix(a, b, c, d, e, f) {\n    const current = this.current;\n    current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n    current.textMatrixScale = Math.hypot(a, b);\n\n    current.x = current.lineX = 0;\n    current.y = current.lineY = 0;\n\n    current.xcoords = [];\n    current.ycoords = [];\n    current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n    current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n    current.tspan.setAttributeNS(\n      null,\n      \"font-size\",\n      `${pf(current.fontSize)}px`\n    );\n    current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n\n    current.txtElement = this.svgFactory.createElement(\"svg:text\");\n    current.txtElement.append(current.tspan);\n  }\n\n  beginText() {\n    const current = this.current;\n    current.x = current.lineX = 0;\n    current.y = current.lineY = 0;\n    current.textMatrix = IDENTITY_MATRIX;\n    current.lineMatrix = IDENTITY_MATRIX;\n    current.textMatrixScale = 1;\n    current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n    current.txtElement = this.svgFactory.createElement(\"svg:text\");\n    current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n    current.xcoords = [];\n    current.ycoords = [];\n  }\n\n  moveText(x, y) {\n    const current = this.current;\n    current.x = current.lineX += x;\n    current.y = current.lineY += y;\n\n    current.xcoords = [];\n    current.ycoords = [];\n    current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n    current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n    current.tspan.setAttributeNS(\n      null,\n      \"font-size\",\n      `${pf(current.fontSize)}px`\n    );\n    current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n  }\n\n  showText(glyphs) {\n    const current = this.current;\n    const font = current.font;\n    const fontSize = current.fontSize;\n    if (fontSize === 0) {\n      return;\n    }\n\n    const fontSizeScale = current.fontSizeScale;\n    const charSpacing = current.charSpacing;\n    const wordSpacing = current.wordSpacing;\n    const fontDirection = current.fontDirection;\n    const textHScale = current.textHScale * fontDirection;\n    const vertical = font.vertical;\n    const spacingDir = vertical ? 1 : -1;\n    const defaultVMetrics = font.defaultVMetrics;\n    const widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n    let x = 0;\n    for (const glyph of glyphs) {\n      if (glyph === null) {\n        // Word break\n        x += fontDirection * wordSpacing;\n        continue;\n      } else if (typeof glyph === \"number\") {\n        x += (spacingDir * glyph * fontSize) / 1000;\n        continue;\n      }\n\n      const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n      const character = glyph.fontChar;\n      let scaledX, scaledY;\n      let width = glyph.width;\n      if (vertical) {\n        let vx;\n        const vmetric = glyph.vmetric || defaultVMetrics;\n        vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n        vx = -vx * widthAdvanceScale;\n        const vy = vmetric[2] * widthAdvanceScale;\n\n        width = vmetric ? -vmetric[0] : width;\n        scaledX = vx / fontSizeScale;\n        scaledY = (x + vy) / fontSizeScale;\n      } else {\n        scaledX = x / fontSizeScale;\n        scaledY = 0;\n      }\n\n      if (glyph.isInFont || font.missingFile) {\n        current.xcoords.push(current.x + scaledX);\n        if (vertical) {\n          current.ycoords.push(-current.y + scaledY);\n        }\n        current.tspan.textContent += character;\n      } else {\n        // TODO: To assist with text selection, we should replace the missing\n        // character with a space character if charWidth is not zero.\n        // But we cannot just do \"character = ' '\", because the ' ' character\n        // might actually map to a different glyph.\n      }\n\n      const charWidth = vertical\n        ? width * widthAdvanceScale - spacing * fontDirection\n        : width * widthAdvanceScale + spacing * fontDirection;\n\n      x += charWidth;\n    }\n    current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n    if (vertical) {\n      current.tspan.setAttributeNS(\n        null,\n        \"y\",\n        current.ycoords.map(pf).join(\" \")\n      );\n    } else {\n      current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n    }\n\n    if (vertical) {\n      current.y -= x;\n    } else {\n      current.x += x * textHScale;\n    }\n\n    current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n    current.tspan.setAttributeNS(\n      null,\n      \"font-size\",\n      `${pf(current.fontSize)}px`\n    );\n    if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n      current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n    }\n    if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n      current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n    }\n\n    const fillStrokeMode =\n      current.textRenderingMode & TextRenderingMode.FILL_STROKE_MASK;\n    if (\n      fillStrokeMode === TextRenderingMode.FILL ||\n      fillStrokeMode === TextRenderingMode.FILL_STROKE\n    ) {\n      if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n        current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n      }\n      if (current.fillAlpha < 1) {\n        current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n      }\n    } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n      // Workaround for Firefox: We must set fill=\"transparent\" because\n      // fill=\"none\" would generate an empty clipping path.\n      current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n    } else {\n      current.tspan.setAttributeNS(null, \"fill\", \"none\");\n    }\n\n    if (\n      fillStrokeMode === TextRenderingMode.STROKE ||\n      fillStrokeMode === TextRenderingMode.FILL_STROKE\n    ) {\n      const lineWidthScale = 1 / (current.textMatrixScale || 1);\n      this._setStrokeAttributes(current.tspan, lineWidthScale);\n    }\n\n    // Include the text rise in the text matrix since the `pm` function\n    // creates the SVG element's `translate` entry (work on a copy to avoid\n    // altering the original text matrix).\n    let textMatrix = current.textMatrix;\n    if (current.textRise !== 0) {\n      textMatrix = textMatrix.slice();\n      textMatrix[5] += current.textRise;\n    }\n\n    current.txtElement.setAttributeNS(\n      null,\n      \"transform\",\n      `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`\n    );\n    current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n    current.txtElement.append(current.tspan);\n    current.txtgrp.append(current.txtElement);\n\n    this._ensureTransformGroup().append(current.txtElement);\n  }\n\n  setLeadingMoveText(x, y) {\n    this.setLeading(-y);\n    this.moveText(x, y);\n  }\n\n  addFontStyle(fontObj) {\n    if (!fontObj.data) {\n      throw new Error(\n        \"addFontStyle: No font data available, \" +\n          'ensure that the \"fontExtraProperties\" API parameter is set.'\n      );\n    }\n    if (!this.cssStyle) {\n      this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n      this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n      this.defs.append(this.cssStyle);\n    }\n\n    const url = createObjectURL(\n      fontObj.data,\n      fontObj.mimetype,\n      this.forceDataSchema\n    );\n    this.cssStyle.textContent +=\n      `@font-face { font-family: \"${fontObj.loadedName}\";` +\n      ` src: url(${url}); }\\n`;\n  }\n\n  setFont(details) {\n    const current = this.current;\n    const fontObj = this.commonObjs.get(details[0]);\n    let size = details[1];\n    current.font = fontObj;\n\n    if (\n      this.embedFonts &&\n      !fontObj.missingFile &&\n      !this.embeddedFonts[fontObj.loadedName]\n    ) {\n      this.addFontStyle(fontObj);\n      this.embeddedFonts[fontObj.loadedName] = fontObj;\n    }\n    current.fontMatrix = fontObj.fontMatrix || FONT_IDENTITY_MATRIX;\n\n    let bold = \"normal\";\n    if (fontObj.black) {\n      bold = \"900\";\n    } else if (fontObj.bold) {\n      bold = \"bold\";\n    }\n    const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n    if (size < 0) {\n      size = -size;\n      current.fontDirection = -1;\n    } else {\n      current.fontDirection = 1;\n    }\n    current.fontSize = size;\n    current.fontFamily = fontObj.loadedName;\n    current.fontWeight = bold;\n    current.fontStyle = italic;\n\n    current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n    current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n    current.xcoords = [];\n    current.ycoords = [];\n  }\n\n  endText() {\n    const current = this.current;\n    if (\n      current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG &&\n      current.txtElement?.hasChildNodes()\n    ) {\n      // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n      current.element = current.txtElement;\n      this.clip(\"nonzero\");\n      this.endPath();\n    }\n  }\n\n  // Path properties\n  setLineWidth(width) {\n    if (width > 0) {\n      this.current.lineWidth = width;\n    }\n  }\n\n  setLineCap(style) {\n    this.current.lineCap = LINE_CAP_STYLES[style];\n  }\n\n  setLineJoin(style) {\n    this.current.lineJoin = LINE_JOIN_STYLES[style];\n  }\n\n  setMiterLimit(limit) {\n    this.current.miterLimit = limit;\n  }\n\n  setStrokeAlpha(strokeAlpha) {\n    this.current.strokeAlpha = strokeAlpha;\n  }\n\n  setStrokeRGBColor(r, g, b) {\n    this.current.strokeColor = Util.makeHexColor(r, g, b);\n  }\n\n  setFillAlpha(fillAlpha) {\n    this.current.fillAlpha = fillAlpha;\n  }\n\n  setFillRGBColor(r, g, b) {\n    this.current.fillColor = Util.makeHexColor(r, g, b);\n    this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n    this.current.xcoords = [];\n    this.current.ycoords = [];\n  }\n\n  setStrokeColorN(args) {\n    this.current.strokeColor = this._makeColorN_Pattern(args);\n  }\n\n  setFillColorN(args) {\n    this.current.fillColor = this._makeColorN_Pattern(args);\n  }\n\n  shadingFill(args) {\n    const { width, height } = this.viewport;\n    const inv = Util.inverseTransform(this.transformMatrix);\n    const [x0, y0, x1, y1] = Util.getAxialAlignedBoundingBox(\n      [0, 0, width, height],\n      inv\n    );\n\n    const rect = this.svgFactory.createElement(\"svg:rect\");\n    rect.setAttributeNS(null, \"x\", x0);\n    rect.setAttributeNS(null, \"y\", y0);\n    rect.setAttributeNS(null, \"width\", x1 - x0);\n    rect.setAttributeNS(null, \"height\", y1 - y0);\n    rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n    if (this.current.fillAlpha < 1) {\n      rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n    }\n    this._ensureTransformGroup().append(rect);\n  }\n\n  /**\n   * @private\n   */\n  _makeColorN_Pattern(args) {\n    if (args[0] === \"TilingPattern\") {\n      return this._makeTilingPattern(args);\n    }\n    return this._makeShadingPattern(args);\n  }\n\n  /**\n   * @private\n   */\n  _makeTilingPattern(args) {\n    const color = args[1];\n    const operatorList = args[2];\n    const matrix = args[3] || IDENTITY_MATRIX;\n    const [x0, y0, x1, y1] = args[4];\n    const xstep = args[5];\n    const ystep = args[6];\n    const paintType = args[7];\n\n    const tilingId = `shading${shadingCount++}`;\n    const [tx0, ty0, tx1, ty1] = Util.normalizeRect([\n      ...Util.applyTransform([x0, y0], matrix),\n      ...Util.applyTransform([x1, y1], matrix),\n    ]);\n    const [xscale, yscale] = Util.singularValueDecompose2dScale(matrix);\n    const txstep = xstep * xscale;\n    const tystep = ystep * yscale;\n\n    const tiling = this.svgFactory.createElement(\"svg:pattern\");\n    tiling.setAttributeNS(null, \"id\", tilingId);\n    tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n    tiling.setAttributeNS(null, \"width\", txstep);\n    tiling.setAttributeNS(null, \"height\", tystep);\n    tiling.setAttributeNS(null, \"x\", `${tx0}`);\n    tiling.setAttributeNS(null, \"y\", `${ty0}`);\n\n    // Save current state.\n    const svg = this.svg;\n    const transformMatrix = this.transformMatrix;\n    const fillColor = this.current.fillColor;\n    const strokeColor = this.current.strokeColor;\n\n    const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n    this.svg = bbox;\n    this.transformMatrix = matrix;\n    if (paintType === 2) {\n      const cssColor = Util.makeHexColor(...color);\n      this.current.fillColor = cssColor;\n      this.current.strokeColor = cssColor;\n    }\n    this.executeOpTree(this.convertOpList(operatorList));\n\n    // Restore saved state.\n    this.svg = svg;\n    this.transformMatrix = transformMatrix;\n    this.current.fillColor = fillColor;\n    this.current.strokeColor = strokeColor;\n\n    tiling.append(bbox.childNodes[0]);\n    this.defs.append(tiling);\n    return `url(#${tilingId})`;\n  }\n\n  /**\n   * @private\n   */\n  _makeShadingPattern(args) {\n    if (typeof args === \"string\") {\n      args = this.objs.get(args);\n    }\n    switch (args[0]) {\n      case \"RadialAxial\":\n        const shadingId = `shading${shadingCount++}`;\n        const colorStops = args[3];\n        let gradient;\n\n        switch (args[1]) {\n          case \"axial\":\n            const point0 = args[4];\n            const point1 = args[5];\n            gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n            gradient.setAttributeNS(null, \"id\", shadingId);\n            gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n            gradient.setAttributeNS(null, \"x1\", point0[0]);\n            gradient.setAttributeNS(null, \"y1\", point0[1]);\n            gradient.setAttributeNS(null, \"x2\", point1[0]);\n            gradient.setAttributeNS(null, \"y2\", point1[1]);\n            break;\n          case \"radial\":\n            const focalPoint = args[4];\n            const circlePoint = args[5];\n            const focalRadius = args[6];\n            const circleRadius = args[7];\n            gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n            gradient.setAttributeNS(null, \"id\", shadingId);\n            gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n            gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n            gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n            gradient.setAttributeNS(null, \"r\", circleRadius);\n            gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n            gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n            gradient.setAttributeNS(null, \"fr\", focalRadius);\n            break;\n          default:\n            throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n        }\n        for (const colorStop of colorStops) {\n          const stop = this.svgFactory.createElement(\"svg:stop\");\n          stop.setAttributeNS(null, \"offset\", colorStop[0]);\n          stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n          gradient.append(stop);\n        }\n        this.defs.append(gradient);\n        return `url(#${shadingId})`;\n      case \"Mesh\":\n        warn(\"Unimplemented pattern Mesh\");\n        return null;\n      case \"Dummy\":\n        return \"hotpink\";\n      default:\n        throw new Error(`Unknown IR type: ${args[0]}`);\n    }\n  }\n\n  setDash(dashArray, dashPhase) {\n    this.current.dashArray = dashArray;\n    this.current.dashPhase = dashPhase;\n  }\n\n  constructPath(ops, args) {\n    const current = this.current;\n    let x = current.x,\n      y = current.y;\n    let d = [];\n    let j = 0;\n\n    for (const op of ops) {\n      switch (op | 0) {\n        case OPS.rectangle:\n          x = args[j++];\n          y = args[j++];\n          const width = args[j++];\n          const height = args[j++];\n          const xw = x + width;\n          const yh = y + height;\n          d.push(\n            \"M\",\n            pf(x),\n            pf(y),\n            \"L\",\n            pf(xw),\n            pf(y),\n            \"L\",\n            pf(xw),\n            pf(yh),\n            \"L\",\n            pf(x),\n            pf(yh),\n            \"Z\"\n          );\n          break;\n        case OPS.moveTo:\n          x = args[j++];\n          y = args[j++];\n          d.push(\"M\", pf(x), pf(y));\n          break;\n        case OPS.lineTo:\n          x = args[j++];\n          y = args[j++];\n          d.push(\"L\", pf(x), pf(y));\n          break;\n        case OPS.curveTo:\n          x = args[j + 4];\n          y = args[j + 5];\n          d.push(\n            \"C\",\n            pf(args[j]),\n            pf(args[j + 1]),\n            pf(args[j + 2]),\n            pf(args[j + 3]),\n            pf(x),\n            pf(y)\n          );\n          j += 6;\n          break;\n        case OPS.curveTo2:\n          d.push(\n            \"C\",\n            pf(x),\n            pf(y),\n            pf(args[j]),\n            pf(args[j + 1]),\n            pf(args[j + 2]),\n            pf(args[j + 3])\n          );\n          x = args[j + 2];\n          y = args[j + 3];\n          j += 4;\n          break;\n        case OPS.curveTo3:\n          x = args[j + 2];\n          y = args[j + 3];\n          d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n          j += 4;\n          break;\n        case OPS.closePath:\n          d.push(\"Z\");\n          break;\n      }\n    }\n\n    d = d.join(\" \");\n\n    if (\n      current.path &&\n      ops.length > 0 &&\n      ops[0] !== OPS.rectangle &&\n      ops[0] !== OPS.moveTo\n    ) {\n      // If a path does not start with an OPS.rectangle or OPS.moveTo, it has\n      // probably been divided into two OPS.constructPath operators by\n      // OperatorList. Append the commands to the previous path element.\n      d = current.path.getAttributeNS(null, \"d\") + d;\n    } else {\n      current.path = this.svgFactory.createElement(\"svg:path\");\n      this._ensureTransformGroup().append(current.path);\n    }\n\n    current.path.setAttributeNS(null, \"d\", d);\n    current.path.setAttributeNS(null, \"fill\", \"none\");\n\n    // Saving a reference in current.element so that it can be addressed\n    // in 'fill' and 'stroke'\n    current.element = current.path;\n    current.setCurrentPoint(x, y);\n  }\n\n  endPath() {\n    const current = this.current;\n\n    // Painting operators end a path.\n    current.path = null;\n\n    if (!this.pendingClip) {\n      return;\n    }\n    if (!current.element) {\n      this.pendingClip = null;\n      return;\n    }\n\n    // Add the current path to a clipping path.\n    const clipId = `clippath${clipCount++}`;\n    const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n    clipPath.setAttributeNS(null, \"id\", clipId);\n    clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n    // A deep clone is needed when text is used as a clipping path.\n    const clipElement = current.element.cloneNode(true);\n    if (this.pendingClip === \"evenodd\") {\n      clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n    } else {\n      clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n    }\n    this.pendingClip = null;\n    clipPath.append(clipElement);\n    this.defs.append(clipPath);\n\n    if (current.activeClipUrl) {\n      // The previous clipping group content can go out of order -- resetting\n      // cached clipGroups.\n      current.clipGroup = null;\n      for (const prev of this.extraStack) {\n        prev.clipGroup = null;\n      }\n      // Intersect with the previous clipping path.\n      clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n    }\n    current.activeClipUrl = `url(#${clipId})`;\n\n    this.tgrp = null;\n  }\n\n  clip(type) {\n    this.pendingClip = type;\n  }\n\n  closePath() {\n    const current = this.current;\n    if (current.path) {\n      const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n      current.path.setAttributeNS(null, \"d\", d);\n    }\n  }\n\n  setLeading(leading) {\n    this.current.leading = -leading;\n  }\n\n  setTextRise(textRise) {\n    this.current.textRise = textRise;\n  }\n\n  setTextRenderingMode(textRenderingMode) {\n    this.current.textRenderingMode = textRenderingMode;\n  }\n\n  setHScale(scale) {\n    this.current.textHScale = scale / 100;\n  }\n\n  setRenderingIntent(intent) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setFlatness(flatness) {\n    // This operation is ignored since we haven't found a use case for it yet.\n  }\n\n  setGState(states) {\n    for (const [key, value] of states) {\n      switch (key) {\n        case \"LW\":\n          this.setLineWidth(value);\n          break;\n        case \"LC\":\n          this.setLineCap(value);\n          break;\n        case \"LJ\":\n          this.setLineJoin(value);\n          break;\n        case \"ML\":\n          this.setMiterLimit(value);\n          break;\n        case \"D\":\n          this.setDash(value[0], value[1]);\n          break;\n        case \"RI\":\n          this.setRenderingIntent(value);\n          break;\n        case \"FL\":\n          this.setFlatness(value);\n          break;\n        case \"Font\":\n          this.setFont(value);\n          break;\n        case \"CA\":\n          this.setStrokeAlpha(value);\n          break;\n        case \"ca\":\n          this.setFillAlpha(value);\n          break;\n        default:\n          warn(`Unimplemented graphic state operator ${key}`);\n          break;\n      }\n    }\n  }\n\n  fill() {\n    const current = this.current;\n    if (current.element) {\n      current.element.setAttributeNS(null, \"fill\", current.fillColor);\n      current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n      this.endPath();\n    }\n  }\n\n  stroke() {\n    const current = this.current;\n    if (current.element) {\n      this._setStrokeAttributes(current.element);\n      current.element.setAttributeNS(null, \"fill\", \"none\");\n      this.endPath();\n    }\n  }\n\n  /**\n   * @private\n   */\n  _setStrokeAttributes(element, lineWidthScale = 1) {\n    const current = this.current;\n    let dashArray = current.dashArray;\n    if (lineWidthScale !== 1 && dashArray.length > 0) {\n      dashArray = dashArray.map(function (value) {\n        return lineWidthScale * value;\n      });\n    }\n    element.setAttributeNS(null, \"stroke\", current.strokeColor);\n    element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n    element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n    element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n    element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n    element.setAttributeNS(\n      null,\n      \"stroke-width\",\n      pf(lineWidthScale * current.lineWidth) + \"px\"\n    );\n    element.setAttributeNS(\n      null,\n      \"stroke-dasharray\",\n      dashArray.map(pf).join(\" \")\n    );\n    element.setAttributeNS(\n      null,\n      \"stroke-dashoffset\",\n      pf(lineWidthScale * current.dashPhase) + \"px\"\n    );\n  }\n\n  eoFill() {\n    this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n    this.fill();\n  }\n\n  fillStroke() {\n    // Order is important since stroke wants fill to be none.\n    // First stroke, then if fill needed, it will be overwritten.\n    this.stroke();\n    this.fill();\n  }\n\n  eoFillStroke() {\n    this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n    this.fillStroke();\n  }\n\n  closeStroke() {\n    this.closePath();\n    this.stroke();\n  }\n\n  closeFillStroke() {\n    this.closePath();\n    this.fillStroke();\n  }\n\n  closeEOFillStroke() {\n    this.closePath();\n    this.eoFillStroke();\n  }\n\n  paintSolidColorImageMask() {\n    const rect = this.svgFactory.createElement(\"svg:rect\");\n    rect.setAttributeNS(null, \"x\", \"0\");\n    rect.setAttributeNS(null, \"y\", \"0\");\n    rect.setAttributeNS(null, \"width\", \"1px\");\n    rect.setAttributeNS(null, \"height\", \"1px\");\n    rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n    this._ensureTransformGroup().append(rect);\n  }\n\n  paintImageXObject(objId) {\n    const imgData = this.getObject(objId);\n    if (!imgData) {\n      warn(`Dependent image with object ID ${objId} is not ready yet`);\n      return;\n    }\n    this.paintInlineImageXObject(imgData);\n  }\n\n  paintInlineImageXObject(imgData, mask) {\n    const width = imgData.width;\n    const height = imgData.height;\n\n    const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n    const cliprect = this.svgFactory.createElement(\"svg:rect\");\n    cliprect.setAttributeNS(null, \"x\", \"0\");\n    cliprect.setAttributeNS(null, \"y\", \"0\");\n    cliprect.setAttributeNS(null, \"width\", pf(width));\n    cliprect.setAttributeNS(null, \"height\", pf(height));\n    this.current.element = cliprect;\n    this.clip(\"nonzero\");\n\n    const imgEl = this.svgFactory.createElement(\"svg:image\");\n    imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n    imgEl.setAttributeNS(null, \"x\", \"0\");\n    imgEl.setAttributeNS(null, \"y\", pf(-height));\n    imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n    imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n    imgEl.setAttributeNS(\n      null,\n      \"transform\",\n      `scale(${pf(1 / width)} ${pf(-1 / height)})`\n    );\n    if (mask) {\n      mask.append(imgEl);\n    } else {\n      this._ensureTransformGroup().append(imgEl);\n    }\n  }\n\n  paintImageMaskXObject(img) {\n    const imgData = this.getObject(img.data, img);\n    if (imgData.bitmap) {\n      warn(\n        \"paintImageMaskXObject: ImageBitmap support is not implemented, \" +\n          \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\"\n      );\n      return;\n    }\n    const current = this.current;\n    const width = imgData.width;\n    const height = imgData.height;\n    const fillColor = current.fillColor;\n\n    current.maskId = `mask${maskCount++}`;\n    const mask = this.svgFactory.createElement(\"svg:mask\");\n    mask.setAttributeNS(null, \"id\", current.maskId);\n\n    const rect = this.svgFactory.createElement(\"svg:rect\");\n    rect.setAttributeNS(null, \"x\", \"0\");\n    rect.setAttributeNS(null, \"y\", \"0\");\n    rect.setAttributeNS(null, \"width\", pf(width));\n    rect.setAttributeNS(null, \"height\", pf(height));\n    rect.setAttributeNS(null, \"fill\", fillColor);\n    rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n\n    this.defs.append(mask);\n    this._ensureTransformGroup().append(rect);\n\n    this.paintInlineImageXObject(imgData, mask);\n  }\n\n  paintFormXObjectBegin(matrix, bbox) {\n    if (Array.isArray(matrix) && matrix.length === 6) {\n      this.transform(\n        matrix[0],\n        matrix[1],\n        matrix[2],\n        matrix[3],\n        matrix[4],\n        matrix[5]\n      );\n    }\n\n    if (bbox) {\n      const width = bbox[2] - bbox[0];\n      const height = bbox[3] - bbox[1];\n\n      const cliprect = this.svgFactory.createElement(\"svg:rect\");\n      cliprect.setAttributeNS(null, \"x\", bbox[0]);\n      cliprect.setAttributeNS(null, \"y\", bbox[1]);\n      cliprect.setAttributeNS(null, \"width\", pf(width));\n      cliprect.setAttributeNS(null, \"height\", pf(height));\n      this.current.element = cliprect;\n      this.clip(\"nonzero\");\n      this.endPath();\n    }\n  }\n\n  paintFormXObjectEnd() {}\n\n  /**\n   * @private\n   */\n  _initialize(viewport) {\n    const svg = this.svgFactory.create(viewport.width, viewport.height);\n\n    // Create the definitions element.\n    const definitions = this.svgFactory.createElement(\"svg:defs\");\n    svg.append(definitions);\n    this.defs = definitions;\n\n    // Create the root group element, which acts a container for all other\n    // groups and applies the viewport transform.\n    const rootGroup = this.svgFactory.createElement(\"svg:g\");\n    rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n    svg.append(rootGroup);\n\n    // For the construction of the SVG image we are only interested in the\n    // root group, so we expose it as the entry point of the SVG image for\n    // the other code in this class.\n    this.svg = rootGroup;\n\n    return svg;\n  }\n\n  /**\n   * @private\n   */\n  _ensureClipGroup() {\n    if (!this.current.clipGroup) {\n      const clipGroup = this.svgFactory.createElement(\"svg:g\");\n      clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n      this.svg.append(clipGroup);\n      this.current.clipGroup = clipGroup;\n    }\n    return this.current.clipGroup;\n  }\n\n  /**\n   * @private\n   */\n  _ensureTransformGroup() {\n    if (!this.tgrp) {\n      this.tgrp = this.svgFactory.createElement(\"svg:g\");\n      this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n      if (this.current.activeClipUrl) {\n        this._ensureClipGroup().append(this.tgrp);\n      } else {\n        this.svg.append(this.tgrp);\n      }\n    }\n    return this.tgrp;\n  }\n}\n\nexport { SVGGraphics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./api\").TextContent} TextContent */\n\nclass XfaText {\n  /**\n   * Walk an XFA tree and create an array of text nodes that is compatible\n   * with a regular PDFs TextContent. Currently, only TextItem.str is supported,\n   * all other fields and styles haven't been implemented.\n   *\n   * @param {Object} xfa - An XFA fake DOM object.\n   *\n   * @returns {TextContent}\n   */\n  static textContent(xfa) {\n    const items = [];\n    const output = {\n      items,\n      styles: Object.create(null),\n    };\n    function walk(node) {\n      if (!node) {\n        return;\n      }\n      let str = null;\n      const name = node.name;\n      if (name === \"#text\") {\n        str = node.value;\n      } else if (!XfaText.shouldBuildText(name)) {\n        return;\n      } else if (node?.attributes?.textContent) {\n        str = node.attributes.textContent;\n      } else if (node.value) {\n        str = node.value;\n      }\n      if (str !== null) {\n        items.push({\n          str,\n        });\n      }\n      if (!node.children) {\n        return;\n      }\n      for (const child of node.children) {\n        walk(child);\n      }\n    }\n    walk(xfa);\n    return output;\n  }\n\n  /**\n   * @param {string} name - DOM node name. (lower case)\n   *\n   * @returns {boolean} true if the DOM node should have a corresponding text\n   * node.\n   */\n  static shouldBuildText(name) {\n    return !(\n      name === \"textarea\" ||\n      name === \"input\" ||\n      name === \"option\" ||\n      name === \"select\"\n    );\n  }\n}\n\nexport { XfaText };\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"./api\").TextContent} TextContent */\n\nimport {\n  AbortException,\n  FeatureTest,\n  PromiseCapability,\n  Util,\n} from \"../shared/util.js\";\nimport { deprecated, setLayerDimensions } from \"./display_utils.js\";\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {ReadableStream | TextContent} textContentSource - Text content to\n *   render, i.e. the value returned by the page's `streamTextContent` or\n *   `getTextContent` method.\n * @property {HTMLElement} container - The DOM node that will contain the text\n *   runs.\n * @property {PageViewport} viewport - The target viewport to properly layout\n *   the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that correspond to\n *   the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {WeakMap<HTMLElement,Object>} [textDivProperties] - Some properties\n *   weakly mapped to the HTML elements used to render the text.\n * @property {Array<string>} [textContentItemsStr] - Strings that correspond to\n *   the `str` property of the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {boolean} [isOffscreenCanvasSupported] true if we can use\n *   OffscreenCanvas to measure string widths.\n */\n\n/**\n * Text layer update parameters.\n *\n * @typedef {Object} TextLayerUpdateParameters\n * @property {HTMLElement} container - The DOM node that will contain the text\n *   runs.\n * @property {PageViewport} viewport - The target viewport to properly layout\n *   the text runs.\n * @property {Array<HTMLElement>} [textDivs] - HTML elements that correspond to\n *   the text items of the textContent input.\n *   This is output and shall initially be set to an empty array.\n * @property {WeakMap<HTMLElement,Object>} [textDivProperties] - Some properties\n *   weakly mapped to the HTML elements used to render the text.\n * @property {boolean} [isOffscreenCanvasSupported] true if we can use\n *   OffscreenCanvas to measure string widths.\n * @property {boolean} [mustRotate] true if the text layer must be rotated.\n * @property {boolean} [mustRescale] true if the text layer contents must be\n *   rescaled.\n */\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\n\nfunction getCtx(size, isOffscreenCanvasSupported) {\n  let ctx;\n  if (isOffscreenCanvasSupported && FeatureTest.isOffscreenCanvasSupported) {\n    ctx = new OffscreenCanvas(size, size).getContext(\"2d\", { alpha: false });\n  } else {\n    const canvas = document.createElement(\"canvas\");\n    canvas.width = canvas.height = size;\n    ctx = canvas.getContext(\"2d\", { alpha: false });\n  }\n\n  return ctx;\n}\n\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n  const cachedAscent = ascentCache.get(fontFamily);\n  if (cachedAscent) {\n    return cachedAscent;\n  }\n\n  const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n\n  ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n  const metrics = ctx.measureText(\"\");\n\n  // Both properties aren't available by default in Firefox.\n  let ascent = metrics.fontBoundingBoxAscent;\n  let descent = Math.abs(metrics.fontBoundingBoxDescent);\n  if (ascent) {\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n\n    ctx.canvas.width = ctx.canvas.height = 0;\n    return ratio;\n  }\n\n  // Try basic heuristic to guess ascent/descent.\n  // Draw a g with baseline at 0,0 and then get the line\n  // number where a pixel has non-null red component (starting\n  // from bottom).\n  ctx.strokeStyle = \"red\";\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"g\", 0, 0);\n  let pixels = ctx.getImageData(\n    0,\n    0,\n    DEFAULT_FONT_SIZE,\n    DEFAULT_FONT_SIZE\n  ).data;\n  descent = 0;\n  for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n    if (pixels[i] > 0) {\n      descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  // Draw an A with baseline at 0,DEFAULT_FONT_SIZE and then get the line\n  // number where a pixel has non-null red component (starting\n  // from top).\n  ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n  ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n  pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n  ascent = 0;\n  for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n    if (pixels[i] > 0) {\n      ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n      break;\n    }\n  }\n\n  ctx.canvas.width = ctx.canvas.height = 0;\n\n  if (ascent) {\n    const ratio = ascent / (ascent + descent);\n    ascentCache.set(fontFamily, ratio);\n    return ratio;\n  }\n\n  ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n  return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles) {\n  // Initialize all used properties to keep the caches monomorphic.\n  const textDiv = document.createElement(\"span\");\n  const textDivProperties = {\n    angle: 0,\n    canvasWidth: 0,\n    hasText: geom.str !== \"\",\n    hasEOL: geom.hasEOL,\n    fontSize: 0,\n  };\n  task._textDivs.push(textDiv);\n\n  const tx = Util.transform(task._transform, geom.transform);\n  let angle = Math.atan2(tx[1], tx[0]);\n  const style = styles[geom.fontName];\n  if (style.vertical) {\n    angle += Math.PI / 2;\n  }\n  const fontHeight = Math.hypot(tx[2], tx[3]);\n  const fontAscent =\n    fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n\n  let left, top;\n  if (angle === 0) {\n    left = tx[4];\n    top = tx[5] - fontAscent;\n  } else {\n    left = tx[4] + fontAscent * Math.sin(angle);\n    top = tx[5] - fontAscent * Math.cos(angle);\n  }\n\n  const scaleFactorStr = \"calc(var(--scale-factor)*\";\n  const divStyle = textDiv.style;\n  // Setting the style properties individually, rather than all at once,\n  // should be OK since the `textDiv` isn't appended to the document yet.\n  if (task._container === task._rootContainer) {\n    divStyle.left = `${((100 * left) / task._pageWidth).toFixed(2)}%`;\n    divStyle.top = `${((100 * top) / task._pageHeight).toFixed(2)}%`;\n  } else {\n    // We're in a marked content span, hence we can't use percents.\n    divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n    divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n  }\n  divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n  divStyle.fontFamily = style.fontFamily;\n\n  textDivProperties.fontSize = fontHeight;\n\n  // Keeps screen readers from pausing on every new text span.\n  textDiv.setAttribute(\"role\", \"presentation\");\n\n  textDiv.textContent = geom.str;\n  // geom.dir may be 'ttb' for vertical texts.\n  textDiv.dir = geom.dir;\n\n  // `fontName` is only used by the FontInspector, and we only use `dataset`\n  // here to make the font name available in the debugger.\n  if (task._fontInspectorEnabled) {\n    textDiv.dataset.fontName = geom.fontName;\n  }\n  if (angle !== 0) {\n    textDivProperties.angle = angle * (180 / Math.PI);\n  }\n  // We don't bother scaling single-char text divs, because it has very\n  // little effect on text highlighting. This makes scrolling on docs with\n  // lots of such divs a lot faster.\n  let shouldScaleText = false;\n  if (geom.str.length > 1) {\n    shouldScaleText = true;\n  } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n    const absScaleX = Math.abs(geom.transform[0]),\n      absScaleY = Math.abs(geom.transform[3]);\n    // When the horizontal/vertical scaling differs significantly, also scale\n    // even single-char text to improve highlighting (fixes issue11713.pdf).\n    if (\n      absScaleX !== absScaleY &&\n      Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5\n    ) {\n      shouldScaleText = true;\n    }\n  }\n  if (shouldScaleText) {\n    textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n  }\n  task._textDivProperties.set(textDiv, textDivProperties);\n  if (task._isReadableStream) {\n    task._layoutText(textDiv);\n  }\n}\n\nfunction layout(params) {\n  const { div, scale, properties, ctx, prevFontSize, prevFontFamily } = params;\n  const { style } = div;\n  let transform = \"\";\n  if (properties.canvasWidth !== 0 && properties.hasText) {\n    const { fontFamily } = style;\n    const { canvasWidth, fontSize } = properties;\n\n    if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n      ctx.font = `${fontSize * scale}px ${fontFamily}`;\n      params.prevFontSize = fontSize;\n      params.prevFontFamily = fontFamily;\n    }\n\n    // Only measure the width for multi-char text divs, see `appendText`.\n    const { width } = ctx.measureText(div.textContent);\n\n    if (width > 0) {\n      transform = `scaleX(${(canvasWidth * scale) / width})`;\n    }\n  }\n  if (properties.angle !== 0) {\n    transform = `rotate(${properties.angle}deg) ${transform}`;\n  }\n  if (transform.length > 0) {\n    style.transform = transform;\n  }\n}\n\nfunction render(task) {\n  if (task._canceled) {\n    return;\n  }\n  const textDivs = task._textDivs;\n  const capability = task._capability;\n  const textDivsLength = textDivs.length;\n\n  // No point in rendering many divs as it would make the browser\n  // unusable even after the divs are rendered.\n  if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n    capability.resolve();\n    return;\n  }\n\n  if (!task._isReadableStream) {\n    for (const textDiv of textDivs) {\n      task._layoutText(textDiv);\n    }\n  }\n  capability.resolve();\n}\n\nclass TextLayerRenderTask {\n  constructor({\n    textContentSource,\n    container,\n    viewport,\n    textDivs,\n    textDivProperties,\n    textContentItemsStr,\n    isOffscreenCanvasSupported,\n  }) {\n    this._textContentSource = textContentSource;\n    this._isReadableStream = textContentSource instanceof ReadableStream;\n    this._container = this._rootContainer = container;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n    this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n\n    this._reader = null;\n    this._textDivProperties = textDivProperties || new WeakMap();\n    this._canceled = false;\n    this._capability = new PromiseCapability();\n    this._layoutTextParams = {\n      prevFontSize: null,\n      prevFontFamily: null,\n      div: null,\n      scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n      properties: null,\n      ctx: getCtx(0, isOffscreenCanvasSupported),\n    };\n    const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;\n    this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n    this._pageWidth = pageWidth;\n    this._pageHeight = pageHeight;\n\n    setLayerDimensions(container, viewport);\n\n    // Always clean-up the temporary canvas once rendering is no longer pending.\n    this._capability.promise\n      .finally(() => {\n        this._layoutTextParams = null;\n      })\n      .catch(() => {\n        // Avoid \"Uncaught promise\" messages in the console.\n      });\n  }\n\n  /**\n   * Promise for textLayer rendering task completion.\n   * @type {Promise<void>}\n   */\n  get promise() {\n    return this._capability.promise;\n  }\n\n  /**\n   * Cancel rendering of the textLayer.\n   */\n  cancel() {\n    this._canceled = true;\n    if (this._reader) {\n      this._reader\n        .cancel(new AbortException(\"TextLayer task cancelled.\"))\n        .catch(() => {\n          // Avoid \"Uncaught promise\" messages in the console.\n        });\n      this._reader = null;\n    }\n    this._capability.reject(new AbortException(\"TextLayer task cancelled.\"));\n  }\n\n  /**\n   * @private\n   */\n  _processItems(items, styleCache) {\n    for (const item of items) {\n      if (item.str === undefined) {\n        if (\n          item.type === \"beginMarkedContentProps\" ||\n          item.type === \"beginMarkedContent\"\n        ) {\n          const parent = this._container;\n          this._container = document.createElement(\"span\");\n          this._container.classList.add(\"markedContent\");\n          if (item.id !== null) {\n            this._container.setAttribute(\"id\", `${item.id}`);\n          }\n          parent.append(this._container);\n        } else if (item.type === \"endMarkedContent\") {\n          this._container = this._container.parentNode;\n        }\n        continue;\n      }\n      this._textContentItemsStr.push(item.str);\n      appendText(this, item, styleCache);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _layoutText(textDiv) {\n    const textDivProperties = (this._layoutTextParams.properties =\n      this._textDivProperties.get(textDiv));\n    this._layoutTextParams.div = textDiv;\n    layout(this._layoutTextParams);\n\n    if (textDivProperties.hasText) {\n      this._container.append(textDiv);\n    }\n    if (textDivProperties.hasEOL) {\n      const br = document.createElement(\"br\");\n      br.setAttribute(\"role\", \"presentation\");\n      this._container.append(br);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _render() {\n    const capability = new PromiseCapability();\n    let styleCache = Object.create(null);\n\n    if (this._isReadableStream) {\n      const pump = () => {\n        this._reader.read().then(({ value, done }) => {\n          if (done) {\n            capability.resolve();\n            return;\n          }\n\n          Object.assign(styleCache, value.styles);\n          this._processItems(value.items, styleCache);\n          pump();\n        }, capability.reject);\n      };\n\n      this._reader = this._textContentSource.getReader();\n      pump();\n    } else if (this._textContentSource) {\n      const { items, styles } = this._textContentSource;\n      this._processItems(items, styles);\n      capability.resolve();\n    } else {\n      throw new Error('No \"textContentSource\" parameter specified.');\n    }\n\n    capability.promise.then(() => {\n      styleCache = null;\n      render(this);\n    }, this._capability.reject);\n  }\n}\n\n/**\n * @param {TextLayerRenderParameters} params\n * @returns {TextLayerRenderTask}\n */\nfunction renderTextLayer(params) {\n  if (\n    (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n    !params.textContentSource &&\n    (params.textContent || params.textContentStream)\n  ) {\n    deprecated(\n      \"The TextLayerRender `textContent`/`textContentStream` parameters \" +\n        \"will be removed in the future, please use `textContentSource` instead.\"\n    );\n    params.textContentSource = params.textContent || params.textContentStream;\n  }\n  if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC && !TESTING\")) {\n    const { container, viewport } = params;\n    const style = getComputedStyle(container);\n    const visibility = style.getPropertyValue(\"visibility\");\n    const scaleFactor = parseFloat(style.getPropertyValue(\"--scale-factor\"));\n\n    if (\n      visibility === \"visible\" &&\n      (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)\n    ) {\n      console.error(\n        \"The `--scale-factor` CSS-variable must be set, \" +\n          \"to the same value as `viewport.scale`, \" +\n          \"either on the `container`-element itself or higher up in the DOM.\"\n      );\n    }\n  }\n  const task = new TextLayerRenderTask(params);\n  task._render();\n  return task;\n}\n\n/**\n * @param {TextLayerUpdateParameters} params\n * @returns {undefined}\n */\nfunction updateTextLayer({\n  container,\n  viewport,\n  textDivs,\n  textDivProperties,\n  isOffscreenCanvasSupported,\n  mustRotate = true,\n  mustRescale = true,\n}) {\n  if (mustRotate) {\n    setLayerDimensions(container, { rotation: viewport.rotation });\n  }\n\n  if (mustRescale) {\n    const ctx = getCtx(0, isOffscreenCanvasSupported);\n    const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n    const params = {\n      prevFontSize: null,\n      prevFontFamily: null,\n      div: null,\n      scale,\n      properties: null,\n      ctx,\n    };\n    for (const div of textDivs) {\n      params.properties = textDivProperties.get(div);\n      params.div = div;\n      layout(params);\n    }\n  }\n}\n\nexport { renderTextLayer, TextLayerRenderTask, updateTextLayer };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./tools.js\").AnnotationEditorUIManager} AnnotationEditorUIManager */\n/** @typedef {import(\"../display_utils.js\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../../../web/text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n/** @typedef {import(\"../../../web/interfaces\").IL10n} IL10n */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../annotation_layer.js\").AnnotationLayer} AnnotationLayer */\n\nimport { AnnotationEditorType, FeatureTest } from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { FreeTextEditor } from \"./freetext.js\";\nimport { InkEditor } from \"./ink.js\";\nimport { setLayerDimensions } from \"../display_utils.js\";\nimport { StampEditor } from \"./stamp.js\";\n\n/**\n * @typedef {Object} AnnotationEditorLayerOptions\n * @property {Object} mode\n * @property {HTMLDivElement} div\n * @property {AnnotationEditorUIManager} uiManager\n * @property {boolean} enabled\n * @property {TextAccessibilityManager} [accessibilityManager]\n * @property {number} pageIndex\n * @property {IL10n} l10n\n * @property {AnnotationLayer} [annotationLayer]\n * @property {PageViewport} viewport\n */\n\n/**\n * @typedef {Object} RenderEditorLayerOptions\n * @property {PageViewport} viewport\n */\n\n/**\n * Manage all the different editors on a page.\n */\nclass AnnotationEditorLayer {\n  #accessibilityManager;\n\n  #allowClick = false;\n\n  #annotationLayer = null;\n\n  #boundPointerup = this.pointerup.bind(this);\n\n  #boundPointerdown = this.pointerdown.bind(this);\n\n  #editors = new Map();\n\n  #hadPointerDown = false;\n\n  #isCleaningUp = false;\n\n  #isDisabling = false;\n\n  #uiManager;\n\n  static _initialized = false;\n\n  /**\n   * @param {AnnotationEditorLayerOptions} options\n   */\n  constructor({\n    uiManager,\n    pageIndex,\n    div,\n    accessibilityManager,\n    annotationLayer,\n    viewport,\n    l10n,\n  }) {\n    const editorTypes = [FreeTextEditor, InkEditor, StampEditor];\n    if (!AnnotationEditorLayer._initialized) {\n      AnnotationEditorLayer._initialized = true;\n      for (const editorType of editorTypes) {\n        editorType.initialize(l10n);\n      }\n    }\n    uiManager.registerEditorTypes(editorTypes);\n\n    this.#uiManager = uiManager;\n    this.pageIndex = pageIndex;\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationLayer = annotationLayer;\n    this.viewport = viewport;\n\n    this.#uiManager.addLayer(this);\n  }\n\n  get isEmpty() {\n    return this.#editors.size === 0;\n  }\n\n  /**\n   * Update the toolbar if it's required to reflect the tool currently used.\n   * @param {number} mode\n   */\n  updateToolbar(mode) {\n    this.#uiManager.updateToolbar(mode);\n  }\n\n  /**\n   * The mode has changed: it must be updated.\n   * @param {number} mode\n   */\n  updateMode(mode = this.#uiManager.getMode()) {\n    this.#cleanup();\n    if (mode === AnnotationEditorType.INK) {\n      // We always want to an ink editor ready to draw in.\n      this.addInkEditorIfNeeded(false);\n      this.disableClick();\n    } else {\n      this.enableClick();\n    }\n\n    if (mode !== AnnotationEditorType.NONE) {\n      this.div.classList.toggle(\n        \"freeTextEditing\",\n        mode === AnnotationEditorType.FREETEXT\n      );\n      this.div.classList.toggle(\n        \"inkEditing\",\n        mode === AnnotationEditorType.INK\n      );\n      this.div.classList.toggle(\n        \"stampEditing\",\n        mode === AnnotationEditorType.STAMP\n      );\n      this.div.hidden = false;\n    }\n  }\n\n  addInkEditorIfNeeded(isCommitting) {\n    if (\n      !isCommitting &&\n      this.#uiManager.getMode() !== AnnotationEditorType.INK\n    ) {\n      return;\n    }\n\n    if (!isCommitting) {\n      // We're removing an editor but an empty one can already exist so in this\n      // case we don't need to create a new one.\n      for (const editor of this.#editors.values()) {\n        if (editor.isEmpty()) {\n          editor.setInBackground();\n          return;\n        }\n      }\n    }\n\n    const editor = this.#createAndAddNewEditor(\n      { offsetX: 0, offsetY: 0 },\n      /* isCentered = */ false\n    );\n    editor.setInBackground();\n  }\n\n  /**\n   * Set the editing state.\n   * @param {boolean} isEditing\n   */\n  setEditingState(isEditing) {\n    this.#uiManager.setEditingState(isEditing);\n  }\n\n  /**\n   * Add some commands into the CommandManager (undo/redo stuff).\n   * @param {Object} params\n   */\n  addCommands(params) {\n    this.#uiManager.addCommands(params);\n  }\n\n  /**\n   * Enable pointer events on the main div in order to enable\n   * editor creation.\n   */\n  enable() {\n    this.div.style.pointerEvents = \"auto\";\n    const annotationElementIds = new Set();\n    for (const editor of this.#editors.values()) {\n      editor.enableEditing();\n      if (editor.annotationElementId) {\n        annotationElementIds.add(editor.annotationElementId);\n      }\n    }\n\n    if (!this.#annotationLayer) {\n      return;\n    }\n\n    const editables = this.#annotationLayer.getEditableAnnotations();\n    for (const editable of editables) {\n      // The element must be hidden whatever its state is.\n      editable.hide();\n      if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n        continue;\n      }\n      if (annotationElementIds.has(editable.data.id)) {\n        continue;\n      }\n      const editor = this.deserialize(editable);\n      if (!editor) {\n        continue;\n      }\n      this.addOrRebuild(editor);\n      editor.enableEditing();\n    }\n  }\n\n  /**\n   * Disable editor creation.\n   */\n  disable() {\n    this.#isDisabling = true;\n    this.div.style.pointerEvents = \"none\";\n    const hiddenAnnotationIds = new Set();\n    for (const editor of this.#editors.values()) {\n      editor.disableEditing();\n      if (!editor.annotationElementId || editor.serialize() !== null) {\n        hiddenAnnotationIds.add(editor.annotationElementId);\n        continue;\n      }\n      this.getEditableAnnotation(editor.annotationElementId)?.show();\n      editor.remove();\n    }\n\n    if (this.#annotationLayer) {\n      // Show the annotations that were hidden in enable().\n      const editables = this.#annotationLayer.getEditableAnnotations();\n      for (const editable of editables) {\n        const { id } = editable.data;\n        if (\n          hiddenAnnotationIds.has(id) ||\n          this.#uiManager.isDeletedAnnotationElement(id)\n        ) {\n          continue;\n        }\n        editable.show();\n      }\n    }\n\n    this.#cleanup();\n    if (this.isEmpty) {\n      this.div.hidden = true;\n    }\n    this.#isDisabling = false;\n  }\n\n  getEditableAnnotation(id) {\n    return this.#annotationLayer?.getEditableAnnotation(id) || null;\n  }\n\n  /**\n   * Set the current editor.\n   * @param {AnnotationEditor} editor\n   */\n  setActiveEditor(editor) {\n    const currentActive = this.#uiManager.getActive();\n    if (currentActive === editor) {\n      return;\n    }\n\n    this.#uiManager.setActiveEditor(editor);\n  }\n\n  enableClick() {\n    this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n    this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n  }\n\n  disableClick() {\n    this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n    this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n  }\n\n  attach(editor) {\n    this.#editors.set(editor.id, editor);\n    const { annotationElementId } = editor;\n    if (\n      annotationElementId &&\n      this.#uiManager.isDeletedAnnotationElement(annotationElementId)\n    ) {\n      this.#uiManager.removeDeletedAnnotationElement(editor);\n    }\n  }\n\n  detach(editor) {\n    this.#editors.delete(editor.id);\n    this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n\n    if (!this.#isDisabling && editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor);\n    }\n  }\n\n  /**\n   * Remove an editor.\n   * @param {AnnotationEditor} editor\n   */\n  remove(editor) {\n    // Since we can undo a removal we need to keep the\n    // parent property as it is, so don't null it!\n\n    this.detach(editor);\n    this.#uiManager.removeEditor(editor);\n    if (editor.div.contains(document.activeElement)) {\n      setTimeout(() => {\n        // When the div is removed from DOM the focus can move on the\n        // document.body, so we need to move it back to the main container.\n        this.#uiManager.focusMainContainer();\n      }, 0);\n    }\n    editor.div.remove();\n    editor.isAttachedToDOM = false;\n\n    if (!this.#isCleaningUp) {\n      this.addInkEditorIfNeeded(/* isCommitting = */ false);\n    }\n  }\n\n  /**\n   * An editor can have a different parent, for example after having\n   * being dragged and droped from a page to another.\n   * @param {AnnotationEditor} editor\n   */\n  changeParent(editor) {\n    if (editor.parent === this) {\n      return;\n    }\n\n    if (editor.annotationElementId) {\n      this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n      AnnotationEditor.deleteAnnotationElement(editor);\n      editor.annotationElementId = null;\n    }\n\n    this.attach(editor);\n    editor.parent?.detach(editor);\n    editor.setParent(this);\n    if (editor.div && editor.isAttachedToDOM) {\n      editor.div.remove();\n      this.div.append(editor.div);\n    }\n  }\n\n  /**\n   * Add a new editor in the current view.\n   * @param {AnnotationEditor} editor\n   */\n  add(editor) {\n    this.changeParent(editor);\n    this.#uiManager.addEditor(editor);\n    this.attach(editor);\n\n    if (!editor.isAttachedToDOM) {\n      const div = editor.render();\n      this.div.append(div);\n      editor.isAttachedToDOM = true;\n    }\n\n    // The editor will be correctly moved into the DOM (see fixAndSetPosition).\n    editor.fixAndSetPosition();\n    editor.onceAdded();\n    this.#uiManager.addToAnnotationStorage(editor);\n  }\n\n  moveEditorInDOM(editor) {\n    if (!editor.isAttachedToDOM) {\n      return;\n    }\n\n    const { activeElement } = document;\n    if (editor.div.contains(activeElement)) {\n      // When the div is moved in the DOM the focus can move somewhere else,\n      // so we want to be sure that the focus will stay on the editor but we\n      // don't want to call any focus callbacks, hence we disable them and only\n      // re-enable them when the editor has the focus.\n      editor._focusEventsAllowed = false;\n      setTimeout(() => {\n        if (!editor.div.contains(document.activeElement)) {\n          editor.div.addEventListener(\n            \"focusin\",\n            () => {\n              editor._focusEventsAllowed = true;\n            },\n            { once: true }\n          );\n          activeElement.focus();\n        } else {\n          editor._focusEventsAllowed = true;\n        }\n      }, 0);\n    }\n\n    editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(\n      this.div,\n      editor.div,\n      editor.contentDiv,\n      /* isRemovable = */ true\n    );\n  }\n\n  /**\n   * Add or rebuild depending if it has been removed or not.\n   * @param {AnnotationEditor} editor\n   */\n  addOrRebuild(editor) {\n    if (editor.needsToBeRebuilt()) {\n      editor.rebuild();\n    } else {\n      this.add(editor);\n    }\n  }\n\n  /**\n   * Add a new editor and make this addition undoable.\n   * @param {AnnotationEditor} editor\n   */\n  addUndoableEditor(editor) {\n    const cmd = () => editor._uiManager.rebuild(editor);\n    const undo = () => {\n      editor.remove();\n    };\n\n    this.addCommands({ cmd, undo, mustExec: false });\n  }\n\n  /**\n   * Get an id for an editor.\n   * @returns {string}\n   */\n  getNextId() {\n    return this.#uiManager.getId();\n  }\n\n  /**\n   * Create a new editor\n   * @param {Object} params\n   * @returns {AnnotationEditor}\n   */\n  #createNewEditor(params) {\n    switch (this.#uiManager.getMode()) {\n      case AnnotationEditorType.FREETEXT:\n        return new FreeTextEditor(params);\n      case AnnotationEditorType.INK:\n        return new InkEditor(params);\n      case AnnotationEditorType.STAMP:\n        return new StampEditor(params);\n    }\n    return null;\n  }\n\n  /**\n   * Paste some content into a new editor.\n   * @param {number} mode\n   * @param {Object} params\n   */\n  pasteEditor(mode, params) {\n    this.#uiManager.updateToolbar(mode);\n    this.#uiManager.updateMode(mode);\n\n    const { offsetX, offsetY } = this.#getCenterPoint();\n    const id = this.getNextId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: offsetX,\n      y: offsetY,\n      uiManager: this.#uiManager,\n      isCentered: true,\n      ...params,\n    });\n    if (editor) {\n      this.add(editor);\n    }\n  }\n\n  /**\n   * Create a new editor\n   * @param {Object} data\n   * @returns {AnnotationEditor}\n   */\n  deserialize(data) {\n    switch (data.annotationType ?? data.annotationEditorType) {\n      case AnnotationEditorType.FREETEXT:\n        return FreeTextEditor.deserialize(data, this, this.#uiManager);\n      case AnnotationEditorType.INK:\n        return InkEditor.deserialize(data, this, this.#uiManager);\n      case AnnotationEditorType.STAMP:\n        return StampEditor.deserialize(data, this, this.#uiManager);\n    }\n    return null;\n  }\n\n  /**\n   * Create and add a new editor.\n   * @param {PointerEvent} event\n   * @param {boolean} isCentered\n   * @returns {AnnotationEditor}\n   */\n  #createAndAddNewEditor(event, isCentered) {\n    const id = this.getNextId();\n    const editor = this.#createNewEditor({\n      parent: this,\n      id,\n      x: event.offsetX,\n      y: event.offsetY,\n      uiManager: this.#uiManager,\n      isCentered,\n    });\n    if (editor) {\n      this.add(editor);\n    }\n\n    return editor;\n  }\n\n  #getCenterPoint() {\n    const { x, y, width, height } = this.div.getBoundingClientRect();\n    const tlX = Math.max(0, x);\n    const tlY = Math.max(0, y);\n    const brX = Math.min(window.innerWidth, x + width);\n    const brY = Math.min(window.innerHeight, y + height);\n    const centerX = (tlX + brX) / 2 - x;\n    const centerY = (tlY + brY) / 2 - y;\n    const [offsetX, offsetY] =\n      this.viewport.rotation % 180 === 0\n        ? [centerX, centerY]\n        : [centerY, centerX];\n\n    return { offsetX, offsetY };\n  }\n\n  /**\n   * Create and add a new editor.\n   */\n  addNewEditor() {\n    this.#createAndAddNewEditor(\n      this.#getCenterPoint(),\n      /* isCentered = */ true\n    );\n  }\n\n  /**\n   * Set the last selected editor.\n   * @param {AnnotationEditor} editor\n   */\n  setSelected(editor) {\n    this.#uiManager.setSelected(editor);\n  }\n\n  /**\n   * Add or remove an editor the current selection.\n   * @param {AnnotationEditor} editor\n   */\n  toggleSelected(editor) {\n    this.#uiManager.toggleSelected(editor);\n  }\n\n  /**\n   * Check if the editor is selected.\n   * @param {AnnotationEditor} editor\n   */\n  isSelected(editor) {\n    return this.#uiManager.isSelected(editor);\n  }\n\n  /**\n   * Unselect an editor.\n   * @param {AnnotationEditor} editor\n   */\n  unselect(editor) {\n    this.#uiManager.unselect(editor);\n  }\n\n  /**\n   * Pointerup callback.\n   * @param {PointerEvent} event\n   */\n  pointerup(event) {\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Don't create an editor on right click.\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    if (!this.#hadPointerDown) {\n      // It can happen when the user starts a drag inside a text editor\n      // and then releases the mouse button outside of it. In such a case\n      // we don't want to create a new editor, hence we check that a pointerdown\n      // occurred on this div previously.\n      return;\n    }\n    this.#hadPointerDown = false;\n\n    if (!this.#allowClick) {\n      this.#allowClick = true;\n      return;\n    }\n\n    if (this.#uiManager.getMode() === AnnotationEditorType.STAMP) {\n      this.#uiManager.unselectAll();\n      return;\n    }\n\n    this.#createAndAddNewEditor(event, /* isCentered = */ false);\n  }\n\n  /**\n   * Pointerdown callback.\n   * @param {PointerEvent} event\n   */\n  pointerdown(event) {\n    if (this.#hadPointerDown) {\n      // It's possible to have a second pointerdown event before a pointerup one\n      // when the user puts a finger on a touchscreen and then add a second one\n      // to start a pinch-to-zoom gesture.\n      // That said, in case it's possible to have two pointerdown events with\n      // a mouse, we don't want to create a new editor in such a case either.\n      this.#hadPointerDown = false;\n      return;\n    }\n    const { isMac } = FeatureTest.platform;\n    if (event.button !== 0 || (event.ctrlKey && isMac)) {\n      // Do nothing on right click.\n      return;\n    }\n\n    if (event.target !== this.div) {\n      return;\n    }\n\n    this.#hadPointerDown = true;\n\n    const editor = this.#uiManager.getActive();\n    this.#allowClick = !editor || editor.isEmpty();\n  }\n\n  /**\n   *\n   * @param {AnnotationEditor} editor\n   * @param {number} x\n   * @param {number} y\n   * @returns\n   */\n  findNewParent(editor, x, y) {\n    const layer = this.#uiManager.findParent(x, y);\n    if (layer === null || layer === this) {\n      return false;\n    }\n    layer.changeParent(editor);\n    return true;\n  }\n\n  /**\n   * Destroy the main editor.\n   */\n  destroy() {\n    if (this.#uiManager.getActive()?.parent === this) {\n      // We need to commit the current editor before destroying the layer.\n      this.#uiManager.commitOrRemove();\n      this.#uiManager.setActiveEditor(null);\n    }\n\n    for (const editor of this.#editors.values()) {\n      this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n      editor.setParent(null);\n      editor.isAttachedToDOM = false;\n      editor.div.remove();\n    }\n    this.div = null;\n    this.#editors.clear();\n    this.#uiManager.removeLayer(this);\n  }\n\n  #cleanup() {\n    // When we're cleaning up, some editors are removed but we don't want\n    // to add a new one which will induce an addition in this.#editors, hence\n    // an infinite loop.\n    this.#isCleaningUp = true;\n    for (const editor of this.#editors.values()) {\n      if (editor.isEmpty()) {\n        editor.remove();\n      }\n    }\n    this.#isCleaningUp = false;\n  }\n\n  /**\n   * Render the main editor.\n   * @param {RenderEditorLayerOptions} parameters\n   */\n  render({ viewport }) {\n    this.viewport = viewport;\n    setLayerDimensions(this.div, viewport);\n    for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n      this.add(editor);\n    }\n    this.updateMode();\n  }\n\n  /**\n   * Update the main editor.\n   * @param {RenderEditorLayerOptions} parameters\n   */\n  update({ viewport }) {\n    // Editors have their dimensions/positions in percent so to avoid any\n    // issues (see #15582), we must commit the current one before changing\n    // the viewport.\n    this.#uiManager.commitOrRemove();\n\n    this.viewport = viewport;\n    setLayerDimensions(this.div, { rotation: viewport.rotation });\n    this.updateMode();\n  }\n\n  /**\n   * Get page dimensions.\n   * @returns {Object} dimensions.\n   */\n  get pageDimensions() {\n    const { pageWidth, pageHeight } = this.viewport.rawDims;\n    return [pageWidth, pageHeight];\n  }\n}\n\nexport { AnnotationEditorLayer };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_editor_layer.js\").AnnotationEditorLayer} AnnotationEditorLayer */\n\nimport {\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  assert,\n  LINE_FACTOR,\n  shadow,\n  Util,\n} from \"../../shared/util.js\";\nimport {\n  AnnotationEditorUIManager,\n  bindEvents,\n  KeyboardManager,\n} from \"./tools.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { FreeTextAnnotationElement } from \"../annotation_layer.js\";\n\n/**\n * Basic text editor in order to create a FreeTex annotation.\n */\nclass FreeTextEditor extends AnnotationEditor {\n  #boundEditorDivBlur = this.editorDivBlur.bind(this);\n\n  #boundEditorDivFocus = this.editorDivFocus.bind(this);\n\n  #boundEditorDivInput = this.editorDivInput.bind(this);\n\n  #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n\n  #color;\n\n  #content = \"\";\n\n  #editorDivId = `${this.id}-editor`;\n\n  #fontSize;\n\n  #initialData = null;\n\n  static _freeTextDefaultContent = \"\";\n\n  static _internalPadding = 0;\n\n  static _defaultColor = null;\n\n  static _defaultFontSize = 10;\n\n  static get _keyboardManager() {\n    const proto = FreeTextEditor.prototype;\n\n    const arrowChecker = self => self.isEmpty();\n\n    const small = AnnotationEditorUIManager.TRANSLATE_SMALL;\n    const big = AnnotationEditorUIManager.TRANSLATE_BIG;\n\n    return shadow(\n      this,\n      \"_keyboardManager\",\n      new KeyboardManager([\n        [\n          // Commit the text in case the user use ctrl+s to save the document.\n          // The event must bubble in order to be caught by the viewer.\n          // See bug 1831574.\n          [\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"],\n          proto.commitOrRemove,\n          { bubbles: true },\n        ],\n        [\n          [\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"],\n          proto.commitOrRemove,\n        ],\n        [\n          [\"ArrowLeft\", \"mac+ArrowLeft\"],\n          proto._translateEmpty,\n          { args: [-small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"],\n          proto._translateEmpty,\n          { args: [-big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowRight\", \"mac+ArrowRight\"],\n          proto._translateEmpty,\n          { args: [small, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"],\n          proto._translateEmpty,\n          { args: [big, 0], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowUp\", \"mac+ArrowUp\"],\n          proto._translateEmpty,\n          { args: [0, -small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"],\n          proto._translateEmpty,\n          { args: [0, -big], checker: arrowChecker },\n        ],\n        [\n          [\"ArrowDown\", \"mac+ArrowDown\"],\n          proto._translateEmpty,\n          { args: [0, small], checker: arrowChecker },\n        ],\n        [\n          [\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"],\n          proto._translateEmpty,\n          { args: [0, big], checker: arrowChecker },\n        ],\n      ])\n    );\n  }\n\n  static _type = \"freetext\";\n\n  constructor(params) {\n    super({ ...params, name: \"freeTextEditor\" });\n    this.#color =\n      params.color ||\n      FreeTextEditor._defaultColor ||\n      AnnotationEditor._defaultLineColor;\n    this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n, {\n      strings: [\"free_text2_default_content\", \"editor_free_text2_aria_label\"],\n    });\n    const style = getComputedStyle(document.documentElement);\n\n    if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n      const lineHeight = parseFloat(\n        style.getPropertyValue(\"--freetext-line-height\")\n      );\n      assert(\n        lineHeight === LINE_FACTOR,\n        \"Update the CSS variable to agree with the constant.\"\n      );\n    }\n\n    this._internalPadding = parseFloat(\n      style.getPropertyValue(\"--freetext-padding\")\n    );\n  }\n\n  /** @inheritdoc */\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        FreeTextEditor._defaultFontSize = value;\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        FreeTextEditor._defaultColor = value;\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.FREETEXT_SIZE:\n        this.#updateFontSize(value);\n        break;\n      case AnnotationEditorParamsType.FREETEXT_COLOR:\n        this.#updateColor(value);\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  static get defaultPropertiesToUpdate() {\n    return [\n      [\n        AnnotationEditorParamsType.FREETEXT_SIZE,\n        FreeTextEditor._defaultFontSize,\n      ],\n      [\n        AnnotationEditorParamsType.FREETEXT_COLOR,\n        FreeTextEditor._defaultColor || AnnotationEditor._defaultLineColor,\n      ],\n    ];\n  }\n\n  /** @inheritdoc */\n  get propertiesToUpdate() {\n    return [\n      [AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize],\n      [AnnotationEditorParamsType.FREETEXT_COLOR, this.#color],\n    ];\n  }\n\n  /**\n   * Update the font size and make this action as undoable.\n   * @param {number} fontSize\n   */\n  #updateFontSize(fontSize) {\n    const setFontsize = size => {\n      this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n      this.translate(0, -(size - this.#fontSize) * this.parentScale);\n      this.#fontSize = size;\n      this.#setEditorDimensions();\n    };\n    const savedFontsize = this.#fontSize;\n    this.addCommands({\n      cmd: () => {\n        setFontsize(fontSize);\n      },\n      undo: () => {\n        setFontsize(savedFontsize);\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_SIZE,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the color and make this action undoable.\n   * @param {string} color\n   */\n  #updateColor(color) {\n    const savedColor = this.#color;\n    this.addCommands({\n      cmd: () => {\n        this.#color = this.editorDiv.style.color = color;\n      },\n      undo: () => {\n        this.#color = this.editorDiv.style.color = savedColor;\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.FREETEXT_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Helper to translate the editor with the keyboard when it's empty.\n   * @param {number} x in page units.\n   * @param {number} y in page units.\n   */\n  _translateEmpty(x, y) {\n    this._uiManager.translateSelectedEditors(x, y, /* noCommit = */ true);\n  }\n\n  /** @inheritdoc */\n  getInitialTranslation() {\n    // The start of the base line is where the user clicked.\n    const scale = this.parentScale;\n    return [\n      -FreeTextEditor._internalPadding * scale,\n      -(FreeTextEditor._internalPadding + this.#fontSize) * scale,\n    ];\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilting it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n    }\n  }\n\n  /** @inheritdoc */\n  enableEditMode() {\n    if (this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(false);\n    this.parent.updateToolbar(AnnotationEditorType.FREETEXT);\n    super.enableEditMode();\n    this.overlayDiv.classList.remove(\"enabled\");\n    this.editorDiv.contentEditable = true;\n    this._isDraggable = false;\n    this.div.removeAttribute(\"aria-activedescendant\");\n    this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n    this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n    this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n    this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n  }\n\n  /** @inheritdoc */\n  disableEditMode() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n\n    this.parent.setEditingState(true);\n    super.disableEditMode();\n    this.overlayDiv.classList.add(\"enabled\");\n    this.editorDiv.contentEditable = false;\n    this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n    this._isDraggable = true;\n    this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n    this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n    this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n    this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n\n    // On Chrome, the focus is given to <body> when contentEditable is set to\n    // false, hence we focus the div.\n    this.div.focus({\n      preventScroll: true /* See issue #15744 */,\n    });\n\n    // In case the blur callback hasn't been called.\n    this.isEditing = false;\n    this.parent.div.classList.add(\"freeTextEditing\");\n  }\n\n  /** @inheritdoc */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    super.focusin(event);\n    if (event.target !== this.editorDiv) {\n      this.editorDiv.focus();\n    }\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    if (this.width) {\n      this.#cheatInitialRect();\n      // The editor was created in using ctrl+c.\n      return;\n    }\n    this.enableEditMode();\n    this.editorDiv.focus();\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    }\n    this._initialOptions = null;\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n  }\n\n  /** @inheritdoc */\n  remove() {\n    this.isEditing = false;\n    if (this.parent) {\n      this.parent.setEditingState(true);\n      this.parent.div.classList.add(\"freeTextEditing\");\n    }\n    super.remove();\n  }\n\n  /**\n   * Extract the text from this editor.\n   * @returns {string}\n   */\n  #extractText() {\n    const divs = this.editorDiv.getElementsByTagName(\"div\");\n    if (divs.length === 0) {\n      return this.editorDiv.innerText;\n    }\n    const buffer = [];\n    for (const div of divs) {\n      buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n    }\n    return buffer.join(\"\\n\");\n  }\n\n  #setEditorDimensions() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n\n    let rect;\n    if (this.isAttachedToDOM) {\n      rect = this.div.getBoundingClientRect();\n    } else {\n      // This editor isn't on screen but we need to get its dimensions, so\n      // we just insert it in the DOM, get its bounding box and then remove it.\n      const { currentLayer, div } = this;\n      const savedDisplay = div.style.display;\n      div.style.display = \"hidden\";\n      currentLayer.div.append(this.div);\n      rect = div.getBoundingClientRect();\n      div.remove();\n      div.style.display = savedDisplay;\n    }\n\n    // The dimensions are relative to the rotation of the page, hence we need to\n    // take that into account (see issue #16636).\n    if (this.rotation % 180 === this.parentRotation % 180) {\n      this.width = rect.width / parentWidth;\n      this.height = rect.height / parentHeight;\n    } else {\n      this.width = rect.height / parentWidth;\n      this.height = rect.width / parentHeight;\n    }\n    this.fixAndSetPosition();\n  }\n\n  /**\n   * Commit the content we have in this editor.\n   * @returns {undefined}\n   */\n  commit() {\n    if (!this.isInEditMode()) {\n      return;\n    }\n\n    super.commit();\n    this.disableEditMode();\n    const savedText = this.#content;\n    const newText = (this.#content = this.#extractText().trimEnd());\n    if (savedText === newText) {\n      return;\n    }\n\n    const setText = text => {\n      this.#content = text;\n      if (!text) {\n        this.remove();\n        return;\n      }\n      this.#setContent();\n      this._uiManager.rebuild(this);\n      this.#setEditorDimensions();\n    };\n    this.addCommands({\n      cmd: () => {\n        setText(newText);\n      },\n      undo: () => {\n        setText(savedText);\n      },\n      mustExec: false,\n    });\n    this.#setEditorDimensions();\n  }\n\n  /** @inheritdoc */\n  shouldGetKeyboardEvents() {\n    return this.isInEditMode();\n  }\n\n  /** @inheritdoc */\n  enterInEditMode() {\n    this.enableEditMode();\n    this.editorDiv.focus();\n  }\n\n  /**\n   * ondblclick callback.\n   * @param {MouseEvent} event\n   */\n  dblclick(event) {\n    this.enterInEditMode();\n  }\n\n  /**\n   * onkeydown callback.\n   * @param {KeyboardEvent} event\n   */\n  keydown(event) {\n    if (event.target === this.div && event.key === \"Enter\") {\n      this.enterInEditMode();\n      // Avoid to add an unwanted new line.\n      event.preventDefault();\n    }\n  }\n\n  editorDivKeydown(event) {\n    FreeTextEditor._keyboardManager.exec(this, event);\n  }\n\n  editorDivFocus(event) {\n    this.isEditing = true;\n  }\n\n  editorDivBlur(event) {\n    this.isEditing = false;\n  }\n\n  editorDivInput(event) {\n    this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n  }\n\n  /** @inheritdoc */\n  disableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"comment\");\n    this.editorDiv.removeAttribute(\"aria-multiline\");\n  }\n\n  /** @inheritdoc */\n  enableEditing() {\n    this.editorDiv.setAttribute(\"role\", \"textbox\");\n    this.editorDiv.setAttribute(\"aria-multiline\", true);\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n    this.editorDiv = document.createElement(\"div\");\n    this.editorDiv.className = \"internal\";\n\n    this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n    this.enableEditing();\n\n    AnnotationEditor._l10nPromise\n      .get(\"editor_free_text2_aria_label\")\n      .then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n\n    AnnotationEditor._l10nPromise\n      .get(\"free_text2_default_content\")\n      .then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n    this.editorDiv.contentEditable = true;\n\n    const { style } = this.editorDiv;\n    style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n    style.color = this.#color;\n\n    this.div.append(this.editorDiv);\n\n    this.overlayDiv = document.createElement(\"div\");\n    this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n    this.div.append(this.overlayDiv);\n\n    // TODO: implement paste callback.\n    // The goal is to sanitize and have something suitable for this\n    // editor.\n    bindEvents(this, this.div, [\"dblclick\", \"keydown\"]);\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      if (this.annotationElementId) {\n        // This stuff is hard to test: if something is changed here, please\n        // test with the following PDF file:\n        //  - freetexts.pdf\n        //  - rotated_freetexts.pdf\n        // Only small variations between the original annotation and its editor\n        // are allowed.\n\n        // position is the position of the first glyph in the annotation\n        // and it's relative to its container.\n        const { position } = this.#initialData;\n        let [tx, ty] = this.getInitialTranslation();\n        [tx, ty] = this.pageTranslationToScreen(tx, ty);\n        const [pageWidth, pageHeight] = this.pageDimensions;\n        const [pageX, pageY] = this.pageTranslation;\n        let posX, posY;\n        switch (this.rotation) {\n          case 0:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n            break;\n          case 90:\n            posX = baseX + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [ty, -tx];\n            break;\n          case 180:\n            posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n            posY = baseY - (position[1] - pageY) / pageHeight;\n            [tx, ty] = [-tx, -ty];\n            break;\n          case 270:\n            posX =\n              baseX +\n              (position[0] - pageX - this.height * pageHeight) / pageWidth;\n            posY =\n              baseY +\n              (position[1] - pageY - this.width * pageWidth) / pageHeight;\n            [tx, ty] = [-ty, tx];\n            break;\n        }\n        this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n      } else {\n        this.setAt(\n          baseX * parentWidth,\n          baseY * parentHeight,\n          this.width * parentWidth,\n          this.height * parentHeight\n        );\n      }\n\n      this.#setContent();\n      this._isDraggable = true;\n      this.editorDiv.contentEditable = false;\n    } else {\n      this._isDraggable = false;\n      this.editorDiv.contentEditable = true;\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      this.div.setAttribute(\"annotation-id\", this.annotationElementId);\n    }\n\n    return this.div;\n  }\n\n  #setContent() {\n    this.editorDiv.replaceChildren();\n    if (!this.#content) {\n      return;\n    }\n    for (const line of this.#content.split(\"\\n\")) {\n      const div = document.createElement(\"div\");\n      div.append(\n        line ? document.createTextNode(line) : document.createElement(\"br\")\n      );\n      this.editorDiv.append(div);\n    }\n  }\n\n  get contentDiv() {\n    return this.editorDiv;\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    let initialData = null;\n    if (data instanceof FreeTextAnnotationElement) {\n      const {\n        data: {\n          defaultAppearanceData: { fontSize, fontColor },\n          rect,\n          rotation,\n          id,\n        },\n        textContent,\n        textPosition,\n        parent: {\n          page: { pageNumber },\n        },\n      } = data;\n      // textContent is supposed to be an array of strings containing each line\n      // of text. However, it can be null or empty.\n      if (!textContent || textContent.length === 0) {\n        // Empty annotation.\n        return null;\n      }\n      initialData = data = {\n        annotationType: AnnotationEditorType.FREETEXT,\n        color: Array.from(fontColor),\n        fontSize,\n        value: textContent.join(\"\\n\"),\n        position: textPosition,\n        pageIndex: pageNumber - 1,\n        rect,\n        rotation,\n        id,\n        deleted: false,\n      };\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n\n    editor.#fontSize = data.fontSize;\n    editor.#color = Util.makeHexColor(...data.color);\n    editor.#content = data.value;\n    editor.annotationElementId = data.id || null;\n    editor.#initialData = initialData;\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize(isForCopying = false) {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    if (this.deleted) {\n      return {\n        pageIndex: this.pageIndex,\n        id: this.annotationElementId,\n        deleted: true,\n      };\n    }\n\n    const padding = FreeTextEditor._internalPadding * this.parentScale;\n    const rect = this.getRect(padding, padding);\n    const color = AnnotationEditor._colorManager.convert(\n      this.isAttachedToDOM\n        ? getComputedStyle(this.editorDiv).color\n        : this.#color\n    );\n\n    const serialized = {\n      annotationType: AnnotationEditorType.FREETEXT,\n      color,\n      fontSize: this.#fontSize,\n      value: this.#content,\n      pageIndex: this.pageIndex,\n      rect,\n      rotation: this.rotation,\n      structTreeParentId: this._structTreeParentId,\n    };\n\n    if (isForCopying) {\n      // Don't add the id when copying because the pasted editor mustn't be\n      // linked to an existing annotation.\n      return serialized;\n    }\n\n    if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n      return null;\n    }\n\n    serialized.id = this.annotationElementId;\n\n    return serialized;\n  }\n\n  #hasElementChanged(serialized) {\n    const { value, fontSize, color, rect, pageIndex } = this.#initialData;\n\n    return (\n      serialized.value !== value ||\n      serialized.fontSize !== fontSize ||\n      serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) ||\n      serialized.color.some((c, i) => c !== color[i]) ||\n      serialized.pageIndex !== pageIndex\n    );\n  }\n\n  #cheatInitialRect(delayed = false) {\n    // The annotation has a rect but the editor has an other one.\n    // When we want to know if the annotation has changed (e.g. has been moved)\n    // we must compare the editor initial rect with the current one.\n    // So this method is a hack to have a way to compare the real rects.\n    if (!this.annotationElementId) {\n      return;\n    }\n\n    this.#setEditorDimensions();\n    if (!delayed && (this.width === 0 || this.height === 0)) {\n      setTimeout(() => this.#cheatInitialRect(/* delayed = */ true), 0);\n      return;\n    }\n\n    const padding = FreeTextEditor._internalPadding * this.parentScale;\n    this.#initialData.rect = this.getRect(padding, padding);\n  }\n}\n\nexport { FreeTextEditor };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** @typedef {import(\"./api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../../web/text_accessibility.js\").TextAccessibilityManager} TextAccessibilityManager */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"../../web/interfaces\").IDownloadManager} IDownloadManager */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport {\n  AnnotationBorderStyleType,\n  AnnotationEditorType,\n  AnnotationPrefix,\n  AnnotationType,\n  FeatureTest,\n  LINE_FACTOR,\n  shadow,\n  unreachable,\n  Util,\n  warn,\n} from \"../shared/util.js\";\nimport {\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  PDFDateString,\n  setLayerDimensions,\n} from \"./display_utils.js\";\nimport { AnnotationStorage } from \"./annotation_storage.js\";\nimport { ColorConverters } from \"../shared/scripting_utils.js\";\nimport { NullL10n } from \"display-l10n_utils\";\nimport { XfaLayer } from \"./xfa_layer.js\";\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n  return {\n    width: rect[2] - rect[0],\n    height: rect[3] - rect[1],\n  };\n}\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {Object} svgFactory\n * @property {boolean} [enableScripting]\n * @property {boolean} [hasJSActions]\n * @property {Object} [fieldObjects]\n */\n\nclass AnnotationElementFactory {\n  /**\n   * @param {AnnotationElementParameters} parameters\n   * @returns {AnnotationElement}\n   */\n  static create(parameters) {\n    const subtype = parameters.data.annotationType;\n\n    switch (subtype) {\n      case AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n\n      case AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n\n      case AnnotationType.WIDGET:\n        const fieldType = parameters.data.fieldType;\n\n        switch (fieldType) {\n          case \"Tx\":\n            return new TextWidgetAnnotationElement(parameters);\n          case \"Btn\":\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n            return new PushButtonWidgetAnnotationElement(parameters);\n          case \"Ch\":\n            return new ChoiceWidgetAnnotationElement(parameters);\n          case \"Sig\":\n            return new SignatureWidgetAnnotationElement(parameters);\n        }\n        return new WidgetAnnotationElement(parameters);\n\n      case AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n\n      case AnnotationType.FREETEXT:\n        return new FreeTextAnnotationElement(parameters);\n\n      case AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n\n      case AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n\n      case AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n\n      case AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n\n      case AnnotationType.CARET:\n        return new CaretAnnotationElement(parameters);\n\n      case AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n\n      case AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n\n      case AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n\n      case AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n\n      case AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n\n      case AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n\n      case AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n\n      case AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n}\n\nclass AnnotationElement {\n  #hasBorder = false;\n\n  constructor(\n    parameters,\n    {\n      isRenderable = false,\n      ignoreBorder = false,\n      createQuadrilaterals = false,\n    } = {}\n  ) {\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderForms = parameters.renderForms;\n    this.svgFactory = parameters.svgFactory;\n    this.annotationStorage = parameters.annotationStorage;\n    this.enableScripting = parameters.enableScripting;\n    this.hasJSActions = parameters.hasJSActions;\n    this._fieldObjects = parameters.fieldObjects;\n    this.parent = parameters.parent;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n    if (createQuadrilaterals) {\n      this._createQuadrilaterals();\n    }\n  }\n\n  static _hasPopupData({ titleObj, contentsObj, richText }) {\n    return !!(titleObj?.str || contentsObj?.str || richText?.str);\n  }\n\n  get hasPopupData() {\n    return AnnotationElement._hasPopupData(this.data);\n  }\n\n  /**\n   * Create an empty container for the annotation's HTML element.\n   *\n   * @private\n   * @param {boolean} ignoreBorder\n   * @memberof AnnotationElement\n   * @returns {HTMLElement} A section element.\n   */\n  _createContainer(ignoreBorder) {\n    const {\n      data,\n      parent: { page, viewport },\n    } = this;\n\n    const container = document.createElement(\"section\");\n    container.setAttribute(\"data-annotation-id\", data.id);\n    if (!(this instanceof WidgetAnnotationElement)) {\n      container.tabIndex = DEFAULT_TAB_INDEX;\n    }\n\n    // The accessibility manager will move the annotation in the DOM in\n    // order to match the visual ordering.\n    // But if an annotation is above an other one, then we must draw it\n    // after the other one whatever the order is in the DOM, hence the\n    // use of the z-index.\n    container.style.zIndex = this.parent.zIndex++;\n\n    if (this.data.popupRef) {\n      container.setAttribute(\"aria-haspopup\", \"dialog\");\n    }\n\n    if (data.noRotate) {\n      container.classList.add(\"norotate\");\n    }\n\n    const { pageWidth, pageHeight, pageX, pageY } = viewport.rawDims;\n\n    if (!data.rect || this instanceof PopupAnnotationElement) {\n      const { rotation } = data;\n      if (!data.hasOwnCanvas && rotation !== 0) {\n        this.setRotation(rotation, container);\n      }\n      return container;\n    }\n\n    const { width, height } = getRectDims(data.rect);\n\n    // Do *not* modify `data.rect`, since that will corrupt the annotation\n    // position on subsequent calls to `_createContainer` (see issue 6804).\n    const rect = Util.normalizeRect([\n      data.rect[0],\n      page.view[3] - data.rect[1] + page.view[1],\n      data.rect[2],\n      page.view[3] - data.rect[3] + page.view[1],\n    ]);\n\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = `${data.borderStyle.width}px`;\n\n      const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      const verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n        container.style.borderRadius = radius;\n      } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n        const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n        container.style.borderRadius = radius;\n      }\n\n      switch (data.borderStyle.style) {\n        case AnnotationBorderStyleType.SOLID:\n          container.style.borderStyle = \"solid\";\n          break;\n\n        case AnnotationBorderStyleType.DASHED:\n          container.style.borderStyle = \"dashed\";\n          break;\n\n        case AnnotationBorderStyleType.BEVELED:\n          warn(\"Unimplemented border style: beveled\");\n          break;\n\n        case AnnotationBorderStyleType.INSET:\n          warn(\"Unimplemented border style: inset\");\n          break;\n\n        case AnnotationBorderStyleType.UNDERLINE:\n          container.style.borderBottomStyle = \"solid\";\n          break;\n\n        default:\n          break;\n      }\n\n      const borderColor = data.borderColor || null;\n      if (borderColor) {\n        this.#hasBorder = true;\n        container.style.borderColor = Util.makeHexColor(\n          borderColor[0] | 0,\n          borderColor[1] | 0,\n          borderColor[2] | 0\n        );\n      } else {\n        // Transparent (invisible) border, so do not draw it at all.\n        container.style.borderWidth = 0;\n      }\n    }\n\n    container.style.left = `${(100 * (rect[0] - pageX)) / pageWidth}%`;\n    container.style.top = `${(100 * (rect[1] - pageY)) / pageHeight}%`;\n\n    const { rotation } = data;\n    if (data.hasOwnCanvas || rotation === 0) {\n      container.style.width = `${(100 * width) / pageWidth}%`;\n      container.style.height = `${(100 * height) / pageHeight}%`;\n    } else {\n      this.setRotation(rotation, container);\n    }\n\n    return container;\n  }\n\n  setRotation(angle, container = this.container) {\n    if (!this.data.rect) {\n      return;\n    }\n    const { pageWidth, pageHeight } = this.parent.viewport.rawDims;\n    const { width, height } = getRectDims(this.data.rect);\n\n    let elementWidth, elementHeight;\n    if (angle % 180 === 0) {\n      elementWidth = (100 * width) / pageWidth;\n      elementHeight = (100 * height) / pageHeight;\n    } else {\n      elementWidth = (100 * height) / pageWidth;\n      elementHeight = (100 * width) / pageHeight;\n    }\n\n    container.style.width = `${elementWidth}%`;\n    container.style.height = `${elementHeight}%`;\n\n    container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n  }\n\n  get _commonActions() {\n    const setColor = (jsName, styleName, event) => {\n      const color = event.detail[jsName];\n      const colorType = color[0];\n      const colorArray = color.slice(1);\n      event.target.style[styleName] =\n        ColorConverters[`${colorType}_HTML`](colorArray);\n      this.annotationStorage.setValue(this.data.id, {\n        [styleName]: ColorConverters[`${colorType}_rgb`](colorArray),\n      });\n    };\n\n    return shadow(this, \"_commonActions\", {\n      display: event => {\n        const { display } = event.detail;\n        // See scripting/constants.js for the values of `Display`.\n        // 0 = visible, 1 = hidden, 2 = noPrint and 3 = noView.\n        const hidden = display % 2 === 1;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noView: hidden,\n          noPrint: display === 1 || display === 2,\n        });\n      },\n      print: event => {\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: !event.detail.print,\n        });\n      },\n      hidden: event => {\n        const { hidden } = event.detail;\n        this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n        this.annotationStorage.setValue(this.data.id, {\n          noPrint: hidden,\n          noView: hidden,\n        });\n      },\n      focus: event => {\n        setTimeout(() => event.target.focus({ preventScroll: false }), 0);\n      },\n      userName: event => {\n        // tooltip\n        event.target.title = event.detail.userName;\n      },\n      readonly: event => {\n        event.target.disabled = event.detail.readonly;\n      },\n      required: event => {\n        this._setRequired(event.target, event.detail.required);\n      },\n      bgColor: event => {\n        setColor(\"bgColor\", \"backgroundColor\", event);\n      },\n      fillColor: event => {\n        setColor(\"fillColor\", \"backgroundColor\", event);\n      },\n      fgColor: event => {\n        setColor(\"fgColor\", \"color\", event);\n      },\n      textColor: event => {\n        setColor(\"textColor\", \"color\", event);\n      },\n      borderColor: event => {\n        setColor(\"borderColor\", \"borderColor\", event);\n      },\n      strokeColor: event => {\n        setColor(\"strokeColor\", \"borderColor\", event);\n      },\n      rotation: event => {\n        const angle = event.detail.rotation;\n        this.setRotation(angle);\n        this.annotationStorage.setValue(this.data.id, {\n          rotation: angle,\n        });\n      },\n    });\n  }\n\n  _dispatchEventFromSandbox(actions, jsEvent) {\n    const commonActions = this._commonActions;\n    for (const name of Object.keys(jsEvent.detail)) {\n      const action = actions[name] || commonActions[name];\n      action?.(jsEvent);\n    }\n  }\n\n  _setDefaultPropertiesFromJS(element) {\n    if (!this.enableScripting) {\n      return;\n    }\n\n    // Some properties may have been updated thanks to JS.\n    const storedData = this.annotationStorage.getRawValue(this.data.id);\n    if (!storedData) {\n      return;\n    }\n\n    const commonActions = this._commonActions;\n    for (const [actionName, detail] of Object.entries(storedData)) {\n      const action = commonActions[actionName];\n      if (action) {\n        const eventProxy = {\n          detail: {\n            [actionName]: detail,\n          },\n          target: element,\n        };\n        action(eventProxy);\n        // The action has been consumed: no need to keep it.\n        delete storedData[actionName];\n      }\n    }\n  }\n\n  /**\n   * Create quadrilaterals from the annotation's quadpoints.\n   *\n   * @private\n   * @memberof AnnotationElement\n   */\n  _createQuadrilaterals() {\n    if (!this.container) {\n      return;\n    }\n    const { quadPoints } = this.data;\n    if (!quadPoints) {\n      return;\n    }\n\n    const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n\n    if (quadPoints.length === 1) {\n      const [, { x: trX, y: trY }, { x: blX, y: blY }] = quadPoints[0];\n      if (\n        rectTrX === trX &&\n        rectTrY === trY &&\n        rectBlX === blX &&\n        rectBlY === blY\n      ) {\n        // The quadpoints cover the whole annotation rectangle, so no need to\n        // create a quadrilateral.\n        return;\n      }\n    }\n\n    const { style } = this.container;\n    let svgBuffer;\n    if (this.#hasBorder) {\n      const { borderColor, borderWidth } = style;\n      style.borderWidth = 0;\n      svgBuffer = [\n        \"url('data:image/svg+xml;utf8,\",\n        `<svg xmlns=\"http://www.w3.org/2000/svg\"`,\n        ` preserveAspectRatio=\"none\" viewBox=\"0 0 1 1\">`,\n        `<g fill=\"transparent\" stroke=\"${borderColor}\" stroke-width=\"${borderWidth}\">`,\n      ];\n      this.container.classList.add(\"hasBorder\");\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      this.container.classList.add(\"hasClipPath\");\n    }\n\n    const width = rectTrX - rectBlX;\n    const height = rectTrY - rectBlY;\n\n    const { svgFactory } = this;\n    const svg = svgFactory.createElement(\"svg\");\n    svg.classList.add(\"quadrilateralsContainer\");\n    svg.setAttribute(\"width\", 0);\n    svg.setAttribute(\"height\", 0);\n    const defs = svgFactory.createElement(\"defs\");\n    svg.append(defs);\n    const clipPath = svgFactory.createElement(\"clipPath\");\n    const id = `clippath_${this.data.id}`;\n    clipPath.setAttribute(\"id\", id);\n    clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n    defs.append(clipPath);\n\n    for (const [, { x: trX, y: trY }, { x: blX, y: blY }] of quadPoints) {\n      const rect = svgFactory.createElement(\"rect\");\n      const x = (blX - rectBlX) / width;\n      const y = (rectTrY - trY) / height;\n      const rectWidth = (trX - blX) / width;\n      const rectHeight = (trY - blY) / height;\n      rect.setAttribute(\"x\", x);\n      rect.setAttribute(\"y\", y);\n      rect.setAttribute(\"width\", rectWidth);\n      rect.setAttribute(\"height\", rectHeight);\n      clipPath.append(rect);\n      svgBuffer?.push(\n        `<rect vector-effect=\"non-scaling-stroke\" x=\"${x}\" y=\"${y}\" width=\"${rectWidth}\" height=\"${rectHeight}\"/>`\n      );\n    }\n\n    if (this.#hasBorder) {\n      svgBuffer.push(`</g></svg>')`);\n      style.backgroundImage = svgBuffer.join(\"\");\n    }\n\n    this.container.append(svg);\n    this.container.style.clipPath = `url(#${id})`;\n  }\n\n  /**\n   * Create a popup for the annotation's HTML element. This is used for\n   * annotations that do not have a Popup entry in the dictionary, but\n   * are of a type that works with popups (such as Highlight annotations).\n   *\n   * @private\n   * @memberof AnnotationElement\n   */\n  _createPopup() {\n    const { container, data } = this;\n    container.setAttribute(\"aria-haspopup\", \"dialog\");\n\n    const popup = new PopupAnnotationElement({\n      data: {\n        color: data.color,\n        titleObj: data.titleObj,\n        modificationDate: data.modificationDate,\n        contentsObj: data.contentsObj,\n        richText: data.richText,\n        parentRect: data.rect,\n        borderStyle: 0,\n        id: `popup_${data.id}`,\n        rotation: data.rotation,\n      },\n      parent: this.parent,\n      elements: [this],\n    });\n    this.parent.div.append(popup.render());\n  }\n\n  /**\n   * Render the annotation's HTML element(s).\n   *\n   * @public\n   * @memberof AnnotationElement\n   */\n  render() {\n    unreachable(\"Abstract method `AnnotationElement.render` called\");\n  }\n\n  /**\n   * @private\n   * @returns {Array}\n   */\n  _getElementsByName(name, skipId = null) {\n    const fields = [];\n\n    if (this._fieldObjects) {\n      const fieldObj = this._fieldObjects[name];\n      if (fieldObj) {\n        for (const { page, id, exportValues } of fieldObj) {\n          if (page === -1) {\n            continue;\n          }\n          if (id === skipId) {\n            continue;\n          }\n          const exportValue =\n            typeof exportValues === \"string\" ? exportValues : null;\n\n          const domElement = document.querySelector(\n            `[data-element-id=\"${id}\"]`\n          );\n          if (domElement && !GetElementsByNameSet.has(domElement)) {\n            warn(`_getElementsByName - element not allowed: ${id}`);\n            continue;\n          }\n          fields.push({ id, exportValue, domElement });\n        }\n      }\n      return fields;\n    }\n    // Fallback to a regular DOM lookup, to ensure that the standalone\n    // viewer components won't break.\n    for (const domElement of document.getElementsByName(name)) {\n      const { exportValue } = domElement;\n      const id = domElement.getAttribute(\"data-element-id\");\n      if (id === skipId) {\n        continue;\n      }\n      if (!GetElementsByNameSet.has(domElement)) {\n        continue;\n      }\n      fields.push({ id, exportValue, domElement });\n    }\n    return fields;\n  }\n\n  show() {\n    if (this.container) {\n      this.container.hidden = false;\n    }\n    this.popup?.maybeShow();\n  }\n\n  hide() {\n    if (this.container) {\n      this.container.hidden = true;\n    }\n    this.popup?.forceHide();\n  }\n\n  /**\n   * Get the HTML element(s) which can trigger a popup when clicked or hovered.\n   *\n   * @public\n   * @memberof AnnotationElement\n   * @returns {Array<HTMLElement>|HTMLElement} An array of elements or an\n   *          element.\n   */\n  getElementsToTriggerPopup() {\n    return this.container;\n  }\n\n  addHighlightArea() {\n    const triggers = this.getElementsToTriggerPopup();\n    if (Array.isArray(triggers)) {\n      for (const element of triggers) {\n        element.classList.add(\"highlightArea\");\n      }\n    } else {\n      triggers.classList.add(\"highlightArea\");\n    }\n  }\n\n  _editOnDoubleClick() {\n    const {\n      annotationEditorType: mode,\n      data: { id: editId },\n    } = this;\n    this.container.addEventListener(\"dblclick\", () => {\n      this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n        source: this,\n        mode,\n        editId,\n      });\n    });\n  }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters, options = null) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: !!options?.ignoreBorder,\n      createQuadrilaterals: true,\n    });\n    this.isTooltipOnly = parameters.data.isTooltipOnly;\n  }\n\n  render() {\n    const { data, linkService } = this;\n    const link = document.createElement(\"a\");\n    link.setAttribute(\"data-element-id\", data.id);\n    let isBound = false;\n\n    if (data.url) {\n      linkService.addLinkAttributes(link, data.url, data.newWindow);\n      isBound = true;\n    } else if (data.action) {\n      this._bindNamedAction(link, data.action);\n      isBound = true;\n    } else if (data.attachment) {\n      this._bindAttachment(link, data.attachment);\n      isBound = true;\n    } else if (data.setOCGState) {\n      this.#bindSetOCGState(link, data.setOCGState);\n      isBound = true;\n    } else if (data.dest) {\n      this._bindLink(link, data.dest);\n      isBound = true;\n    } else {\n      if (\n        data.actions &&\n        (data.actions.Action ||\n          data.actions[\"Mouse Up\"] ||\n          data.actions[\"Mouse Down\"]) &&\n        this.enableScripting &&\n        this.hasJSActions\n      ) {\n        this._bindJSAction(link, data);\n        isBound = true;\n      }\n\n      if (data.resetForm) {\n        this._bindResetFormAction(link, data.resetForm);\n        isBound = true;\n      } else if (this.isTooltipOnly && !isBound) {\n        this._bindLink(link, \"\");\n        isBound = true;\n      }\n    }\n\n    this.container.classList.add(\"linkAnnotation\");\n    if (isBound) {\n      this.container.append(link);\n    }\n\n    return this.container;\n  }\n\n  #setInternalLink() {\n    this.container.setAttribute(\"data-internal-link\", \"\");\n  }\n\n  /**\n   * Bind internal links to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} destination\n   * @memberof LinkAnnotationElement\n   */\n  _bindLink(link, destination) {\n    link.href = this.linkService.getDestinationHash(destination);\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.goToDestination(destination);\n      }\n      return false;\n    };\n    if (destination || destination === /* isTooltipOnly = */ \"\") {\n      this.#setInternalLink();\n    }\n  }\n\n  /**\n   * Bind named actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} action\n   * @memberof LinkAnnotationElement\n   */\n  _bindNamedAction(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n    this.#setInternalLink();\n  }\n\n  /**\n   * Bind attachments to the link element.\n   * @param {Object} link\n   * @param {Object} attachment\n   */\n  _bindAttachment(link, attachment) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.downloadManager?.openOrDownloadData(\n        this.container,\n        attachment.content,\n        attachment.filename\n      );\n      return false;\n    };\n    this.#setInternalLink();\n  }\n\n  /**\n   * Bind SetOCGState actions to the link element.\n   * @param {Object} link\n   * @param {Object} action\n   */\n  #bindSetOCGState(link, action) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    link.onclick = () => {\n      this.linkService.executeSetOCGState(action);\n      return false;\n    };\n    this.#setInternalLink();\n  }\n\n  /**\n   * Bind JS actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} data\n   * @memberof LinkAnnotationElement\n   */\n  _bindJSAction(link, data) {\n    link.href = this.linkService.getAnchorUrl(\"\");\n    const map = new Map([\n      [\"Action\", \"onclick\"],\n      [\"Mouse Up\", \"onmouseup\"],\n      [\"Mouse Down\", \"onmousedown\"],\n    ]);\n    for (const name of Object.keys(data.actions)) {\n      const jsName = map.get(name);\n      if (!jsName) {\n        continue;\n      }\n      link[jsName] = () => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: data.id,\n            name,\n          },\n        });\n        return false;\n      };\n    }\n\n    if (!link.onclick) {\n      link.onclick = () => false;\n    }\n    this.#setInternalLink();\n  }\n\n  _bindResetFormAction(link, resetForm) {\n    const otherClickAction = link.onclick;\n    if (!otherClickAction) {\n      link.href = this.linkService.getAnchorUrl(\"\");\n    }\n    this.#setInternalLink();\n\n    if (!this._fieldObjects) {\n      warn(\n        `_bindResetFormAction - \"resetForm\" action not supported, ` +\n          \"ensure that the `fieldObjects` parameter is provided.\"\n      );\n      if (!otherClickAction) {\n        link.onclick = () => false;\n      }\n      return;\n    }\n\n    link.onclick = () => {\n      otherClickAction?.();\n\n      const {\n        fields: resetFormFields,\n        refs: resetFormRefs,\n        include,\n      } = resetForm;\n\n      const allFields = [];\n      if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n        const fieldIds = new Set(resetFormRefs);\n        for (const fieldName of resetFormFields) {\n          const fields = this._fieldObjects[fieldName] || [];\n          for (const { id } of fields) {\n            fieldIds.add(id);\n          }\n        }\n        for (const fields of Object.values(this._fieldObjects)) {\n          for (const field of fields) {\n            if (fieldIds.has(field.id) === include) {\n              allFields.push(field);\n            }\n          }\n        }\n      } else {\n        for (const fields of Object.values(this._fieldObjects)) {\n          allFields.push(...fields);\n        }\n      }\n\n      const storage = this.annotationStorage;\n      const allIds = [];\n      for (const field of allFields) {\n        const { id } = field;\n        allIds.push(id);\n        switch (field.type) {\n          case \"text\": {\n            const value = field.defaultValue || \"\";\n            storage.setValue(id, { value });\n            break;\n          }\n          case \"checkbox\":\n          case \"radiobutton\": {\n            const value = field.defaultValue === field.exportValues;\n            storage.setValue(id, { value });\n            break;\n          }\n          case \"combobox\":\n          case \"listbox\": {\n            const value = field.defaultValue || \"\";\n            storage.setValue(id, { value });\n            break;\n          }\n          default:\n            continue;\n        }\n\n        const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n        if (!domElement) {\n          continue;\n        } else if (!GetElementsByNameSet.has(domElement)) {\n          warn(`_bindResetFormAction - element not allowed: ${id}`);\n          continue;\n        }\n        domElement.dispatchEvent(new Event(\"resetform\"));\n      }\n\n      if (this.enableScripting) {\n        // Update the values in the sandbox.\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: \"app\",\n            ids: allIds,\n            name: \"ResetForm\",\n          },\n        });\n      }\n\n      return false;\n    };\n  }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true });\n  }\n\n  render() {\n    this.container.classList.add(\"textAnnotation\");\n\n    const image = document.createElement(\"img\");\n    image.src =\n      this.imageResourcesPath +\n      \"annotation-\" +\n      this.data.name.toLowerCase() +\n      \".svg\";\n    image.alt = \"[{{type}} Annotation]\";\n    image.dataset.l10nId = \"text_annotation_type\";\n    image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.append(image);\n    return this.container;\n  }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n  render() {\n    // Show only the container for unsupported field types.\n    if (this.data.alternativeText) {\n      this.container.title = this.data.alternativeText;\n    }\n\n    return this.container;\n  }\n\n  showElementAndHideCanvas(element) {\n    if (this.data.hasOwnCanvas) {\n      if (element.previousSibling?.nodeName === \"CANVAS\") {\n        element.previousSibling.hidden = true;\n      }\n      element.hidden = false;\n    }\n  }\n\n  _getKeyModifier(event) {\n    const { isWin, isMac } = FeatureTest.platform;\n    return (isWin && event.ctrlKey) || (isMac && event.metaKey);\n  }\n\n  _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n    if (baseName.includes(\"mouse\")) {\n      // Mouse events\n      element.addEventListener(baseName, event => {\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n            shift: event.shiftKey,\n            modifier: this._getKeyModifier(event),\n          },\n        });\n      });\n    } else {\n      // Non-mouse events\n      element.addEventListener(baseName, event => {\n        if (baseName === \"blur\") {\n          if (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          elementData.focused = false;\n        } else if (baseName === \"focus\") {\n          if (elementData.focused) {\n            return;\n          }\n          elementData.focused = true;\n        }\n\n        if (!valueGetter) {\n          return;\n        }\n\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id: this.data.id,\n            name: eventName,\n            value: valueGetter(event),\n          },\n        });\n      });\n    }\n  }\n\n  _setEventListeners(element, elementData, names, getter) {\n    for (const [baseName, eventName] of names) {\n      if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n        if (eventName === \"Focus\" || eventName === \"Blur\") {\n          elementData ||= { focused: false };\n        }\n        this._setEventListener(\n          element,\n          elementData,\n          baseName,\n          eventName,\n          getter\n        );\n        if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n          // Ensure that elementData will have the correct value.\n          this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n        } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n          this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n        }\n      }\n    }\n  }\n\n  _setBackgroundColor(element) {\n    const color = this.data.backgroundColor || null;\n    element.style.backgroundColor =\n      color === null\n        ? \"transparent\"\n        : Util.makeHexColor(color[0], color[1], color[2]);\n  }\n\n  /**\n   * Apply text styles to the text in the element.\n   *\n   * @private\n   * @param {HTMLDivElement} element\n   * @memberof TextWidgetAnnotationElement\n   */\n  _setTextStyle(element) {\n    const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n    const { fontColor } = this.data.defaultAppearanceData;\n    const fontSize =\n      this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n\n    const style = element.style;\n\n    // TODO: If the font-size is zero, calculate it based on the height and\n    //       width of the element.\n    // Not setting `style.fontSize` will use the default font-size for now.\n\n    // We don't use the font, as specified in the PDF document, for the <input>\n    // element. Hence using the original `fontSize` could look bad, which is why\n    // it's instead based on the field height.\n    // If the height is \"big\" then it could lead to a too big font size\n    // so in this case use the one we've in the pdf (hence the min).\n    let computedFontSize;\n    const BORDER_SIZE = 2;\n    const roundToOneDecimal = x => Math.round(10 * x) / 10;\n    if (this.data.multiLine) {\n      const height = Math.abs(\n        this.data.rect[3] - this.data.rect[1] - BORDER_SIZE\n      );\n      const numberOfLines = Math.round(height / (LINE_FACTOR * fontSize)) || 1;\n      const lineHeight = height / numberOfLines;\n      computedFontSize = Math.min(\n        fontSize,\n        roundToOneDecimal(lineHeight / LINE_FACTOR)\n      );\n    } else {\n      const height = Math.abs(\n        this.data.rect[3] - this.data.rect[1] - BORDER_SIZE\n      );\n      computedFontSize = Math.min(\n        fontSize,\n        roundToOneDecimal(height / LINE_FACTOR)\n      );\n    }\n    style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n\n    style.color = Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n    if (this.data.textAlignment !== null) {\n      style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n  }\n\n  _setRequired(element, isRequired) {\n    if (isRequired) {\n      element.setAttribute(\"required\", true);\n    } else {\n      element.removeAttribute(\"required\");\n    }\n    element.setAttribute(\"aria-required\", isRequired);\n  }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    const isRenderable =\n      parameters.renderForms ||\n      (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n    super(parameters, { isRenderable });\n  }\n\n  setPropertyOnSiblings(base, key, value, keyInStorage) {\n    const storage = this.annotationStorage;\n    for (const element of this._getElementsByName(\n      base.name,\n      /* skipId = */ base.id\n    )) {\n      if (element.domElement) {\n        element.domElement[key] = value;\n      }\n      storage.setValue(element.id, { [keyInStorage]: value });\n    }\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    this.container.classList.add(\"textWidgetAnnotation\");\n\n    let element = null;\n    if (this.renderForms) {\n      // NOTE: We cannot set the values using `element.value` below, since it\n      //       prevents the AnnotationLayer rasterizer in `test/driver.js`\n      //       from parsing the elements correctly for the reference tests.\n      const storedData = storage.getValue(id, {\n        value: this.data.fieldValue,\n      });\n      let textContent = storedData.value || \"\";\n      const maxLen = storage.getValue(id, {\n        charLimit: this.data.maxLen,\n      }).charLimit;\n      if (maxLen && textContent.length > maxLen) {\n        textContent = textContent.slice(0, maxLen);\n      }\n\n      let fieldFormattedValues =\n        storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n      if (fieldFormattedValues && this.data.comb) {\n        fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n      }\n\n      const elementData = {\n        userValue: textContent,\n        formattedValue: fieldFormattedValues,\n        lastCommittedValue: null,\n        commitKey: 1,\n        focused: false,\n      };\n\n      if (this.data.multiLine) {\n        element = document.createElement(\"textarea\");\n        element.textContent = fieldFormattedValues ?? textContent;\n        if (this.data.doNotScroll) {\n          element.style.overflowY = \"hidden\";\n        }\n      } else {\n        element = document.createElement(\"input\");\n        element.type = \"text\";\n        element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n        if (this.data.doNotScroll) {\n          element.style.overflowX = \"hidden\";\n        }\n      }\n      if (this.data.hasOwnCanvas) {\n        element.hidden = true;\n      }\n      GetElementsByNameSet.add(element);\n      element.setAttribute(\"data-element-id\", id);\n\n      element.disabled = this.data.readOnly;\n      element.name = this.data.fieldName;\n      element.tabIndex = DEFAULT_TAB_INDEX;\n\n      this._setRequired(element, this.data.required);\n\n      if (maxLen) {\n        element.maxLength = maxLen;\n      }\n\n      element.addEventListener(\"input\", event => {\n        storage.setValue(id, { value: event.target.value });\n        this.setPropertyOnSiblings(\n          element,\n          \"value\",\n          event.target.value,\n          \"value\"\n        );\n        elementData.formattedValue = null;\n      });\n\n      element.addEventListener(\"resetform\", event => {\n        const defaultValue = this.data.defaultFieldValue ?? \"\";\n        element.value = elementData.userValue = defaultValue;\n        elementData.formattedValue = null;\n      });\n\n      let blurListener = event => {\n        const { formattedValue } = elementData;\n        if (formattedValue !== null && formattedValue !== undefined) {\n          event.target.value = formattedValue;\n        }\n        // Reset the cursor position to the start of the field (issue 12359).\n        event.target.scrollLeft = 0;\n      };\n\n      if (this.enableScripting && this.hasJSActions) {\n        element.addEventListener(\"focus\", event => {\n          if (elementData.focused) {\n            return;\n          }\n          const { target } = event;\n          if (elementData.userValue) {\n            target.value = elementData.userValue;\n          }\n          elementData.lastCommittedValue = target.value;\n          elementData.commitKey = 1;\n          elementData.focused = true;\n        });\n\n        element.addEventListener(\"updatefromsandbox\", jsEvent => {\n          this.showElementAndHideCanvas(jsEvent.target);\n          const actions = {\n            value(event) {\n              elementData.userValue = event.detail.value ?? \"\";\n              storage.setValue(id, { value: elementData.userValue.toString() });\n              event.target.value = elementData.userValue;\n            },\n            formattedValue(event) {\n              const { formattedValue } = event.detail;\n              elementData.formattedValue = formattedValue;\n              if (\n                formattedValue !== null &&\n                formattedValue !== undefined &&\n                event.target !== document.activeElement\n              ) {\n                // Input hasn't the focus so display formatted string\n                event.target.value = formattedValue;\n              }\n              storage.setValue(id, {\n                formattedValue,\n              });\n            },\n            selRange(event) {\n              event.target.setSelectionRange(...event.detail.selRange);\n            },\n            charLimit: event => {\n              const { charLimit } = event.detail;\n              const { target } = event;\n              if (charLimit === 0) {\n                target.removeAttribute(\"maxLength\");\n                return;\n              }\n\n              target.setAttribute(\"maxLength\", charLimit);\n              let value = elementData.userValue;\n              if (!value || value.length <= charLimit) {\n                return;\n              }\n              value = value.slice(0, charLimit);\n              target.value = elementData.userValue = value;\n              storage.setValue(id, { value });\n\n              this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n                source: this,\n                detail: {\n                  id,\n                  name: \"Keystroke\",\n                  value,\n                  willCommit: true,\n                  commitKey: 1,\n                  selStart: target.selectionStart,\n                  selEnd: target.selectionEnd,\n                },\n              });\n            },\n          };\n          this._dispatchEventFromSandbox(actions, jsEvent);\n        });\n\n        // Even if the field hasn't any actions\n        // leaving it can still trigger some actions with Calculate\n        element.addEventListener(\"keydown\", event => {\n          elementData.commitKey = 1;\n          // If the key is one of Escape, Enter then the data are committed.\n          // If we've a Tab then data will be committed on blur.\n          let commitKey = -1;\n          if (event.key === \"Escape\") {\n            commitKey = 0;\n          } else if (event.key === \"Enter\" && !this.data.multiLine) {\n            // When we've a multiline field, \"Enter\" key is a key as the other\n            // hence we don't commit the data (Acrobat behaves the same way)\n            // (see issue #15627).\n            commitKey = 2;\n          } else if (event.key === \"Tab\") {\n            elementData.commitKey = 3;\n          }\n          if (commitKey === -1) {\n            return;\n          }\n          const { value } = event.target;\n          if (elementData.lastCommittedValue === value) {\n            return;\n          }\n          elementData.lastCommittedValue = value;\n          // Save the entered value\n          elementData.userValue = value;\n          this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n            source: this,\n            detail: {\n              id,\n              name: \"Keystroke\",\n              value,\n              willCommit: true,\n              commitKey,\n              selStart: event.target.selectionStart,\n              selEnd: event.target.selectionEnd,\n            },\n          });\n        });\n        const _blurListener = blurListener;\n        blurListener = null;\n        element.addEventListener(\"blur\", event => {\n          if (!elementData.focused || !event.relatedTarget) {\n            return;\n          }\n          elementData.focused = false;\n          const { value } = event.target;\n          elementData.userValue = value;\n          if (elementData.lastCommittedValue !== value) {\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                willCommit: true,\n                commitKey: elementData.commitKey,\n                selStart: event.target.selectionStart,\n                selEnd: event.target.selectionEnd,\n              },\n            });\n          }\n          _blurListener(event);\n        });\n\n        if (this.data.actions?.Keystroke) {\n          element.addEventListener(\"beforeinput\", event => {\n            elementData.lastCommittedValue = null;\n            const { data, target } = event;\n            const { value, selectionStart, selectionEnd } = target;\n\n            let selStart = selectionStart,\n              selEnd = selectionEnd;\n\n            switch (event.inputType) {\n              // https://rawgit.com/w3c/input-events/v1/index.html#interface-InputEvent-Attributes\n              case \"deleteWordBackward\": {\n                const match = value\n                  .substring(0, selectionStart)\n                  .match(/\\w*[^\\w]*$/);\n                if (match) {\n                  selStart -= match[0].length;\n                }\n                break;\n              }\n              case \"deleteWordForward\": {\n                const match = value\n                  .substring(selectionStart)\n                  .match(/^[^\\w]*\\w*/);\n                if (match) {\n                  selEnd += match[0].length;\n                }\n                break;\n              }\n              case \"deleteContentBackward\":\n                if (selectionStart === selectionEnd) {\n                  selStart -= 1;\n                }\n                break;\n              case \"deleteContentForward\":\n                if (selectionStart === selectionEnd) {\n                  selEnd += 1;\n                }\n                break;\n            }\n\n            // We handle the event ourselves.\n            event.preventDefault();\n            this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n              source: this,\n              detail: {\n                id,\n                name: \"Keystroke\",\n                value,\n                change: data || \"\",\n                willCommit: false,\n                selStart,\n                selEnd,\n              },\n            });\n          });\n        }\n\n        this._setEventListeners(\n          element,\n          elementData,\n          [\n            [\"focus\", \"Focus\"],\n            [\"blur\", \"Blur\"],\n            [\"mousedown\", \"Mouse Down\"],\n            [\"mouseenter\", \"Mouse Enter\"],\n            [\"mouseleave\", \"Mouse Exit\"],\n            [\"mouseup\", \"Mouse Up\"],\n          ],\n          event => event.target.value\n        );\n      }\n\n      if (blurListener) {\n        element.addEventListener(\"blur\", blurListener);\n      }\n\n      if (this.data.comb) {\n        const fieldWidth = this.data.rect[2] - this.data.rect[0];\n        const combWidth = fieldWidth / maxLen;\n\n        element.classList.add(\"comb\");\n        element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n      }\n    } else {\n      element = document.createElement(\"div\");\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = \"middle\";\n      element.style.display = \"table-cell\";\n    }\n\n    this._setTextStyle(element);\n    this._setBackgroundColor(element);\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n}\n\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: !!parameters.data.hasOwnCanvas });\n  }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.exportValue === data.fieldValue,\n    }).value;\n    if (typeof value === \"string\") {\n      // The value has been changed through js and set in annotationStorage.\n      value = value !== \"Off\";\n      storage.setValue(id, { value });\n    }\n\n    this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"checkbox\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.setAttribute(\"exportValue\", data.exportValue);\n    element.tabIndex = DEFAULT_TAB_INDEX;\n\n    element.addEventListener(\"change\", event => {\n      const { name, checked } = event.target;\n      for (const checkbox of this._getElementsByName(name, /* skipId = */ id)) {\n        const curChecked = checked && checkbox.exportValue === data.exportValue;\n        if (checkbox.domElement) {\n          checkbox.domElement.checked = curChecked;\n        }\n        storage.setValue(checkbox.id, { value: curChecked });\n      }\n      storage.setValue(id, { value: checked });\n    });\n\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue || \"Off\";\n      event.target.checked = defaultValue === data.exportValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            event.target.checked = event.detail.value !== \"Off\";\n            storage.setValue(id, { value: event.target.checked });\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(\n        element,\n        null,\n        [\n          [\"change\", \"Validate\"],\n          [\"change\", \"Action\"],\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n        ],\n        event => event.target.checked\n      );\n    }\n\n    this._setBackgroundColor(element);\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n    const storage = this.annotationStorage;\n    const data = this.data;\n    const id = data.id;\n    let value = storage.getValue(id, {\n      value: data.fieldValue === data.buttonValue,\n    }).value;\n    if (typeof value === \"string\") {\n      // The value has been changed through js and set in annotationStorage.\n      value = value !== data.buttonValue;\n      storage.setValue(id, { value });\n    }\n\n    const element = document.createElement(\"input\");\n    GetElementsByNameSet.add(element);\n    element.setAttribute(\"data-element-id\", id);\n\n    element.disabled = data.readOnly;\n    this._setRequired(element, this.data.required);\n    element.type = \"radio\";\n    element.name = data.fieldName;\n    if (value) {\n      element.setAttribute(\"checked\", true);\n    }\n    element.tabIndex = DEFAULT_TAB_INDEX;\n\n    element.addEventListener(\"change\", event => {\n      const { name, checked } = event.target;\n      for (const radio of this._getElementsByName(name, /* skipId = */ id)) {\n        storage.setValue(radio.id, { value: false });\n      }\n      storage.setValue(id, { value: checked });\n    });\n\n    element.addEventListener(\"resetform\", event => {\n      const defaultValue = data.defaultFieldValue;\n      event.target.checked =\n        defaultValue !== null &&\n        defaultValue !== undefined &&\n        defaultValue === data.buttonValue;\n    });\n\n    if (this.enableScripting && this.hasJSActions) {\n      const pdfButtonValue = data.buttonValue;\n      element.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value: event => {\n            const checked = pdfButtonValue === event.detail.value;\n            for (const radio of this._getElementsByName(event.target.name)) {\n              const curChecked = checked && radio.id === id;\n              if (radio.domElement) {\n                radio.domElement.checked = curChecked;\n              }\n              storage.setValue(radio.id, { value: curChecked });\n            }\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      this._setEventListeners(\n        element,\n        null,\n        [\n          [\"change\", \"Validate\"],\n          [\"change\", \"Action\"],\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n        ],\n        event => event.target.checked\n      );\n    }\n\n    this._setBackgroundColor(element);\n    this._setDefaultPropertiesFromJS(element);\n\n    this.container.append(element);\n    return this.container;\n  }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { ignoreBorder: parameters.data.hasAppearance });\n  }\n\n  render() {\n    // The rendering and functionality of a push button widget annotation is\n    // equal to that of a link annotation, but may have more functionality, such\n    // as performing actions on form fields (resetting, submitting, et cetera).\n    const container = super.render();\n    container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n\n    if (this.data.alternativeText) {\n      container.title = this.data.alternativeText;\n    }\n\n    const linkElement = container.lastChild;\n    if (this.enableScripting && this.hasJSActions && linkElement) {\n      this._setDefaultPropertiesFromJS(linkElement);\n\n      linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        this._dispatchEventFromSandbox({}, jsEvent);\n      });\n    }\n\n    return container;\n  }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: parameters.renderForms });\n  }\n\n  render() {\n    this.container.classList.add(\"choiceWidgetAnnotation\");\n    const storage = this.annotationStorage;\n    const id = this.data.id;\n\n    const storedData = storage.getValue(id, {\n      value: this.data.fieldValue,\n    });\n\n    const selectElement = document.createElement(\"select\");\n    GetElementsByNameSet.add(selectElement);\n    selectElement.setAttribute(\"data-element-id\", id);\n\n    selectElement.disabled = this.data.readOnly;\n    this._setRequired(selectElement, this.data.required);\n    selectElement.name = this.data.fieldName;\n    selectElement.tabIndex = DEFAULT_TAB_INDEX;\n\n    let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n\n    if (!this.data.combo) {\n      // List boxes have a size and (optionally) multiple selection.\n      selectElement.size = this.data.options.length;\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n\n    selectElement.addEventListener(\"resetform\", event => {\n      const defaultValue = this.data.defaultFieldValue;\n      for (const option of selectElement.options) {\n        option.selected = option.value === defaultValue;\n      }\n    });\n\n    // Insert the options into the choice field.\n    for (const option of this.data.options) {\n      const optionElement = document.createElement(\"option\");\n      optionElement.textContent = option.displayValue;\n      optionElement.value = option.exportValue;\n      if (storedData.value.includes(option.exportValue)) {\n        optionElement.setAttribute(\"selected\", true);\n        addAnEmptyEntry = false;\n      }\n      selectElement.append(optionElement);\n    }\n\n    let removeEmptyEntry = null;\n    if (addAnEmptyEntry) {\n      const noneOptionElement = document.createElement(\"option\");\n      noneOptionElement.value = \" \";\n      noneOptionElement.setAttribute(\"hidden\", true);\n      noneOptionElement.setAttribute(\"selected\", true);\n      selectElement.prepend(noneOptionElement);\n\n      removeEmptyEntry = () => {\n        noneOptionElement.remove();\n        selectElement.removeEventListener(\"input\", removeEmptyEntry);\n        removeEmptyEntry = null;\n      };\n      selectElement.addEventListener(\"input\", removeEmptyEntry);\n    }\n\n    const getValue = isExport => {\n      const name = isExport ? \"value\" : \"textContent\";\n      const { options, multiple } = selectElement;\n      if (!multiple) {\n        return options.selectedIndex === -1\n          ? null\n          : options[options.selectedIndex][name];\n      }\n      return Array.prototype.filter\n        .call(options, option => option.selected)\n        .map(option => option[name]);\n    };\n\n    let selectedValues = getValue(/* isExport */ false);\n\n    const getItems = event => {\n      const options = event.target.options;\n      return Array.prototype.map.call(options, option => {\n        return { displayValue: option.textContent, exportValue: option.value };\n      });\n    };\n\n    if (this.enableScripting && this.hasJSActions) {\n      selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n        const actions = {\n          value(event) {\n            removeEmptyEntry?.();\n            const value = event.detail.value;\n            const values = new Set(Array.isArray(value) ? value : [value]);\n            for (const option of selectElement.options) {\n              option.selected = values.has(option.value);\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          multipleSelection(event) {\n            selectElement.multiple = true;\n          },\n          remove(event) {\n            const options = selectElement.options;\n            const index = event.detail.remove;\n            options[index].selected = false;\n            selectElement.remove(index);\n            if (options.length > 0) {\n              const i = Array.prototype.findIndex.call(\n                options,\n                option => option.selected\n              );\n              if (i === -1) {\n                options[0].selected = true;\n              }\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          clear(event) {\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            storage.setValue(id, { value: null, items: [] });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          insert(event) {\n            const { index, displayValue, exportValue } = event.detail.insert;\n            const selectChild = selectElement.children[index];\n            const optionElement = document.createElement(\"option\");\n            optionElement.textContent = displayValue;\n            optionElement.value = exportValue;\n\n            if (selectChild) {\n              selectChild.before(optionElement);\n            } else {\n              selectElement.append(optionElement);\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          items(event) {\n            const { items } = event.detail;\n            while (selectElement.length !== 0) {\n              selectElement.remove(0);\n            }\n            for (const item of items) {\n              const { displayValue, exportValue } = item;\n              const optionElement = document.createElement(\"option\");\n              optionElement.textContent = displayValue;\n              optionElement.value = exportValue;\n              selectElement.append(optionElement);\n            }\n            if (selectElement.options.length > 0) {\n              selectElement.options[0].selected = true;\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n              items: getItems(event),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          indices(event) {\n            const indices = new Set(event.detail.indices);\n            for (const option of event.target.options) {\n              option.selected = indices.has(option.index);\n            }\n            storage.setValue(id, {\n              value: getValue(/* isExport */ true),\n            });\n            selectedValues = getValue(/* isExport */ false);\n          },\n          editable(event) {\n            event.target.disabled = !event.detail.editable;\n          },\n        };\n        this._dispatchEventFromSandbox(actions, jsEvent);\n      });\n\n      selectElement.addEventListener(\"input\", event => {\n        const exportValue = getValue(/* isExport */ true);\n        storage.setValue(id, { value: exportValue });\n\n        event.preventDefault();\n\n        this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n          source: this,\n          detail: {\n            id,\n            name: \"Keystroke\",\n            value: selectedValues,\n            changeEx: exportValue,\n            willCommit: false,\n            commitKey: 1,\n            keyDown: false,\n          },\n        });\n      });\n\n      this._setEventListeners(\n        selectElement,\n        null,\n        [\n          [\"focus\", \"Focus\"],\n          [\"blur\", \"Blur\"],\n          [\"mousedown\", \"Mouse Down\"],\n          [\"mouseenter\", \"Mouse Enter\"],\n          [\"mouseleave\", \"Mouse Exit\"],\n          [\"mouseup\", \"Mouse Up\"],\n          [\"input\", \"Action\"],\n          [\"input\", \"Validate\"],\n        ],\n        event => event.target.value\n      );\n    } else {\n      selectElement.addEventListener(\"input\", function (event) {\n        storage.setValue(id, { value: getValue(/* isExport */ true) });\n      });\n    }\n\n    if (this.data.combo) {\n      this._setTextStyle(selectElement);\n    } else {\n      // Just use the default font size...\n      // it's a bit hard to guess what is a good size.\n    }\n    this._setBackgroundColor(selectElement);\n    this._setDefaultPropertiesFromJS(selectElement);\n\n    this.container.append(selectElement);\n    return this.container;\n  }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    const { data, elements } = parameters;\n    super(parameters, { isRenderable: AnnotationElement._hasPopupData(data) });\n    this.elements = elements;\n  }\n\n  render() {\n    this.container.classList.add(\"popupAnnotation\");\n\n    const popup = new PopupElement({\n      container: this.container,\n      color: this.data.color,\n      titleObj: this.data.titleObj,\n      modificationDate: this.data.modificationDate,\n      contentsObj: this.data.contentsObj,\n      richText: this.data.richText,\n      rect: this.data.rect,\n      parentRect: this.data.parentRect || null,\n      parent: this.parent,\n      elements: this.elements,\n      open: this.data.open,\n    });\n\n    const elementIds = [];\n    for (const element of this.elements) {\n      element.popup = popup;\n      elementIds.push(element.data.id);\n      element.addHighlightArea();\n    }\n\n    this.container.setAttribute(\n      \"aria-controls\",\n      elementIds.map(id => `${AnnotationPrefix}${id}`).join(\",\")\n    );\n\n    return this.container;\n  }\n}\n\nclass PopupElement {\n  #dateTimePromise = null;\n\n  #boundKeyDown = this.#keyDown.bind(this);\n\n  #boundHide = this.#hide.bind(this);\n\n  #boundShow = this.#show.bind(this);\n\n  #boundToggle = this.#toggle.bind(this);\n\n  #color = null;\n\n  #container = null;\n\n  #contentsObj = null;\n\n  #elements = null;\n\n  #parent = null;\n\n  #parentRect = null;\n\n  #pinned = false;\n\n  #popup = null;\n\n  #rect = null;\n\n  #richText = null;\n\n  #titleObj = null;\n\n  #wasVisible = false;\n\n  constructor({\n    container,\n    color,\n    elements,\n    titleObj,\n    modificationDate,\n    contentsObj,\n    richText,\n    parent,\n    rect,\n    parentRect,\n    open,\n  }) {\n    this.#container = container;\n    this.#titleObj = titleObj;\n    this.#contentsObj = contentsObj;\n    this.#richText = richText;\n    this.#parent = parent;\n    this.#color = color;\n    this.#rect = rect;\n    this.#parentRect = parentRect;\n    this.#elements = elements;\n\n    const dateObject = PDFDateString.toDateObject(modificationDate);\n    if (dateObject) {\n      // The modification date is shown in the popup instead of the creation\n      // date if it is available and can be parsed correctly, which is\n      // consistent with other viewers such as Adobe Acrobat.\n      this.#dateTimePromise = parent.l10n.get(\"annotation_date_string\", {\n        date: dateObject.toLocaleDateString(),\n        time: dateObject.toLocaleTimeString(),\n      });\n    }\n\n    this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n    // Attach the event listeners to the trigger element.\n    for (const element of this.trigger) {\n      element.addEventListener(\"click\", this.#boundToggle);\n      element.addEventListener(\"mouseenter\", this.#boundShow);\n      element.addEventListener(\"mouseleave\", this.#boundHide);\n      element.classList.add(\"popupTriggerArea\");\n    }\n\n    // Attach the event listener to toggle the popup with the keyboard.\n    for (const element of elements) {\n      element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n    }\n\n    this.#container.hidden = true;\n    if (open) {\n      this.#toggle();\n    }\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      // Since the popup is lazily created, we need to ensure that it'll be\n      // created and displayed during reference tests.\n      this.#parent.popupShow.push(async () => {\n        if (this.#container.hidden) {\n          this.#show();\n        }\n        if (this.#dateTimePromise) {\n          await this.#dateTimePromise;\n        }\n      });\n    }\n  }\n\n  render() {\n    if (this.#popup) {\n      return;\n    }\n\n    const {\n      page: { view },\n      viewport: {\n        rawDims: { pageWidth, pageHeight, pageX, pageY },\n      },\n    } = this.#parent;\n    const popup = (this.#popup = document.createElement(\"div\"));\n    popup.className = \"popup\";\n\n    if (this.#color) {\n      const baseColor = (popup.style.outlineColor = Util.makeHexColor(\n        ...this.#color\n      ));\n      if (\n        (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n        CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")\n      ) {\n        popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n      } else {\n        // color-mix isn't supported in some browsers hence this version.\n        // See https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-mix#browser_compatibility\n        // TODO: Use color-mix when it's supported everywhere.\n        // Enlighten the color.\n        const BACKGROUND_ENLIGHT = 0.7;\n        popup.style.backgroundColor = Util.makeHexColor(\n          ...this.#color.map(c =>\n            Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)\n          )\n        );\n      }\n    }\n\n    const header = document.createElement(\"span\");\n    header.className = \"header\";\n    const title = document.createElement(\"h1\");\n    header.append(title);\n    ({ dir: title.dir, str: title.textContent } = this.#titleObj);\n    popup.append(header);\n\n    if (this.#dateTimePromise) {\n      const modificationDate = document.createElement(\"span\");\n      modificationDate.classList.add(\"popupDate\");\n      this.#dateTimePromise.then(localized => {\n        modificationDate.textContent = localized;\n      });\n      header.append(modificationDate);\n    }\n\n    const contentsObj = this.#contentsObj;\n    const richText = this.#richText;\n    if (\n      richText?.str &&\n      (!contentsObj?.str || contentsObj.str === richText.str)\n    ) {\n      XfaLayer.render({\n        xfaHtml: richText.html,\n        intent: \"richText\",\n        div: popup,\n      });\n      popup.lastChild.classList.add(\"richText\", \"popupContent\");\n    } else {\n      const contents = this._formatContents(contentsObj);\n      popup.append(contents);\n    }\n\n    let useParentRect = !!this.#parentRect;\n    let rect = useParentRect ? this.#parentRect : this.#rect;\n    for (const element of this.#elements) {\n      if (!rect || Util.intersect(element.data.rect, rect) !== null) {\n        rect = element.data.rect;\n        useParentRect = true;\n        break;\n      }\n    }\n\n    const normalizedRect = Util.normalizeRect([\n      rect[0],\n      view[3] - rect[1] + view[1],\n      rect[2],\n      view[3] - rect[3] + view[1],\n    ]);\n\n    const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n    const parentWidth = useParentRect\n      ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION\n      : 0;\n    const popupLeft = normalizedRect[0] + parentWidth;\n    const popupTop = normalizedRect[1];\n\n    const { style } = this.#container;\n    style.left = `${(100 * (popupLeft - pageX)) / pageWidth}%`;\n    style.top = `${(100 * (popupTop - pageY)) / pageHeight}%`;\n\n    this.#container.append(popup);\n  }\n\n  /**\n   * Format the contents of the popup by adding newlines where necessary.\n   *\n   * @private\n   * @param {Object<string, string>} contentsObj\n   * @memberof PopupElement\n   * @returns {HTMLParagraphElement}\n   */\n  _formatContents({ str, dir }) {\n    const p = document.createElement(\"p\");\n    p.classList.add(\"popupContent\");\n    p.dir = dir;\n    const lines = str.split(/(?:\\r\\n?|\\n)/);\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      const line = lines[i];\n      p.append(document.createTextNode(line));\n      if (i < ii - 1) {\n        p.append(document.createElement(\"br\"));\n      }\n    }\n    return p;\n  }\n\n  #keyDown(event) {\n    if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n      return;\n    }\n\n    if (event.key === \"Enter\" || (event.key === \"Escape\" && this.#pinned)) {\n      this.#toggle();\n    }\n  }\n\n  /**\n   * Toggle the visibility of the popup.\n   */\n  #toggle() {\n    this.#pinned = !this.#pinned;\n    if (this.#pinned) {\n      this.#show();\n      this.#container.addEventListener(\"click\", this.#boundToggle);\n      this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n    } else {\n      this.#hide();\n      this.#container.removeEventListener(\"click\", this.#boundToggle);\n      this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n    }\n  }\n\n  /**\n   * Show the popup.\n   */\n  #show() {\n    if (!this.#popup) {\n      this.render();\n    }\n    if (!this.isVisible) {\n      this.#container.hidden = false;\n      this.#container.style.zIndex =\n        parseInt(this.#container.style.zIndex) + 1000;\n    } else if (this.#pinned) {\n      this.#container.classList.add(\"focused\");\n    }\n  }\n\n  /**\n   * Hide the popup.\n   */\n  #hide() {\n    this.#container.classList.remove(\"focused\");\n    if (this.#pinned || !this.isVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n    this.#container.style.zIndex =\n      parseInt(this.#container.style.zIndex) - 1000;\n  }\n\n  forceHide() {\n    this.#wasVisible = this.isVisible;\n    if (!this.#wasVisible) {\n      return;\n    }\n    this.#container.hidden = true;\n  }\n\n  maybeShow() {\n    if (!this.#wasVisible) {\n      return;\n    }\n    this.#wasVisible = false;\n    this.#container.hidden = false;\n  }\n\n  get isVisible() {\n    return this.#container.hidden === false;\n  }\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n    this.textContent = parameters.data.textContent;\n    this.textPosition = parameters.data.textPosition;\n    this.annotationEditorType = AnnotationEditorType.FREETEXT;\n  }\n\n  render() {\n    this.container.classList.add(\"freeTextAnnotation\");\n\n    if (this.textContent) {\n      const content = document.createElement(\"div\");\n      content.classList.add(\"annotationTextContent\");\n      content.setAttribute(\"role\", \"comment\");\n      for (const line of this.textContent) {\n        const lineSpan = document.createElement(\"span\");\n        lineSpan.textContent = line;\n        content.append(lineSpan);\n      }\n      this.container.append(content);\n    }\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this._editOnDoubleClick();\n\n    return this.container;\n  }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  #line = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"lineAnnotation\");\n\n    // Create an invisible line with the same starting and ending coordinates\n    // that acts as the trigger for the popup. Only the line itself should\n    // trigger the popup, not the entire container.\n    const data = this.data;\n    const { width, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\n\n    // PDF coordinates are calculated from a bottom left origin, so transform\n    // the line coordinates to a top left origin for the SVG element.\n    const line = (this.#line = this.svgFactory.createElement(\"svg:line\"));\n    line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    line.setAttribute(\"stroke\", \"transparent\");\n    line.setAttribute(\"fill\", \"transparent\");\n\n    svg.append(line);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the line instead\n    // of to the entire container (which is the default).\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#line;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  #square = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"squareAnnotation\");\n\n    // Create an invisible square with the same rectangle that acts as the\n    // trigger for the popup. Only the square itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const { width, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\n\n    // The browser draws half of the borders inside the square and half of\n    // the borders outside the square by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const square = (this.#square = this.svgFactory.createElement(\"svg:rect\"));\n    square.setAttribute(\"x\", borderWidth / 2);\n    square.setAttribute(\"y\", borderWidth / 2);\n    square.setAttribute(\"width\", width - borderWidth);\n    square.setAttribute(\"height\", height - borderWidth);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    square.setAttribute(\"stroke-width\", borderWidth || 1);\n    square.setAttribute(\"stroke\", \"transparent\");\n    square.setAttribute(\"fill\", \"transparent\");\n\n    svg.append(square);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the square instead\n    // of to the entire container (which is the default).\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#square;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  #circle = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"circleAnnotation\");\n\n    // Create an invisible circle with the same ellipse that acts as the\n    // trigger for the popup. Only the circle itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const { width, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\n\n    // The browser draws half of the borders inside the circle and half of\n    // the borders outside the circle by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    const borderWidth = data.borderStyle.width;\n    const circle = (this.#circle =\n      this.svgFactory.createElement(\"svg:ellipse\"));\n    circle.setAttribute(\"cx\", width / 2);\n    circle.setAttribute(\"cy\", height / 2);\n    circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n    circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    circle.setAttribute(\"stroke-width\", borderWidth || 1);\n    circle.setAttribute(\"stroke\", \"transparent\");\n    circle.setAttribute(\"fill\", \"transparent\");\n\n    svg.append(circle);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the circle instead\n    // of to the entire container (which is the default).\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#circle;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  #polyline = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n\n    this.containerClassName = \"polylineAnnotation\";\n    this.svgElementName = \"svg:polyline\";\n  }\n\n  render() {\n    this.container.classList.add(this.containerClassName);\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup. Only the polyline itself should trigger the\n    // popup, not the entire container.\n    const data = this.data;\n    const { width, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\n\n    // Convert the vertices array to a single points string that the SVG\n    // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n    // calculated from a bottom left origin, so transform the polyline\n    // coordinates to a top left origin for the SVG element.\n    let points = [];\n    for (const coordinate of data.vertices) {\n      const x = coordinate.x - data.rect[0];\n      const y = data.rect[3] - coordinate.y;\n      points.push(x + \",\" + y);\n    }\n    points = points.join(\" \");\n\n    const polyline = (this.#polyline = this.svgFactory.createElement(\n      this.svgElementName\n    ));\n    polyline.setAttribute(\"points\", points);\n    // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n    // won't be possible to open/close the popup (note e.g. issue 11122).\n    polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n    polyline.setAttribute(\"stroke\", \"transparent\");\n    polyline.setAttribute(\"fill\", \"transparent\");\n\n    svg.append(polyline);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the polyline\n    // instead of to the entire container (which is the default).\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#polyline;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(parameters);\n\n    this.containerClassName = \"polygonAnnotation\";\n    this.svgElementName = \"svg:polygon\";\n  }\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"caretAnnotation\");\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n    return this.container;\n  }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  #polylines = [];\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n\n    this.containerClassName = \"inkAnnotation\";\n\n    // Use the polyline SVG element since it allows us to use coordinates\n    // directly and to draw both straight lines and curves.\n    this.svgElementName = \"svg:polyline\";\n    this.annotationEditorType = AnnotationEditorType.INK;\n  }\n\n  render() {\n    this.container.classList.add(this.containerClassName);\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup.\n    const data = this.data;\n    const { width, height } = getRectDims(data.rect);\n    const svg = this.svgFactory.create(\n      width,\n      height,\n      /* skipDimensions = */ true\n    );\n\n    for (const inkList of data.inkLists) {\n      // Convert the ink list to a single points string that the SVG\n      // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n      // calculated from a bottom left origin, so transform the polyline\n      // coordinates to a top left origin for the SVG element.\n      let points = [];\n      for (const coordinate of inkList) {\n        const x = coordinate.x - data.rect[0];\n        const y = data.rect[3] - coordinate.y;\n        points.push(`${x},${y}`);\n      }\n      points = points.join(\" \");\n\n      const polyline = this.svgFactory.createElement(this.svgElementName);\n      this.#polylines.push(polyline);\n      polyline.setAttribute(\"points\", points);\n      // Ensure that the 'stroke-width' is always non-zero, since otherwise it\n      // won't be possible to open/close the popup (note e.g. issue 11122).\n      polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n      polyline.setAttribute(\"stroke\", \"transparent\");\n      polyline.setAttribute(\"fill\", \"transparent\");\n\n      // Create the popup ourselves so that we can bind it to the polyline\n      // instead of to the entire container (which is the default).\n      if (!data.popupRef && this.hasPopupData) {\n        this._createPopup();\n      }\n\n      svg.append(polyline);\n    }\n\n    this.container.append(svg);\n    return this.container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#polylines;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"highlightAnnotation\");\n    return this.container;\n  }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"underlineAnnotation\");\n    return this.container;\n  }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"squigglyAnnotation\");\n    return this.container;\n  }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, {\n      isRenderable: true,\n      ignoreBorder: true,\n      createQuadrilaterals: true,\n    });\n  }\n\n  render() {\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n\n    this.container.classList.add(\"strikeoutAnnotation\");\n    return this.container;\n  }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, { isRenderable: true, ignoreBorder: true });\n  }\n\n  render() {\n    this.container.classList.add(\"stampAnnotation\");\n\n    if (!this.data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    }\n    return this.container;\n  }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  #trigger = null;\n\n  constructor(parameters) {\n    super(parameters, { isRenderable: true });\n\n    const { filename, content } = this.data.file;\n    this.filename = getFilenameFromUrl(filename, /* onlyStripPath = */ true);\n    this.content = content;\n\n    this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n      source: this,\n      filename,\n      content,\n    });\n  }\n\n  render() {\n    this.container.classList.add(\"fileAttachmentAnnotation\");\n\n    const { container, data } = this;\n    let trigger;\n    if (data.hasAppearance || data.fillAlpha === 0) {\n      trigger = document.createElement(\"div\");\n    } else {\n      // Unfortunately it seems that it's not clearly specified exactly what\n      // names are actually valid, since Table 184 contains:\n      //   Conforming readers shall provide predefined icon appearances for at\n      //   least the following standard names: GraphPushPin, PaperclipTag.\n      //   Additional names may be supported as well. Default value: PushPin.\n      trigger = document.createElement(\"img\");\n      trigger.src = `${this.imageResourcesPath}annotation-${\n        /paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"\n      }.svg`;\n\n      if (data.fillAlpha && data.fillAlpha < 1) {\n        trigger.style = `filter: opacity(${Math.round(\n          data.fillAlpha * 100\n        )}%);`;\n\n        if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n          this.container.classList.add(\"hasFillAlpha\");\n        }\n      }\n    }\n    trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n    this.#trigger = trigger;\n\n    const { isMac } = FeatureTest.platform;\n    container.addEventListener(\"keydown\", evt => {\n      if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n        this.#download();\n      }\n    });\n\n    if (!data.popupRef && this.hasPopupData) {\n      this._createPopup();\n    } else {\n      trigger.classList.add(\"popupTriggerArea\");\n    }\n\n    container.append(trigger);\n    return container;\n  }\n\n  getElementsToTriggerPopup() {\n    return this.#trigger;\n  }\n\n  addHighlightArea() {\n    this.container.classList.add(\"highlightArea\");\n  }\n\n  /**\n   * Download the file attachment associated with this annotation.\n   */\n  #download() {\n    this.downloadManager?.openOrDownloadData(\n      this.container,\n      this.content,\n      this.filename\n    );\n  }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPageProxy} page\n * @property {IPDFLinkService} linkService\n * @property {IDownloadManager} downloadManager\n * @property {AnnotationStorage} [annotationStorage]\n * @property {string} [imageResourcesPath] - Path for image resources, mainly\n *   for annotation icons. Include trailing slash.\n * @property {boolean} renderForms\n * @property {boolean} [enableScripting] - Enable embedded script execution.\n * @property {boolean} [hasJSActions] - Some fields have JS actions.\n *   The default value is `false`.\n * @property {Object<string, Array<Object>> | null} [fieldObjects]\n * @property {Map<string, HTMLCanvasElement>} [annotationCanvasMap]\n * @property {TextAccessibilityManager} [accessibilityManager]\n */\n\n/**\n * Manage the layer containing all the annotations.\n */\nclass AnnotationLayer {\n  #accessibilityManager = null;\n\n  #annotationCanvasMap = null;\n\n  #editableAnnotations = new Map();\n\n  constructor({\n    div,\n    accessibilityManager,\n    annotationCanvasMap,\n    l10n,\n    page,\n    viewport,\n  }) {\n    this.div = div;\n    this.#accessibilityManager = accessibilityManager;\n    this.#annotationCanvasMap = annotationCanvasMap;\n    this.l10n = l10n;\n    this.page = page;\n    this.viewport = viewport;\n    this.zIndex = 0;\n\n    if (\n      typeof PDFJSDev !== \"undefined\" &&\n      PDFJSDev.test(\"GENERIC && !TESTING\")\n    ) {\n      this.l10n ||= NullL10n;\n    }\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      // For testing purposes.\n      Object.defineProperty(this, \"showPopups\", {\n        value: async () => {\n          for (const show of this.popupShow) {\n            await show();\n          }\n        },\n      });\n      this.popupShow = [];\n    }\n  }\n\n  #appendElement(element, id) {\n    const contentElement = element.firstChild || element;\n    contentElement.id = `${AnnotationPrefix}${id}`;\n\n    this.div.append(element);\n    this.#accessibilityManager?.moveElementInDOM(\n      this.div,\n      element,\n      contentElement,\n      /* isRemovable = */ false\n    );\n  }\n\n  /**\n   * Render a new annotation layer with all annotation elements.\n   *\n   * @param {AnnotationLayerParameters} params\n   * @memberof AnnotationLayer\n   */\n  async render(params) {\n    const { annotations } = params;\n    const layer = this.div;\n    setLayerDimensions(layer, this.viewport);\n\n    const popupToElements = new Map();\n    const elementParams = {\n      data: null,\n      layer,\n      linkService: params.linkService,\n      downloadManager: params.downloadManager,\n      imageResourcesPath: params.imageResourcesPath || \"\",\n      renderForms: params.renderForms !== false,\n      svgFactory: new DOMSVGFactory(),\n      annotationStorage: params.annotationStorage || new AnnotationStorage(),\n      enableScripting: params.enableScripting === true,\n      hasJSActions: params.hasJSActions,\n      fieldObjects: params.fieldObjects,\n      parent: this,\n      elements: null,\n    };\n\n    for (const data of annotations) {\n      if (data.noHTML) {\n        continue;\n      }\n      const isPopupAnnotation = data.annotationType === AnnotationType.POPUP;\n      if (!isPopupAnnotation) {\n        const { width, height } = getRectDims(data.rect);\n        if (width <= 0 || height <= 0) {\n          continue; // Ignore empty annotations.\n        }\n      } else {\n        const elements = popupToElements.get(data.id);\n        if (!elements) {\n          // Ignore popup annotations without a corresponding annotation.\n          continue;\n        }\n        elementParams.elements = elements;\n      }\n      elementParams.data = data;\n      const element = AnnotationElementFactory.create(elementParams);\n\n      if (!element.isRenderable) {\n        continue;\n      }\n\n      if (!isPopupAnnotation && data.popupRef) {\n        const elements = popupToElements.get(data.popupRef);\n        if (!elements) {\n          popupToElements.set(data.popupRef, [element]);\n        } else {\n          elements.push(element);\n        }\n      }\n\n      if (element.annotationEditorType > 0) {\n        this.#editableAnnotations.set(element.data.id, element);\n      }\n\n      const rendered = element.render();\n      if (data.hidden) {\n        rendered.style.visibility = \"hidden\";\n      }\n      this.#appendElement(rendered, data.id);\n    }\n\n    this.#setAnnotationCanvasMap();\n\n    await this.l10n.translate(layer);\n  }\n\n  /**\n   * Update the annotation elements on existing annotation layer.\n   *\n   * @param {AnnotationLayerParameters} viewport\n   * @memberof AnnotationLayer\n   */\n  update({ viewport }) {\n    const layer = this.div;\n    this.viewport = viewport;\n    setLayerDimensions(layer, { rotation: viewport.rotation });\n\n    this.#setAnnotationCanvasMap();\n    layer.hidden = false;\n  }\n\n  #setAnnotationCanvasMap() {\n    if (!this.#annotationCanvasMap) {\n      return;\n    }\n    const layer = this.div;\n    for (const [id, canvas] of this.#annotationCanvasMap) {\n      const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n      if (!element) {\n        continue;\n      }\n\n      const { firstChild } = element;\n      if (!firstChild) {\n        element.append(canvas);\n      } else if (firstChild.nodeName === \"CANVAS\") {\n        firstChild.replaceWith(canvas);\n      } else {\n        firstChild.before(canvas);\n      }\n    }\n    this.#annotationCanvasMap.clear();\n  }\n\n  getEditableAnnotations() {\n    return Array.from(this.#editableAnnotations.values());\n  }\n\n  getEditableAnnotation(id) {\n    return this.#editableAnnotations.get(id);\n  }\n}\n\nexport {\n  AnnotationLayer,\n  FreeTextAnnotationElement,\n  InkAnnotationElement,\n  StampAnnotationElement,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * PLEASE NOTE: This file is currently imported in both the `../display/` and\n *              `../scripting_api/` folders, hence be EXTREMELY careful about\n *              introducing any dependencies here since that can lead to an\n *              unexpected/unnecessary size increase of the *built* files.\n */\n\nfunction makeColorComp(n) {\n  return Math.floor(Math.max(0, Math.min(1, n)) * 255)\n    .toString(16)\n    .padStart(2, \"0\");\n}\n\nfunction scaleAndClamp(x) {\n  return Math.max(0, Math.min(255, 255 * x));\n}\n\n// PDF specifications section 10.3\nclass ColorConverters {\n  static CMYK_G([c, y, m, k]) {\n    return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n  }\n\n  static G_CMYK([g]) {\n    return [\"CMYK\", 0, 0, 0, 1 - g];\n  }\n\n  static G_RGB([g]) {\n    return [\"RGB\", g, g, g];\n  }\n\n  static G_rgb([g]) {\n    g = scaleAndClamp(g);\n    return [g, g, g];\n  }\n\n  static G_HTML([g]) {\n    const G = makeColorComp(g);\n    return `#${G}${G}${G}`;\n  }\n\n  static RGB_G([r, g, b]) {\n    return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n  }\n\n  static RGB_rgb(color) {\n    return color.map(scaleAndClamp);\n  }\n\n  static RGB_HTML(color) {\n    return `#${color.map(makeColorComp).join(\"\")}`;\n  }\n\n  static T_HTML() {\n    return \"#00000000\";\n  }\n\n  static T_rgb() {\n    return [null];\n  }\n\n  static CMYK_RGB([c, y, m, k]) {\n    return [\n      \"RGB\",\n      1 - Math.min(1, c + k),\n      1 - Math.min(1, m + k),\n      1 - Math.min(1, y + k),\n    ];\n  }\n\n  static CMYK_rgb([c, y, m, k]) {\n    return [\n      scaleAndClamp(1 - Math.min(1, c + k)),\n      scaleAndClamp(1 - Math.min(1, m + k)),\n      scaleAndClamp(1 - Math.min(1, y + k)),\n    ];\n  }\n\n  static CMYK_HTML(components) {\n    const rgb = this.CMYK_RGB(components).slice(1);\n    return this.RGB_HTML(rgb);\n  }\n\n  static RGB_CMYK([r, g, b]) {\n    const c = 1 - r;\n    const m = 1 - g;\n    const y = 1 - b;\n    const k = Math.min(c, m, y);\n    return [\"CMYK\", c, m, y, k];\n  }\n}\n\nexport { ColorConverters };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * PLEASE NOTE: This file is currently imported in both the `web/` and\n *              `src/display/` folders, hence be EXTREMELY careful about\n *              introducing any dependencies here since that can lead to an\n *              unexpected/unnecessary size increase of the *built* files.\n */\n\n/**\n * A subset of the l10n strings in the `l10n/en-US/viewer.properties` file.\n */\nconst DEFAULT_L10N_STRINGS = {\n  of_pages: \"of {{pagesCount}}\",\n  page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n\n  document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n  document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n  document_properties_date_string: \"{{date}}, {{time}}\",\n  document_properties_page_size_unit_inches: \"in\",\n  document_properties_page_size_unit_millimeters: \"mm\",\n  document_properties_page_size_orientation_portrait: \"portrait\",\n  document_properties_page_size_orientation_landscape: \"landscape\",\n  document_properties_page_size_name_a3: \"A3\",\n  document_properties_page_size_name_a4: \"A4\",\n  document_properties_page_size_name_letter: \"Letter\",\n  document_properties_page_size_name_legal: \"Legal\",\n  document_properties_page_size_dimension_string:\n    \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n  document_properties_page_size_dimension_name_string:\n    \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n  document_properties_linearized_yes: \"Yes\",\n  document_properties_linearized_no: \"No\",\n\n  additional_layers: \"Additional Layers\",\n  page_landmark: \"Page {{page}}\",\n  thumb_page_title: \"Page {{page}}\",\n  thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n\n  find_reached_top: \"Reached top of document, continued from bottom\",\n  find_reached_bottom: \"Reached end of document, continued from top\",\n  \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n  \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n  \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n  \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n  find_not_found: \"Phrase not found\",\n\n  page_scale_width: \"Page Width\",\n  page_scale_fit: \"Page Fit\",\n  page_scale_auto: \"Automatic Zoom\",\n  page_scale_actual: \"Actual Size\",\n  page_scale_percent: \"{{scale}}%\",\n\n  loading_error: \"An error occurred while loading the PDF.\",\n  invalid_file_error: \"Invalid or corrupted PDF file.\",\n  missing_file_error: \"Missing PDF file.\",\n  unexpected_response_error: \"Unexpected server response.\",\n  rendering_error: \"An error occurred while rendering the page.\",\n\n  annotation_date_string: \"{{date}}, {{time}}\",\n\n  printing_not_supported:\n    \"Warning: Printing is not fully supported by this browser.\",\n  printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n  web_fonts_disabled:\n    \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n\n  free_text2_default_content: \"Start typing…\",\n  editor_free_text2_aria_label: \"Text Editor\",\n  editor_ink2_aria_label: \"Draw Editor\",\n  editor_ink_canvas_aria_label: \"User-created image\",\n  editor_alt_text_button_label: \"Alt text\",\n  editor_alt_text_edit_button_label: \"Edit alt text\",\n  editor_alt_text_decorative_tooltip: \"Marked as decorative\",\n};\nif (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n  DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\n\nfunction getL10nFallback(key, args) {\n  switch (key) {\n    case \"find_match_count\":\n      key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n      break;\n    case \"find_match_count_limit\":\n      key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n      break;\n  }\n  return DEFAULT_L10N_STRINGS[key] || \"\";\n}\n\n// Replaces {{arguments}} with their values.\nfunction formatL10nValue(text, args) {\n  if (!args) {\n    return text;\n  }\n  return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n    return name in args ? args[name] : \"{{\" + name + \"}}\";\n  });\n}\n\n/**\n * No-op implementation of the localization service.\n * @implements {IL10n}\n */\nconst NullL10n = {\n  async getLanguage() {\n    return \"en-us\";\n  },\n\n  async getDirection() {\n    return \"ltr\";\n  },\n\n  async get(key, args = null, fallback = getL10nFallback(key, args)) {\n    return formatL10nValue(fallback, args);\n  },\n\n  async translate(element) {},\n};\n\nexport { getL10nFallback, NullL10n };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./annotation_storage\").AnnotationStorage} AnnotationStorage */\n/** @typedef {import(\"./display_utils\").PageViewport} PageViewport */\n/** @typedef {import(\"../../web/interfaces\").IPDFLinkService} IPDFLinkService */\n\nimport { XfaText } from \"./xfa_text.js\";\n\n/**\n * @typedef {Object} XfaLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Object} xfaHtml\n * @property {AnnotationStorage} [annotationStorage]\n * @property {IPDFLinkService} linkService\n * @property {string} [intent] - (default value is 'display').\n */\n\nclass XfaLayer {\n  static setupStorage(html, id, element, storage, intent) {\n    const storedData = storage.getValue(id, { value: null });\n    switch (element.name) {\n      case \"textarea\":\n        if (storedData.value !== null) {\n          html.textContent = storedData.value;\n        }\n        if (intent === \"print\") {\n          break;\n        }\n        html.addEventListener(\"input\", event => {\n          storage.setValue(id, { value: event.target.value });\n        });\n        break;\n      case \"input\":\n        if (\n          element.attributes.type === \"radio\" ||\n          element.attributes.type === \"checkbox\"\n        ) {\n          if (storedData.value === element.attributes.xfaOn) {\n            html.setAttribute(\"checked\", true);\n          } else if (storedData.value === element.attributes.xfaOff) {\n            // The checked attribute may have been set when opening the file,\n            // unset through the UI and we're here because of printing.\n            html.removeAttribute(\"checked\");\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"change\", event => {\n            storage.setValue(id, {\n              value: event.target.checked\n                ? event.target.getAttribute(\"xfaOn\")\n                : event.target.getAttribute(\"xfaOff\"),\n            });\n          });\n        } else {\n          if (storedData.value !== null) {\n            html.setAttribute(\"value\", storedData.value);\n          }\n          if (intent === \"print\") {\n            break;\n          }\n          html.addEventListener(\"input\", event => {\n            storage.setValue(id, { value: event.target.value });\n          });\n        }\n        break;\n      case \"select\":\n        if (storedData.value !== null) {\n          html.setAttribute(\"value\", storedData.value);\n          for (const option of element.children) {\n            if (option.attributes.value === storedData.value) {\n              option.attributes.selected = true;\n            } else if (option.attributes.hasOwnProperty(\"selected\")) {\n              delete option.attributes.selected;\n            }\n          }\n        }\n        html.addEventListener(\"input\", event => {\n          const options = event.target.options;\n          const value =\n            options.selectedIndex === -1\n              ? \"\"\n              : options[options.selectedIndex].value;\n          storage.setValue(id, { value });\n        });\n        break;\n    }\n  }\n\n  static setAttributes({ html, element, storage = null, intent, linkService }) {\n    const { attributes } = element;\n    const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n    if (attributes.type === \"radio\") {\n      // Avoid to have a radio group when printing with the same as one\n      // already displayed.\n      attributes.name = `${attributes.name}-${intent}`;\n    }\n    for (const [key, value] of Object.entries(attributes)) {\n      if (value === null || value === undefined) {\n        continue;\n      }\n\n      switch (key) {\n        case \"class\":\n          if (value.length) {\n            html.setAttribute(key, value.join(\" \"));\n          }\n          break;\n        case \"dataId\":\n          // We don't need to add dataId in the html object but it can\n          // be useful to know its value when writing printing tests:\n          // in this case, don't skip dataId to have its value.\n          break;\n        case \"id\":\n          html.setAttribute(\"data-element-id\", value);\n          break;\n        case \"style\":\n          Object.assign(html.style, value);\n          break;\n        case \"textContent\":\n          html.textContent = value;\n          break;\n        default:\n          if (!isHTMLAnchorElement || (key !== \"href\" && key !== \"newWindow\")) {\n            html.setAttribute(key, value);\n          }\n      }\n    }\n\n    if (isHTMLAnchorElement) {\n      linkService.addLinkAttributes(\n        html,\n        attributes.href,\n        attributes.newWindow\n      );\n    }\n\n    // Set the value after the others to be sure to overwrite any other values.\n    if (storage && attributes.dataId) {\n      this.setupStorage(html, attributes.dataId, element, storage);\n    }\n  }\n\n  /**\n   * Render the XFA layer.\n   *\n   * @param {XfaLayerParameters} parameters\n   */\n  static render(parameters) {\n    const storage = parameters.annotationStorage;\n    const linkService = parameters.linkService;\n    const root = parameters.xfaHtml;\n    const intent = parameters.intent || \"display\";\n    const rootHtml = document.createElement(root.name);\n    if (root.attributes) {\n      this.setAttributes({\n        html: rootHtml,\n        element: root,\n        intent,\n        linkService,\n      });\n    }\n    const stack = [[root, -1, rootHtml]];\n\n    const rootDiv = parameters.div;\n    rootDiv.append(rootHtml);\n\n    if (parameters.viewport) {\n      const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n      rootDiv.style.transform = transform;\n    }\n\n    // Set defaults.\n    if (intent !== \"richText\") {\n      rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n    }\n\n    // Text nodes used for the text highlighter.\n    const textDivs = [];\n\n    while (stack.length > 0) {\n      const [parent, i, html] = stack.at(-1);\n      if (i + 1 === parent.children.length) {\n        stack.pop();\n        continue;\n      }\n\n      const child = parent.children[++stack.at(-1)[1]];\n      if (child === null) {\n        continue;\n      }\n\n      const { name } = child;\n      if (name === \"#text\") {\n        const node = document.createTextNode(child.value);\n        textDivs.push(node);\n        html.append(node);\n        continue;\n      }\n\n      const childHtml = child?.attributes?.xmlns\n        ? document.createElementNS(child.attributes.xmlns, name)\n        : document.createElement(name);\n\n      html.append(childHtml);\n      if (child.attributes) {\n        this.setAttributes({\n          html: childHtml,\n          element: child,\n          storage,\n          intent,\n          linkService,\n        });\n      }\n\n      if (child.children && child.children.length > 0) {\n        stack.push([child, -1, childHtml]);\n      } else if (child.value) {\n        const node = document.createTextNode(child.value);\n        if (XfaText.shouldBuildText(name)) {\n          textDivs.push(node);\n        }\n        childHtml.append(node);\n      }\n    }\n\n    /**\n     * TODO: re-enable that stuff once we've JS implementation.\n     * See https://bugzilla.mozilla.org/show_bug.cgi?id=1719465.\n     *\n     * for (const el of rootDiv.querySelectorAll(\n     * \".xfaDisabled input, .xfaDisabled textarea\"\n     * )) {\n     * el.setAttribute(\"disabled\", true);\n     * }\n     * for (const el of rootDiv.querySelectorAll(\n     * \".xfaReadOnly input, .xfaReadOnly textarea\"\n     * )) {\n     * el.setAttribute(\"readOnly\", true);\n     * }\n     */\n\n    for (const el of rootDiv.querySelectorAll(\n      \".xfaNonInteractive input, .xfaNonInteractive textarea\"\n    )) {\n      el.setAttribute(\"readOnly\", true);\n    }\n\n    return {\n      textDivs,\n    };\n  }\n\n  /**\n   * Update the XFA layer.\n   *\n   * @param {XfaLayerParameters} parameters\n   */\n  static update(parameters) {\n    const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n    parameters.div.style.transform = transform;\n    parameters.div.hidden = false;\n  }\n}\n\nexport { XfaLayer };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  Util,\n} from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { InkAnnotationElement } from \"../annotation_layer.js\";\nimport { noContextMenu } from \"../display_utils.js\";\nimport { opacityToHex } from \"./tools.js\";\n\n/**\n * Basic draw editor in order to generate an Ink annotation.\n */\nclass InkEditor extends AnnotationEditor {\n  #baseHeight = 0;\n\n  #baseWidth = 0;\n\n  #boundCanvasPointermove = this.canvasPointermove.bind(this);\n\n  #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n\n  #boundCanvasPointerup = this.canvasPointerup.bind(this);\n\n  #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n\n  #currentPath2D = new Path2D();\n\n  #disableEditing = false;\n\n  #hasSomethingToDraw = false;\n\n  #isCanvasInitialized = false;\n\n  #observer = null;\n\n  #realWidth = 0;\n\n  #realHeight = 0;\n\n  #requestFrameCallback = null;\n\n  static _defaultColor = null;\n\n  static _defaultOpacity = 1;\n\n  static _defaultThickness = 1;\n\n  static _type = \"ink\";\n\n  constructor(params) {\n    super({ ...params, name: \"inkEditor\" });\n    this.color = params.color || null;\n    this.thickness = params.thickness || null;\n    this.opacity = params.opacity || null;\n    this.paths = [];\n    this.bezierPath2D = [];\n    this.allRawPaths = [];\n    this.currentPath = [];\n    this.scaleFactor = 1;\n    this.translationX = this.translationY = 0;\n    this.x = 0;\n    this.y = 0;\n    this._willKeepAspectRatio = true;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n, {\n      strings: [\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"],\n    });\n  }\n\n  /** @inheritdoc */\n  static updateDefaultParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.INK_THICKNESS:\n        InkEditor._defaultThickness = value;\n        break;\n      case AnnotationEditorParamsType.INK_COLOR:\n        InkEditor._defaultColor = value;\n        break;\n      case AnnotationEditorParamsType.INK_OPACITY:\n        InkEditor._defaultOpacity = value / 100;\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  updateParams(type, value) {\n    switch (type) {\n      case AnnotationEditorParamsType.INK_THICKNESS:\n        this.#updateThickness(value);\n        break;\n      case AnnotationEditorParamsType.INK_COLOR:\n        this.#updateColor(value);\n        break;\n      case AnnotationEditorParamsType.INK_OPACITY:\n        this.#updateOpacity(value);\n        break;\n    }\n  }\n\n  /** @inheritdoc */\n  static get defaultPropertiesToUpdate() {\n    return [\n      [AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness],\n      [\n        AnnotationEditorParamsType.INK_COLOR,\n        InkEditor._defaultColor || AnnotationEditor._defaultLineColor,\n      ],\n      [\n        AnnotationEditorParamsType.INK_OPACITY,\n        Math.round(InkEditor._defaultOpacity * 100),\n      ],\n    ];\n  }\n\n  /** @inheritdoc */\n  get propertiesToUpdate() {\n    return [\n      [\n        AnnotationEditorParamsType.INK_THICKNESS,\n        this.thickness || InkEditor._defaultThickness,\n      ],\n      [\n        AnnotationEditorParamsType.INK_COLOR,\n        this.color ||\n          InkEditor._defaultColor ||\n          AnnotationEditor._defaultLineColor,\n      ],\n      [\n        AnnotationEditorParamsType.INK_OPACITY,\n        Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity)),\n      ],\n    ];\n  }\n\n  /**\n   * Update the thickness and make this action undoable.\n   * @param {number} thickness\n   */\n  #updateThickness(thickness) {\n    const savedThickness = this.thickness;\n    this.addCommands({\n      cmd: () => {\n        this.thickness = thickness;\n        this.#fitToContent();\n      },\n      undo: () => {\n        this.thickness = savedThickness;\n        this.#fitToContent();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_THICKNESS,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the color and make this action undoable.\n   * @param {string} color\n   */\n  #updateColor(color) {\n    const savedColor = this.color;\n    this.addCommands({\n      cmd: () => {\n        this.color = color;\n        this.#redraw();\n      },\n      undo: () => {\n        this.color = savedColor;\n        this.#redraw();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_COLOR,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /**\n   * Update the opacity and make this action undoable.\n   * @param {number} opacity\n   */\n  #updateOpacity(opacity) {\n    opacity /= 100;\n    const savedOpacity = this.opacity;\n    this.addCommands({\n      cmd: () => {\n        this.opacity = opacity;\n        this.#redraw();\n      },\n      undo: () => {\n        this.opacity = savedOpacity;\n        this.#redraw();\n      },\n      mustExec: true,\n      type: AnnotationEditorParamsType.INK_OPACITY,\n      overwriteIfSameType: true,\n      keepUndo: true,\n    });\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (!this.canvas) {\n      this.#createCanvas();\n      this.#createObserver();\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilding it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n      this.#setCanvasDims();\n    }\n    this.#fitToContent();\n  }\n\n  /** @inheritdoc */\n  remove() {\n    if (this.canvas === null) {\n      return;\n    }\n\n    if (!this.isEmpty()) {\n      this.commit();\n    }\n\n    // Destroy the canvas.\n    this.canvas.width = this.canvas.height = 0;\n    this.canvas.remove();\n    this.canvas = null;\n\n    this.#observer.disconnect();\n    this.#observer = null;\n\n    super.remove();\n  }\n\n  setParent(parent) {\n    if (!this.parent && parent) {\n      // We've a parent hence the rescale will be handled thanks to the\n      // ResizeObserver.\n      this._uiManager.removeShouldRescale(this);\n    } else if (this.parent && parent === null) {\n      // The editor is removed from the DOM, hence we handle the rescale thanks\n      // to the onScaleChanging callback.\n      // This way, it'll be saved/printed correctly.\n      this._uiManager.addShouldRescale(this);\n    }\n    super.setParent(parent);\n  }\n\n  onScaleChanging() {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    const width = this.width * parentWidth;\n    const height = this.height * parentHeight;\n    this.setDimensions(width, height);\n  }\n\n  /** @inheritdoc */\n  enableEditMode() {\n    if (this.#disableEditing || this.canvas === null) {\n      return;\n    }\n\n    super.enableEditMode();\n    this._isDraggable = false;\n    this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n  }\n\n  /** @inheritdoc */\n  disableEditMode() {\n    if (!this.isInEditMode() || this.canvas === null) {\n      return;\n    }\n\n    super.disableEditMode();\n    this._isDraggable = !this.isEmpty();\n    this.div.classList.remove(\"editing\");\n\n    this.canvas.removeEventListener(\n      \"pointerdown\",\n      this.#boundCanvasPointerdown\n    );\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    this._isDraggable = !this.isEmpty();\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return (\n      this.paths.length === 0 ||\n      (this.paths.length === 1 && this.paths[0].length === 0)\n    );\n  }\n\n  #getInitialBBox() {\n    const {\n      parentRotation,\n      parentDimensions: [width, height],\n    } = this;\n    switch (parentRotation) {\n      case 90:\n        return [0, height, height, width];\n      case 180:\n        return [width, height, width, height];\n      case 270:\n        return [width, 0, height, width];\n      default:\n        return [0, 0, width, height];\n    }\n  }\n\n  /**\n   * Set line styles.\n   */\n  #setStroke() {\n    const { ctx, color, opacity, thickness, parentScale, scaleFactor } = this;\n    ctx.lineWidth = (thickness * parentScale) / scaleFactor;\n    ctx.lineCap = \"round\";\n    ctx.lineJoin = \"round\";\n    ctx.miterLimit = 10;\n    ctx.strokeStyle = `${color}${opacityToHex(opacity)}`;\n  }\n\n  /**\n   * Start to draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #startDrawing(x, y) {\n    this.canvas.addEventListener(\"contextmenu\", noContextMenu);\n    this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n    this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n    this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n    this.canvas.removeEventListener(\n      \"pointerdown\",\n      this.#boundCanvasPointerdown\n    );\n\n    this.isEditing = true;\n    if (!this.#isCanvasInitialized) {\n      this.#isCanvasInitialized = true;\n      this.#setCanvasDims();\n      this.thickness ||= InkEditor._defaultThickness;\n      this.color ||=\n        InkEditor._defaultColor || AnnotationEditor._defaultLineColor;\n      this.opacity ??= InkEditor._defaultOpacity;\n    }\n    this.currentPath.push([x, y]);\n    this.#hasSomethingToDraw = false;\n    this.#setStroke();\n\n    this.#requestFrameCallback = () => {\n      this.#drawPoints();\n      if (this.#requestFrameCallback) {\n        window.requestAnimationFrame(this.#requestFrameCallback);\n      }\n    };\n    window.requestAnimationFrame(this.#requestFrameCallback);\n  }\n\n  /**\n   * Draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #draw(x, y) {\n    const [lastX, lastY] = this.currentPath.at(-1);\n    if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n      return;\n    }\n    const currentPath = this.currentPath;\n    let path2D = this.#currentPath2D;\n    currentPath.push([x, y]);\n    this.#hasSomethingToDraw = true;\n\n    if (currentPath.length <= 2) {\n      path2D.moveTo(...currentPath[0]);\n      path2D.lineTo(x, y);\n      return;\n    }\n\n    if (currentPath.length === 3) {\n      this.#currentPath2D = path2D = new Path2D();\n      path2D.moveTo(...currentPath[0]);\n    }\n\n    this.#makeBezierCurve(\n      path2D,\n      ...currentPath.at(-3),\n      ...currentPath.at(-2),\n      x,\n      y\n    );\n  }\n\n  #endPath() {\n    if (this.currentPath.length === 0) {\n      return;\n    }\n    const lastPoint = this.currentPath.at(-1);\n    this.#currentPath2D.lineTo(...lastPoint);\n  }\n\n  /**\n   * Stop to draw on the canvas.\n   * @param {number} x\n   * @param {number} y\n   */\n  #stopDrawing(x, y) {\n    this.#requestFrameCallback = null;\n\n    x = Math.min(Math.max(x, 0), this.canvas.width);\n    y = Math.min(Math.max(y, 0), this.canvas.height);\n\n    this.#draw(x, y);\n    this.#endPath();\n\n    // Interpolate the path entered by the user with some\n    // Bezier's curves in order to have a smoother path and\n    // to reduce the data size used to draw it in the PDF.\n    let bezier;\n    if (this.currentPath.length !== 1) {\n      bezier = this.#generateBezierPoints();\n    } else {\n      // We have only one point finally.\n      const xy = [x, y];\n      bezier = [[xy, xy.slice(), xy.slice(), xy]];\n    }\n    const path2D = this.#currentPath2D;\n    const currentPath = this.currentPath;\n    this.currentPath = [];\n    this.#currentPath2D = new Path2D();\n\n    const cmd = () => {\n      this.allRawPaths.push(currentPath);\n      this.paths.push(bezier);\n      this.bezierPath2D.push(path2D);\n      this.rebuild();\n    };\n\n    const undo = () => {\n      this.allRawPaths.pop();\n      this.paths.pop();\n      this.bezierPath2D.pop();\n      if (this.paths.length === 0) {\n        this.remove();\n      } else {\n        if (!this.canvas) {\n          this.#createCanvas();\n          this.#createObserver();\n        }\n        this.#fitToContent();\n      }\n    };\n\n    this.addCommands({ cmd, undo, mustExec: true });\n  }\n\n  #drawPoints() {\n    if (!this.#hasSomethingToDraw) {\n      return;\n    }\n    this.#hasSomethingToDraw = false;\n\n    const thickness = Math.ceil(this.thickness * this.parentScale);\n    const lastPoints = this.currentPath.slice(-3);\n    const x = lastPoints.map(xy => xy[0]);\n    const y = lastPoints.map(xy => xy[1]);\n    const xMin = Math.min(...x) - thickness;\n    const xMax = Math.max(...x) + thickness;\n    const yMin = Math.min(...y) - thickness;\n    const yMax = Math.max(...y) + thickness;\n\n    const { ctx } = this;\n    ctx.save();\n\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n      // In Chrome, the clip() method doesn't work as expected.\n      ctx.clearRect(xMin, yMin, xMax - xMin, yMax - yMin);\n      ctx.beginPath();\n      ctx.rect(xMin, yMin, xMax - xMin, yMax - yMin);\n      ctx.clip();\n    } else {\n      ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n    }\n\n    for (const path of this.bezierPath2D) {\n      ctx.stroke(path);\n    }\n    ctx.stroke(this.#currentPath2D);\n\n    ctx.restore();\n  }\n\n  #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n    const prevX = (x0 + x1) / 2;\n    const prevY = (y0 + y1) / 2;\n    const x3 = (x1 + x2) / 2;\n    const y3 = (y1 + y2) / 2;\n\n    path2D.bezierCurveTo(\n      prevX + (2 * (x1 - prevX)) / 3,\n      prevY + (2 * (y1 - prevY)) / 3,\n      x3 + (2 * (x1 - x3)) / 3,\n      y3 + (2 * (y1 - y3)) / 3,\n      x3,\n      y3\n    );\n  }\n\n  #generateBezierPoints() {\n    const path = this.currentPath;\n    if (path.length <= 2) {\n      return [[path[0], path[0], path.at(-1), path.at(-1)]];\n    }\n\n    const bezierPoints = [];\n    let i;\n    let [x0, y0] = path[0];\n    for (i = 1; i < path.length - 2; i++) {\n      const [x1, y1] = path[i];\n      const [x2, y2] = path[i + 1];\n      const x3 = (x1 + x2) / 2;\n      const y3 = (y1 + y2) / 2;\n\n      // The quadratic is: [[x0, y0], [x1, y1], [x3, y3]].\n      // Convert the quadratic to a cubic\n      // (see https://fontforge.org/docs/techref/bezier.html#converting-truetype-to-postscript)\n      const control1 = [x0 + (2 * (x1 - x0)) / 3, y0 + (2 * (y1 - y0)) / 3];\n      const control2 = [x3 + (2 * (x1 - x3)) / 3, y3 + (2 * (y1 - y3)) / 3];\n\n      bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n\n      [x0, y0] = [x3, y3];\n    }\n\n    const [x1, y1] = path[i];\n    const [x2, y2] = path[i + 1];\n\n    // The quadratic is: [[x0, y0], [x1, y1], [x2, y2]].\n    const control1 = [x0 + (2 * (x1 - x0)) / 3, y0 + (2 * (y1 - y0)) / 3];\n    const control2 = [x2 + (2 * (x1 - x2)) / 3, y2 + (2 * (y1 - y2)) / 3];\n\n    bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n    return bezierPoints;\n  }\n\n  /**\n   * Redraw all the paths.\n   */\n  #redraw() {\n    if (this.isEmpty()) {\n      this.#updateTransform();\n      return;\n    }\n    this.#setStroke();\n\n    const { canvas, ctx } = this;\n    ctx.setTransform(1, 0, 0, 1, 0, 0);\n    ctx.clearRect(0, 0, canvas.width, canvas.height);\n    this.#updateTransform();\n\n    for (const path of this.bezierPath2D) {\n      ctx.stroke(path);\n    }\n  }\n\n  /**\n   * Commit the curves we have in this editor.\n   */\n  commit() {\n    if (this.#disableEditing) {\n      return;\n    }\n\n    super.commit();\n\n    this.isEditing = false;\n    this.disableEditMode();\n\n    // This editor must be on top of the main ink editor.\n    this.setInForeground();\n\n    this.#disableEditing = true;\n    this.div.classList.add(\"disabled\");\n\n    this.#fitToContent(/* firstTime = */ true);\n    this.makeResizable();\n\n    this.parent.addInkEditorIfNeeded(/* isCommitting = */ true);\n\n    // When commiting, the position of this editor is changed, hence we must\n    // move it to the right position in the DOM.\n    this.moveInDOM();\n    this.div.focus({\n      preventScroll: true /* See issue #15744 */,\n    });\n  }\n\n  /** @inheritdoc */\n  focusin(event) {\n    if (!this._focusEventsAllowed) {\n      return;\n    }\n    super.focusin(event);\n    this.enableEditMode();\n  }\n\n  /**\n   * onpointerdown callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerdown(event) {\n    if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n      return;\n    }\n\n    // We want to draw on top of any other editors.\n    // Since it's the last child, there's no need to give it a higher z-index.\n    this.setInForeground();\n\n    event.preventDefault();\n\n    if (event.type !== \"mouse\") {\n      this.div.focus();\n    }\n\n    this.#startDrawing(event.offsetX, event.offsetY);\n  }\n\n  /**\n   * onpointermove callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointermove(event) {\n    event.preventDefault();\n    this.#draw(event.offsetX, event.offsetY);\n  }\n\n  /**\n   * onpointerup callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerup(event) {\n    event.preventDefault();\n    this.#endDrawing(event);\n  }\n\n  /**\n   * onpointerleave callback for the canvas we're drawing on.\n   * @param {PointerEvent} event\n   */\n  canvasPointerleave(event) {\n    this.#endDrawing(event);\n  }\n\n  /**\n   * End the drawing.\n   * @param {PointerEvent} event\n   */\n  #endDrawing(event) {\n    this.canvas.removeEventListener(\n      \"pointerleave\",\n      this.#boundCanvasPointerleave\n    );\n    this.canvas.removeEventListener(\n      \"pointermove\",\n      this.#boundCanvasPointermove\n    );\n    this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n    this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n\n    // Slight delay to avoid the context menu to appear (it can happen on a long\n    // tap with a pen).\n    setTimeout(() => {\n      this.canvas.removeEventListener(\"contextmenu\", noContextMenu);\n    }, 10);\n\n    this.#stopDrawing(event.offsetX, event.offsetY);\n\n    this.addToAnnotationStorage();\n\n    // Since the ink editor covers all of the page and we want to be able\n    // to select another editor, we just put this one in the background.\n    this.setInBackground();\n  }\n\n  /**\n   * Create the canvas element.\n   */\n  #createCanvas() {\n    this.canvas = document.createElement(\"canvas\");\n    this.canvas.width = this.canvas.height = 0;\n    this.canvas.className = \"inkEditorCanvas\";\n\n    AnnotationEditor._l10nPromise\n      .get(\"editor_ink_canvas_aria_label\")\n      .then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n    this.div.append(this.canvas);\n    this.ctx = this.canvas.getContext(\"2d\");\n  }\n\n  /**\n   * Create the resize observer.\n   */\n  #createObserver() {\n    this.#observer = new ResizeObserver(entries => {\n      const rect = entries[0].contentRect;\n      if (rect.width && rect.height) {\n        this.setDimensions(rect.width, rect.height);\n      }\n    });\n    this.#observer.observe(this.div);\n  }\n\n  /** @inheritdoc */\n  get isResizable() {\n    return !this.isEmpty() && this.#disableEditing;\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n\n    AnnotationEditor._l10nPromise\n      .get(\"editor_ink2_aria_label\")\n      .then(msg => this.div?.setAttribute(\"aria-label\", msg));\n\n    const [x, y, w, h] = this.#getInitialBBox();\n    this.setAt(x, y, 0, 0);\n    this.setDims(w, h);\n\n    this.#createCanvas();\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n      this.setAt(\n        baseX * parentWidth,\n        baseY * parentHeight,\n        this.width * parentWidth,\n        this.height * parentHeight\n      );\n      this.#isCanvasInitialized = true;\n      this.#setCanvasDims();\n      this.setDims(this.width * parentWidth, this.height * parentHeight);\n      this.#redraw();\n      this.div.classList.add(\"disabled\");\n    } else {\n      this.div.classList.add(\"editing\");\n      this.enableEditMode();\n    }\n\n    this.#createObserver();\n\n    return this.div;\n  }\n\n  #setCanvasDims() {\n    if (!this.#isCanvasInitialized) {\n      return;\n    }\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.canvas.width = Math.ceil(this.width * parentWidth);\n    this.canvas.height = Math.ceil(this.height * parentHeight);\n    this.#updateTransform();\n  }\n\n  /**\n   * When the dimensions of the div change the inner canvas must\n   * renew its dimensions, hence it must redraw its own contents.\n   * @param {number} width - the new width of the div\n   * @param {number} height - the new height of the div\n   * @returns\n   */\n  setDimensions(width, height) {\n    const roundedWidth = Math.round(width);\n    const roundedHeight = Math.round(height);\n    if (\n      this.#realWidth === roundedWidth &&\n      this.#realHeight === roundedHeight\n    ) {\n      return;\n    }\n\n    this.#realWidth = roundedWidth;\n    this.#realHeight = roundedHeight;\n\n    this.canvas.style.visibility = \"hidden\";\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n    this.fixAndSetPosition();\n\n    if (this.#disableEditing) {\n      this.#setScaleFactor(width, height);\n    }\n\n    this.#setCanvasDims();\n    this.#redraw();\n\n    this.canvas.style.visibility = \"visible\";\n\n    // For any reason the dimensions couldn't be in percent but in pixels, hence\n    // we must fix them.\n    this.fixDims();\n  }\n\n  #setScaleFactor(width, height) {\n    const padding = this.#getPadding();\n    const scaleFactorW = (width - padding) / this.#baseWidth;\n    const scaleFactorH = (height - padding) / this.#baseHeight;\n    this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n  }\n\n  /**\n   * Update the canvas transform.\n   */\n  #updateTransform() {\n    const padding = this.#getPadding() / 2;\n    this.ctx.setTransform(\n      this.scaleFactor,\n      0,\n      0,\n      this.scaleFactor,\n      this.translationX * this.scaleFactor + padding,\n      this.translationY * this.scaleFactor + padding\n    );\n  }\n\n  /**\n   * Convert into a Path2D.\n   * @param {Array<Array<number>>} bezier\n   * @returns {Path2D}\n   */\n  static #buildPath2D(bezier) {\n    const path2D = new Path2D();\n    for (let i = 0, ii = bezier.length; i < ii; i++) {\n      const [first, control1, control2, second] = bezier[i];\n      if (i === 0) {\n        path2D.moveTo(...first);\n      }\n      path2D.bezierCurveTo(\n        control1[0],\n        control1[1],\n        control2[0],\n        control2[1],\n        second[0],\n        second[1]\n      );\n    }\n    return path2D;\n  }\n\n  static #toPDFCoordinates(points, rect, rotation) {\n    const [blX, blY, trX, trY] = rect;\n\n    switch (rotation) {\n      case 0:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] += blX;\n          points[i + 1] = trY - points[i + 1];\n        }\n        break;\n      case 90:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = points[i + 1] + blX;\n          points[i + 1] = x + blY;\n        }\n        break;\n      case 180:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] = trX - points[i];\n          points[i + 1] += blY;\n        }\n        break;\n      case 270:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = trX - points[i + 1];\n          points[i + 1] = trY - x;\n        }\n        break;\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n    return points;\n  }\n\n  static #fromPDFCoordinates(points, rect, rotation) {\n    const [blX, blY, trX, trY] = rect;\n\n    switch (rotation) {\n      case 0:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] -= blX;\n          points[i + 1] = trY - points[i + 1];\n        }\n        break;\n      case 90:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = points[i + 1] - blY;\n          points[i + 1] = x - blX;\n        }\n        break;\n      case 180:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          points[i] = trX - points[i];\n          points[i + 1] -= blY;\n        }\n        break;\n      case 270:\n        for (let i = 0, ii = points.length; i < ii; i += 2) {\n          const x = points[i];\n          points[i] = trY - points[i + 1];\n          points[i + 1] = trX - x;\n        }\n        break;\n      default:\n        throw new Error(\"Invalid rotation\");\n    }\n    return points;\n  }\n\n  /**\n   * Transform and serialize the paths.\n   * @param {number} s - scale factor\n   * @param {number} tx - abscissa of the translation\n   * @param {number} ty - ordinate of the translation\n   * @param {Array<number>} rect - the bounding box of the annotation\n   */\n  #serializePaths(s, tx, ty, rect) {\n    const paths = [];\n    const padding = this.thickness / 2;\n    const shiftX = s * tx + padding;\n    const shiftY = s * ty + padding;\n    for (const bezier of this.paths) {\n      const buffer = [];\n      const points = [];\n      for (let j = 0, jj = bezier.length; j < jj; j++) {\n        const [first, control1, control2, second] = bezier[j];\n        const p10 = s * first[0] + shiftX;\n        const p11 = s * first[1] + shiftY;\n        const p20 = s * control1[0] + shiftX;\n        const p21 = s * control1[1] + shiftY;\n        const p30 = s * control2[0] + shiftX;\n        const p31 = s * control2[1] + shiftY;\n        const p40 = s * second[0] + shiftX;\n        const p41 = s * second[1] + shiftY;\n\n        if (j === 0) {\n          buffer.push(p10, p11);\n          points.push(p10, p11);\n        }\n        buffer.push(p20, p21, p30, p31, p40, p41);\n        points.push(p20, p21);\n        if (j === jj - 1) {\n          points.push(p40, p41);\n        }\n      }\n      paths.push({\n        bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n        points: InkEditor.#toPDFCoordinates(points, rect, this.rotation),\n      });\n    }\n\n    return paths;\n  }\n\n  /**\n   * Get the bounding box containing all the paths.\n   * @returns {Array<number>}\n   */\n  #getBbox() {\n    let xMin = Infinity;\n    let xMax = -Infinity;\n    let yMin = Infinity;\n    let yMax = -Infinity;\n\n    for (const path of this.paths) {\n      for (const [first, control1, control2, second] of path) {\n        const bbox = Util.bezierBoundingBox(\n          ...first,\n          ...control1,\n          ...control2,\n          ...second\n        );\n        xMin = Math.min(xMin, bbox[0]);\n        yMin = Math.min(yMin, bbox[1]);\n        xMax = Math.max(xMax, bbox[2]);\n        yMax = Math.max(yMax, bbox[3]);\n      }\n    }\n\n    return [xMin, yMin, xMax, yMax];\n  }\n\n  /**\n   * The bounding box is computed with null thickness, so we must take\n   * it into account for the display.\n   * It corresponds to the total padding, hence it should be divided by 2\n   * in order to have left/right paddings.\n   * @returns {number}\n   */\n  #getPadding() {\n    return this.#disableEditing\n      ? Math.ceil(this.thickness * this.parentScale)\n      : 0;\n  }\n\n  /**\n   * Set the div position and dimensions in order to fit to\n   * the bounding box of the contents.\n   * @returns {undefined}\n   */\n  #fitToContent(firstTime = false) {\n    if (this.isEmpty()) {\n      return;\n    }\n\n    if (!this.#disableEditing) {\n      this.#redraw();\n      return;\n    }\n\n    const bbox = this.#getBbox();\n    const padding = this.#getPadding();\n    this.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n    this.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n\n    const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n    const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n\n    this.setAspectRatio(width, height);\n\n    const prevTranslationX = this.translationX;\n    const prevTranslationY = this.translationY;\n\n    this.translationX = -bbox[0];\n    this.translationY = -bbox[1];\n    this.#setCanvasDims();\n    this.#redraw();\n\n    this.#realWidth = width;\n    this.#realHeight = height;\n\n    this.setDims(width, height);\n    const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n    this.translate(\n      prevTranslationX - this.translationX - unscaledPadding,\n      prevTranslationY - this.translationY - unscaledPadding\n    );\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    if (data instanceof InkAnnotationElement) {\n      return null;\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n\n    editor.thickness = data.thickness;\n    editor.color = Util.makeHexColor(...data.color);\n    editor.opacity = data.opacity;\n\n    const [pageWidth, pageHeight] = editor.pageDimensions;\n    const width = editor.width * pageWidth;\n    const height = editor.height * pageHeight;\n    const scaleFactor = editor.parentScale;\n    const padding = data.thickness / 2;\n\n    editor.#disableEditing = true;\n    editor.#realWidth = Math.round(width);\n    editor.#realHeight = Math.round(height);\n\n    const { paths, rect, rotation } = data;\n\n    for (let { bezier } of paths) {\n      bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n      const path = [];\n      editor.paths.push(path);\n      let p0 = scaleFactor * (bezier[0] - padding);\n      let p1 = scaleFactor * (bezier[1] - padding);\n      for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n        const p10 = scaleFactor * (bezier[i] - padding);\n        const p11 = scaleFactor * (bezier[i + 1] - padding);\n        const p20 = scaleFactor * (bezier[i + 2] - padding);\n        const p21 = scaleFactor * (bezier[i + 3] - padding);\n        const p30 = scaleFactor * (bezier[i + 4] - padding);\n        const p31 = scaleFactor * (bezier[i + 5] - padding);\n        path.push([\n          [p0, p1],\n          [p10, p11],\n          [p20, p21],\n          [p30, p31],\n        ]);\n        p0 = p30;\n        p1 = p31;\n      }\n      const path2D = this.#buildPath2D(path);\n      editor.bezierPath2D.push(path2D);\n    }\n\n    const bbox = editor.#getBbox();\n    editor.#baseWidth = Math.max(AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n    editor.#baseHeight = Math.max(AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n    editor.#setScaleFactor(width, height);\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize() {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const rect = this.getRect(0, 0);\n    const color = AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n    return {\n      annotationType: AnnotationEditorType.INK,\n      color,\n      thickness: this.thickness,\n      opacity: this.opacity,\n      paths: this.#serializePaths(\n        this.scaleFactor / this.parentScale,\n        this.translationX,\n        this.translationY,\n        rect\n      ),\n      pageIndex: this.pageIndex,\n      rect,\n      rotation: this.rotation,\n      structTreeParentId: this._structTreeParentId,\n    };\n  }\n}\n\nexport { InkEditor };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AnnotationEditorType, shadow } from \"../../shared/util.js\";\nimport { AnnotationEditor } from \"./editor.js\";\nimport { PixelsPerInch } from \"../display_utils.js\";\nimport { StampAnnotationElement } from \"../annotation_layer.js\";\n\n/**\n * Basic text editor in order to create a FreeTex annotation.\n */\nclass StampEditor extends AnnotationEditor {\n  #bitmap = null;\n\n  #bitmapId = null;\n\n  #bitmapPromise = null;\n\n  #bitmapUrl = null;\n\n  #bitmapFile = null;\n\n  #canvas = null;\n\n  #observer = null;\n\n  #resizeTimeoutId = null;\n\n  #isSvg = false;\n\n  #hasBeenAddedInUndoStack = false;\n\n  static _type = \"stamp\";\n\n  constructor(params) {\n    super({ ...params, name: \"stampEditor\" });\n    this.#bitmapUrl = params.bitmapUrl;\n    this.#bitmapFile = params.bitmapFile;\n  }\n\n  /** @inheritdoc */\n  static initialize(l10n) {\n    AnnotationEditor.initialize(l10n);\n  }\n\n  static get supportedTypes() {\n    // See https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types\n    // to know which types are supported by the browser.\n    const types = [\n      \"apng\",\n      \"avif\",\n      \"bmp\",\n      \"gif\",\n      \"jpeg\",\n      \"png\",\n      \"svg+xml\",\n      \"webp\",\n      \"x-icon\",\n    ];\n    return shadow(\n      this,\n      \"supportedTypes\",\n      types.map(type => `image/${type}`)\n    );\n  }\n\n  static get supportedTypesStr() {\n    return shadow(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n  }\n\n  /** @inheritdoc */\n  static isHandlingMimeForPasting(mime) {\n    return this.supportedTypes.includes(mime);\n  }\n\n  /** @inheritdoc */\n  static paste(item, parent) {\n    parent.pasteEditor(AnnotationEditorType.STAMP, {\n      bitmapFile: item.getAsFile(),\n    });\n  }\n\n  #getBitmapFetched(data, fromId = false) {\n    if (!data) {\n      this.remove();\n      return;\n    }\n    this.#bitmap = data.bitmap;\n    if (!fromId) {\n      this.#bitmapId = data.id;\n      this.#isSvg = data.isSvg;\n    }\n    this.#createCanvas();\n  }\n\n  #getBitmapDone() {\n    this.#bitmapPromise = null;\n    this._uiManager.enableWaiting(false);\n    if (this.#canvas) {\n      this.div.focus();\n    }\n  }\n\n  #getBitmap() {\n    if (this.#bitmapId) {\n      this._uiManager.enableWaiting(true);\n      this._uiManager.imageManager\n        .getFromId(this.#bitmapId)\n        .then(data => this.#getBitmapFetched(data, /* fromId = */ true))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    if (this.#bitmapUrl) {\n      const url = this.#bitmapUrl;\n      this.#bitmapUrl = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager\n        .getFromUrl(url)\n        .then(data => this.#getBitmapFetched(data))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    if (this.#bitmapFile) {\n      const file = this.#bitmapFile;\n      this.#bitmapFile = null;\n      this._uiManager.enableWaiting(true);\n      this.#bitmapPromise = this._uiManager.imageManager\n        .getFromFile(file)\n        .then(data => this.#getBitmapFetched(data))\n        .finally(() => this.#getBitmapDone());\n      return;\n    }\n\n    const input = document.createElement(\"input\");\n    if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n      input.hidden = true;\n      input.id = \"stampEditorFileInput\";\n      document.body.append(input);\n    }\n    input.type = \"file\";\n    input.accept = StampEditor.supportedTypesStr;\n    this.#bitmapPromise = new Promise(resolve => {\n      input.addEventListener(\"change\", async () => {\n        if (!input.files || input.files.length === 0) {\n          this.remove();\n        } else {\n          this._uiManager.enableWaiting(true);\n          const data = await this._uiManager.imageManager.getFromFile(\n            input.files[0]\n          );\n          this.#getBitmapFetched(data);\n        }\n        if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"TESTING\")) {\n          input.remove();\n        }\n        resolve();\n      });\n      input.addEventListener(\"cancel\", () => {\n        this.remove();\n        resolve();\n      });\n    }).finally(() => this.#getBitmapDone());\n    if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"TESTING\")) {\n      input.click();\n    }\n  }\n\n  /** @inheritdoc */\n  remove() {\n    if (this.#bitmapId) {\n      this.#bitmap = null;\n      this._uiManager.imageManager.deleteId(this.#bitmapId);\n      this.#canvas?.remove();\n      this.#canvas = null;\n      this.#observer?.disconnect();\n      this.#observer = null;\n    }\n    super.remove();\n  }\n\n  /** @inheritdoc */\n  rebuild() {\n    if (!this.parent) {\n      // It's possible to have to rebuild an editor which is not on a visible\n      // page.\n      if (this.#bitmapId) {\n        this.#getBitmap();\n      }\n      return;\n    }\n    super.rebuild();\n    if (this.div === null) {\n      return;\n    }\n\n    if (this.#bitmapId) {\n      this.#getBitmap();\n    }\n\n    if (!this.isAttachedToDOM) {\n      // At some point this editor was removed and we're rebuilting it,\n      // hence we must add it to its parent.\n      this.parent.add(this);\n    }\n  }\n\n  /** @inheritdoc */\n  onceAdded() {\n    this._isDraggable = true;\n    this.div.focus();\n  }\n\n  /** @inheritdoc */\n  isEmpty() {\n    return !(\n      this.#bitmapPromise ||\n      this.#bitmap ||\n      this.#bitmapUrl ||\n      this.#bitmapFile\n    );\n  }\n\n  /** @inheritdoc */\n  get isResizable() {\n    return true;\n  }\n\n  /** @inheritdoc */\n  render() {\n    if (this.div) {\n      return this.div;\n    }\n\n    let baseX, baseY;\n    if (this.width) {\n      baseX = this.x;\n      baseY = this.y;\n    }\n\n    super.render();\n    this.div.hidden = true;\n\n    if (this.#bitmap) {\n      this.#createCanvas();\n    } else {\n      this.#getBitmap();\n    }\n\n    if (this.width) {\n      // This editor was created in using copy (ctrl+c).\n      const [parentWidth, parentHeight] = this.parentDimensions;\n      this.setAt(\n        baseX * parentWidth,\n        baseY * parentHeight,\n        this.width * parentWidth,\n        this.height * parentHeight\n      );\n    }\n\n    return this.div;\n  }\n\n  #createCanvas() {\n    const { div } = this;\n    let { width, height } = this.#bitmap;\n    const [pageWidth, pageHeight] = this.pageDimensions;\n    const MAX_RATIO = 0.75;\n    if (this.width) {\n      width = this.width * pageWidth;\n      height = this.height * pageHeight;\n    } else if (\n      width > MAX_RATIO * pageWidth ||\n      height > MAX_RATIO * pageHeight\n    ) {\n      // If the the image is too big compared to the page dimensions\n      // (more than MAX_RATIO) then we scale it down.\n      const factor = Math.min(\n        (MAX_RATIO * pageWidth) / width,\n        (MAX_RATIO * pageHeight) / height\n      );\n      width *= factor;\n      height *= factor;\n    }\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.setDims(\n      (width * parentWidth) / pageWidth,\n      (height * parentHeight) / pageHeight\n    );\n\n    this._uiManager.enableWaiting(false);\n    const canvas = (this.#canvas = document.createElement(\"canvas\"));\n    div.append(canvas);\n    div.hidden = false;\n    this.#drawBitmap(width, height);\n    this.#createObserver();\n    if (!this.#hasBeenAddedInUndoStack) {\n      this.parent.addUndoableEditor(this);\n      this.#hasBeenAddedInUndoStack = true;\n    }\n\n    // There are multiple ways to add an image to the page, so here we just\n    // count the number of times an image is added to the page whatever the way\n    // is.\n    this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n      source: this,\n      details: {\n        type: \"editing\",\n        subtype: this.editorType,\n        data: {\n          action: \"inserted_image\",\n        },\n      },\n    });\n    this.addAltTextButton();\n  }\n\n  /**\n   * When the dimensions of the div change the inner canvas must\n   * renew its dimensions, hence it must redraw its own contents.\n   * @param {number} width - the new width of the div\n   * @param {number} height - the new height of the div\n   * @returns\n   */\n  #setDimensions(width, height) {\n    const [parentWidth, parentHeight] = this.parentDimensions;\n    this.width = width / parentWidth;\n    this.height = height / parentHeight;\n    this.setDims(width, height);\n    if (this._initialOptions?.isCentered) {\n      this.center();\n    } else {\n      this.fixAndSetPosition();\n    }\n    this._initialOptions = null;\n    if (this.#resizeTimeoutId !== null) {\n      clearTimeout(this.#resizeTimeoutId);\n    }\n    // When the user is resizing the editor we just use CSS to scale the image\n    // to avoid redrawing it too often.\n    // And once the user stops resizing the editor we redraw the image in\n    // rescaling it correctly (see this.#scaleBitmap).\n    const TIME_TO_WAIT = 200;\n    this.#resizeTimeoutId = setTimeout(() => {\n      this.#resizeTimeoutId = null;\n      this.#drawBitmap(width, height);\n    }, TIME_TO_WAIT);\n  }\n\n  #scaleBitmap(width, height) {\n    const { width: bitmapWidth, height: bitmapHeight } = this.#bitmap;\n\n    let newWidth = bitmapWidth;\n    let newHeight = bitmapHeight;\n    let bitmap = this.#bitmap;\n    while (newWidth > 2 * width || newHeight > 2 * height) {\n      const prevWidth = newWidth;\n      const prevHeight = newHeight;\n\n      if (newWidth > 2 * width) {\n        // See bug 1820511 (Windows specific bug).\n        // TODO: once the above bug is fixed we could revert to:\n        // newWidth = Math.ceil(newWidth / 2);\n        newWidth =\n          newWidth >= 16384\n            ? Math.floor(newWidth / 2) - 1\n            : Math.ceil(newWidth / 2);\n      }\n      if (newHeight > 2 * height) {\n        newHeight =\n          newHeight >= 16384\n            ? Math.floor(newHeight / 2) - 1\n            : Math.ceil(newHeight / 2);\n      }\n\n      const offscreen = new OffscreenCanvas(newWidth, newHeight);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(\n        bitmap,\n        0,\n        0,\n        prevWidth,\n        prevHeight,\n        0,\n        0,\n        newWidth,\n        newHeight\n      );\n      bitmap = offscreen.transferToImageBitmap();\n    }\n\n    return bitmap;\n  }\n\n  #drawBitmap(width, height) {\n    width = Math.ceil(width);\n    height = Math.ceil(height);\n    const canvas = this.#canvas;\n    if (!canvas || (canvas.width === width && canvas.height === height)) {\n      return;\n    }\n    canvas.width = width;\n    canvas.height = height;\n    const bitmap = this.#isSvg\n      ? this.#bitmap\n      : this.#scaleBitmap(width, height);\n    const ctx = canvas.getContext(\"2d\");\n    ctx.filter = this._uiManager.hcmFilter;\n    ctx.drawImage(\n      bitmap,\n      0,\n      0,\n      bitmap.width,\n      bitmap.height,\n      0,\n      0,\n      width,\n      height\n    );\n  }\n\n  #serializeBitmap(toUrl) {\n    if (toUrl) {\n      if (this.#isSvg) {\n        const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n        if (url) {\n          return url;\n        }\n      }\n      // We convert to a data url because it's sync and the url can live in the\n      // clipboard.\n      const canvas = document.createElement(\"canvas\");\n      ({ width: canvas.width, height: canvas.height } = this.#bitmap);\n      const ctx = canvas.getContext(\"2d\");\n      ctx.drawImage(this.#bitmap, 0, 0);\n\n      return canvas.toDataURL();\n    }\n\n    if (this.#isSvg) {\n      const [pageWidth, pageHeight] = this.pageDimensions;\n      // Multiply by PixelsPerInch.PDF_TO_CSS_UNITS in order to increase the\n      // image resolution when rasterizing it.\n      const width = Math.round(\n        this.width * pageWidth * PixelsPerInch.PDF_TO_CSS_UNITS\n      );\n      const height = Math.round(\n        this.height * pageHeight * PixelsPerInch.PDF_TO_CSS_UNITS\n      );\n      const offscreen = new OffscreenCanvas(width, height);\n      const ctx = offscreen.getContext(\"2d\");\n      ctx.drawImage(\n        this.#bitmap,\n        0,\n        0,\n        this.#bitmap.width,\n        this.#bitmap.height,\n        0,\n        0,\n        width,\n        height\n      );\n      return offscreen.transferToImageBitmap();\n    }\n\n    return structuredClone(this.#bitmap);\n  }\n\n  /**\n   * Create the resize observer.\n   */\n  #createObserver() {\n    this.#observer = new ResizeObserver(entries => {\n      const rect = entries[0].contentRect;\n      if (rect.width && rect.height) {\n        this.#setDimensions(rect.width, rect.height);\n      }\n    });\n    this.#observer.observe(this.div);\n  }\n\n  /** @inheritdoc */\n  static deserialize(data, parent, uiManager) {\n    if (data instanceof StampAnnotationElement) {\n      return null;\n    }\n    const editor = super.deserialize(data, parent, uiManager);\n    const { rect, bitmapUrl, bitmapId, isSvg, accessibilityData } = data;\n    if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n      editor.#bitmapId = bitmapId;\n    } else {\n      editor.#bitmapUrl = bitmapUrl;\n    }\n    editor.#isSvg = isSvg;\n\n    const [parentWidth, parentHeight] = editor.pageDimensions;\n    editor.width = (rect[2] - rect[0]) / parentWidth;\n    editor.height = (rect[3] - rect[1]) / parentHeight;\n\n    if (accessibilityData) {\n      editor.altTextData = accessibilityData;\n    }\n\n    return editor;\n  }\n\n  /** @inheritdoc */\n  serialize(isForCopying = false, context = null) {\n    if (this.isEmpty()) {\n      return null;\n    }\n\n    const serialized = {\n      annotationType: AnnotationEditorType.STAMP,\n      bitmapId: this.#bitmapId,\n      pageIndex: this.pageIndex,\n      rect: this.getRect(0, 0),\n      rotation: this.rotation,\n      isSvg: this.#isSvg,\n      structTreeParentId: this._structTreeParentId,\n    };\n\n    if (isForCopying) {\n      // We don't know what's the final destination (this pdf or another one)\n      // of this annotation and the clipboard doesn't support ImageBitmaps,\n      // hence we serialize the bitmap to a data url.\n      serialized.bitmapUrl = this.#serializeBitmap(/* toUrl = */ true);\n      serialized.accessibilityData = this.altTextData;\n      return serialized;\n    }\n\n    const { decorative, altText } = this.altTextData;\n    if (!decorative && altText) {\n      serialized.accessibilityData = { type: \"Figure\", alt: altText };\n    }\n\n    if (context === null) {\n      return serialized;\n    }\n\n    context.stamps ||= new Map();\n    const area = this.#isSvg\n      ? (serialized.rect[2] - serialized.rect[0]) *\n        (serialized.rect[3] - serialized.rect[1])\n      : null;\n    if (!context.stamps.has(this.#bitmapId)) {\n      // We don't want to have multiple copies of the same bitmap in the\n      // annotationMap, hence we only add the bitmap the first time we meet it.\n      context.stamps.set(this.#bitmapId, { area, serialized });\n      serialized.bitmap = this.#serializeBitmap(/* toUrl = */ false);\n    } else if (this.#isSvg) {\n      // If we have multiple copies of the same svg but with different sizes,\n      // then we want to keep the biggest one.\n      const prevData = context.stamps.get(this.#bitmapId);\n      if (area > prevData.area) {\n        prevData.area = area;\n        prevData.serialized.bitmap.close();\n        prevData.serialized.bitmap = this.#serializeBitmap(/* toUrl = */ false);\n      }\n    }\n    return serialized;\n  }\n}\n\nexport { StampEditor };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __w_pdfjs_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").OnProgressParameters} OnProgressParameters */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/api\").PDFDocumentLoadingTask} PDFDocumentLoadingTask */\n/** @typedef {import(\"./display/api\").PDFDocumentProxy} PDFDocumentProxy */\n/** @typedef {import(\"./display/api\").PDFPageProxy} PDFPageProxy */\n/** @typedef {import(\"./display/api\").RenderTask} RenderTask */\n/** @typedef {import(\"./display/display_utils\").PageViewport} PageViewport */\n// eslint-disable-next-line max-len\n/** @typedef {import(\"./display/text_layer\").TextLayerRenderTask} TextLayerRenderTask */\n\nimport {\n  AbortException,\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  AnnotationMode,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  FeatureTest,\n  ImageKind,\n  InvalidPDFException,\n  MissingPDFException,\n  normalizeUnicode,\n  OPS,\n  PasswordResponses,\n  PermissionFlag,\n  PromiseCapability,\n  shadow,\n  UnexpectedResponseException,\n  Util,\n  VerbosityLevel,\n} from \"./shared/util.js\";\nimport {\n  build,\n  getDocument,\n  PDFDataRangeTransport,\n  PDFWorker,\n  SVGGraphics,\n  version,\n} from \"./display/api.js\";\nimport {\n  DOMSVGFactory,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  isDataScheme,\n  isPdfFile,\n  loadScript,\n  noContextMenu,\n  PDFDateString,\n  PixelsPerInch,\n  RenderingCancelledException,\n  setLayerDimensions,\n} from \"./display/display_utils.js\";\nimport { renderTextLayer, updateTextLayer } from \"./display/text_layer.js\";\nimport { AnnotationEditorLayer } from \"./display/editor/annotation_editor_layer.js\";\nimport { AnnotationEditorUIManager } from \"./display/editor/tools.js\";\nimport { AnnotationLayer } from \"./display/annotation_layer.js\";\nimport { GlobalWorkerOptions } from \"./display/worker_options.js\";\nimport { XfaLayer } from \"./display/xfa_layer.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n  typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nexport {\n  AbortException,\n  AnnotationEditorLayer,\n  AnnotationEditorParamsType,\n  AnnotationEditorType,\n  AnnotationEditorUIManager,\n  AnnotationLayer,\n  AnnotationMode,\n  build,\n  CMapCompressionType,\n  createValidAbsoluteUrl,\n  DOMSVGFactory,\n  FeatureTest,\n  getDocument,\n  getFilenameFromUrl,\n  getPdfFilenameFromUrl,\n  getXfaPageViewport,\n  GlobalWorkerOptions,\n  ImageKind,\n  InvalidPDFException,\n  isDataScheme,\n  isPdfFile,\n  loadScript,\n  MissingPDFException,\n  noContextMenu,\n  normalizeUnicode,\n  OPS,\n  PasswordResponses,\n  PDFDataRangeTransport,\n  PDFDateString,\n  PDFWorker,\n  PermissionFlag,\n  PixelsPerInch,\n  PromiseCapability,\n  RenderingCancelledException,\n  renderTextLayer,\n  setLayerDimensions,\n  shadow,\n  SVGGraphics,\n  UnexpectedResponseException,\n  updateTextLayer,\n  Util,\n  VerbosityLevel,\n  version,\n  XfaLayer,\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 = 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","/**\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 * @license React\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'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\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","/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar Scheduler = require(\"scheduler\"),\n  React = require(\"react\"),\n  ReactDOM = require(\"react-dom\");\nfunction formatProdErrorMessage(code) {\n  var url = \"https://react.dev/errors/\" + code;\n  if (1 < arguments.length) {\n    url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n    for (var i = 2; i < arguments.length; i++)\n      url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n  }\n  return (\n    \"Minified React error #\" +\n    code +\n    \"; visit \" +\n    url +\n    \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n  );\n}\nfunction isValidContainer(node) {\n  return !(\n    !node ||\n    (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n  );\n}\nvar REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n  REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n  REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n  REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n  REACT_PROVIDER_TYPE = Symbol.for(\"react.provider\"),\n  REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n  REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n  REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n  REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n  REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n  REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n  REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\nSymbol.for(\"react.scope\");\nSymbol.for(\"react.debug_trace_mode\");\nvar REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\");\nSymbol.for(\"react.legacy_hidden\");\nSymbol.for(\"react.tracing_marker\");\nvar REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n  if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n  maybeIterable =\n    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n    maybeIterable[\"@@iterator\"];\n  return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction getComponentNameFromType(type) {\n  if (null == type) return null;\n  if (\"function\" === typeof type)\n    return type.$$typeof === REACT_CLIENT_REFERENCE\n      ? null\n      : type.displayName || type.name || null;\n  if (\"string\" === typeof type) return type;\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return \"Fragment\";\n    case REACT_PORTAL_TYPE:\n      return \"Portal\";\n    case REACT_PROFILER_TYPE:\n      return \"Profiler\";\n    case REACT_STRICT_MODE_TYPE:\n      return \"StrictMode\";\n    case REACT_SUSPENSE_TYPE:\n      return \"Suspense\";\n    case REACT_SUSPENSE_LIST_TYPE:\n      return \"SuspenseList\";\n  }\n  if (\"object\" === typeof type)\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return (type.displayName || \"Context\") + \".Provider\";\n      case REACT_CONSUMER_TYPE:\n        return (type._context.displayName || \"Context\") + \".Consumer\";\n      case REACT_FORWARD_REF_TYPE:\n        var innerType = type.render;\n        type = type.displayName;\n        type ||\n          ((type = innerType.displayName || innerType.name || \"\"),\n          (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n        return type;\n      case REACT_MEMO_TYPE:\n        return (\n          (innerType = type.displayName || null),\n          null !== innerType\n            ? innerType\n            : getComponentNameFromType(type.type) || \"Memo\"\n        );\n      case REACT_LAZY_TYPE:\n        innerType = type._payload;\n        type = type._init;\n        try {\n          return getComponentNameFromType(type(innerType));\n        } catch (x) {}\n    }\n  return null;\n}\nvar ReactSharedInternals =\n    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n  assign = Object.assign,\n  prefix,\n  suffix;\nfunction describeBuiltInComponentFrame(name) {\n  if (void 0 === prefix)\n    try {\n      throw Error();\n    } catch (x) {\n      var match = x.stack.trim().match(/\\n( *(at )?)/);\n      prefix = (match && match[1]) || \"\";\n      suffix =\n        -1 < x.stack.indexOf(\"\\n    at\")\n          ? \" (<anonymous>)\"\n          : -1 < x.stack.indexOf(\"@\")\n            ? \"@unknown:0:0\"\n            : \"\";\n    }\n  return \"\\n\" + prefix + name + suffix;\n}\nvar reentry = !1;\nfunction describeNativeComponentFrame(fn, construct) {\n  if (!fn || reentry) return \"\";\n  reentry = !0;\n  var previousPrepareStackTrace = Error.prepareStackTrace;\n  Error.prepareStackTrace = void 0;\n  try {\n    var RunInRootFrame = {\n      DetermineComponentFrameRoot: function () {\n        try {\n          if (construct) {\n            var Fake = function () {\n              throw Error();\n            };\n            Object.defineProperty(Fake.prototype, \"props\", {\n              set: function () {\n                throw Error();\n              }\n            });\n            if (\"object\" === typeof Reflect && Reflect.construct) {\n              try {\n                Reflect.construct(Fake, []);\n              } catch (x) {\n                var control = x;\n              }\n              Reflect.construct(fn, [], Fake);\n            } else {\n              try {\n                Fake.call();\n              } catch (x$0) {\n                control = x$0;\n              }\n              fn.call(Fake.prototype);\n            }\n          } else {\n            try {\n              throw Error();\n            } catch (x$1) {\n              control = x$1;\n            }\n            (Fake = fn()) &&\n              \"function\" === typeof Fake.catch &&\n              Fake.catch(function () {});\n          }\n        } catch (sample) {\n          if (sample && control && \"string\" === typeof sample.stack)\n            return [sample.stack, control.stack];\n        }\n        return [null, null];\n      }\n    };\n    RunInRootFrame.DetermineComponentFrameRoot.displayName =\n      \"DetermineComponentFrameRoot\";\n    var namePropDescriptor = Object.getOwnPropertyDescriptor(\n      RunInRootFrame.DetermineComponentFrameRoot,\n      \"name\"\n    );\n    namePropDescriptor &&\n      namePropDescriptor.configurable &&\n      Object.defineProperty(\n        RunInRootFrame.DetermineComponentFrameRoot,\n        \"name\",\n        { value: \"DetermineComponentFrameRoot\" }\n      );\n    var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n      sampleStack = _RunInRootFrame$Deter[0],\n      controlStack = _RunInRootFrame$Deter[1];\n    if (sampleStack && controlStack) {\n      var sampleLines = sampleStack.split(\"\\n\"),\n        controlLines = controlStack.split(\"\\n\");\n      for (\n        namePropDescriptor = RunInRootFrame = 0;\n        RunInRootFrame < sampleLines.length &&\n        !sampleLines[RunInRootFrame].includes(\"DetermineComponentFrameRoot\");\n\n      )\n        RunInRootFrame++;\n      for (\n        ;\n        namePropDescriptor < controlLines.length &&\n        !controlLines[namePropDescriptor].includes(\n          \"DetermineComponentFrameRoot\"\n        );\n\n      )\n        namePropDescriptor++;\n      if (\n        RunInRootFrame === sampleLines.length ||\n        namePropDescriptor === controlLines.length\n      )\n        for (\n          RunInRootFrame = sampleLines.length - 1,\n            namePropDescriptor = controlLines.length - 1;\n          1 <= RunInRootFrame &&\n          0 <= namePropDescriptor &&\n          sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor];\n\n        )\n          namePropDescriptor--;\n      for (\n        ;\n        1 <= RunInRootFrame && 0 <= namePropDescriptor;\n        RunInRootFrame--, namePropDescriptor--\n      )\n        if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) {\n          if (1 !== RunInRootFrame || 1 !== namePropDescriptor) {\n            do\n              if (\n                (RunInRootFrame--,\n                namePropDescriptor--,\n                0 > namePropDescriptor ||\n                  sampleLines[RunInRootFrame] !==\n                    controlLines[namePropDescriptor])\n              ) {\n                var frame =\n                  \"\\n\" +\n                  sampleLines[RunInRootFrame].replace(\" at new \", \" at \");\n                fn.displayName &&\n                  frame.includes(\"<anonymous>\") &&\n                  (frame = frame.replace(\"<anonymous>\", fn.displayName));\n                return frame;\n              }\n            while (1 <= RunInRootFrame && 0 <= namePropDescriptor);\n          }\n          break;\n        }\n    }\n  } finally {\n    (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace);\n  }\n  return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : \"\")\n    ? describeBuiltInComponentFrame(previousPrepareStackTrace)\n    : \"\";\n}\nfunction describeFiber(fiber) {\n  switch (fiber.tag) {\n    case 26:\n    case 27:\n    case 5:\n      return describeBuiltInComponentFrame(fiber.type);\n    case 16:\n      return describeBuiltInComponentFrame(\"Lazy\");\n    case 13:\n      return describeBuiltInComponentFrame(\"Suspense\");\n    case 19:\n      return describeBuiltInComponentFrame(\"SuspenseList\");\n    case 0:\n    case 15:\n      return (fiber = describeNativeComponentFrame(fiber.type, !1)), fiber;\n    case 11:\n      return (\n        (fiber = describeNativeComponentFrame(fiber.type.render, !1)), fiber\n      );\n    case 1:\n      return (fiber = describeNativeComponentFrame(fiber.type, !0)), fiber;\n    default:\n      return \"\";\n  }\n}\nfunction getStackByFiberInDevAndProd(workInProgress) {\n  try {\n    var info = \"\";\n    do\n      (info += describeFiber(workInProgress)),\n        (workInProgress = workInProgress.return);\n    while (workInProgress);\n    return info;\n  } catch (x) {\n    return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n  }\n}\nfunction getNearestMountedFiber(fiber) {\n  var node = fiber,\n    nearestMounted = fiber;\n  if (fiber.alternate) for (; node.return; ) node = node.return;\n  else {\n    fiber = node;\n    do\n      (node = fiber),\n        0 !== (node.flags & 4098) && (nearestMounted = node.return),\n        (fiber = node.return);\n    while (fiber);\n  }\n  return 3 === node.tag ? nearestMounted : null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n  if (13 === fiber.tag) {\n    var suspenseState = fiber.memoizedState;\n    null === suspenseState &&\n      ((fiber = fiber.alternate),\n      null !== fiber && (suspenseState = fiber.memoizedState));\n    if (null !== suspenseState) return suspenseState.dehydrated;\n  }\n  return null;\n}\nfunction assertIsMounted(fiber) {\n  if (getNearestMountedFiber(fiber) !== fiber)\n    throw Error(formatProdErrorMessage(188));\n}\nfunction findCurrentFiberUsingSlowPath(fiber) {\n  var alternate = fiber.alternate;\n  if (!alternate) {\n    alternate = getNearestMountedFiber(fiber);\n    if (null === alternate) throw Error(formatProdErrorMessage(188));\n    return alternate !== fiber ? null : fiber;\n  }\n  for (var a = fiber, b = alternate; ; ) {\n    var parentA = a.return;\n    if (null === parentA) break;\n    var parentB = parentA.alternate;\n    if (null === parentB) {\n      b = parentA.return;\n      if (null !== b) {\n        a = b;\n        continue;\n      }\n      break;\n    }\n    if (parentA.child === parentB.child) {\n      for (parentB = parentA.child; parentB; ) {\n        if (parentB === a) return assertIsMounted(parentA), fiber;\n        if (parentB === b) return assertIsMounted(parentA), alternate;\n        parentB = parentB.sibling;\n      }\n      throw Error(formatProdErrorMessage(188));\n    }\n    if (a.return !== b.return) (a = parentA), (b = parentB);\n    else {\n      for (var didFindChild = !1, child$2 = parentA.child; child$2; ) {\n        if (child$2 === a) {\n          didFindChild = !0;\n          a = parentA;\n          b = parentB;\n          break;\n        }\n        if (child$2 === b) {\n          didFindChild = !0;\n          b = parentA;\n          a = parentB;\n          break;\n        }\n        child$2 = child$2.sibling;\n      }\n      if (!didFindChild) {\n        for (child$2 = parentB.child; child$2; ) {\n          if (child$2 === a) {\n            didFindChild = !0;\n            a = parentB;\n            b = parentA;\n            break;\n          }\n          if (child$2 === b) {\n            didFindChild = !0;\n            b = parentB;\n            a = parentA;\n            break;\n          }\n          child$2 = child$2.sibling;\n        }\n        if (!didFindChild) throw Error(formatProdErrorMessage(189));\n      }\n    }\n    if (a.alternate !== b) throw Error(formatProdErrorMessage(190));\n  }\n  if (3 !== a.tag) throw Error(formatProdErrorMessage(188));\n  return a.stateNode.current === a ? fiber : alternate;\n}\nfunction findCurrentHostFiberImpl(node) {\n  var tag = node.tag;\n  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n  for (node = node.child; null !== node; ) {\n    tag = findCurrentHostFiberImpl(node);\n    if (null !== tag) return tag;\n    node = node.sibling;\n  }\n  return null;\n}\nvar isArrayImpl = Array.isArray,\n  ReactDOMSharedInternals =\n    ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n  sharedNotPendingObject = {\n    pending: !1,\n    data: null,\n    method: null,\n    action: null\n  },\n  valueStack = [],\n  index = -1;\nfunction createCursor(defaultValue) {\n  return { current: defaultValue };\n}\nfunction pop(cursor) {\n  0 > index ||\n    ((cursor.current = valueStack[index]), (valueStack[index] = null), index--);\n}\nfunction push(cursor, value) {\n  index++;\n  valueStack[index] = cursor.current;\n  cursor.current = value;\n}\nvar contextStackCursor = createCursor(null),\n  contextFiberStackCursor = createCursor(null),\n  rootInstanceStackCursor = createCursor(null),\n  hostTransitionProviderCursor = createCursor(null);\nfunction pushHostContainer(fiber, nextRootInstance) {\n  push(rootInstanceStackCursor, nextRootInstance);\n  push(contextFiberStackCursor, fiber);\n  push(contextStackCursor, null);\n  fiber = nextRootInstance.nodeType;\n  switch (fiber) {\n    case 9:\n    case 11:\n      nextRootInstance = (nextRootInstance = nextRootInstance.documentElement)\n        ? (nextRootInstance = nextRootInstance.namespaceURI)\n          ? getOwnHostContext(nextRootInstance)\n          : 0\n        : 0;\n      break;\n    default:\n      if (\n        ((fiber = 8 === fiber ? nextRootInstance.parentNode : nextRootInstance),\n        (nextRootInstance = fiber.tagName),\n        (fiber = fiber.namespaceURI))\n      )\n        (fiber = getOwnHostContext(fiber)),\n          (nextRootInstance = getChildHostContextProd(fiber, nextRootInstance));\n      else\n        switch (nextRootInstance) {\n          case \"svg\":\n            nextRootInstance = 1;\n            break;\n          case \"math\":\n            nextRootInstance = 2;\n            break;\n          default:\n            nextRootInstance = 0;\n        }\n  }\n  pop(contextStackCursor);\n  push(contextStackCursor, nextRootInstance);\n}\nfunction popHostContainer() {\n  pop(contextStackCursor);\n  pop(contextFiberStackCursor);\n  pop(rootInstanceStackCursor);\n}\nfunction pushHostContext(fiber) {\n  null !== fiber.memoizedState && push(hostTransitionProviderCursor, fiber);\n  var context = contextStackCursor.current;\n  var JSCompiler_inline_result = getChildHostContextProd(context, fiber.type);\n  context !== JSCompiler_inline_result &&\n    (push(contextFiberStackCursor, fiber),\n    push(contextStackCursor, JSCompiler_inline_result));\n}\nfunction popHostContext(fiber) {\n  contextFiberStackCursor.current === fiber &&\n    (pop(contextStackCursor), pop(contextFiberStackCursor));\n  hostTransitionProviderCursor.current === fiber &&\n    (pop(hostTransitionProviderCursor),\n    (HostTransitionContext._currentValue = sharedNotPendingObject));\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty,\n  scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n  cancelCallback$1 = Scheduler.unstable_cancelCallback,\n  shouldYield = Scheduler.unstable_shouldYield,\n  requestPaint = Scheduler.unstable_requestPaint,\n  now = Scheduler.unstable_now,\n  getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n  ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n  UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n  NormalPriority$1 = Scheduler.unstable_NormalPriority,\n  LowPriority = Scheduler.unstable_LowPriority,\n  IdlePriority = Scheduler.unstable_IdlePriority,\n  log$1 = Scheduler.log,\n  unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n  rendererID = null,\n  injectedHook = null;\nfunction onCommitRoot(root) {\n  if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberRoot)\n    try {\n      injectedHook.onCommitFiberRoot(\n        rendererID,\n        root,\n        void 0,\n        128 === (root.current.flags & 128)\n      );\n    } catch (err) {}\n}\nfunction setIsStrictModeForDevtools(newIsStrictMode) {\n  \"function\" === typeof log$1 && unstable_setDisableYieldValue(newIsStrictMode);\n  if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n    try {\n      injectedHook.setStrictMode(rendererID, newIsStrictMode);\n    } catch (err) {}\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n  log = Math.log,\n  LN2 = Math.LN2;\nfunction clz32Fallback(x) {\n  x >>>= 0;\n  return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n}\nvar nextTransitionLane = 128,\n  nextRetryLane = 4194304;\nfunction getHighestPriorityLanes(lanes) {\n  var pendingSyncLanes = lanes & 42;\n  if (0 !== pendingSyncLanes) return pendingSyncLanes;\n  switch (lanes & -lanes) {\n    case 1:\n      return 1;\n    case 2:\n      return 2;\n    case 4:\n      return 4;\n    case 8:\n      return 8;\n    case 16:\n      return 16;\n    case 32:\n      return 32;\n    case 64:\n      return 64;\n    case 128:\n    case 256:\n    case 512:\n    case 1024:\n    case 2048:\n    case 4096:\n    case 8192:\n    case 16384:\n    case 32768:\n    case 65536:\n    case 131072:\n    case 262144:\n    case 524288:\n    case 1048576:\n    case 2097152:\n      return lanes & 4194176;\n    case 4194304:\n    case 8388608:\n    case 16777216:\n    case 33554432:\n      return lanes & 62914560;\n    case 67108864:\n      return 67108864;\n    case 134217728:\n      return 134217728;\n    case 268435456:\n      return 268435456;\n    case 536870912:\n      return 536870912;\n    case 1073741824:\n      return 0;\n    default:\n      return lanes;\n  }\n}\nfunction getNextLanes(root, wipLanes) {\n  var pendingLanes = root.pendingLanes;\n  if (0 === pendingLanes) return 0;\n  var nextLanes = 0,\n    suspendedLanes = root.suspendedLanes,\n    pingedLanes = root.pingedLanes,\n    warmLanes = root.warmLanes;\n  root = 0 !== root.finishedLanes;\n  var nonIdlePendingLanes = pendingLanes & 134217727;\n  0 !== nonIdlePendingLanes\n    ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n      0 !== pendingLanes\n        ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n        : ((pingedLanes &= nonIdlePendingLanes),\n          0 !== pingedLanes\n            ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n            : root ||\n              ((warmLanes = nonIdlePendingLanes & ~warmLanes),\n              0 !== warmLanes &&\n                (nextLanes = getHighestPriorityLanes(warmLanes)))))\n    : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n      0 !== nonIdlePendingLanes\n        ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n        : 0 !== pingedLanes\n          ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n          : root ||\n            ((warmLanes = pendingLanes & ~warmLanes),\n            0 !== warmLanes &&\n              (nextLanes = getHighestPriorityLanes(warmLanes))));\n  return 0 === nextLanes\n    ? 0\n    : 0 !== wipLanes &&\n        wipLanes !== nextLanes &&\n        0 === (wipLanes & suspendedLanes) &&\n        ((suspendedLanes = nextLanes & -nextLanes),\n        (warmLanes = wipLanes & -wipLanes),\n        suspendedLanes >= warmLanes ||\n          (32 === suspendedLanes && 0 !== (warmLanes & 4194176)))\n      ? wipLanes\n      : nextLanes;\n}\nfunction checkIfRootIsPrerendering(root, renderLanes) {\n  return (\n    0 ===\n    (root.pendingLanes &\n      ~(root.suspendedLanes & ~root.pingedLanes) &\n      renderLanes)\n  );\n}\nfunction computeExpirationTime(lane, currentTime) {\n  switch (lane) {\n    case 1:\n    case 2:\n    case 4:\n    case 8:\n      return currentTime + 250;\n    case 16:\n    case 32:\n    case 64:\n    case 128:\n    case 256:\n    case 512:\n    case 1024:\n    case 2048:\n    case 4096:\n    case 8192:\n    case 16384:\n    case 32768:\n    case 65536:\n    case 131072:\n    case 262144:\n    case 524288:\n    case 1048576:\n    case 2097152:\n      return currentTime + 5e3;\n    case 4194304:\n    case 8388608:\n    case 16777216:\n    case 33554432:\n      return -1;\n    case 67108864:\n    case 134217728:\n    case 268435456:\n    case 536870912:\n    case 1073741824:\n      return -1;\n    default:\n      return -1;\n  }\n}\nfunction claimNextTransitionLane() {\n  var lane = nextTransitionLane;\n  nextTransitionLane <<= 1;\n  0 === (nextTransitionLane & 4194176) && (nextTransitionLane = 128);\n  return lane;\n}\nfunction claimNextRetryLane() {\n  var lane = nextRetryLane;\n  nextRetryLane <<= 1;\n  0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n  return lane;\n}\nfunction createLaneMap(initial) {\n  for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n  return laneMap;\n}\nfunction markRootUpdated$1(root, updateLane) {\n  root.pendingLanes |= updateLane;\n  268435456 !== updateLane &&\n    ((root.suspendedLanes = 0), (root.pingedLanes = 0), (root.warmLanes = 0));\n}\nfunction markRootFinished(\n  root,\n  finishedLanes,\n  remainingLanes,\n  spawnedLane,\n  updatedLanes,\n  suspendedRetryLanes\n) {\n  var previouslyPendingLanes = root.pendingLanes;\n  root.pendingLanes = remainingLanes;\n  root.suspendedLanes = 0;\n  root.pingedLanes = 0;\n  root.warmLanes = 0;\n  root.expiredLanes &= remainingLanes;\n  root.entangledLanes &= remainingLanes;\n  root.errorRecoveryDisabledLanes &= remainingLanes;\n  root.shellSuspendCounter = 0;\n  var entanglements = root.entanglements,\n    expirationTimes = root.expirationTimes,\n    hiddenUpdates = root.hiddenUpdates;\n  for (\n    remainingLanes = previouslyPendingLanes & ~remainingLanes;\n    0 < remainingLanes;\n\n  ) {\n    var index$7 = 31 - clz32(remainingLanes),\n      lane = 1 << index$7;\n    entanglements[index$7] = 0;\n    expirationTimes[index$7] = -1;\n    var hiddenUpdatesForLane = hiddenUpdates[index$7];\n    if (null !== hiddenUpdatesForLane)\n      for (\n        hiddenUpdates[index$7] = null, index$7 = 0;\n        index$7 < hiddenUpdatesForLane.length;\n        index$7++\n      ) {\n        var update = hiddenUpdatesForLane[index$7];\n        null !== update && (update.lane &= -536870913);\n      }\n    remainingLanes &= ~lane;\n  }\n  0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n  0 !== suspendedRetryLanes &&\n    0 === updatedLanes &&\n    0 !== root.tag &&\n    (root.suspendedLanes |=\n      suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n}\nfunction markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n  root.pendingLanes |= spawnedLane;\n  root.suspendedLanes &= ~spawnedLane;\n  var spawnedLaneIndex = 31 - clz32(spawnedLane);\n  root.entangledLanes |= spawnedLane;\n  root.entanglements[spawnedLaneIndex] =\n    root.entanglements[spawnedLaneIndex] |\n    1073741824 |\n    (entangledLanes & 4194218);\n}\nfunction markRootEntangled(root, entangledLanes) {\n  var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n  for (root = root.entanglements; rootEntangledLanes; ) {\n    var index$8 = 31 - clz32(rootEntangledLanes),\n      lane = 1 << index$8;\n    (lane & entangledLanes) | (root[index$8] & entangledLanes) &&\n      (root[index$8] |= entangledLanes);\n    rootEntangledLanes &= ~lane;\n  }\n}\nfunction lanesToEventPriority(lanes) {\n  lanes &= -lanes;\n  return 2 < lanes\n    ? 8 < lanes\n      ? 0 !== (lanes & 134217727)\n        ? 32\n        : 268435456\n      : 8\n    : 2;\n}\nfunction resolveUpdatePriority() {\n  var updatePriority = ReactDOMSharedInternals.p;\n  if (0 !== updatePriority) return updatePriority;\n  updatePriority = window.event;\n  return void 0 === updatePriority ? 32 : getEventPriority(updatePriority.type);\n}\nfunction runWithPriority(priority, fn) {\n  var previousPriority = ReactDOMSharedInternals.p;\n  try {\n    return (ReactDOMSharedInternals.p = priority), fn();\n  } finally {\n    ReactDOMSharedInternals.p = previousPriority;\n  }\n}\nvar randomKey = Math.random().toString(36).slice(2),\n  internalInstanceKey = \"__reactFiber$\" + randomKey,\n  internalPropsKey = \"__reactProps$\" + randomKey,\n  internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n  internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n  internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n  internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n  internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n  internalHoistableMarker = \"__reactMarker$\" + randomKey;\nfunction detachDeletedInstance(node) {\n  delete node[internalInstanceKey];\n  delete node[internalPropsKey];\n  delete node[internalEventHandlersKey];\n  delete node[internalEventHandlerListenersKey];\n  delete node[internalEventHandlesSetKey];\n}\nfunction getClosestInstanceFromNode(targetNode) {\n  var targetInst = targetNode[internalInstanceKey];\n  if (targetInst) return targetInst;\n  for (var parentNode = targetNode.parentNode; parentNode; ) {\n    if (\n      (targetInst =\n        parentNode[internalContainerInstanceKey] ||\n        parentNode[internalInstanceKey])\n    ) {\n      parentNode = targetInst.alternate;\n      if (\n        null !== targetInst.child ||\n        (null !== parentNode && null !== parentNode.child)\n      )\n        for (\n          targetNode = getParentSuspenseInstance(targetNode);\n          null !== targetNode;\n\n        ) {\n          if ((parentNode = targetNode[internalInstanceKey])) return parentNode;\n          targetNode = getParentSuspenseInstance(targetNode);\n        }\n      return targetInst;\n    }\n    targetNode = parentNode;\n    parentNode = targetNode.parentNode;\n  }\n  return null;\n}\nfunction getInstanceFromNode(node) {\n  if (\n    (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n  ) {\n    var tag = node.tag;\n    if (\n      5 === tag ||\n      6 === tag ||\n      13 === tag ||\n      26 === tag ||\n      27 === tag ||\n      3 === tag\n    )\n      return node;\n  }\n  return null;\n}\nfunction getNodeFromInstance(inst) {\n  var tag = inst.tag;\n  if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return inst.stateNode;\n  throw Error(formatProdErrorMessage(33));\n}\nfunction getResourcesFromRoot(root) {\n  var resources = root[internalRootNodeResourcesKey];\n  resources ||\n    (resources = root[internalRootNodeResourcesKey] =\n      { hoistableStyles: new Map(), hoistableScripts: new Map() });\n  return resources;\n}\nfunction markNodeAsHoistable(node) {\n  node[internalHoistableMarker] = !0;\n}\nvar allNativeEvents = new Set(),\n  registrationNameDependencies = {};\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n  registerDirectEvent(registrationName, dependencies);\n  registerDirectEvent(registrationName + \"Capture\", dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n  registrationNameDependencies[registrationName] = dependencies;\n  for (\n    registrationName = 0;\n    registrationName < dependencies.length;\n    registrationName++\n  )\n    allNativeEvents.add(dependencies[registrationName]);\n}\nvar canUseDOM = !(\n    \"undefined\" === typeof window ||\n    \"undefined\" === typeof window.document ||\n    \"undefined\" === typeof window.document.createElement\n  ),\n  VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n    \"^[: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]*$\"\n  ),\n  illegalAttributeNameCache = {},\n  validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n    return !0;\n  if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1;\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n    return (validatedAttributeNameCache[attributeName] = !0);\n  illegalAttributeNameCache[attributeName] = !0;\n  return !1;\n}\nfunction setValueForAttribute(node, name, value) {\n  if (isAttributeNameSafe(name))\n    if (null === value) node.removeAttribute(name);\n    else {\n      switch (typeof value) {\n        case \"undefined\":\n        case \"function\":\n        case \"symbol\":\n          node.removeAttribute(name);\n          return;\n        case \"boolean\":\n          var prefix$10 = name.toLowerCase().slice(0, 5);\n          if (\"data-\" !== prefix$10 && \"aria-\" !== prefix$10) {\n            node.removeAttribute(name);\n            return;\n          }\n      }\n      node.setAttribute(name, \"\" + value);\n    }\n}\nfunction setValueForKnownAttribute(node, name, value) {\n  if (null === value) node.removeAttribute(name);\n  else {\n    switch (typeof value) {\n      case \"undefined\":\n      case \"function\":\n      case \"symbol\":\n      case \"boolean\":\n        node.removeAttribute(name);\n        return;\n    }\n    node.setAttribute(name, \"\" + value);\n  }\n}\nfunction setValueForNamespacedAttribute(node, namespace, name, value) {\n  if (null === value) node.removeAttribute(name);\n  else {\n    switch (typeof value) {\n      case \"undefined\":\n      case \"function\":\n      case \"symbol\":\n      case \"boolean\":\n        node.removeAttribute(name);\n        return;\n    }\n    node.setAttributeNS(namespace, name, \"\" + value);\n  }\n}\nfunction getToStringValue(value) {\n  switch (typeof value) {\n    case \"bigint\":\n    case \"boolean\":\n    case \"number\":\n    case \"string\":\n    case \"undefined\":\n      return value;\n    case \"object\":\n      return value;\n    default:\n      return \"\";\n  }\n}\nfunction isCheckable(elem) {\n  var type = elem.type;\n  return (\n    (elem = elem.nodeName) &&\n    \"input\" === elem.toLowerCase() &&\n    (\"checkbox\" === type || \"radio\" === type)\n  );\n}\nfunction trackValueOnNode(node) {\n  var valueField = isCheckable(node) ? \"checked\" : \"value\",\n    descriptor = Object.getOwnPropertyDescriptor(\n      node.constructor.prototype,\n      valueField\n    ),\n    currentValue = \"\" + node[valueField];\n  if (\n    !node.hasOwnProperty(valueField) &&\n    \"undefined\" !== typeof descriptor &&\n    \"function\" === typeof descriptor.get &&\n    \"function\" === typeof descriptor.set\n  ) {\n    var get = descriptor.get,\n      set = descriptor.set;\n    Object.defineProperty(node, valueField, {\n      configurable: !0,\n      get: function () {\n        return get.call(this);\n      },\n      set: function (value) {\n        currentValue = \"\" + value;\n        set.call(this, value);\n      }\n    });\n    Object.defineProperty(node, valueField, {\n      enumerable: descriptor.enumerable\n    });\n    return {\n      getValue: function () {\n        return currentValue;\n      },\n      setValue: function (value) {\n        currentValue = \"\" + value;\n      },\n      stopTracking: function () {\n        node._valueTracker = null;\n        delete node[valueField];\n      }\n    };\n  }\n}\nfunction track(node) {\n  node._valueTracker || (node._valueTracker = trackValueOnNode(node));\n}\nfunction updateValueIfChanged(node) {\n  if (!node) return !1;\n  var tracker = node._valueTracker;\n  if (!tracker) return !0;\n  var lastValue = tracker.getValue();\n  var value = \"\";\n  node &&\n    (value = isCheckable(node)\n      ? node.checked\n        ? \"true\"\n        : \"false\"\n      : node.value);\n  node = value;\n  return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n}\nfunction getActiveElement(doc) {\n  doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n  if (\"undefined\" === typeof doc) return null;\n  try {\n    return doc.activeElement || doc.body;\n  } catch (e) {\n    return doc.body;\n  }\n}\nvar escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g;\nfunction escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n  return value.replace(\n    escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n    function (ch) {\n      return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n    }\n  );\n}\nfunction updateInput(\n  element,\n  value,\n  defaultValue,\n  lastDefaultValue,\n  checked,\n  defaultChecked,\n  type,\n  name\n) {\n  element.name = \"\";\n  null != type &&\n  \"function\" !== typeof type &&\n  \"symbol\" !== typeof type &&\n  \"boolean\" !== typeof type\n    ? (element.type = type)\n    : element.removeAttribute(\"type\");\n  if (null != value)\n    if (\"number\" === type) {\n      if ((0 === value && \"\" === element.value) || element.value != value)\n        element.value = \"\" + getToStringValue(value);\n    } else\n      element.value !== \"\" + getToStringValue(value) &&\n        (element.value = \"\" + getToStringValue(value));\n  else\n    (\"submit\" !== type && \"reset\" !== type) || element.removeAttribute(\"value\");\n  null != value\n    ? setDefaultValue(element, type, getToStringValue(value))\n    : null != defaultValue\n      ? setDefaultValue(element, type, getToStringValue(defaultValue))\n      : null != lastDefaultValue && element.removeAttribute(\"value\");\n  null == checked &&\n    null != defaultChecked &&\n    (element.defaultChecked = !!defaultChecked);\n  null != checked &&\n    (element.checked =\n      checked && \"function\" !== typeof checked && \"symbol\" !== typeof checked);\n  null != name &&\n  \"function\" !== typeof name &&\n  \"symbol\" !== typeof name &&\n  \"boolean\" !== typeof name\n    ? (element.name = \"\" + getToStringValue(name))\n    : element.removeAttribute(\"name\");\n}\nfunction initInput(\n  element,\n  value,\n  defaultValue,\n  checked,\n  defaultChecked,\n  type,\n  name,\n  isHydrating\n) {\n  null != type &&\n    \"function\" !== typeof type &&\n    \"symbol\" !== typeof type &&\n    \"boolean\" !== typeof type &&\n    (element.type = type);\n  if (null != value || null != defaultValue) {\n    if (\n      !(\n        (\"submit\" !== type && \"reset\" !== type) ||\n        (void 0 !== value && null !== value)\n      )\n    )\n      return;\n    defaultValue =\n      null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n    value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n    isHydrating || value === element.value || (element.value = value);\n    element.defaultValue = value;\n  }\n  checked = null != checked ? checked : defaultChecked;\n  checked =\n    \"function\" !== typeof checked && \"symbol\" !== typeof checked && !!checked;\n  element.checked = isHydrating ? element.checked : !!checked;\n  element.defaultChecked = !!checked;\n  null != name &&\n    \"function\" !== typeof name &&\n    \"symbol\" !== typeof name &&\n    \"boolean\" !== typeof name &&\n    (element.name = name);\n}\nfunction setDefaultValue(node, type, value) {\n  (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n    node.defaultValue === \"\" + value ||\n    (node.defaultValue = \"\" + value);\n}\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n  node = node.options;\n  if (multiple) {\n    multiple = {};\n    for (var i = 0; i < propValue.length; i++)\n      multiple[\"$\" + propValue[i]] = !0;\n    for (propValue = 0; propValue < node.length; propValue++)\n      (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n        node[propValue].selected !== i && (node[propValue].selected = i),\n        i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n  } else {\n    propValue = \"\" + getToStringValue(propValue);\n    multiple = null;\n    for (i = 0; i < node.length; i++) {\n      if (node[i].value === propValue) {\n        node[i].selected = !0;\n        setDefaultSelected && (node[i].defaultSelected = !0);\n        return;\n      }\n      null !== multiple || node[i].disabled || (multiple = node[i]);\n    }\n    null !== multiple && (multiple.selected = !0);\n  }\n}\nfunction updateTextarea(element, value, defaultValue) {\n  if (\n    null != value &&\n    ((value = \"\" + getToStringValue(value)),\n    value !== element.value && (element.value = value),\n    null == defaultValue)\n  ) {\n    element.defaultValue !== value && (element.defaultValue = value);\n    return;\n  }\n  element.defaultValue =\n    null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n}\nfunction initTextarea(element, value, defaultValue, children) {\n  if (null == value) {\n    if (null != children) {\n      if (null != defaultValue) throw Error(formatProdErrorMessage(92));\n      if (isArrayImpl(children)) {\n        if (1 < children.length) throw Error(formatProdErrorMessage(93));\n        children = children[0];\n      }\n      defaultValue = children;\n    }\n    null == defaultValue && (defaultValue = \"\");\n    value = defaultValue;\n  }\n  defaultValue = getToStringValue(value);\n  element.defaultValue = defaultValue;\n  children = element.textContent;\n  children === defaultValue &&\n    \"\" !== children &&\n    null !== children &&\n    (element.value = children);\n}\nfunction setTextContent(node, text) {\n  if (text) {\n    var firstChild = node.firstChild;\n    if (\n      firstChild &&\n      firstChild === node.lastChild &&\n      3 === firstChild.nodeType\n    ) {\n      firstChild.nodeValue = text;\n      return;\n    }\n  }\n  node.textContent = text;\n}\nvar unitlessNumbers = new Set(\n  \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n    \" \"\n  )\n);\nfunction setValueForStyle(style, styleName, value) {\n  var isCustomProperty = 0 === styleName.indexOf(\"--\");\n  null == value || \"boolean\" === typeof value || \"\" === value\n    ? isCustomProperty\n      ? style.setProperty(styleName, \"\")\n      : \"float\" === styleName\n        ? (style.cssFloat = \"\")\n        : (style[styleName] = \"\")\n    : isCustomProperty\n      ? style.setProperty(styleName, value)\n      : \"number\" !== typeof value ||\n          0 === value ||\n          unitlessNumbers.has(styleName)\n        ? \"float\" === styleName\n          ? (style.cssFloat = value)\n          : (style[styleName] = (\"\" + value).trim())\n        : (style[styleName] = value + \"px\");\n}\nfunction setValueForStyles(node, styles, prevStyles) {\n  if (null != styles && \"object\" !== typeof styles)\n    throw Error(formatProdErrorMessage(62));\n  node = node.style;\n  if (null != prevStyles) {\n    for (var styleName in prevStyles)\n      !prevStyles.hasOwnProperty(styleName) ||\n        (null != styles && styles.hasOwnProperty(styleName)) ||\n        (0 === styleName.indexOf(\"--\")\n          ? node.setProperty(styleName, \"\")\n          : \"float\" === styleName\n            ? (node.cssFloat = \"\")\n            : (node[styleName] = \"\"));\n    for (var styleName$16 in styles)\n      (styleName = styles[styleName$16]),\n        styles.hasOwnProperty(styleName$16) &&\n          prevStyles[styleName$16] !== styleName &&\n          setValueForStyle(node, styleName$16, styleName);\n  } else\n    for (var styleName$17 in styles)\n      styles.hasOwnProperty(styleName$17) &&\n        setValueForStyle(node, styleName$17, styles[styleName$17]);\n}\nfunction isCustomElement(tagName) {\n  if (-1 === tagName.indexOf(\"-\")) return !1;\n  switch (tagName) {\n    case \"annotation-xml\":\n    case \"color-profile\":\n    case \"font-face\":\n    case \"font-face-src\":\n    case \"font-face-uri\":\n    case \"font-face-format\":\n    case \"font-face-name\":\n    case \"missing-glyph\":\n      return !1;\n    default:\n      return !0;\n  }\n}\nvar aliases = new Map([\n    [\"acceptCharset\", \"accept-charset\"],\n    [\"htmlFor\", \"for\"],\n    [\"httpEquiv\", \"http-equiv\"],\n    [\"crossOrigin\", \"crossorigin\"],\n    [\"accentHeight\", \"accent-height\"],\n    [\"alignmentBaseline\", \"alignment-baseline\"],\n    [\"arabicForm\", \"arabic-form\"],\n    [\"baselineShift\", \"baseline-shift\"],\n    [\"capHeight\", \"cap-height\"],\n    [\"clipPath\", \"clip-path\"],\n    [\"clipRule\", \"clip-rule\"],\n    [\"colorInterpolation\", \"color-interpolation\"],\n    [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n    [\"colorProfile\", \"color-profile\"],\n    [\"colorRendering\", \"color-rendering\"],\n    [\"dominantBaseline\", \"dominant-baseline\"],\n    [\"enableBackground\", \"enable-background\"],\n    [\"fillOpacity\", \"fill-opacity\"],\n    [\"fillRule\", \"fill-rule\"],\n    [\"floodColor\", \"flood-color\"],\n    [\"floodOpacity\", \"flood-opacity\"],\n    [\"fontFamily\", \"font-family\"],\n    [\"fontSize\", \"font-size\"],\n    [\"fontSizeAdjust\", \"font-size-adjust\"],\n    [\"fontStretch\", \"font-stretch\"],\n    [\"fontStyle\", \"font-style\"],\n    [\"fontVariant\", \"font-variant\"],\n    [\"fontWeight\", \"font-weight\"],\n    [\"glyphName\", \"glyph-name\"],\n    [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n    [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n    [\"horizAdvX\", \"horiz-adv-x\"],\n    [\"horizOriginX\", \"horiz-origin-x\"],\n    [\"imageRendering\", \"image-rendering\"],\n    [\"letterSpacing\", \"letter-spacing\"],\n    [\"lightingColor\", \"lighting-color\"],\n    [\"markerEnd\", \"marker-end\"],\n    [\"markerMid\", \"marker-mid\"],\n    [\"markerStart\", \"marker-start\"],\n    [\"overlinePosition\", \"overline-position\"],\n    [\"overlineThickness\", \"overline-thickness\"],\n    [\"paintOrder\", \"paint-order\"],\n    [\"panose-1\", \"panose-1\"],\n    [\"pointerEvents\", \"pointer-events\"],\n    [\"renderingIntent\", \"rendering-intent\"],\n    [\"shapeRendering\", \"shape-rendering\"],\n    [\"stopColor\", \"stop-color\"],\n    [\"stopOpacity\", \"stop-opacity\"],\n    [\"strikethroughPosition\", \"strikethrough-position\"],\n    [\"strikethroughThickness\", \"strikethrough-thickness\"],\n    [\"strokeDasharray\", \"stroke-dasharray\"],\n    [\"strokeDashoffset\", \"stroke-dashoffset\"],\n    [\"strokeLinecap\", \"stroke-linecap\"],\n    [\"strokeLinejoin\", \"stroke-linejoin\"],\n    [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n    [\"strokeOpacity\", \"stroke-opacity\"],\n    [\"strokeWidth\", \"stroke-width\"],\n    [\"textAnchor\", \"text-anchor\"],\n    [\"textDecoration\", \"text-decoration\"],\n    [\"textRendering\", \"text-rendering\"],\n    [\"transformOrigin\", \"transform-origin\"],\n    [\"underlinePosition\", \"underline-position\"],\n    [\"underlineThickness\", \"underline-thickness\"],\n    [\"unicodeBidi\", \"unicode-bidi\"],\n    [\"unicodeRange\", \"unicode-range\"],\n    [\"unitsPerEm\", \"units-per-em\"],\n    [\"vAlphabetic\", \"v-alphabetic\"],\n    [\"vHanging\", \"v-hanging\"],\n    [\"vIdeographic\", \"v-ideographic\"],\n    [\"vMathematical\", \"v-mathematical\"],\n    [\"vectorEffect\", \"vector-effect\"],\n    [\"vertAdvY\", \"vert-adv-y\"],\n    [\"vertOriginX\", \"vert-origin-x\"],\n    [\"vertOriginY\", \"vert-origin-y\"],\n    [\"wordSpacing\", \"word-spacing\"],\n    [\"writingMode\", \"writing-mode\"],\n    [\"xmlnsXlink\", \"xmlns:xlink\"],\n    [\"xHeight\", \"x-height\"]\n  ]),\n  isJavaScriptProtocol =\n    /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;\nfunction sanitizeURL(url) {\n  return isJavaScriptProtocol.test(\"\" + url)\n    ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n    : url;\n}\nvar currentReplayingEvent = null;\nfunction getEventTarget(nativeEvent) {\n  nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n  nativeEvent.correspondingUseElement &&\n    (nativeEvent = nativeEvent.correspondingUseElement);\n  return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n}\nvar restoreTarget = null,\n  restoreQueue = null;\nfunction restoreStateOfTarget(target) {\n  var internalInstance = getInstanceFromNode(target);\n  if (internalInstance && (target = internalInstance.stateNode)) {\n    var props = target[internalPropsKey] || null;\n    a: switch (((target = internalInstance.stateNode), internalInstance.type)) {\n      case \"input\":\n        updateInput(\n          target,\n          props.value,\n          props.defaultValue,\n          props.defaultValue,\n          props.checked,\n          props.defaultChecked,\n          props.type,\n          props.name\n        );\n        internalInstance = props.name;\n        if (\"radio\" === props.type && null != internalInstance) {\n          for (props = target; props.parentNode; ) props = props.parentNode;\n          props = props.querySelectorAll(\n            'input[name=\"' +\n              escapeSelectorAttributeValueInsideDoubleQuotes(\n                \"\" + internalInstance\n              ) +\n              '\"][type=\"radio\"]'\n          );\n          for (\n            internalInstance = 0;\n            internalInstance < props.length;\n            internalInstance++\n          ) {\n            var otherNode = props[internalInstance];\n            if (otherNode !== target && otherNode.form === target.form) {\n              var otherProps = otherNode[internalPropsKey] || null;\n              if (!otherProps) throw Error(formatProdErrorMessage(90));\n              updateInput(\n                otherNode,\n                otherProps.value,\n                otherProps.defaultValue,\n                otherProps.defaultValue,\n                otherProps.checked,\n                otherProps.defaultChecked,\n                otherProps.type,\n                otherProps.name\n              );\n            }\n          }\n          for (\n            internalInstance = 0;\n            internalInstance < props.length;\n            internalInstance++\n          )\n            (otherNode = props[internalInstance]),\n              otherNode.form === target.form && updateValueIfChanged(otherNode);\n        }\n        break a;\n      case \"textarea\":\n        updateTextarea(target, props.value, props.defaultValue);\n        break a;\n      case \"select\":\n        (internalInstance = props.value),\n          null != internalInstance &&\n            updateOptions(target, !!props.multiple, internalInstance, !1);\n    }\n  }\n}\nvar isInsideEventHandler = !1;\nfunction batchedUpdates$1(fn, a, b) {\n  if (isInsideEventHandler) return fn(a, b);\n  isInsideEventHandler = !0;\n  try {\n    var JSCompiler_inline_result = fn(a);\n    return JSCompiler_inline_result;\n  } finally {\n    if (\n      ((isInsideEventHandler = !1),\n      null !== restoreTarget || null !== restoreQueue)\n    )\n      if (\n        (flushSyncWork$1(),\n        restoreTarget &&\n          ((a = restoreTarget),\n          (fn = restoreQueue),\n          (restoreQueue = restoreTarget = null),\n          restoreStateOfTarget(a),\n          fn))\n      )\n        for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n  }\n}\nfunction getListener(inst, registrationName) {\n  var stateNode = inst.stateNode;\n  if (null === stateNode) return null;\n  var props = stateNode[internalPropsKey] || null;\n  if (null === props) return null;\n  stateNode = props[registrationName];\n  a: switch (registrationName) {\n    case \"onClick\":\n    case \"onClickCapture\":\n    case \"onDoubleClick\":\n    case \"onDoubleClickCapture\":\n    case \"onMouseDown\":\n    case \"onMouseDownCapture\":\n    case \"onMouseMove\":\n    case \"onMouseMoveCapture\":\n    case \"onMouseUp\":\n    case \"onMouseUpCapture\":\n    case \"onMouseEnter\":\n      (props = !props.disabled) ||\n        ((inst = inst.type),\n        (props = !(\n          \"button\" === inst ||\n          \"input\" === inst ||\n          \"select\" === inst ||\n          \"textarea\" === inst\n        )));\n      inst = !props;\n      break a;\n    default:\n      inst = !1;\n  }\n  if (inst) return null;\n  if (stateNode && \"function\" !== typeof stateNode)\n    throw Error(\n      formatProdErrorMessage(231, registrationName, typeof stateNode)\n    );\n  return stateNode;\n}\nvar passiveBrowserEventsSupported = !1;\nif (canUseDOM)\n  try {\n    var options = {};\n    Object.defineProperty(options, \"passive\", {\n      get: function () {\n        passiveBrowserEventsSupported = !0;\n      }\n    });\n    window.addEventListener(\"test\", options, options);\n    window.removeEventListener(\"test\", options, options);\n  } catch (e) {\n    passiveBrowserEventsSupported = !1;\n  }\nvar root = null,\n  startText = null,\n  fallbackText = null;\nfunction getData() {\n  if (fallbackText) return fallbackText;\n  var start,\n    startValue = startText,\n    startLength = startValue.length,\n    end,\n    endValue = \"value\" in root ? root.value : root.textContent,\n    endLength = endValue.length;\n  for (\n    start = 0;\n    start < startLength && startValue[start] === endValue[start];\n    start++\n  );\n  var minEnd = startLength - start;\n  for (\n    end = 1;\n    end <= minEnd &&\n    startValue[startLength - end] === endValue[endLength - end];\n    end++\n  );\n  return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n}\nfunction getEventCharCode(nativeEvent) {\n  var keyCode = nativeEvent.keyCode;\n  \"charCode\" in nativeEvent\n    ? ((nativeEvent = nativeEvent.charCode),\n      0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n    : (nativeEvent = keyCode);\n  10 === nativeEvent && (nativeEvent = 13);\n  return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n}\nfunction functionThatReturnsTrue() {\n  return !0;\n}\nfunction functionThatReturnsFalse() {\n  return !1;\n}\nfunction createSyntheticEvent(Interface) {\n  function SyntheticBaseEvent(\n    reactName,\n    reactEventType,\n    targetInst,\n    nativeEvent,\n    nativeEventTarget\n  ) {\n    this._reactName = reactName;\n    this._targetInst = targetInst;\n    this.type = reactEventType;\n    this.nativeEvent = nativeEvent;\n    this.target = nativeEventTarget;\n    this.currentTarget = null;\n    for (var propName in Interface)\n      Interface.hasOwnProperty(propName) &&\n        ((reactName = Interface[propName]),\n        (this[propName] = reactName\n          ? reactName(nativeEvent)\n          : nativeEvent[propName]));\n    this.isDefaultPrevented = (\n      null != nativeEvent.defaultPrevented\n        ? nativeEvent.defaultPrevented\n        : !1 === nativeEvent.returnValue\n    )\n      ? functionThatReturnsTrue\n      : functionThatReturnsFalse;\n    this.isPropagationStopped = functionThatReturnsFalse;\n    return this;\n  }\n  assign(SyntheticBaseEvent.prototype, {\n    preventDefault: function () {\n      this.defaultPrevented = !0;\n      var event = this.nativeEvent;\n      event &&\n        (event.preventDefault\n          ? event.preventDefault()\n          : \"unknown\" !== typeof event.returnValue && (event.returnValue = !1),\n        (this.isDefaultPrevented = functionThatReturnsTrue));\n    },\n    stopPropagation: function () {\n      var event = this.nativeEvent;\n      event &&\n        (event.stopPropagation\n          ? event.stopPropagation()\n          : \"unknown\" !== typeof event.cancelBubble &&\n            (event.cancelBubble = !0),\n        (this.isPropagationStopped = functionThatReturnsTrue));\n    },\n    persist: function () {},\n    isPersistent: functionThatReturnsTrue\n  });\n  return SyntheticBaseEvent;\n}\nvar EventInterface = {\n    eventPhase: 0,\n    bubbles: 0,\n    cancelable: 0,\n    timeStamp: function (event) {\n      return event.timeStamp || Date.now();\n    },\n    defaultPrevented: 0,\n    isTrusted: 0\n  },\n  SyntheticEvent = createSyntheticEvent(EventInterface),\n  UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n  SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n  lastMovementX,\n  lastMovementY,\n  lastMouseEvent,\n  MouseEventInterface = assign({}, UIEventInterface, {\n    screenX: 0,\n    screenY: 0,\n    clientX: 0,\n    clientY: 0,\n    pageX: 0,\n    pageY: 0,\n    ctrlKey: 0,\n    shiftKey: 0,\n    altKey: 0,\n    metaKey: 0,\n    getModifierState: getEventModifierState,\n    button: 0,\n    buttons: 0,\n    relatedTarget: function (event) {\n      return void 0 === event.relatedTarget\n        ? event.fromElement === event.srcElement\n          ? event.toElement\n          : event.fromElement\n        : event.relatedTarget;\n    },\n    movementX: function (event) {\n      if (\"movementX\" in event) return event.movementX;\n      event !== lastMouseEvent &&\n        (lastMouseEvent && \"mousemove\" === event.type\n          ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n            (lastMovementY = event.screenY - lastMouseEvent.screenY))\n          : (lastMovementY = lastMovementX = 0),\n        (lastMouseEvent = event));\n      return lastMovementX;\n    },\n    movementY: function (event) {\n      return \"movementY\" in event ? event.movementY : lastMovementY;\n    }\n  }),\n  SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n  DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n  SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n  FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n  SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n  AnimationEventInterface = assign({}, EventInterface, {\n    animationName: 0,\n    elapsedTime: 0,\n    pseudoElement: 0\n  }),\n  SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n  ClipboardEventInterface = assign({}, EventInterface, {\n    clipboardData: function (event) {\n      return \"clipboardData\" in event\n        ? event.clipboardData\n        : window.clipboardData;\n    }\n  }),\n  SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n  CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n  SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface),\n  normalizeKey = {\n    Esc: \"Escape\",\n    Spacebar: \" \",\n    Left: \"ArrowLeft\",\n    Up: \"ArrowUp\",\n    Right: \"ArrowRight\",\n    Down: \"ArrowDown\",\n    Del: \"Delete\",\n    Win: \"OS\",\n    Menu: \"ContextMenu\",\n    Apps: \"ContextMenu\",\n    Scroll: \"ScrollLock\",\n    MozPrintableKey: \"Unidentified\"\n  },\n  translateToKey = {\n    8: \"Backspace\",\n    9: \"Tab\",\n    12: \"Clear\",\n    13: \"Enter\",\n    16: \"Shift\",\n    17: \"Control\",\n    18: \"Alt\",\n    19: \"Pause\",\n    20: \"CapsLock\",\n    27: \"Escape\",\n    32: \" \",\n    33: \"PageUp\",\n    34: \"PageDown\",\n    35: \"End\",\n    36: \"Home\",\n    37: \"ArrowLeft\",\n    38: \"ArrowUp\",\n    39: \"ArrowRight\",\n    40: \"ArrowDown\",\n    45: \"Insert\",\n    46: \"Delete\",\n    112: \"F1\",\n    113: \"F2\",\n    114: \"F3\",\n    115: \"F4\",\n    116: \"F5\",\n    117: \"F6\",\n    118: \"F7\",\n    119: \"F8\",\n    120: \"F9\",\n    121: \"F10\",\n    122: \"F11\",\n    123: \"F12\",\n    144: \"NumLock\",\n    145: \"ScrollLock\",\n    224: \"Meta\"\n  },\n  modifierKeyToProp = {\n    Alt: \"altKey\",\n    Control: \"ctrlKey\",\n    Meta: \"metaKey\",\n    Shift: \"shiftKey\"\n  };\nfunction modifierStateGetter(keyArg) {\n  var nativeEvent = this.nativeEvent;\n  return nativeEvent.getModifierState\n    ? nativeEvent.getModifierState(keyArg)\n    : (keyArg = modifierKeyToProp[keyArg])\n      ? !!nativeEvent[keyArg]\n      : !1;\n}\nfunction getEventModifierState() {\n  return modifierStateGetter;\n}\nvar KeyboardEventInterface = assign({}, UIEventInterface, {\n    key: function (nativeEvent) {\n      if (nativeEvent.key) {\n        var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n        if (\"Unidentified\" !== key) return key;\n      }\n      return \"keypress\" === nativeEvent.type\n        ? ((nativeEvent = getEventCharCode(nativeEvent)),\n          13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n        : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n          ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n          : \"\";\n    },\n    code: 0,\n    location: 0,\n    ctrlKey: 0,\n    shiftKey: 0,\n    altKey: 0,\n    metaKey: 0,\n    repeat: 0,\n    locale: 0,\n    getModifierState: getEventModifierState,\n    charCode: function (event) {\n      return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n    },\n    keyCode: function (event) {\n      return \"keydown\" === event.type || \"keyup\" === event.type\n        ? event.keyCode\n        : 0;\n    },\n    which: function (event) {\n      return \"keypress\" === event.type\n        ? getEventCharCode(event)\n        : \"keydown\" === event.type || \"keyup\" === event.type\n          ? event.keyCode\n          : 0;\n    }\n  }),\n  SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n  PointerEventInterface = assign({}, MouseEventInterface, {\n    pointerId: 0,\n    width: 0,\n    height: 0,\n    pressure: 0,\n    tangentialPressure: 0,\n    tiltX: 0,\n    tiltY: 0,\n    twist: 0,\n    pointerType: 0,\n    isPrimary: 0\n  }),\n  SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n  TouchEventInterface = assign({}, UIEventInterface, {\n    touches: 0,\n    targetTouches: 0,\n    changedTouches: 0,\n    altKey: 0,\n    metaKey: 0,\n    ctrlKey: 0,\n    shiftKey: 0,\n    getModifierState: getEventModifierState\n  }),\n  SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n  TransitionEventInterface = assign({}, EventInterface, {\n    propertyName: 0,\n    elapsedTime: 0,\n    pseudoElement: 0\n  }),\n  SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n  WheelEventInterface = assign({}, MouseEventInterface, {\n    deltaX: function (event) {\n      return \"deltaX\" in event\n        ? event.deltaX\n        : \"wheelDeltaX\" in event\n          ? -event.wheelDeltaX\n          : 0;\n    },\n    deltaY: function (event) {\n      return \"deltaY\" in event\n        ? event.deltaY\n        : \"wheelDeltaY\" in event\n          ? -event.wheelDeltaY\n          : \"wheelDelta\" in event\n            ? -event.wheelDelta\n            : 0;\n    },\n    deltaZ: 0,\n    deltaMode: 0\n  }),\n  SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n  ToggleEventInterface = assign({}, EventInterface, {\n    newState: 0,\n    oldState: 0\n  }),\n  SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n  END_KEYCODES = [9, 13, 27, 32],\n  canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n  documentMode = null;\ncanUseDOM &&\n  \"documentMode\" in document &&\n  (documentMode = document.documentMode);\nvar canUseTextInputEvent = canUseDOM && \"TextEvent\" in window && !documentMode,\n  useFallbackCompositionData =\n    canUseDOM &&\n    (!canUseCompositionEvent ||\n      (documentMode && 8 < documentMode && 11 >= documentMode)),\n  SPACEBAR_CHAR = String.fromCharCode(32),\n  hasSpaceKeypress = !1;\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case \"keyup\":\n      return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n    case \"keydown\":\n      return 229 !== nativeEvent.keyCode;\n    case \"keypress\":\n    case \"mousedown\":\n    case \"focusout\":\n      return !0;\n    default:\n      return !1;\n  }\n}\nfunction getDataFromCustomEvent(nativeEvent) {\n  nativeEvent = nativeEvent.detail;\n  return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n    ? nativeEvent.data\n    : null;\n}\nvar isComposing = !1;\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case \"compositionend\":\n      return getDataFromCustomEvent(nativeEvent);\n    case \"keypress\":\n      if (32 !== nativeEvent.which) return null;\n      hasSpaceKeypress = !0;\n      return SPACEBAR_CHAR;\n    case \"textInput\":\n      return (\n        (domEventName = nativeEvent.data),\n        domEventName === SPACEBAR_CHAR && hasSpaceKeypress ? null : domEventName\n      );\n    default:\n      return null;\n  }\n}\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n  if (isComposing)\n    return \"compositionend\" === domEventName ||\n      (!canUseCompositionEvent &&\n        isFallbackCompositionEnd(domEventName, nativeEvent))\n      ? ((domEventName = getData()),\n        (fallbackText = startText = root = null),\n        (isComposing = !1),\n        domEventName)\n      : null;\n  switch (domEventName) {\n    case \"paste\":\n      return null;\n    case \"keypress\":\n      if (\n        !(nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) ||\n        (nativeEvent.ctrlKey && nativeEvent.altKey)\n      ) {\n        if (nativeEvent.char && 1 < nativeEvent.char.length)\n          return nativeEvent.char;\n        if (nativeEvent.which) return String.fromCharCode(nativeEvent.which);\n      }\n      return null;\n    case \"compositionend\":\n      return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n        ? null\n        : nativeEvent.data;\n    default:\n      return null;\n  }\n}\nvar supportedInputTypes = {\n  color: !0,\n  date: !0,\n  datetime: !0,\n  \"datetime-local\": !0,\n  email: !0,\n  month: !0,\n  number: !0,\n  password: !0,\n  range: !0,\n  search: !0,\n  tel: !0,\n  text: !0,\n  time: !0,\n  url: !0,\n  week: !0\n};\nfunction isTextInputElement(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return \"input\" === nodeName\n    ? !!supportedInputTypes[elem.type]\n    : \"textarea\" === nodeName\n      ? !0\n      : !1;\n}\nfunction createAndAccumulateChangeEvent(\n  dispatchQueue,\n  inst,\n  nativeEvent,\n  target\n) {\n  restoreTarget\n    ? restoreQueue\n      ? restoreQueue.push(target)\n      : (restoreQueue = [target])\n    : (restoreTarget = target);\n  inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n  0 < inst.length &&\n    ((nativeEvent = new SyntheticEvent(\n      \"onChange\",\n      \"change\",\n      null,\n      nativeEvent,\n      target\n    )),\n    dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n}\nvar activeElement$1 = null,\n  activeElementInst$1 = null;\nfunction runEventInBatch(dispatchQueue) {\n  processDispatchQueue(dispatchQueue, 0);\n}\nfunction getInstIfValueChanged(targetInst) {\n  var targetNode = getNodeFromInstance(targetInst);\n  if (updateValueIfChanged(targetNode)) return targetInst;\n}\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n  if (\"change\" === domEventName) return targetInst;\n}\nvar isInputEventSupported = !1;\nif (canUseDOM) {\n  var JSCompiler_inline_result$jscomp$283;\n  if (canUseDOM) {\n    var isSupported$jscomp$inline_418 = \"oninput\" in document;\n    if (!isSupported$jscomp$inline_418) {\n      var element$jscomp$inline_419 = document.createElement(\"div\");\n      element$jscomp$inline_419.setAttribute(\"oninput\", \"return;\");\n      isSupported$jscomp$inline_418 =\n        \"function\" === typeof element$jscomp$inline_419.oninput;\n    }\n    JSCompiler_inline_result$jscomp$283 = isSupported$jscomp$inline_418;\n  } else JSCompiler_inline_result$jscomp$283 = !1;\n  isInputEventSupported =\n    JSCompiler_inline_result$jscomp$283 &&\n    (!document.documentMode || 9 < document.documentMode);\n}\nfunction stopWatchingForValueChange() {\n  activeElement$1 &&\n    (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n    (activeElementInst$1 = activeElement$1 = null));\n}\nfunction handlePropertyChange(nativeEvent) {\n  if (\n    \"value\" === nativeEvent.propertyName &&\n    getInstIfValueChanged(activeElementInst$1)\n  ) {\n    var dispatchQueue = [];\n    createAndAccumulateChangeEvent(\n      dispatchQueue,\n      activeElementInst$1,\n      nativeEvent,\n      getEventTarget(nativeEvent)\n    );\n    batchedUpdates$1(runEventInBatch, dispatchQueue);\n  }\n}\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n  \"focusin\" === domEventName\n    ? (stopWatchingForValueChange(),\n      (activeElement$1 = target),\n      (activeElementInst$1 = targetInst),\n      activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n    : \"focusout\" === domEventName && stopWatchingForValueChange();\n}\nfunction getTargetInstForInputEventPolyfill(domEventName) {\n  if (\n    \"selectionchange\" === domEventName ||\n    \"keyup\" === domEventName ||\n    \"keydown\" === domEventName\n  )\n    return getInstIfValueChanged(activeElementInst$1);\n}\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n  if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n}\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n  if (\"input\" === domEventName || \"change\" === domEventName)\n    return getInstIfValueChanged(targetInst);\n}\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is;\nfunction shallowEqual(objA, objB) {\n  if (objectIs(objA, objB)) return !0;\n  if (\n    \"object\" !== typeof objA ||\n    null === objA ||\n    \"object\" !== typeof objB ||\n    null === objB\n  )\n    return !1;\n  var keysA = Object.keys(objA),\n    keysB = Object.keys(objB);\n  if (keysA.length !== keysB.length) return !1;\n  for (keysB = 0; keysB < keysA.length; keysB++) {\n    var currentKey = keysA[keysB];\n    if (\n      !hasOwnProperty.call(objB, currentKey) ||\n      !objectIs(objA[currentKey], objB[currentKey])\n    )\n      return !1;\n  }\n  return !0;\n}\nfunction getLeafNode(node) {\n  for (; node && node.firstChild; ) node = node.firstChild;\n  return node;\n}\nfunction getNodeForCharacterOffset(root, offset) {\n  var node = getLeafNode(root);\n  root = 0;\n  for (var nodeEnd; node; ) {\n    if (3 === node.nodeType) {\n      nodeEnd = root + node.textContent.length;\n      if (root <= offset && nodeEnd >= offset)\n        return { node: node, offset: offset - root };\n      root = nodeEnd;\n    }\n    a: {\n      for (; node; ) {\n        if (node.nextSibling) {\n          node = node.nextSibling;\n          break a;\n        }\n        node = node.parentNode;\n      }\n      node = void 0;\n    }\n    node = getLeafNode(node);\n  }\n}\nfunction containsNode(outerNode, innerNode) {\n  return outerNode && innerNode\n    ? outerNode === innerNode\n      ? !0\n      : outerNode && 3 === outerNode.nodeType\n        ? !1\n        : innerNode && 3 === innerNode.nodeType\n          ? containsNode(outerNode, innerNode.parentNode)\n          : \"contains\" in outerNode\n            ? outerNode.contains(innerNode)\n            : outerNode.compareDocumentPosition\n              ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n              : !1\n    : !1;\n}\nfunction getActiveElementDeep(containerInfo) {\n  containerInfo =\n    null != containerInfo &&\n    null != containerInfo.ownerDocument &&\n    null != containerInfo.ownerDocument.defaultView\n      ? containerInfo.ownerDocument.defaultView\n      : window;\n  for (\n    var element = getActiveElement(containerInfo.document);\n    element instanceof containerInfo.HTMLIFrameElement;\n\n  ) {\n    try {\n      var JSCompiler_inline_result =\n        \"string\" === typeof element.contentWindow.location.href;\n    } catch (err) {\n      JSCompiler_inline_result = !1;\n    }\n    if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n    else break;\n    element = getActiveElement(containerInfo.document);\n  }\n  return element;\n}\nfunction hasSelectionCapabilities(elem) {\n  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n  return (\n    nodeName &&\n    ((\"input\" === nodeName &&\n      (\"text\" === elem.type ||\n        \"search\" === elem.type ||\n        \"tel\" === elem.type ||\n        \"url\" === elem.type ||\n        \"password\" === elem.type)) ||\n      \"textarea\" === nodeName ||\n      \"true\" === elem.contentEditable)\n  );\n}\nfunction restoreSelection(priorSelectionInformation, containerInfo) {\n  var curFocusedElem = getActiveElementDeep(containerInfo);\n  containerInfo = priorSelectionInformation.focusedElem;\n  var priorSelectionRange = priorSelectionInformation.selectionRange;\n  if (\n    curFocusedElem !== containerInfo &&\n    containerInfo &&\n    containerInfo.ownerDocument &&\n    containsNode(containerInfo.ownerDocument.documentElement, containerInfo)\n  ) {\n    if (null !== priorSelectionRange && hasSelectionCapabilities(containerInfo))\n      if (\n        ((priorSelectionInformation = priorSelectionRange.start),\n        (curFocusedElem = priorSelectionRange.end),\n        void 0 === curFocusedElem &&\n          (curFocusedElem = priorSelectionInformation),\n        \"selectionStart\" in containerInfo)\n      )\n        (containerInfo.selectionStart = priorSelectionInformation),\n          (containerInfo.selectionEnd = Math.min(\n            curFocusedElem,\n            containerInfo.value.length\n          ));\n      else if (\n        ((curFocusedElem =\n          ((priorSelectionInformation =\n            containerInfo.ownerDocument || document) &&\n            priorSelectionInformation.defaultView) ||\n          window),\n        curFocusedElem.getSelection)\n      ) {\n        curFocusedElem = curFocusedElem.getSelection();\n        var length = containerInfo.textContent.length,\n          start = Math.min(priorSelectionRange.start, length);\n        priorSelectionRange =\n          void 0 === priorSelectionRange.end\n            ? start\n            : Math.min(priorSelectionRange.end, length);\n        !curFocusedElem.extend &&\n          start > priorSelectionRange &&\n          ((length = priorSelectionRange),\n          (priorSelectionRange = start),\n          (start = length));\n        length = getNodeForCharacterOffset(containerInfo, start);\n        var endMarker = getNodeForCharacterOffset(\n          containerInfo,\n          priorSelectionRange\n        );\n        length &&\n          endMarker &&\n          (1 !== curFocusedElem.rangeCount ||\n            curFocusedElem.anchorNode !== length.node ||\n            curFocusedElem.anchorOffset !== length.offset ||\n            curFocusedElem.focusNode !== endMarker.node ||\n            curFocusedElem.focusOffset !== endMarker.offset) &&\n          ((priorSelectionInformation =\n            priorSelectionInformation.createRange()),\n          priorSelectionInformation.setStart(length.node, length.offset),\n          curFocusedElem.removeAllRanges(),\n          start > priorSelectionRange\n            ? (curFocusedElem.addRange(priorSelectionInformation),\n              curFocusedElem.extend(endMarker.node, endMarker.offset))\n            : (priorSelectionInformation.setEnd(\n                endMarker.node,\n                endMarker.offset\n              ),\n              curFocusedElem.addRange(priorSelectionInformation)));\n      }\n    priorSelectionInformation = [];\n    for (\n      curFocusedElem = containerInfo;\n      (curFocusedElem = curFocusedElem.parentNode);\n\n    )\n      1 === curFocusedElem.nodeType &&\n        priorSelectionInformation.push({\n          element: curFocusedElem,\n          left: curFocusedElem.scrollLeft,\n          top: curFocusedElem.scrollTop\n        });\n    \"function\" === typeof containerInfo.focus && containerInfo.focus();\n    for (\n      containerInfo = 0;\n      containerInfo < priorSelectionInformation.length;\n      containerInfo++\n    )\n      (curFocusedElem = priorSelectionInformation[containerInfo]),\n        (curFocusedElem.element.scrollLeft = curFocusedElem.left),\n        (curFocusedElem.element.scrollTop = curFocusedElem.top);\n  }\n}\nvar skipSelectionChangeEvent =\n    canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n  activeElement = null,\n  activeElementInst = null,\n  lastSelection = null,\n  mouseDown = !1;\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n  var doc =\n    nativeEventTarget.window === nativeEventTarget\n      ? nativeEventTarget.document\n      : 9 === nativeEventTarget.nodeType\n        ? nativeEventTarget\n        : nativeEventTarget.ownerDocument;\n  mouseDown ||\n    null == activeElement ||\n    activeElement !== getActiveElement(doc) ||\n    ((doc = activeElement),\n    \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n      ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n      : ((doc = (\n          (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n          window\n        ).getSelection()),\n        (doc = {\n          anchorNode: doc.anchorNode,\n          anchorOffset: doc.anchorOffset,\n          focusNode: doc.focusNode,\n          focusOffset: doc.focusOffset\n        })),\n    (lastSelection && shallowEqual(lastSelection, doc)) ||\n      ((lastSelection = doc),\n      (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n      0 < doc.length &&\n        ((nativeEvent = new SyntheticEvent(\n          \"onSelect\",\n          \"select\",\n          null,\n          nativeEvent,\n          nativeEventTarget\n        )),\n        dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n        (nativeEvent.target = activeElement))));\n}\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n  prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n  return prefixes;\n}\nvar vendorPrefixes = {\n    animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n    animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n    animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n    transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n    transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n    transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n    transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n  },\n  prefixedEventNames = {},\n  style = {};\ncanUseDOM &&\n  ((style = document.createElement(\"div\").style),\n  \"AnimationEvent\" in window ||\n    (delete vendorPrefixes.animationend.animation,\n    delete vendorPrefixes.animationiteration.animation,\n    delete vendorPrefixes.animationstart.animation),\n  \"TransitionEvent\" in window ||\n    delete vendorPrefixes.transitionend.transition);\nfunction getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n  if (!vendorPrefixes[eventName]) return eventName;\n  var prefixMap = vendorPrefixes[eventName],\n    styleProp;\n  for (styleProp in prefixMap)\n    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n      return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n  return eventName;\n}\nvar ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n  ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n  ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n  TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n  TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n  TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n  TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n  topLevelEventsToReactNames = new Map(),\n  simpleEventPluginEvents =\n    \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll scrollEnd toggle touchMove waiting wheel\".split(\n      \" \"\n    );\nfunction registerSimpleEvent(domEventName, reactName) {\n  topLevelEventsToReactNames.set(domEventName, reactName);\n  registerTwoPhaseEvent(reactName, [domEventName]);\n}\nvar concurrentQueues = [],\n  concurrentQueuesIndex = 0,\n  concurrentlyUpdatedLanes = 0;\nfunction finishQueueingConcurrentUpdates() {\n  for (\n    var endIndex = concurrentQueuesIndex,\n      i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n    i < endIndex;\n\n  ) {\n    var fiber = concurrentQueues[i];\n    concurrentQueues[i++] = null;\n    var queue = concurrentQueues[i];\n    concurrentQueues[i++] = null;\n    var update = concurrentQueues[i];\n    concurrentQueues[i++] = null;\n    var lane = concurrentQueues[i];\n    concurrentQueues[i++] = null;\n    if (null !== queue && null !== update) {\n      var pending = queue.pending;\n      null === pending\n        ? (update.next = update)\n        : ((update.next = pending.next), (pending.next = update));\n      queue.pending = update;\n    }\n    0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n  }\n}\nfunction enqueueUpdate$1(fiber, queue, update, lane) {\n  concurrentQueues[concurrentQueuesIndex++] = fiber;\n  concurrentQueues[concurrentQueuesIndex++] = queue;\n  concurrentQueues[concurrentQueuesIndex++] = update;\n  concurrentQueues[concurrentQueuesIndex++] = lane;\n  concurrentlyUpdatedLanes |= lane;\n  fiber.lanes |= lane;\n  fiber = fiber.alternate;\n  null !== fiber && (fiber.lanes |= lane);\n}\nfunction enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n  enqueueUpdate$1(fiber, queue, update, lane);\n  return getRootForUpdatedFiber(fiber);\n}\nfunction enqueueConcurrentRenderForLane(fiber, lane) {\n  enqueueUpdate$1(fiber, null, null, lane);\n  return getRootForUpdatedFiber(fiber);\n}\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n  sourceFiber.lanes |= lane;\n  var alternate = sourceFiber.alternate;\n  null !== alternate && (alternate.lanes |= lane);\n  for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n    (parent.childLanes |= lane),\n      (alternate = parent.alternate),\n      null !== alternate && (alternate.childLanes |= lane),\n      22 === parent.tag &&\n        ((sourceFiber = parent.stateNode),\n        null === sourceFiber || sourceFiber._visibility & 1 || (isHidden = !0)),\n      (sourceFiber = parent),\n      (parent = parent.return);\n  isHidden &&\n    null !== update &&\n    3 === sourceFiber.tag &&\n    ((parent = sourceFiber.stateNode),\n    (isHidden = 31 - clz32(lane)),\n    (parent = parent.hiddenUpdates),\n    (sourceFiber = parent[isHidden]),\n    null === sourceFiber\n      ? (parent[isHidden] = [update])\n      : sourceFiber.push(update),\n    (update.lane = lane | 536870912));\n}\nfunction getRootForUpdatedFiber(sourceFiber) {\n  if (50 < nestedUpdateCount)\n    throw (\n      ((nestedUpdateCount = 0),\n      (rootWithNestedUpdates = null),\n      Error(formatProdErrorMessage(185)))\n    );\n  for (var parent = sourceFiber.return; null !== parent; )\n    (sourceFiber = parent), (parent = sourceFiber.return);\n  return 3 === sourceFiber.tag ? sourceFiber.stateNode : null;\n}\nvar emptyContextObject = {},\n  CapturedStacks = new WeakMap();\nfunction createCapturedValueAtFiber(value, source) {\n  if (\"object\" === typeof value && null !== value) {\n    var existing = CapturedStacks.get(value);\n    if (void 0 !== existing) return existing;\n    source = {\n      value: value,\n      source: source,\n      stack: getStackByFiberInDevAndProd(source)\n    };\n    CapturedStacks.set(value, source);\n    return source;\n  }\n  return {\n    value: value,\n    source: source,\n    stack: getStackByFiberInDevAndProd(source)\n  };\n}\nvar forkStack = [],\n  forkStackIndex = 0,\n  treeForkProvider = null,\n  treeForkCount = 0,\n  idStack = [],\n  idStackIndex = 0,\n  treeContextProvider = null,\n  treeContextId = 1,\n  treeContextOverflow = \"\";\nfunction pushTreeFork(workInProgress, totalChildren) {\n  forkStack[forkStackIndex++] = treeForkCount;\n  forkStack[forkStackIndex++] = treeForkProvider;\n  treeForkProvider = workInProgress;\n  treeForkCount = totalChildren;\n}\nfunction pushTreeId(workInProgress, totalChildren, index) {\n  idStack[idStackIndex++] = treeContextId;\n  idStack[idStackIndex++] = treeContextOverflow;\n  idStack[idStackIndex++] = treeContextProvider;\n  treeContextProvider = workInProgress;\n  var baseIdWithLeadingBit = treeContextId;\n  workInProgress = treeContextOverflow;\n  var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n  baseIdWithLeadingBit &= ~(1 << baseLength);\n  index += 1;\n  var length = 32 - clz32(totalChildren) + baseLength;\n  if (30 < length) {\n    var numberOfOverflowBits = baseLength - (baseLength % 5);\n    length = (\n      baseIdWithLeadingBit &\n      ((1 << numberOfOverflowBits) - 1)\n    ).toString(32);\n    baseIdWithLeadingBit >>= numberOfOverflowBits;\n    baseLength -= numberOfOverflowBits;\n    treeContextId =\n      (1 << (32 - clz32(totalChildren) + baseLength)) |\n      (index << baseLength) |\n      baseIdWithLeadingBit;\n    treeContextOverflow = length + workInProgress;\n  } else\n    (treeContextId =\n      (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n      (treeContextOverflow = workInProgress);\n}\nfunction pushMaterializedTreeId(workInProgress) {\n  null !== workInProgress.return &&\n    (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n}\nfunction popTreeContext(workInProgress) {\n  for (; workInProgress === treeForkProvider; )\n    (treeForkProvider = forkStack[--forkStackIndex]),\n      (forkStack[forkStackIndex] = null),\n      (treeForkCount = forkStack[--forkStackIndex]),\n      (forkStack[forkStackIndex] = null);\n  for (; workInProgress === treeContextProvider; )\n    (treeContextProvider = idStack[--idStackIndex]),\n      (idStack[idStackIndex] = null),\n      (treeContextOverflow = idStack[--idStackIndex]),\n      (idStack[idStackIndex] = null),\n      (treeContextId = idStack[--idStackIndex]),\n      (idStack[idStackIndex] = null);\n}\nvar hydrationParentFiber = null,\n  nextHydratableInstance = null,\n  isHydrating = !1,\n  hydrationErrors = null,\n  rootOrSingletonContext = !1,\n  HydrationMismatchException = Error(formatProdErrorMessage(519));\nfunction throwOnHydrationMismatch(fiber) {\n  var error = Error(formatProdErrorMessage(418, \"\"));\n  queueHydrationError(createCapturedValueAtFiber(error, fiber));\n  throw HydrationMismatchException;\n}\nfunction prepareToHydrateHostInstance(fiber) {\n  var instance = fiber.stateNode,\n    type = fiber.type,\n    props = fiber.memoizedProps;\n  instance[internalInstanceKey] = fiber;\n  instance[internalPropsKey] = props;\n  switch (type) {\n    case \"dialog\":\n      listenToNonDelegatedEvent(\"cancel\", instance);\n      listenToNonDelegatedEvent(\"close\", instance);\n      break;\n    case \"iframe\":\n    case \"object\":\n    case \"embed\":\n      listenToNonDelegatedEvent(\"load\", instance);\n      break;\n    case \"video\":\n    case \"audio\":\n      for (type = 0; type < mediaEventTypes.length; type++)\n        listenToNonDelegatedEvent(mediaEventTypes[type], instance);\n      break;\n    case \"source\":\n      listenToNonDelegatedEvent(\"error\", instance);\n      break;\n    case \"img\":\n    case \"image\":\n    case \"link\":\n      listenToNonDelegatedEvent(\"error\", instance);\n      listenToNonDelegatedEvent(\"load\", instance);\n      break;\n    case \"details\":\n      listenToNonDelegatedEvent(\"toggle\", instance);\n      break;\n    case \"input\":\n      listenToNonDelegatedEvent(\"invalid\", instance);\n      initInput(\n        instance,\n        props.value,\n        props.defaultValue,\n        props.checked,\n        props.defaultChecked,\n        props.type,\n        props.name,\n        !0\n      );\n      track(instance);\n      break;\n    case \"select\":\n      listenToNonDelegatedEvent(\"invalid\", instance);\n      break;\n    case \"textarea\":\n      listenToNonDelegatedEvent(\"invalid\", instance),\n        initTextarea(instance, props.value, props.defaultValue, props.children),\n        track(instance);\n  }\n  type = props.children;\n  (\"string\" !== typeof type &&\n    \"number\" !== typeof type &&\n    \"bigint\" !== typeof type) ||\n  instance.textContent === \"\" + type ||\n  !0 === props.suppressHydrationWarning ||\n  checkForUnmatchedText(instance.textContent, type)\n    ? (null != props.popover &&\n        (listenToNonDelegatedEvent(\"beforetoggle\", instance),\n        listenToNonDelegatedEvent(\"toggle\", instance)),\n      null != props.onScroll && listenToNonDelegatedEvent(\"scroll\", instance),\n      null != props.onScrollEnd &&\n        listenToNonDelegatedEvent(\"scrollend\", instance),\n      null != props.onClick && (instance.onclick = noop$1),\n      (instance = !0))\n    : (instance = !1);\n  instance || throwOnHydrationMismatch(fiber);\n}\nfunction popToNextHostParent(fiber) {\n  for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n    switch (hydrationParentFiber.tag) {\n      case 3:\n      case 27:\n        rootOrSingletonContext = !0;\n        return;\n      case 5:\n      case 13:\n        rootOrSingletonContext = !1;\n        return;\n      default:\n        hydrationParentFiber = hydrationParentFiber.return;\n    }\n}\nfunction popHydrationState(fiber) {\n  if (fiber !== hydrationParentFiber) return !1;\n  if (!isHydrating) return popToNextHostParent(fiber), (isHydrating = !0), !1;\n  var shouldClear = !1,\n    JSCompiler_temp;\n  if ((JSCompiler_temp = 3 !== fiber.tag && 27 !== fiber.tag)) {\n    if ((JSCompiler_temp = 5 === fiber.tag))\n      (JSCompiler_temp = fiber.type),\n        (JSCompiler_temp =\n          !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n          shouldSetTextContent(fiber.type, fiber.memoizedProps));\n    JSCompiler_temp = !JSCompiler_temp;\n  }\n  JSCompiler_temp && (shouldClear = !0);\n  shouldClear && nextHydratableInstance && throwOnHydrationMismatch(fiber);\n  popToNextHostParent(fiber);\n  if (13 === fiber.tag) {\n    fiber = fiber.memoizedState;\n    fiber = null !== fiber ? fiber.dehydrated : null;\n    if (!fiber) throw Error(formatProdErrorMessage(317));\n    a: {\n      fiber = fiber.nextSibling;\n      for (shouldClear = 0; fiber; ) {\n        if (8 === fiber.nodeType)\n          if (((JSCompiler_temp = fiber.data), \"/$\" === JSCompiler_temp)) {\n            if (0 === shouldClear) {\n              nextHydratableInstance = getNextHydratable(fiber.nextSibling);\n              break a;\n            }\n            shouldClear--;\n          } else\n            (\"$\" !== JSCompiler_temp &&\n              \"$!\" !== JSCompiler_temp &&\n              \"$?\" !== JSCompiler_temp) ||\n              shouldClear++;\n        fiber = fiber.nextSibling;\n      }\n      nextHydratableInstance = null;\n    }\n  } else\n    nextHydratableInstance = hydrationParentFiber\n      ? getNextHydratable(fiber.stateNode.nextSibling)\n      : null;\n  return !0;\n}\nfunction resetHydrationState() {\n  nextHydratableInstance = hydrationParentFiber = null;\n  isHydrating = !1;\n}\nfunction queueHydrationError(error) {\n  null === hydrationErrors\n    ? (hydrationErrors = [error])\n    : hydrationErrors.push(error);\n}\nvar SuspenseException = Error(formatProdErrorMessage(460)),\n  SuspenseyCommitException = Error(formatProdErrorMessage(474)),\n  noopSuspenseyCommitThenable = { then: function () {} };\nfunction isThenableResolved(thenable) {\n  thenable = thenable.status;\n  return \"fulfilled\" === thenable || \"rejected\" === thenable;\n}\nfunction noop$3() {}\nfunction trackUsedThenable(thenableState, thenable, index) {\n  index = thenableState[index];\n  void 0 === index\n    ? thenableState.push(thenable)\n    : index !== thenable && (thenable.then(noop$3, noop$3), (thenable = index));\n  switch (thenable.status) {\n    case \"fulfilled\":\n      return thenable.value;\n    case \"rejected\":\n      thenableState = thenable.reason;\n      if (thenableState === SuspenseException)\n        throw Error(formatProdErrorMessage(483));\n      throw thenableState;\n    default:\n      if (\"string\" === typeof thenable.status) thenable.then(noop$3, noop$3);\n      else {\n        thenableState = workInProgressRoot;\n        if (null !== thenableState && 100 < thenableState.shellSuspendCounter)\n          throw Error(formatProdErrorMessage(482));\n        thenableState = thenable;\n        thenableState.status = \"pending\";\n        thenableState.then(\n          function (fulfilledValue) {\n            if (\"pending\" === thenable.status) {\n              var fulfilledThenable = thenable;\n              fulfilledThenable.status = \"fulfilled\";\n              fulfilledThenable.value = fulfilledValue;\n            }\n          },\n          function (error) {\n            if (\"pending\" === thenable.status) {\n              var rejectedThenable = thenable;\n              rejectedThenable.status = \"rejected\";\n              rejectedThenable.reason = error;\n            }\n          }\n        );\n      }\n      switch (thenable.status) {\n        case \"fulfilled\":\n          return thenable.value;\n        case \"rejected\":\n          thenableState = thenable.reason;\n          if (thenableState === SuspenseException)\n            throw Error(formatProdErrorMessage(483));\n          throw thenableState;\n      }\n      suspendedThenable = thenable;\n      throw SuspenseException;\n  }\n}\nvar suspendedThenable = null;\nfunction getSuspendedThenable() {\n  if (null === suspendedThenable) throw Error(formatProdErrorMessage(459));\n  var thenable = suspendedThenable;\n  suspendedThenable = null;\n  return thenable;\n}\nvar thenableState$1 = null,\n  thenableIndexCounter$1 = 0;\nfunction unwrapThenable(thenable) {\n  var index = thenableIndexCounter$1;\n  thenableIndexCounter$1 += 1;\n  null === thenableState$1 && (thenableState$1 = []);\n  return trackUsedThenable(thenableState$1, thenable, index);\n}\nfunction coerceRef(workInProgress, element) {\n  element = element.props.ref;\n  workInProgress.ref = void 0 !== element ? element : null;\n}\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n  if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n    throw Error(formatProdErrorMessage(525));\n  returnFiber = Object.prototype.toString.call(newChild);\n  throw Error(\n    formatProdErrorMessage(\n      31,\n      \"[object Object]\" === returnFiber\n        ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n        : returnFiber\n    )\n  );\n}\nfunction resolveLazy(lazyType) {\n  var init = lazyType._init;\n  return init(lazyType._payload);\n}\nfunction createChildReconciler(shouldTrackSideEffects) {\n  function deleteChild(returnFiber, childToDelete) {\n    if (shouldTrackSideEffects) {\n      var deletions = returnFiber.deletions;\n      null === deletions\n        ? ((returnFiber.deletions = [childToDelete]), (returnFiber.flags |= 16))\n        : deletions.push(childToDelete);\n    }\n  }\n  function deleteRemainingChildren(returnFiber, currentFirstChild) {\n    if (!shouldTrackSideEffects) return null;\n    for (; null !== currentFirstChild; )\n      deleteChild(returnFiber, currentFirstChild),\n        (currentFirstChild = currentFirstChild.sibling);\n    return null;\n  }\n  function mapRemainingChildren(currentFirstChild) {\n    for (var existingChildren = new Map(); null !== currentFirstChild; )\n      null !== currentFirstChild.key\n        ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n        : existingChildren.set(currentFirstChild.index, currentFirstChild),\n        (currentFirstChild = currentFirstChild.sibling);\n    return existingChildren;\n  }\n  function useFiber(fiber, pendingProps) {\n    fiber = createWorkInProgress(fiber, pendingProps);\n    fiber.index = 0;\n    fiber.sibling = null;\n    return fiber;\n  }\n  function placeChild(newFiber, lastPlacedIndex, newIndex) {\n    newFiber.index = newIndex;\n    if (!shouldTrackSideEffects)\n      return (newFiber.flags |= 1048576), lastPlacedIndex;\n    newIndex = newFiber.alternate;\n    if (null !== newIndex)\n      return (\n        (newIndex = newIndex.index),\n        newIndex < lastPlacedIndex\n          ? ((newFiber.flags |= 33554434), lastPlacedIndex)\n          : newIndex\n      );\n    newFiber.flags |= 33554434;\n    return lastPlacedIndex;\n  }\n  function placeSingleChild(newFiber) {\n    shouldTrackSideEffects &&\n      null === newFiber.alternate &&\n      (newFiber.flags |= 33554434);\n    return newFiber;\n  }\n  function updateTextNode(returnFiber, current, textContent, lanes) {\n    if (null === current || 6 !== current.tag)\n      return (\n        (current = createFiberFromText(textContent, returnFiber.mode, lanes)),\n        (current.return = returnFiber),\n        current\n      );\n    current = useFiber(current, textContent);\n    current.return = returnFiber;\n    return current;\n  }\n  function updateElement(returnFiber, current, element, lanes) {\n    var elementType = element.type;\n    if (elementType === REACT_FRAGMENT_TYPE)\n      return updateFragment(\n        returnFiber,\n        current,\n        element.props.children,\n        lanes,\n        element.key\n      );\n    if (\n      null !== current &&\n      (current.elementType === elementType ||\n        (\"object\" === typeof elementType &&\n          null !== elementType &&\n          elementType.$$typeof === REACT_LAZY_TYPE &&\n          resolveLazy(elementType) === current.type))\n    )\n      return (\n        (current = useFiber(current, element.props)),\n        coerceRef(current, element),\n        (current.return = returnFiber),\n        current\n      );\n    current = createFiberFromTypeAndProps(\n      element.type,\n      element.key,\n      element.props,\n      null,\n      returnFiber.mode,\n      lanes\n    );\n    coerceRef(current, element);\n    current.return = returnFiber;\n    return current;\n  }\n  function updatePortal(returnFiber, current, portal, lanes) {\n    if (\n      null === current ||\n      4 !== current.tag ||\n      current.stateNode.containerInfo !== portal.containerInfo ||\n      current.stateNode.implementation !== portal.implementation\n    )\n      return (\n        (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n        (current.return = returnFiber),\n        current\n      );\n    current = useFiber(current, portal.children || []);\n    current.return = returnFiber;\n    return current;\n  }\n  function updateFragment(returnFiber, current, fragment, lanes, key) {\n    if (null === current || 7 !== current.tag)\n      return (\n        (current = createFiberFromFragment(\n          fragment,\n          returnFiber.mode,\n          lanes,\n          key\n        )),\n        (current.return = returnFiber),\n        current\n      );\n    current = useFiber(current, fragment);\n    current.return = returnFiber;\n    return current;\n  }\n  function createChild(returnFiber, newChild, lanes) {\n    if (\n      (\"string\" === typeof newChild && \"\" !== newChild) ||\n      \"number\" === typeof newChild ||\n      \"bigint\" === typeof newChild\n    )\n      return (\n        (newChild = createFiberFromText(\n          \"\" + newChild,\n          returnFiber.mode,\n          lanes\n        )),\n        (newChild.return = returnFiber),\n        newChild\n      );\n    if (\"object\" === typeof newChild && null !== newChild) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return (\n            (lanes = createFiberFromTypeAndProps(\n              newChild.type,\n              newChild.key,\n              newChild.props,\n              null,\n              returnFiber.mode,\n              lanes\n            )),\n            coerceRef(lanes, newChild),\n            (lanes.return = returnFiber),\n            lanes\n          );\n        case REACT_PORTAL_TYPE:\n          return (\n            (newChild = createFiberFromPortal(\n              newChild,\n              returnFiber.mode,\n              lanes\n            )),\n            (newChild.return = returnFiber),\n            newChild\n          );\n        case REACT_LAZY_TYPE:\n          var init = newChild._init;\n          newChild = init(newChild._payload);\n          return createChild(returnFiber, newChild, lanes);\n      }\n      if (isArrayImpl(newChild) || getIteratorFn(newChild))\n        return (\n          (newChild = createFiberFromFragment(\n            newChild,\n            returnFiber.mode,\n            lanes,\n            null\n          )),\n          (newChild.return = returnFiber),\n          newChild\n        );\n      if (\"function\" === typeof newChild.then)\n        return createChild(returnFiber, unwrapThenable(newChild), lanes);\n      if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n        return createChild(\n          returnFiber,\n          readContextDuringReconciliation(returnFiber, newChild),\n          lanes\n        );\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n    return null;\n  }\n  function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n    var key = null !== oldFiber ? oldFiber.key : null;\n    if (\n      (\"string\" === typeof newChild && \"\" !== newChild) ||\n      \"number\" === typeof newChild ||\n      \"bigint\" === typeof newChild\n    )\n      return null !== key\n        ? null\n        : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n    if (\"object\" === typeof newChild && null !== newChild) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return newChild.key === key\n            ? updateElement(returnFiber, oldFiber, newChild, lanes)\n            : null;\n        case REACT_PORTAL_TYPE:\n          return newChild.key === key\n            ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n            : null;\n        case REACT_LAZY_TYPE:\n          return (\n            (key = newChild._init),\n            (newChild = key(newChild._payload)),\n            updateSlot(returnFiber, oldFiber, newChild, lanes)\n          );\n      }\n      if (isArrayImpl(newChild) || getIteratorFn(newChild))\n        return null !== key\n          ? null\n          : updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n      if (\"function\" === typeof newChild.then)\n        return updateSlot(\n          returnFiber,\n          oldFiber,\n          unwrapThenable(newChild),\n          lanes\n        );\n      if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n        return updateSlot(\n          returnFiber,\n          oldFiber,\n          readContextDuringReconciliation(returnFiber, newChild),\n          lanes\n        );\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n    return null;\n  }\n  function updateFromMap(\n    existingChildren,\n    returnFiber,\n    newIdx,\n    newChild,\n    lanes\n  ) {\n    if (\n      (\"string\" === typeof newChild && \"\" !== newChild) ||\n      \"number\" === typeof newChild ||\n      \"bigint\" === typeof newChild\n    )\n      return (\n        (existingChildren = existingChildren.get(newIdx) || null),\n        updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n      );\n    if (\"object\" === typeof newChild && null !== newChild) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          return (\n            (existingChildren =\n              existingChildren.get(\n                null === newChild.key ? newIdx : newChild.key\n              ) || null),\n            updateElement(returnFiber, existingChildren, newChild, lanes)\n          );\n        case REACT_PORTAL_TYPE:\n          return (\n            (existingChildren =\n              existingChildren.get(\n                null === newChild.key ? newIdx : newChild.key\n              ) || null),\n            updatePortal(returnFiber, existingChildren, newChild, lanes)\n          );\n        case REACT_LAZY_TYPE:\n          var init = newChild._init;\n          newChild = init(newChild._payload);\n          return updateFromMap(\n            existingChildren,\n            returnFiber,\n            newIdx,\n            newChild,\n            lanes\n          );\n      }\n      if (isArrayImpl(newChild) || getIteratorFn(newChild))\n        return (\n          (existingChildren = existingChildren.get(newIdx) || null),\n          updateFragment(returnFiber, existingChildren, newChild, lanes, null)\n        );\n      if (\"function\" === typeof newChild.then)\n        return updateFromMap(\n          existingChildren,\n          returnFiber,\n          newIdx,\n          unwrapThenable(newChild),\n          lanes\n        );\n      if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n        return updateFromMap(\n          existingChildren,\n          returnFiber,\n          newIdx,\n          readContextDuringReconciliation(returnFiber, newChild),\n          lanes\n        );\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n    return null;\n  }\n  function reconcileChildrenArray(\n    returnFiber,\n    currentFirstChild,\n    newChildren,\n    lanes\n  ) {\n    for (\n      var resultingFirstChild = null,\n        previousNewFiber = null,\n        oldFiber = currentFirstChild,\n        newIdx = (currentFirstChild = 0),\n        nextOldFiber = null;\n      null !== oldFiber && newIdx < newChildren.length;\n      newIdx++\n    ) {\n      oldFiber.index > newIdx\n        ? ((nextOldFiber = oldFiber), (oldFiber = null))\n        : (nextOldFiber = oldFiber.sibling);\n      var newFiber = updateSlot(\n        returnFiber,\n        oldFiber,\n        newChildren[newIdx],\n        lanes\n      );\n      if (null === newFiber) {\n        null === oldFiber && (oldFiber = nextOldFiber);\n        break;\n      }\n      shouldTrackSideEffects &&\n        oldFiber &&\n        null === newFiber.alternate &&\n        deleteChild(returnFiber, oldFiber);\n      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n      null === previousNewFiber\n        ? (resultingFirstChild = newFiber)\n        : (previousNewFiber.sibling = newFiber);\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n    if (newIdx === newChildren.length)\n      return (\n        deleteRemainingChildren(returnFiber, oldFiber),\n        isHydrating && pushTreeFork(returnFiber, newIdx),\n        resultingFirstChild\n      );\n    if (null === oldFiber) {\n      for (; newIdx < newChildren.length; newIdx++)\n        (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n          null !== oldFiber &&\n            ((currentFirstChild = placeChild(\n              oldFiber,\n              currentFirstChild,\n              newIdx\n            )),\n            null === previousNewFiber\n              ? (resultingFirstChild = oldFiber)\n              : (previousNewFiber.sibling = oldFiber),\n            (previousNewFiber = oldFiber));\n      isHydrating && pushTreeFork(returnFiber, newIdx);\n      return resultingFirstChild;\n    }\n    for (\n      oldFiber = mapRemainingChildren(oldFiber);\n      newIdx < newChildren.length;\n      newIdx++\n    )\n      (nextOldFiber = updateFromMap(\n        oldFiber,\n        returnFiber,\n        newIdx,\n        newChildren[newIdx],\n        lanes\n      )),\n        null !== nextOldFiber &&\n          (shouldTrackSideEffects &&\n            null !== nextOldFiber.alternate &&\n            oldFiber.delete(\n              null === nextOldFiber.key ? newIdx : nextOldFiber.key\n            ),\n          (currentFirstChild = placeChild(\n            nextOldFiber,\n            currentFirstChild,\n            newIdx\n          )),\n          null === previousNewFiber\n            ? (resultingFirstChild = nextOldFiber)\n            : (previousNewFiber.sibling = nextOldFiber),\n          (previousNewFiber = nextOldFiber));\n    shouldTrackSideEffects &&\n      oldFiber.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    isHydrating && pushTreeFork(returnFiber, newIdx);\n    return resultingFirstChild;\n  }\n  function reconcileChildrenIterator(\n    returnFiber,\n    currentFirstChild,\n    newChildren,\n    lanes\n  ) {\n    if (null == newChildren) throw Error(formatProdErrorMessage(151));\n    for (\n      var resultingFirstChild = null,\n        previousNewFiber = null,\n        oldFiber = currentFirstChild,\n        newIdx = (currentFirstChild = 0),\n        nextOldFiber = null,\n        step = newChildren.next();\n      null !== oldFiber && !step.done;\n      newIdx++, step = newChildren.next()\n    ) {\n      oldFiber.index > newIdx\n        ? ((nextOldFiber = oldFiber), (oldFiber = null))\n        : (nextOldFiber = oldFiber.sibling);\n      var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n      if (null === newFiber) {\n        null === oldFiber && (oldFiber = nextOldFiber);\n        break;\n      }\n      shouldTrackSideEffects &&\n        oldFiber &&\n        null === newFiber.alternate &&\n        deleteChild(returnFiber, oldFiber);\n      currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n      null === previousNewFiber\n        ? (resultingFirstChild = newFiber)\n        : (previousNewFiber.sibling = newFiber);\n      previousNewFiber = newFiber;\n      oldFiber = nextOldFiber;\n    }\n    if (step.done)\n      return (\n        deleteRemainingChildren(returnFiber, oldFiber),\n        isHydrating && pushTreeFork(returnFiber, newIdx),\n        resultingFirstChild\n      );\n    if (null === oldFiber) {\n      for (; !step.done; newIdx++, step = newChildren.next())\n        (step = createChild(returnFiber, step.value, lanes)),\n          null !== step &&\n            ((currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n            null === previousNewFiber\n              ? (resultingFirstChild = step)\n              : (previousNewFiber.sibling = step),\n            (previousNewFiber = step));\n      isHydrating && pushTreeFork(returnFiber, newIdx);\n      return resultingFirstChild;\n    }\n    for (\n      oldFiber = mapRemainingChildren(oldFiber);\n      !step.done;\n      newIdx++, step = newChildren.next()\n    )\n      (step = updateFromMap(oldFiber, returnFiber, newIdx, step.value, lanes)),\n        null !== step &&\n          (shouldTrackSideEffects &&\n            null !== step.alternate &&\n            oldFiber.delete(null === step.key ? newIdx : step.key),\n          (currentFirstChild = placeChild(step, currentFirstChild, newIdx)),\n          null === previousNewFiber\n            ? (resultingFirstChild = step)\n            : (previousNewFiber.sibling = step),\n          (previousNewFiber = step));\n    shouldTrackSideEffects &&\n      oldFiber.forEach(function (child) {\n        return deleteChild(returnFiber, child);\n      });\n    isHydrating && pushTreeFork(returnFiber, newIdx);\n    return resultingFirstChild;\n  }\n  function reconcileChildFibersImpl(\n    returnFiber,\n    currentFirstChild,\n    newChild,\n    lanes\n  ) {\n    \"object\" === typeof newChild &&\n      null !== newChild &&\n      newChild.type === REACT_FRAGMENT_TYPE &&\n      null === newChild.key &&\n      (newChild = newChild.props.children);\n    if (\"object\" === typeof newChild && null !== newChild) {\n      switch (newChild.$$typeof) {\n        case REACT_ELEMENT_TYPE:\n          a: {\n            for (var key = newChild.key; null !== currentFirstChild; ) {\n              if (currentFirstChild.key === key) {\n                key = newChild.type;\n                if (key === REACT_FRAGMENT_TYPE) {\n                  if (7 === currentFirstChild.tag) {\n                    deleteRemainingChildren(\n                      returnFiber,\n                      currentFirstChild.sibling\n                    );\n                    lanes = useFiber(\n                      currentFirstChild,\n                      newChild.props.children\n                    );\n                    lanes.return = returnFiber;\n                    returnFiber = lanes;\n                    break a;\n                  }\n                } else if (\n                  currentFirstChild.elementType === key ||\n                  (\"object\" === typeof key &&\n                    null !== key &&\n                    key.$$typeof === REACT_LAZY_TYPE &&\n                    resolveLazy(key) === currentFirstChild.type)\n                ) {\n                  deleteRemainingChildren(\n                    returnFiber,\n                    currentFirstChild.sibling\n                  );\n                  lanes = useFiber(currentFirstChild, newChild.props);\n                  coerceRef(lanes, newChild);\n                  lanes.return = returnFiber;\n                  returnFiber = lanes;\n                  break a;\n                }\n                deleteRemainingChildren(returnFiber, currentFirstChild);\n                break;\n              } else deleteChild(returnFiber, currentFirstChild);\n              currentFirstChild = currentFirstChild.sibling;\n            }\n            newChild.type === REACT_FRAGMENT_TYPE\n              ? ((lanes = createFiberFromFragment(\n                  newChild.props.children,\n                  returnFiber.mode,\n                  lanes,\n                  newChild.key\n                )),\n                (lanes.return = returnFiber),\n                (returnFiber = lanes))\n              : ((lanes = createFiberFromTypeAndProps(\n                  newChild.type,\n                  newChild.key,\n                  newChild.props,\n                  null,\n                  returnFiber.mode,\n                  lanes\n                )),\n                coerceRef(lanes, newChild),\n                (lanes.return = returnFiber),\n                (returnFiber = lanes));\n          }\n          return placeSingleChild(returnFiber);\n        case REACT_PORTAL_TYPE:\n          a: {\n            for (key = newChild.key; null !== currentFirstChild; ) {\n              if (currentFirstChild.key === key)\n                if (\n                  4 === currentFirstChild.tag &&\n                  currentFirstChild.stateNode.containerInfo ===\n                    newChild.containerInfo &&\n                  currentFirstChild.stateNode.implementation ===\n                    newChild.implementation\n                ) {\n                  deleteRemainingChildren(\n                    returnFiber,\n                    currentFirstChild.sibling\n                  );\n                  lanes = useFiber(currentFirstChild, newChild.children || []);\n                  lanes.return = returnFiber;\n                  returnFiber = lanes;\n                  break a;\n                } else {\n                  deleteRemainingChildren(returnFiber, currentFirstChild);\n                  break;\n                }\n              else deleteChild(returnFiber, currentFirstChild);\n              currentFirstChild = currentFirstChild.sibling;\n            }\n            lanes = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n            lanes.return = returnFiber;\n            returnFiber = lanes;\n          }\n          return placeSingleChild(returnFiber);\n        case REACT_LAZY_TYPE:\n          return (\n            (key = newChild._init),\n            (newChild = key(newChild._payload)),\n            reconcileChildFibersImpl(\n              returnFiber,\n              currentFirstChild,\n              newChild,\n              lanes\n            )\n          );\n      }\n      if (isArrayImpl(newChild))\n        return reconcileChildrenArray(\n          returnFiber,\n          currentFirstChild,\n          newChild,\n          lanes\n        );\n      if (getIteratorFn(newChild)) {\n        key = getIteratorFn(newChild);\n        if (\"function\" !== typeof key) throw Error(formatProdErrorMessage(150));\n        newChild = key.call(newChild);\n        return reconcileChildrenIterator(\n          returnFiber,\n          currentFirstChild,\n          newChild,\n          lanes\n        );\n      }\n      if (\"function\" === typeof newChild.then)\n        return reconcileChildFibersImpl(\n          returnFiber,\n          currentFirstChild,\n          unwrapThenable(newChild),\n          lanes\n        );\n      if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n        return reconcileChildFibersImpl(\n          returnFiber,\n          currentFirstChild,\n          readContextDuringReconciliation(returnFiber, newChild),\n          lanes\n        );\n      throwOnInvalidObjectType(returnFiber, newChild);\n    }\n    return (\"string\" === typeof newChild && \"\" !== newChild) ||\n      \"number\" === typeof newChild ||\n      \"bigint\" === typeof newChild\n      ? ((newChild = \"\" + newChild),\n        null !== currentFirstChild && 6 === currentFirstChild.tag\n          ? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),\n            (lanes = useFiber(currentFirstChild, newChild)),\n            (lanes.return = returnFiber),\n            (returnFiber = lanes))\n          : (deleteRemainingChildren(returnFiber, currentFirstChild),\n            (lanes = createFiberFromText(newChild, returnFiber.mode, lanes)),\n            (lanes.return = returnFiber),\n            (returnFiber = lanes)),\n        placeSingleChild(returnFiber))\n      : deleteRemainingChildren(returnFiber, currentFirstChild);\n  }\n  return function (returnFiber, currentFirstChild, newChild, lanes) {\n    try {\n      thenableIndexCounter$1 = 0;\n      var firstChildFiber = reconcileChildFibersImpl(\n        returnFiber,\n        currentFirstChild,\n        newChild,\n        lanes\n      );\n      thenableState$1 = null;\n      return firstChildFiber;\n    } catch (x) {\n      if (x === SuspenseException) throw x;\n      var fiber = createFiberImplClass(29, x, null, returnFiber.mode);\n      fiber.lanes = lanes;\n      fiber.return = returnFiber;\n      return fiber;\n    } finally {\n    }\n  };\n}\nvar reconcileChildFibers = createChildReconciler(!0),\n  mountChildFibers = createChildReconciler(!1),\n  currentTreeHiddenStackCursor = createCursor(null),\n  prevEntangledRenderLanesCursor = createCursor(0);\nfunction pushHiddenContext(fiber, context) {\n  fiber = entangledRenderLanes;\n  push(prevEntangledRenderLanesCursor, fiber);\n  push(currentTreeHiddenStackCursor, context);\n  entangledRenderLanes = fiber | context.baseLanes;\n}\nfunction reuseHiddenContextOnStack() {\n  push(prevEntangledRenderLanesCursor, entangledRenderLanes);\n  push(currentTreeHiddenStackCursor, currentTreeHiddenStackCursor.current);\n}\nfunction popHiddenContext() {\n  entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n  pop(currentTreeHiddenStackCursor);\n  pop(prevEntangledRenderLanesCursor);\n}\nvar suspenseHandlerStackCursor = createCursor(null),\n  shellBoundary = null;\nfunction pushPrimaryTreeSuspenseHandler(handler) {\n  var current = handler.alternate;\n  push(suspenseStackCursor, suspenseStackCursor.current & 1);\n  push(suspenseHandlerStackCursor, handler);\n  null === shellBoundary &&\n    (null === current || null !== currentTreeHiddenStackCursor.current\n      ? (shellBoundary = handler)\n      : null !== current.memoizedState && (shellBoundary = handler));\n}\nfunction pushOffscreenSuspenseHandler(fiber) {\n  if (22 === fiber.tag) {\n    if (\n      (push(suspenseStackCursor, suspenseStackCursor.current),\n      push(suspenseHandlerStackCursor, fiber),\n      null === shellBoundary)\n    ) {\n      var current = fiber.alternate;\n      null !== current &&\n        null !== current.memoizedState &&\n        (shellBoundary = fiber);\n    }\n  } else reuseSuspenseHandlerOnStack(fiber);\n}\nfunction reuseSuspenseHandlerOnStack() {\n  push(suspenseStackCursor, suspenseStackCursor.current);\n  push(suspenseHandlerStackCursor, suspenseHandlerStackCursor.current);\n}\nfunction popSuspenseHandler(fiber) {\n  pop(suspenseHandlerStackCursor);\n  shellBoundary === fiber && (shellBoundary = null);\n  pop(suspenseStackCursor);\n}\nvar suspenseStackCursor = createCursor(0);\nfunction findFirstSuspended(row) {\n  for (var node = row; null !== node; ) {\n    if (13 === node.tag) {\n      var state = node.memoizedState;\n      if (\n        null !== state &&\n        ((state = state.dehydrated),\n        null === state || \"$?\" === state.data || \"$!\" === state.data)\n      )\n        return node;\n    } else if (19 === node.tag && void 0 !== node.memoizedProps.revealOrder) {\n      if (0 !== (node.flags & 128)) return node;\n    } else if (null !== node.child) {\n      node.child.return = node;\n      node = node.child;\n      continue;\n    }\n    if (node === row) break;\n    for (; null === node.sibling; ) {\n      if (null === node.return || node.return === row) return null;\n      node = node.return;\n    }\n    node.sibling.return = node.return;\n    node = node.sibling;\n  }\n  return null;\n}\nvar AbortControllerLocal =\n    \"undefined\" !== typeof AbortController\n      ? AbortController\n      : function () {\n          var listeners = [],\n            signal = (this.signal = {\n              aborted: !1,\n              addEventListener: function (type, listener) {\n                listeners.push(listener);\n              }\n            });\n          this.abort = function () {\n            signal.aborted = !0;\n            listeners.forEach(function (listener) {\n              return listener();\n            });\n          };\n        },\n  scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n  NormalPriority = Scheduler.unstable_NormalPriority,\n  CacheContext = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    Consumer: null,\n    Provider: null,\n    _currentValue: null,\n    _currentValue2: null,\n    _threadCount: 0\n  };\nfunction createCache() {\n  return {\n    controller: new AbortControllerLocal(),\n    data: new Map(),\n    refCount: 0\n  };\n}\nfunction releaseCache(cache) {\n  cache.refCount--;\n  0 === cache.refCount &&\n    scheduleCallback$2(NormalPriority, function () {\n      cache.controller.abort();\n    });\n}\nvar currentEntangledListeners = null,\n  currentEntangledPendingCount = 0,\n  currentEntangledLane = 0,\n  currentEntangledActionThenable = null;\nfunction entangleAsyncAction(transition, thenable) {\n  if (null === currentEntangledListeners) {\n    var entangledListeners = (currentEntangledListeners = []);\n    currentEntangledPendingCount = 0;\n    currentEntangledLane = requestTransitionLane();\n    currentEntangledActionThenable = {\n      status: \"pending\",\n      value: void 0,\n      then: function (resolve) {\n        entangledListeners.push(resolve);\n      }\n    };\n  }\n  currentEntangledPendingCount++;\n  thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n  return thenable;\n}\nfunction pingEngtangledActionScope() {\n  if (\n    0 === --currentEntangledPendingCount &&\n    null !== currentEntangledListeners\n  ) {\n    null !== currentEntangledActionThenable &&\n      (currentEntangledActionThenable.status = \"fulfilled\");\n    var listeners = currentEntangledListeners;\n    currentEntangledListeners = null;\n    currentEntangledLane = 0;\n    currentEntangledActionThenable = null;\n    for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n  }\n}\nfunction chainThenableValue(thenable, result) {\n  var listeners = [],\n    thenableWithOverride = {\n      status: \"pending\",\n      value: null,\n      reason: null,\n      then: function (resolve) {\n        listeners.push(resolve);\n      }\n    };\n  thenable.then(\n    function () {\n      thenableWithOverride.status = \"fulfilled\";\n      thenableWithOverride.value = result;\n      for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n    },\n    function (error) {\n      thenableWithOverride.status = \"rejected\";\n      thenableWithOverride.reason = error;\n      for (error = 0; error < listeners.length; error++)\n        (0, listeners[error])(void 0);\n    }\n  );\n  return thenableWithOverride;\n}\nvar prevOnStartTransitionFinish = ReactSharedInternals.S;\nReactSharedInternals.S = function (transition, returnValue) {\n  \"object\" === typeof returnValue &&\n    null !== returnValue &&\n    \"function\" === typeof returnValue.then &&\n    entangleAsyncAction(transition, returnValue);\n  null !== prevOnStartTransitionFinish &&\n    prevOnStartTransitionFinish(transition, returnValue);\n};\nvar resumedCache = createCursor(null);\nfunction peekCacheFromPool() {\n  var cacheResumedFromPreviousRender = resumedCache.current;\n  return null !== cacheResumedFromPreviousRender\n    ? cacheResumedFromPreviousRender\n    : workInProgressRoot.pooledCache;\n}\nfunction pushTransition(offscreenWorkInProgress, prevCachePool) {\n  null === prevCachePool\n    ? push(resumedCache, resumedCache.current)\n    : push(resumedCache, prevCachePool.pool);\n}\nfunction getSuspendedCache() {\n  var cacheFromPool = peekCacheFromPool();\n  return null === cacheFromPool\n    ? null\n    : { parent: CacheContext._currentValue, pool: cacheFromPool };\n}\nvar renderLanes = 0,\n  currentlyRenderingFiber$1 = null,\n  currentHook = null,\n  workInProgressHook = null,\n  didScheduleRenderPhaseUpdate = !1,\n  didScheduleRenderPhaseUpdateDuringThisPass = !1,\n  shouldDoubleInvokeUserFnsInHooksDEV = !1,\n  localIdCounter = 0,\n  thenableIndexCounter = 0,\n  thenableState = null,\n  globalClientIdCounter = 0;\nfunction throwInvalidHookError() {\n  throw Error(formatProdErrorMessage(321));\n}\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n  if (null === prevDeps) return !1;\n  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n    if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n  return !0;\n}\nfunction renderWithHooks(\n  current,\n  workInProgress,\n  Component,\n  props,\n  secondArg,\n  nextRenderLanes\n) {\n  renderLanes = nextRenderLanes;\n  currentlyRenderingFiber$1 = workInProgress;\n  workInProgress.memoizedState = null;\n  workInProgress.updateQueue = null;\n  workInProgress.lanes = 0;\n  ReactSharedInternals.H =\n    null === current || null === current.memoizedState\n      ? HooksDispatcherOnMount\n      : HooksDispatcherOnUpdate;\n  shouldDoubleInvokeUserFnsInHooksDEV = !1;\n  nextRenderLanes = Component(props, secondArg);\n  shouldDoubleInvokeUserFnsInHooksDEV = !1;\n  didScheduleRenderPhaseUpdateDuringThisPass &&\n    (nextRenderLanes = renderWithHooksAgain(\n      workInProgress,\n      Component,\n      props,\n      secondArg\n    ));\n  finishRenderingHooks(current);\n  return nextRenderLanes;\n}\nfunction finishRenderingHooks(current) {\n  ReactSharedInternals.H = ContextOnlyDispatcher;\n  var didRenderTooFewHooks = null !== currentHook && null !== currentHook.next;\n  renderLanes = 0;\n  workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n  didScheduleRenderPhaseUpdate = !1;\n  thenableIndexCounter = 0;\n  thenableState = null;\n  if (didRenderTooFewHooks) throw Error(formatProdErrorMessage(300));\n  null === current ||\n    didReceiveUpdate ||\n    ((current = current.dependencies),\n    null !== current &&\n      checkIfContextChanged(current) &&\n      (didReceiveUpdate = !0));\n}\nfunction renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n  currentlyRenderingFiber$1 = workInProgress;\n  var numberOfReRenders = 0;\n  do {\n    didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n    thenableIndexCounter = 0;\n    didScheduleRenderPhaseUpdateDuringThisPass = !1;\n    if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301));\n    numberOfReRenders += 1;\n    workInProgressHook = currentHook = null;\n    if (null != workInProgress.updateQueue) {\n      var children = workInProgress.updateQueue;\n      children.lastEffect = null;\n      children.events = null;\n      children.stores = null;\n      null != children.memoCache && (children.memoCache.index = 0);\n    }\n    ReactSharedInternals.H = HooksDispatcherOnRerender;\n    children = Component(props, secondArg);\n  } while (didScheduleRenderPhaseUpdateDuringThisPass);\n  return children;\n}\nfunction TransitionAwareHostComponent() {\n  var dispatcher = ReactSharedInternals.H,\n    maybeThenable = dispatcher.useState()[0];\n  maybeThenable =\n    \"function\" === typeof maybeThenable.then\n      ? useThenable(maybeThenable)\n      : maybeThenable;\n  dispatcher = dispatcher.useState()[0];\n  (null !== currentHook ? currentHook.memoizedState : null) !== dispatcher &&\n    (currentlyRenderingFiber$1.flags |= 1024);\n  return maybeThenable;\n}\nfunction checkDidRenderIdHook() {\n  var didRenderIdHook = 0 !== localIdCounter;\n  localIdCounter = 0;\n  return didRenderIdHook;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n  workInProgress.updateQueue = current.updateQueue;\n  workInProgress.flags &= -2053;\n  current.lanes &= ~lanes;\n}\nfunction resetHooksOnUnwind(workInProgress) {\n  if (didScheduleRenderPhaseUpdate) {\n    for (\n      workInProgress = workInProgress.memoizedState;\n      null !== workInProgress;\n\n    ) {\n      var queue = workInProgress.queue;\n      null !== queue && (queue.pending = null);\n      workInProgress = workInProgress.next;\n    }\n    didScheduleRenderPhaseUpdate = !1;\n  }\n  renderLanes = 0;\n  workInProgressHook = currentHook = currentlyRenderingFiber$1 = null;\n  didScheduleRenderPhaseUpdateDuringThisPass = !1;\n  thenableIndexCounter = localIdCounter = 0;\n  thenableState = null;\n}\nfunction mountWorkInProgressHook() {\n  var hook = {\n    memoizedState: null,\n    baseState: null,\n    baseQueue: null,\n    queue: null,\n    next: null\n  };\n  null === workInProgressHook\n    ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook)\n    : (workInProgressHook = workInProgressHook.next = hook);\n  return workInProgressHook;\n}\nfunction updateWorkInProgressHook() {\n  if (null === currentHook) {\n    var nextCurrentHook = currentlyRenderingFiber$1.alternate;\n    nextCurrentHook =\n      null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n  } else nextCurrentHook = currentHook.next;\n  var nextWorkInProgressHook =\n    null === workInProgressHook\n      ? currentlyRenderingFiber$1.memoizedState\n      : workInProgressHook.next;\n  if (null !== nextWorkInProgressHook)\n    (workInProgressHook = nextWorkInProgressHook),\n      (currentHook = nextCurrentHook);\n  else {\n    if (null === nextCurrentHook) {\n      if (null === currentlyRenderingFiber$1.alternate)\n        throw Error(formatProdErrorMessage(467));\n      throw Error(formatProdErrorMessage(310));\n    }\n    currentHook = nextCurrentHook;\n    nextCurrentHook = {\n      memoizedState: currentHook.memoizedState,\n      baseState: currentHook.baseState,\n      baseQueue: currentHook.baseQueue,\n      queue: currentHook.queue,\n      next: null\n    };\n    null === workInProgressHook\n      ? (currentlyRenderingFiber$1.memoizedState = workInProgressHook =\n          nextCurrentHook)\n      : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n  }\n  return workInProgressHook;\n}\nvar createFunctionComponentUpdateQueue;\ncreateFunctionComponentUpdateQueue = function () {\n  return { lastEffect: null, events: null, stores: null, memoCache: null };\n};\nfunction useThenable(thenable) {\n  var index = thenableIndexCounter;\n  thenableIndexCounter += 1;\n  null === thenableState && (thenableState = []);\n  thenable = trackUsedThenable(thenableState, thenable, index);\n  index = currentlyRenderingFiber$1;\n  null ===\n    (null === workInProgressHook\n      ? index.memoizedState\n      : workInProgressHook.next) &&\n    ((index = index.alternate),\n    (ReactSharedInternals.H =\n      null === index || null === index.memoizedState\n        ? HooksDispatcherOnMount\n        : HooksDispatcherOnUpdate));\n  return thenable;\n}\nfunction use(usable) {\n  if (null !== usable && \"object\" === typeof usable) {\n    if (\"function\" === typeof usable.then) return useThenable(usable);\n    if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n  }\n  throw Error(formatProdErrorMessage(438, String(usable)));\n}\nfunction useMemoCache(size) {\n  var memoCache = null,\n    updateQueue = currentlyRenderingFiber$1.updateQueue;\n  null !== updateQueue && (memoCache = updateQueue.memoCache);\n  if (null == memoCache) {\n    var current = currentlyRenderingFiber$1.alternate;\n    null !== current &&\n      ((current = current.updateQueue),\n      null !== current &&\n        ((current = current.memoCache),\n        null != current &&\n          (memoCache = {\n            data: current.data.map(function (array) {\n              return array.slice();\n            }),\n            index: 0\n          })));\n  }\n  null == memoCache && (memoCache = { data: [], index: 0 });\n  null === updateQueue &&\n    ((updateQueue = createFunctionComponentUpdateQueue()),\n    (currentlyRenderingFiber$1.updateQueue = updateQueue));\n  updateQueue.memoCache = memoCache;\n  updateQueue = memoCache.data[memoCache.index];\n  if (void 0 === updateQueue)\n    for (\n      updateQueue = memoCache.data[memoCache.index] = Array(size), current = 0;\n      current < size;\n      current++\n    )\n      updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n  memoCache.index++;\n  return updateQueue;\n}\nfunction basicStateReducer(state, action) {\n  return \"function\" === typeof action ? action(state) : action;\n}\nfunction updateReducer(reducer) {\n  var hook = updateWorkInProgressHook();\n  return updateReducerImpl(hook, currentHook, reducer);\n}\nfunction updateReducerImpl(hook, current, reducer) {\n  var queue = hook.queue;\n  if (null === queue) throw Error(formatProdErrorMessage(311));\n  queue.lastRenderedReducer = reducer;\n  var baseQueue = hook.baseQueue,\n    pendingQueue = queue.pending;\n  if (null !== pendingQueue) {\n    if (null !== baseQueue) {\n      var baseFirst = baseQueue.next;\n      baseQueue.next = pendingQueue.next;\n      pendingQueue.next = baseFirst;\n    }\n    current.baseQueue = baseQueue = pendingQueue;\n    queue.pending = null;\n  }\n  pendingQueue = hook.baseState;\n  if (null === baseQueue) hook.memoizedState = pendingQueue;\n  else {\n    current = baseQueue.next;\n    var newBaseQueueFirst = (baseFirst = null),\n      newBaseQueueLast = null,\n      update = current,\n      didReadFromEntangledAsyncAction$54 = !1;\n    do {\n      var updateLane = update.lane & -536870913;\n      if (\n        updateLane !== update.lane\n          ? (workInProgressRootRenderLanes & updateLane) === updateLane\n          : (renderLanes & updateLane) === updateLane\n      ) {\n        var revertLane = update.revertLane;\n        if (0 === revertLane)\n          null !== newBaseQueueLast &&\n            (newBaseQueueLast = newBaseQueueLast.next =\n              {\n                lane: 0,\n                revertLane: 0,\n                action: update.action,\n                hasEagerState: update.hasEagerState,\n                eagerState: update.eagerState,\n                next: null\n              }),\n            updateLane === currentEntangledLane &&\n              (didReadFromEntangledAsyncAction$54 = !0);\n        else if ((renderLanes & revertLane) === revertLane) {\n          update = update.next;\n          revertLane === currentEntangledLane &&\n            (didReadFromEntangledAsyncAction$54 = !0);\n          continue;\n        } else\n          (updateLane = {\n            lane: 0,\n            revertLane: update.revertLane,\n            action: update.action,\n            hasEagerState: update.hasEagerState,\n            eagerState: update.eagerState,\n            next: null\n          }),\n            null === newBaseQueueLast\n              ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n                (baseFirst = pendingQueue))\n              : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n            (currentlyRenderingFiber$1.lanes |= revertLane),\n            (workInProgressRootSkippedLanes |= revertLane);\n        updateLane = update.action;\n        shouldDoubleInvokeUserFnsInHooksDEV &&\n          reducer(pendingQueue, updateLane);\n        pendingQueue = update.hasEagerState\n          ? update.eagerState\n          : reducer(pendingQueue, updateLane);\n      } else\n        (revertLane = {\n          lane: updateLane,\n          revertLane: update.revertLane,\n          action: update.action,\n          hasEagerState: update.hasEagerState,\n          eagerState: update.eagerState,\n          next: null\n        }),\n          null === newBaseQueueLast\n            ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n              (baseFirst = pendingQueue))\n            : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n          (currentlyRenderingFiber$1.lanes |= updateLane),\n          (workInProgressRootSkippedLanes |= updateLane);\n      update = update.next;\n    } while (null !== update && update !== current);\n    null === newBaseQueueLast\n      ? (baseFirst = pendingQueue)\n      : (newBaseQueueLast.next = newBaseQueueFirst);\n    if (\n      !objectIs(pendingQueue, hook.memoizedState) &&\n      ((didReceiveUpdate = !0),\n      didReadFromEntangledAsyncAction$54 &&\n        ((reducer = currentEntangledActionThenable), null !== reducer))\n    )\n      throw reducer;\n    hook.memoizedState = pendingQueue;\n    hook.baseState = baseFirst;\n    hook.baseQueue = newBaseQueueLast;\n    queue.lastRenderedState = pendingQueue;\n  }\n  null === baseQueue && (queue.lanes = 0);\n  return [hook.memoizedState, queue.dispatch];\n}\nfunction rerenderReducer(reducer) {\n  var hook = updateWorkInProgressHook(),\n    queue = hook.queue;\n  if (null === queue) throw Error(formatProdErrorMessage(311));\n  queue.lastRenderedReducer = reducer;\n  var dispatch = queue.dispatch,\n    lastRenderPhaseUpdate = queue.pending,\n    newState = hook.memoizedState;\n  if (null !== lastRenderPhaseUpdate) {\n    queue.pending = null;\n    var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n    do (newState = reducer(newState, update.action)), (update = update.next);\n    while (update !== lastRenderPhaseUpdate);\n    objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n    hook.memoizedState = newState;\n    null === hook.baseQueue && (hook.baseState = newState);\n    queue.lastRenderedState = newState;\n  }\n  return [newState, dispatch];\n}\nfunction updateSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var fiber = currentlyRenderingFiber$1,\n    hook = updateWorkInProgressHook(),\n    isHydrating$jscomp$0 = isHydrating;\n  if (isHydrating$jscomp$0) {\n    if (void 0 === getServerSnapshot) throw Error(formatProdErrorMessage(407));\n    getServerSnapshot = getServerSnapshot();\n  } else getServerSnapshot = getSnapshot();\n  var snapshotChanged = !objectIs(\n    (currentHook || hook).memoizedState,\n    getServerSnapshot\n  );\n  snapshotChanged &&\n    ((hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0));\n  hook = hook.queue;\n  updateEffect(subscribeToStore.bind(null, fiber, hook, subscribe), [\n    subscribe\n  ]);\n  if (\n    hook.getSnapshot !== getSnapshot ||\n    snapshotChanged ||\n    (null !== workInProgressHook && workInProgressHook.memoizedState.tag & 1)\n  ) {\n    fiber.flags |= 2048;\n    pushEffect(\n      9,\n      updateStoreInstance.bind(\n        null,\n        fiber,\n        hook,\n        getServerSnapshot,\n        getSnapshot\n      ),\n      { destroy: void 0 },\n      null\n    );\n    if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n    isHydrating$jscomp$0 ||\n      0 !== (renderLanes & 60) ||\n      pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n  }\n  return getServerSnapshot;\n}\nfunction pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n  fiber.flags |= 16384;\n  fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n  getSnapshot = currentlyRenderingFiber$1.updateQueue;\n  null === getSnapshot\n    ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n      (currentlyRenderingFiber$1.updateQueue = getSnapshot),\n      (getSnapshot.stores = [fiber]))\n    : ((renderedSnapshot = getSnapshot.stores),\n      null === renderedSnapshot\n        ? (getSnapshot.stores = [fiber])\n        : renderedSnapshot.push(fiber));\n}\nfunction updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n  inst.value = nextSnapshot;\n  inst.getSnapshot = getSnapshot;\n  checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n}\nfunction subscribeToStore(fiber, inst, subscribe) {\n  return subscribe(function () {\n    checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n  });\n}\nfunction checkIfSnapshotChanged(inst) {\n  var latestGetSnapshot = inst.getSnapshot;\n  inst = inst.value;\n  try {\n    var nextValue = latestGetSnapshot();\n    return !objectIs(inst, nextValue);\n  } catch (error) {\n    return !0;\n  }\n}\nfunction forceStoreRerender(fiber) {\n  var root = enqueueConcurrentRenderForLane(fiber, 2);\n  null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n}\nfunction mountStateImpl(initialState) {\n  var hook = mountWorkInProgressHook();\n  if (\"function\" === typeof initialState) {\n    var initialStateInitializer = initialState;\n    initialState = initialStateInitializer();\n    if (shouldDoubleInvokeUserFnsInHooksDEV) {\n      setIsStrictModeForDevtools(!0);\n      try {\n        initialStateInitializer();\n      } finally {\n        setIsStrictModeForDevtools(!1);\n      }\n    }\n  }\n  hook.memoizedState = hook.baseState = initialState;\n  hook.queue = {\n    pending: null,\n    lanes: 0,\n    dispatch: null,\n    lastRenderedReducer: basicStateReducer,\n    lastRenderedState: initialState\n  };\n  return hook;\n}\nfunction updateOptimisticImpl(hook, current, passthrough, reducer) {\n  hook.baseState = passthrough;\n  return updateReducerImpl(\n    hook,\n    currentHook,\n    \"function\" === typeof reducer ? reducer : basicStateReducer\n  );\n}\nfunction dispatchActionState(\n  fiber,\n  actionQueue,\n  setPendingState,\n  setState,\n  payload\n) {\n  if (isRenderPhaseUpdate(fiber)) throw Error(formatProdErrorMessage(485));\n  fiber = actionQueue.action;\n  if (null !== fiber) {\n    var actionNode = {\n      payload: payload,\n      action: fiber,\n      next: null,\n      isTransition: !0,\n      status: \"pending\",\n      value: null,\n      reason: null,\n      listeners: [],\n      then: function (listener) {\n        actionNode.listeners.push(listener);\n      }\n    };\n    null !== ReactSharedInternals.T\n      ? setPendingState(!0)\n      : (actionNode.isTransition = !1);\n    setState(actionNode);\n    setPendingState = actionQueue.pending;\n    null === setPendingState\n      ? ((actionNode.next = actionQueue.pending = actionNode),\n        runActionStateAction(actionQueue, actionNode))\n      : ((actionNode.next = setPendingState.next),\n        (actionQueue.pending = setPendingState.next = actionNode));\n  }\n}\nfunction runActionStateAction(actionQueue, node) {\n  var action = node.action,\n    payload = node.payload,\n    prevState = actionQueue.state;\n  if (node.isTransition) {\n    var prevTransition = ReactSharedInternals.T,\n      currentTransition = {};\n    ReactSharedInternals.T = currentTransition;\n    try {\n      var returnValue = action(prevState, payload),\n        onStartTransitionFinish = ReactSharedInternals.S;\n      null !== onStartTransitionFinish &&\n        onStartTransitionFinish(currentTransition, returnValue);\n      handleActionReturnValue(actionQueue, node, returnValue);\n    } catch (error) {\n      onActionError(actionQueue, node, error);\n    } finally {\n      ReactSharedInternals.T = prevTransition;\n    }\n  } else\n    try {\n      (prevTransition = action(prevState, payload)),\n        handleActionReturnValue(actionQueue, node, prevTransition);\n    } catch (error$60) {\n      onActionError(actionQueue, node, error$60);\n    }\n}\nfunction handleActionReturnValue(actionQueue, node, returnValue) {\n  null !== returnValue &&\n  \"object\" === typeof returnValue &&\n  \"function\" === typeof returnValue.then\n    ? returnValue.then(\n        function (nextState) {\n          onActionSuccess(actionQueue, node, nextState);\n        },\n        function (error) {\n          return onActionError(actionQueue, node, error);\n        }\n      )\n    : onActionSuccess(actionQueue, node, returnValue);\n}\nfunction onActionSuccess(actionQueue, actionNode, nextState) {\n  actionNode.status = \"fulfilled\";\n  actionNode.value = nextState;\n  notifyActionListeners(actionNode);\n  actionQueue.state = nextState;\n  actionNode = actionQueue.pending;\n  null !== actionNode &&\n    ((nextState = actionNode.next),\n    nextState === actionNode\n      ? (actionQueue.pending = null)\n      : ((nextState = nextState.next),\n        (actionNode.next = nextState),\n        runActionStateAction(actionQueue, nextState)));\n}\nfunction onActionError(actionQueue, actionNode, error) {\n  var last = actionQueue.pending;\n  actionQueue.pending = null;\n  if (null !== last) {\n    last = last.next;\n    do\n      (actionNode.status = \"rejected\"),\n        (actionNode.reason = error),\n        notifyActionListeners(actionNode),\n        (actionNode = actionNode.next);\n    while (actionNode !== last);\n  }\n  actionQueue.action = null;\n}\nfunction notifyActionListeners(actionNode) {\n  actionNode = actionNode.listeners;\n  for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n}\nfunction actionStateReducer(oldState, newState) {\n  return newState;\n}\nfunction mountActionState(action, initialStateProp) {\n  if (isHydrating) {\n    var ssrFormState = workInProgressRoot.formState;\n    if (null !== ssrFormState) {\n      a: {\n        var JSCompiler_inline_result = currentlyRenderingFiber$1;\n        if (isHydrating) {\n          if (nextHydratableInstance) {\n            b: {\n              var JSCompiler_inline_result$jscomp$0 = nextHydratableInstance;\n              for (\n                var inRootOrSingleton = rootOrSingletonContext;\n                8 !== JSCompiler_inline_result$jscomp$0.nodeType;\n\n              ) {\n                if (!inRootOrSingleton) {\n                  JSCompiler_inline_result$jscomp$0 = null;\n                  break b;\n                }\n                JSCompiler_inline_result$jscomp$0 = getNextHydratable(\n                  JSCompiler_inline_result$jscomp$0.nextSibling\n                );\n                if (null === JSCompiler_inline_result$jscomp$0) {\n                  JSCompiler_inline_result$jscomp$0 = null;\n                  break b;\n                }\n              }\n              inRootOrSingleton = JSCompiler_inline_result$jscomp$0.data;\n              JSCompiler_inline_result$jscomp$0 =\n                \"F!\" === inRootOrSingleton || \"F\" === inRootOrSingleton\n                  ? JSCompiler_inline_result$jscomp$0\n                  : null;\n            }\n            if (JSCompiler_inline_result$jscomp$0) {\n              nextHydratableInstance = getNextHydratable(\n                JSCompiler_inline_result$jscomp$0.nextSibling\n              );\n              JSCompiler_inline_result =\n                \"F!\" === JSCompiler_inline_result$jscomp$0.data;\n              break a;\n            }\n          }\n          throwOnHydrationMismatch(JSCompiler_inline_result);\n        }\n        JSCompiler_inline_result = !1;\n      }\n      JSCompiler_inline_result && (initialStateProp = ssrFormState[0]);\n    }\n  }\n  ssrFormState = mountWorkInProgressHook();\n  ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n  JSCompiler_inline_result = {\n    pending: null,\n    lanes: 0,\n    dispatch: null,\n    lastRenderedReducer: actionStateReducer,\n    lastRenderedState: initialStateProp\n  };\n  ssrFormState.queue = JSCompiler_inline_result;\n  ssrFormState = dispatchSetState.bind(\n    null,\n    currentlyRenderingFiber$1,\n    JSCompiler_inline_result\n  );\n  JSCompiler_inline_result.dispatch = ssrFormState;\n  JSCompiler_inline_result = mountStateImpl(!1);\n  inRootOrSingleton = dispatchOptimisticSetState.bind(\n    null,\n    currentlyRenderingFiber$1,\n    !1,\n    JSCompiler_inline_result.queue\n  );\n  JSCompiler_inline_result = mountWorkInProgressHook();\n  JSCompiler_inline_result$jscomp$0 = {\n    state: initialStateProp,\n    dispatch: null,\n    action: action,\n    pending: null\n  };\n  JSCompiler_inline_result.queue = JSCompiler_inline_result$jscomp$0;\n  ssrFormState = dispatchActionState.bind(\n    null,\n    currentlyRenderingFiber$1,\n    JSCompiler_inline_result$jscomp$0,\n    inRootOrSingleton,\n    ssrFormState\n  );\n  JSCompiler_inline_result$jscomp$0.dispatch = ssrFormState;\n  JSCompiler_inline_result.memoizedState = action;\n  return [initialStateProp, ssrFormState, !1];\n}\nfunction updateActionState(action) {\n  var stateHook = updateWorkInProgressHook();\n  return updateActionStateImpl(stateHook, currentHook, action);\n}\nfunction updateActionStateImpl(stateHook, currentStateHook, action) {\n  currentStateHook = updateReducerImpl(\n    stateHook,\n    currentStateHook,\n    actionStateReducer\n  )[0];\n  stateHook = updateReducer(basicStateReducer)[0];\n  currentStateHook =\n    \"object\" === typeof currentStateHook &&\n    null !== currentStateHook &&\n    \"function\" === typeof currentStateHook.then\n      ? useThenable(currentStateHook)\n      : currentStateHook;\n  var actionQueueHook = updateWorkInProgressHook(),\n    actionQueue = actionQueueHook.queue,\n    dispatch = actionQueue.dispatch;\n  action !== actionQueueHook.memoizedState &&\n    ((currentlyRenderingFiber$1.flags |= 2048),\n    pushEffect(\n      9,\n      actionStateActionEffect.bind(null, actionQueue, action),\n      { destroy: void 0 },\n      null\n    ));\n  return [currentStateHook, dispatch, stateHook];\n}\nfunction actionStateActionEffect(actionQueue, action) {\n  actionQueue.action = action;\n}\nfunction rerenderActionState(action) {\n  var stateHook = updateWorkInProgressHook(),\n    currentStateHook = currentHook;\n  if (null !== currentStateHook)\n    return updateActionStateImpl(stateHook, currentStateHook, action);\n  updateWorkInProgressHook();\n  stateHook = stateHook.memoizedState;\n  currentStateHook = updateWorkInProgressHook();\n  var dispatch = currentStateHook.queue.dispatch;\n  currentStateHook.memoizedState = action;\n  return [stateHook, dispatch, !1];\n}\nfunction pushEffect(tag, create, inst, deps) {\n  tag = { tag: tag, create: create, inst: inst, deps: deps, next: null };\n  create = currentlyRenderingFiber$1.updateQueue;\n  null === create &&\n    ((create = createFunctionComponentUpdateQueue()),\n    (currentlyRenderingFiber$1.updateQueue = create));\n  inst = create.lastEffect;\n  null === inst\n    ? (create.lastEffect = tag.next = tag)\n    : ((deps = inst.next),\n      (inst.next = tag),\n      (tag.next = deps),\n      (create.lastEffect = tag));\n  return tag;\n}\nfunction updateRef() {\n  return updateWorkInProgressHook().memoizedState;\n}\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n  var hook = mountWorkInProgressHook();\n  currentlyRenderingFiber$1.flags |= fiberFlags;\n  hook.memoizedState = pushEffect(\n    1 | hookFlags,\n    create,\n    { destroy: void 0 },\n    void 0 === deps ? null : deps\n  );\n}\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n  var hook = updateWorkInProgressHook();\n  deps = void 0 === deps ? null : deps;\n  var inst = hook.memoizedState.inst;\n  null !== currentHook &&\n  null !== deps &&\n  areHookInputsEqual(deps, currentHook.memoizedState.deps)\n    ? (hook.memoizedState = pushEffect(hookFlags, create, inst, deps))\n    : ((currentlyRenderingFiber$1.flags |= fiberFlags),\n      (hook.memoizedState = pushEffect(1 | hookFlags, create, inst, deps)));\n}\nfunction mountEffect(create, deps) {\n  mountEffectImpl(8390656, 8, create, deps);\n}\nfunction updateEffect(create, deps) {\n  updateEffectImpl(2048, 8, create, deps);\n}\nfunction updateInsertionEffect(create, deps) {\n  return updateEffectImpl(4, 2, create, deps);\n}\nfunction updateLayoutEffect(create, deps) {\n  return updateEffectImpl(4, 4, create, deps);\n}\nfunction imperativeHandleEffect(create, ref) {\n  if (\"function\" === typeof ref) {\n    create = create();\n    var refCleanup = ref(create);\n    return function () {\n      \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n    };\n  }\n  if (null !== ref && void 0 !== ref)\n    return (\n      (create = create()),\n      (ref.current = create),\n      function () {\n        ref.current = null;\n      }\n    );\n}\nfunction updateImperativeHandle(ref, create, deps) {\n  deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n  updateEffectImpl(4, 4, imperativeHandleEffect.bind(null, create, ref), deps);\n}\nfunction mountDebugValue() {}\nfunction updateCallback(callback, deps) {\n  var hook = updateWorkInProgressHook();\n  deps = void 0 === deps ? null : deps;\n  var prevState = hook.memoizedState;\n  if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n    return prevState[0];\n  hook.memoizedState = [callback, deps];\n  return callback;\n}\nfunction updateMemo(nextCreate, deps) {\n  var hook = updateWorkInProgressHook();\n  deps = void 0 === deps ? null : deps;\n  var prevState = hook.memoizedState;\n  if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n    return prevState[0];\n  prevState = nextCreate();\n  if (shouldDoubleInvokeUserFnsInHooksDEV) {\n    setIsStrictModeForDevtools(!0);\n    try {\n      nextCreate();\n    } finally {\n      setIsStrictModeForDevtools(!1);\n    }\n  }\n  hook.memoizedState = [prevState, deps];\n  return prevState;\n}\nfunction mountDeferredValueImpl(hook, value, initialValue) {\n  if (void 0 === initialValue || 0 !== (renderLanes & 1073741824))\n    return (hook.memoizedState = value);\n  hook.memoizedState = initialValue;\n  hook = requestDeferredLane();\n  currentlyRenderingFiber$1.lanes |= hook;\n  workInProgressRootSkippedLanes |= hook;\n  return initialValue;\n}\nfunction updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n  if (objectIs(value, prevValue)) return value;\n  if (null !== currentTreeHiddenStackCursor.current)\n    return (\n      (hook = mountDeferredValueImpl(hook, value, initialValue)),\n      objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n      hook\n    );\n  if (0 === (renderLanes & 42))\n    return (didReceiveUpdate = !0), (hook.memoizedState = value);\n  hook = requestDeferredLane();\n  currentlyRenderingFiber$1.lanes |= hook;\n  workInProgressRootSkippedLanes |= hook;\n  return prevValue;\n}\nfunction startTransition(fiber, queue, pendingState, finishedState, callback) {\n  var previousPriority = ReactDOMSharedInternals.p;\n  ReactDOMSharedInternals.p =\n    0 !== previousPriority && 8 > previousPriority ? previousPriority : 8;\n  var prevTransition = ReactSharedInternals.T,\n    currentTransition = {};\n  ReactSharedInternals.T = currentTransition;\n  dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n  try {\n    var returnValue = callback(),\n      onStartTransitionFinish = ReactSharedInternals.S;\n    null !== onStartTransitionFinish &&\n      onStartTransitionFinish(currentTransition, returnValue);\n    if (\n      null !== returnValue &&\n      \"object\" === typeof returnValue &&\n      \"function\" === typeof returnValue.then\n    ) {\n      var thenableForFinishedState = chainThenableValue(\n        returnValue,\n        finishedState\n      );\n      dispatchSetStateInternal(\n        fiber,\n        queue,\n        thenableForFinishedState,\n        requestUpdateLane(fiber)\n      );\n    } else\n      dispatchSetStateInternal(\n        fiber,\n        queue,\n        finishedState,\n        requestUpdateLane(fiber)\n      );\n  } catch (error) {\n    dispatchSetStateInternal(\n      fiber,\n      queue,\n      { then: function () {}, status: \"rejected\", reason: error },\n      requestUpdateLane()\n    );\n  } finally {\n    (ReactDOMSharedInternals.p = previousPriority),\n      (ReactSharedInternals.T = prevTransition);\n  }\n}\nfunction noop$2() {}\nfunction startHostTransition(formFiber, pendingState, action, formData) {\n  if (5 !== formFiber.tag) throw Error(formatProdErrorMessage(476));\n  var queue = ensureFormComponentIsStateful(formFiber).queue;\n  startTransition(\n    formFiber,\n    queue,\n    pendingState,\n    sharedNotPendingObject,\n    null === action\n      ? noop$2\n      : function () {\n          requestFormReset$1(formFiber);\n          return action(formData);\n        }\n  );\n}\nfunction ensureFormComponentIsStateful(formFiber) {\n  var existingStateHook = formFiber.memoizedState;\n  if (null !== existingStateHook) return existingStateHook;\n  existingStateHook = {\n    memoizedState: sharedNotPendingObject,\n    baseState: sharedNotPendingObject,\n    baseQueue: null,\n    queue: {\n      pending: null,\n      lanes: 0,\n      dispatch: null,\n      lastRenderedReducer: basicStateReducer,\n      lastRenderedState: sharedNotPendingObject\n    },\n    next: null\n  };\n  var initialResetState = {};\n  existingStateHook.next = {\n    memoizedState: initialResetState,\n    baseState: initialResetState,\n    baseQueue: null,\n    queue: {\n      pending: null,\n      lanes: 0,\n      dispatch: null,\n      lastRenderedReducer: basicStateReducer,\n      lastRenderedState: initialResetState\n    },\n    next: null\n  };\n  formFiber.memoizedState = existingStateHook;\n  formFiber = formFiber.alternate;\n  null !== formFiber && (formFiber.memoizedState = existingStateHook);\n  return existingStateHook;\n}\nfunction requestFormReset$1(formFiber) {\n  var resetStateQueue = ensureFormComponentIsStateful(formFiber).next.queue;\n  dispatchSetStateInternal(formFiber, resetStateQueue, {}, requestUpdateLane());\n}\nfunction useHostTransitionStatus() {\n  return readContext(HostTransitionContext);\n}\nfunction updateId() {\n  return updateWorkInProgressHook().memoizedState;\n}\nfunction updateRefresh() {\n  return updateWorkInProgressHook().memoizedState;\n}\nfunction refreshCache(fiber) {\n  for (var provider = fiber.return; null !== provider; ) {\n    switch (provider.tag) {\n      case 24:\n      case 3:\n        var lane = requestUpdateLane();\n        fiber = createUpdate(lane);\n        var root$63 = enqueueUpdate(provider, fiber, lane);\n        null !== root$63 &&\n          (scheduleUpdateOnFiber(root$63, provider, lane),\n          entangleTransitions(root$63, provider, lane));\n        provider = { cache: createCache() };\n        fiber.payload = provider;\n        return;\n    }\n    provider = provider.return;\n  }\n}\nfunction dispatchReducerAction(fiber, queue, action) {\n  var lane = requestUpdateLane();\n  action = {\n    lane: lane,\n    revertLane: 0,\n    action: action,\n    hasEagerState: !1,\n    eagerState: null,\n    next: null\n  };\n  isRenderPhaseUpdate(fiber)\n    ? enqueueRenderPhaseUpdate(queue, action)\n    : ((action = enqueueConcurrentHookUpdate(fiber, queue, action, lane)),\n      null !== action &&\n        (scheduleUpdateOnFiber(action, fiber, lane),\n        entangleTransitionUpdate(action, queue, lane)));\n}\nfunction dispatchSetState(fiber, queue, action) {\n  var lane = requestUpdateLane();\n  dispatchSetStateInternal(fiber, queue, action, lane);\n}\nfunction dispatchSetStateInternal(fiber, queue, action, lane) {\n  var update = {\n    lane: lane,\n    revertLane: 0,\n    action: action,\n    hasEagerState: !1,\n    eagerState: null,\n    next: null\n  };\n  if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n  else {\n    var alternate = fiber.alternate;\n    if (\n      0 === fiber.lanes &&\n      (null === alternate || 0 === alternate.lanes) &&\n      ((alternate = queue.lastRenderedReducer), null !== alternate)\n    )\n      try {\n        var currentState = queue.lastRenderedState,\n          eagerState = alternate(currentState, action);\n        update.hasEagerState = !0;\n        update.eagerState = eagerState;\n        if (objectIs(eagerState, currentState))\n          return (\n            enqueueUpdate$1(fiber, queue, update, 0),\n            null === workInProgressRoot && finishQueueingConcurrentUpdates(),\n            !1\n          );\n      } catch (error) {\n      } finally {\n      }\n    action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n    if (null !== action)\n      return (\n        scheduleUpdateOnFiber(action, fiber, lane),\n        entangleTransitionUpdate(action, queue, lane),\n        !0\n      );\n  }\n  return !1;\n}\nfunction dispatchOptimisticSetState(fiber, throwIfDuringRender, queue, action) {\n  action = {\n    lane: 2,\n    revertLane: requestTransitionLane(),\n    action: action,\n    hasEagerState: !1,\n    eagerState: null,\n    next: null\n  };\n  if (isRenderPhaseUpdate(fiber)) {\n    if (throwIfDuringRender) throw Error(formatProdErrorMessage(479));\n  } else\n    (throwIfDuringRender = enqueueConcurrentHookUpdate(\n      fiber,\n      queue,\n      action,\n      2\n    )),\n      null !== throwIfDuringRender &&\n        scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2);\n}\nfunction isRenderPhaseUpdate(fiber) {\n  var alternate = fiber.alternate;\n  return (\n    fiber === currentlyRenderingFiber$1 ||\n    (null !== alternate && alternate === currentlyRenderingFiber$1)\n  );\n}\nfunction enqueueRenderPhaseUpdate(queue, update) {\n  didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate =\n    !0;\n  var pending = queue.pending;\n  null === pending\n    ? (update.next = update)\n    : ((update.next = pending.next), (pending.next = update));\n  queue.pending = update;\n}\nfunction entangleTransitionUpdate(root, queue, lane) {\n  if (0 !== (lane & 4194176)) {\n    var queueLanes = queue.lanes;\n    queueLanes &= root.pendingLanes;\n    lane |= queueLanes;\n    queue.lanes = lane;\n    markRootEntangled(root, lane);\n  }\n}\nvar ContextOnlyDispatcher = {\n  readContext: readContext,\n  use: use,\n  useCallback: throwInvalidHookError,\n  useContext: throwInvalidHookError,\n  useEffect: throwInvalidHookError,\n  useImperativeHandle: throwInvalidHookError,\n  useLayoutEffect: throwInvalidHookError,\n  useInsertionEffect: throwInvalidHookError,\n  useMemo: throwInvalidHookError,\n  useReducer: throwInvalidHookError,\n  useRef: throwInvalidHookError,\n  useState: throwInvalidHookError,\n  useDebugValue: throwInvalidHookError,\n  useDeferredValue: throwInvalidHookError,\n  useTransition: throwInvalidHookError,\n  useSyncExternalStore: throwInvalidHookError,\n  useId: throwInvalidHookError\n};\nContextOnlyDispatcher.useCacheRefresh = throwInvalidHookError;\nContextOnlyDispatcher.useMemoCache = throwInvalidHookError;\nContextOnlyDispatcher.useHostTransitionStatus = throwInvalidHookError;\nContextOnlyDispatcher.useFormState = throwInvalidHookError;\nContextOnlyDispatcher.useActionState = throwInvalidHookError;\nContextOnlyDispatcher.useOptimistic = throwInvalidHookError;\nvar HooksDispatcherOnMount = {\n  readContext: readContext,\n  use: use,\n  useCallback: function (callback, deps) {\n    mountWorkInProgressHook().memoizedState = [\n      callback,\n      void 0 === deps ? null : deps\n    ];\n    return callback;\n  },\n  useContext: readContext,\n  useEffect: mountEffect,\n  useImperativeHandle: function (ref, create, deps) {\n    deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n    mountEffectImpl(\n      4194308,\n      4,\n      imperativeHandleEffect.bind(null, create, ref),\n      deps\n    );\n  },\n  useLayoutEffect: function (create, deps) {\n    return mountEffectImpl(4194308, 4, create, deps);\n  },\n  useInsertionEffect: function (create, deps) {\n    mountEffectImpl(4, 2, create, deps);\n  },\n  useMemo: function (nextCreate, deps) {\n    var hook = mountWorkInProgressHook();\n    deps = void 0 === deps ? null : deps;\n    var nextValue = nextCreate();\n    if (shouldDoubleInvokeUserFnsInHooksDEV) {\n      setIsStrictModeForDevtools(!0);\n      try {\n        nextCreate();\n      } finally {\n        setIsStrictModeForDevtools(!1);\n      }\n    }\n    hook.memoizedState = [nextValue, deps];\n    return nextValue;\n  },\n  useReducer: function (reducer, initialArg, init) {\n    var hook = mountWorkInProgressHook();\n    if (void 0 !== init) {\n      var initialState = init(initialArg);\n      if (shouldDoubleInvokeUserFnsInHooksDEV) {\n        setIsStrictModeForDevtools(!0);\n        try {\n          init(initialArg);\n        } finally {\n          setIsStrictModeForDevtools(!1);\n        }\n      }\n    } else initialState = initialArg;\n    hook.memoizedState = hook.baseState = initialState;\n    reducer = {\n      pending: null,\n      lanes: 0,\n      dispatch: null,\n      lastRenderedReducer: reducer,\n      lastRenderedState: initialState\n    };\n    hook.queue = reducer;\n    reducer = reducer.dispatch = dispatchReducerAction.bind(\n      null,\n      currentlyRenderingFiber$1,\n      reducer\n    );\n    return [hook.memoizedState, reducer];\n  },\n  useRef: function (initialValue) {\n    var hook = mountWorkInProgressHook();\n    initialValue = { current: initialValue };\n    return (hook.memoizedState = initialValue);\n  },\n  useState: function (initialState) {\n    initialState = mountStateImpl(initialState);\n    var queue = initialState.queue,\n      dispatch = dispatchSetState.bind(null, currentlyRenderingFiber$1, queue);\n    queue.dispatch = dispatch;\n    return [initialState.memoizedState, dispatch];\n  },\n  useDebugValue: mountDebugValue,\n  useDeferredValue: function (value, initialValue) {\n    var hook = mountWorkInProgressHook();\n    return mountDeferredValueImpl(hook, value, initialValue);\n  },\n  useTransition: function () {\n    var stateHook = mountStateImpl(!1);\n    stateHook = startTransition.bind(\n      null,\n      currentlyRenderingFiber$1,\n      stateHook.queue,\n      !0,\n      !1\n    );\n    mountWorkInProgressHook().memoizedState = stateHook;\n    return [!1, stateHook];\n  },\n  useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) {\n    var fiber = currentlyRenderingFiber$1,\n      hook = mountWorkInProgressHook();\n    if (isHydrating) {\n      if (void 0 === getServerSnapshot)\n        throw Error(formatProdErrorMessage(407));\n      getServerSnapshot = getServerSnapshot();\n    } else {\n      getServerSnapshot = getSnapshot();\n      if (null === workInProgressRoot) throw Error(formatProdErrorMessage(349));\n      0 !== (workInProgressRootRenderLanes & 60) ||\n        pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n    }\n    hook.memoizedState = getServerSnapshot;\n    var inst = { value: getServerSnapshot, getSnapshot: getSnapshot };\n    hook.queue = inst;\n    mountEffect(subscribeToStore.bind(null, fiber, inst, subscribe), [\n      subscribe\n    ]);\n    fiber.flags |= 2048;\n    pushEffect(\n      9,\n      updateStoreInstance.bind(\n        null,\n        fiber,\n        inst,\n        getServerSnapshot,\n        getSnapshot\n      ),\n      { destroy: void 0 },\n      null\n    );\n    return getServerSnapshot;\n  },\n  useId: function () {\n    var hook = mountWorkInProgressHook(),\n      identifierPrefix = workInProgressRoot.identifierPrefix;\n    if (isHydrating) {\n      var JSCompiler_inline_result = treeContextOverflow;\n      var idWithLeadingBit = treeContextId;\n      JSCompiler_inline_result =\n        (\n          idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n        ).toString(32) + JSCompiler_inline_result;\n      identifierPrefix =\n        \":\" + identifierPrefix + \"R\" + JSCompiler_inline_result;\n      JSCompiler_inline_result = localIdCounter++;\n      0 < JSCompiler_inline_result &&\n        (identifierPrefix += \"H\" + JSCompiler_inline_result.toString(32));\n      identifierPrefix += \":\";\n    } else\n      (JSCompiler_inline_result = globalClientIdCounter++),\n        (identifierPrefix =\n          \":\" +\n          identifierPrefix +\n          \"r\" +\n          JSCompiler_inline_result.toString(32) +\n          \":\");\n    return (hook.memoizedState = identifierPrefix);\n  },\n  useCacheRefresh: function () {\n    return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n      null,\n      currentlyRenderingFiber$1\n    ));\n  }\n};\nHooksDispatcherOnMount.useMemoCache = useMemoCache;\nHooksDispatcherOnMount.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnMount.useFormState = mountActionState;\nHooksDispatcherOnMount.useActionState = mountActionState;\nHooksDispatcherOnMount.useOptimistic = function (passthrough) {\n  var hook = mountWorkInProgressHook();\n  hook.memoizedState = hook.baseState = passthrough;\n  var queue = {\n    pending: null,\n    lanes: 0,\n    dispatch: null,\n    lastRenderedReducer: null,\n    lastRenderedState: null\n  };\n  hook.queue = queue;\n  hook = dispatchOptimisticSetState.bind(\n    null,\n    currentlyRenderingFiber$1,\n    !0,\n    queue\n  );\n  queue.dispatch = hook;\n  return [passthrough, hook];\n};\nvar HooksDispatcherOnUpdate = {\n  readContext: readContext,\n  use: use,\n  useCallback: updateCallback,\n  useContext: readContext,\n  useEffect: updateEffect,\n  useImperativeHandle: updateImperativeHandle,\n  useInsertionEffect: updateInsertionEffect,\n  useLayoutEffect: updateLayoutEffect,\n  useMemo: updateMemo,\n  useReducer: updateReducer,\n  useRef: updateRef,\n  useState: function () {\n    return updateReducer(basicStateReducer);\n  },\n  useDebugValue: mountDebugValue,\n  useDeferredValue: function (value, initialValue) {\n    var hook = updateWorkInProgressHook();\n    return updateDeferredValueImpl(\n      hook,\n      currentHook.memoizedState,\n      value,\n      initialValue\n    );\n  },\n  useTransition: function () {\n    var booleanOrThenable = updateReducer(basicStateReducer)[0],\n      start = updateWorkInProgressHook().memoizedState;\n    return [\n      \"boolean\" === typeof booleanOrThenable\n        ? booleanOrThenable\n        : useThenable(booleanOrThenable),\n      start\n    ];\n  },\n  useSyncExternalStore: updateSyncExternalStore,\n  useId: updateId\n};\nHooksDispatcherOnUpdate.useCacheRefresh = updateRefresh;\nHooksDispatcherOnUpdate.useMemoCache = useMemoCache;\nHooksDispatcherOnUpdate.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnUpdate.useFormState = updateActionState;\nHooksDispatcherOnUpdate.useActionState = updateActionState;\nHooksDispatcherOnUpdate.useOptimistic = function (passthrough, reducer) {\n  var hook = updateWorkInProgressHook();\n  return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n};\nvar HooksDispatcherOnRerender = {\n  readContext: readContext,\n  use: use,\n  useCallback: updateCallback,\n  useContext: readContext,\n  useEffect: updateEffect,\n  useImperativeHandle: updateImperativeHandle,\n  useInsertionEffect: updateInsertionEffect,\n  useLayoutEffect: updateLayoutEffect,\n  useMemo: updateMemo,\n  useReducer: rerenderReducer,\n  useRef: updateRef,\n  useState: function () {\n    return rerenderReducer(basicStateReducer);\n  },\n  useDebugValue: mountDebugValue,\n  useDeferredValue: function (value, initialValue) {\n    var hook = updateWorkInProgressHook();\n    return null === currentHook\n      ? mountDeferredValueImpl(hook, value, initialValue)\n      : updateDeferredValueImpl(\n          hook,\n          currentHook.memoizedState,\n          value,\n          initialValue\n        );\n  },\n  useTransition: function () {\n    var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n      start = updateWorkInProgressHook().memoizedState;\n    return [\n      \"boolean\" === typeof booleanOrThenable\n        ? booleanOrThenable\n        : useThenable(booleanOrThenable),\n      start\n    ];\n  },\n  useSyncExternalStore: updateSyncExternalStore,\n  useId: updateId\n};\nHooksDispatcherOnRerender.useCacheRefresh = updateRefresh;\nHooksDispatcherOnRerender.useMemoCache = useMemoCache;\nHooksDispatcherOnRerender.useHostTransitionStatus = useHostTransitionStatus;\nHooksDispatcherOnRerender.useFormState = rerenderActionState;\nHooksDispatcherOnRerender.useActionState = rerenderActionState;\nHooksDispatcherOnRerender.useOptimistic = function (passthrough, reducer) {\n  var hook = updateWorkInProgressHook();\n  if (null !== currentHook)\n    return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n  hook.baseState = passthrough;\n  return [passthrough, hook.queue.dispatch];\n};\nfunction applyDerivedStateFromProps(\n  workInProgress,\n  ctor,\n  getDerivedStateFromProps,\n  nextProps\n) {\n  ctor = workInProgress.memoizedState;\n  getDerivedStateFromProps = getDerivedStateFromProps(nextProps, ctor);\n  getDerivedStateFromProps =\n    null === getDerivedStateFromProps || void 0 === getDerivedStateFromProps\n      ? ctor\n      : assign({}, ctor, getDerivedStateFromProps);\n  workInProgress.memoizedState = getDerivedStateFromProps;\n  0 === workInProgress.lanes &&\n    (workInProgress.updateQueue.baseState = getDerivedStateFromProps);\n}\nvar classComponentUpdater = {\n  isMounted: function (component) {\n    return (component = component._reactInternals)\n      ? getNearestMountedFiber(component) === component\n      : !1;\n  },\n  enqueueSetState: function (inst, payload, callback) {\n    inst = inst._reactInternals;\n    var lane = requestUpdateLane(),\n      update = createUpdate(lane);\n    update.payload = payload;\n    void 0 !== callback && null !== callback && (update.callback = callback);\n    payload = enqueueUpdate(inst, update, lane);\n    null !== payload &&\n      (scheduleUpdateOnFiber(payload, inst, lane),\n      entangleTransitions(payload, inst, lane));\n  },\n  enqueueReplaceState: function (inst, payload, callback) {\n    inst = inst._reactInternals;\n    var lane = requestUpdateLane(),\n      update = createUpdate(lane);\n    update.tag = 1;\n    update.payload = payload;\n    void 0 !== callback && null !== callback && (update.callback = callback);\n    payload = enqueueUpdate(inst, update, lane);\n    null !== payload &&\n      (scheduleUpdateOnFiber(payload, inst, lane),\n      entangleTransitions(payload, inst, lane));\n  },\n  enqueueForceUpdate: function (inst, callback) {\n    inst = inst._reactInternals;\n    var lane = requestUpdateLane(),\n      update = createUpdate(lane);\n    update.tag = 2;\n    void 0 !== callback && null !== callback && (update.callback = callback);\n    callback = enqueueUpdate(inst, update, lane);\n    null !== callback &&\n      (scheduleUpdateOnFiber(callback, inst, lane),\n      entangleTransitions(callback, inst, lane));\n  }\n};\nfunction checkShouldComponentUpdate(\n  workInProgress,\n  ctor,\n  oldProps,\n  newProps,\n  oldState,\n  newState,\n  nextContext\n) {\n  workInProgress = workInProgress.stateNode;\n  return \"function\" === typeof workInProgress.shouldComponentUpdate\n    ? workInProgress.shouldComponentUpdate(newProps, newState, nextContext)\n    : ctor.prototype && ctor.prototype.isPureReactComponent\n      ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n      : !0;\n}\nfunction callComponentWillReceiveProps(\n  workInProgress,\n  instance,\n  newProps,\n  nextContext\n) {\n  workInProgress = instance.state;\n  \"function\" === typeof instance.componentWillReceiveProps &&\n    instance.componentWillReceiveProps(newProps, nextContext);\n  \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n    instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n  instance.state !== workInProgress &&\n    classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n}\nfunction resolveClassComponentProps(Component, baseProps) {\n  var newProps = baseProps;\n  if (\"ref\" in baseProps) {\n    newProps = {};\n    for (var propName in baseProps)\n      \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n  }\n  if ((Component = Component.defaultProps)) {\n    newProps === baseProps && (newProps = assign({}, newProps));\n    for (var propName$67 in Component)\n      void 0 === newProps[propName$67] &&\n        (newProps[propName$67] = Component[propName$67]);\n  }\n  return newProps;\n}\nvar reportGlobalError =\n  \"function\" === typeof reportError\n    ? reportError\n    : function (error) {\n        if (\n          \"object\" === typeof window &&\n          \"function\" === typeof window.ErrorEvent\n        ) {\n          var event = new window.ErrorEvent(\"error\", {\n            bubbles: !0,\n            cancelable: !0,\n            message:\n              \"object\" === typeof error &&\n              null !== error &&\n              \"string\" === typeof error.message\n                ? String(error.message)\n                : String(error),\n            error: error\n          });\n          if (!window.dispatchEvent(event)) return;\n        } else if (\n          \"object\" === typeof process &&\n          \"function\" === typeof process.emit\n        ) {\n          process.emit(\"uncaughtException\", error);\n          return;\n        }\n        console.error(error);\n      };\nfunction defaultOnUncaughtError(error) {\n  reportGlobalError(error);\n}\nfunction defaultOnCaughtError(error) {\n  console.error(error);\n}\nfunction defaultOnRecoverableError(error) {\n  reportGlobalError(error);\n}\nfunction logUncaughtError(root, errorInfo) {\n  try {\n    var onUncaughtError = root.onUncaughtError;\n    onUncaughtError(errorInfo.value, { componentStack: errorInfo.stack });\n  } catch (e$68) {\n    setTimeout(function () {\n      throw e$68;\n    });\n  }\n}\nfunction logCaughtError(root, boundary, errorInfo) {\n  try {\n    var onCaughtError = root.onCaughtError;\n    onCaughtError(errorInfo.value, {\n      componentStack: errorInfo.stack,\n      errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n    });\n  } catch (e$69) {\n    setTimeout(function () {\n      throw e$69;\n    });\n  }\n}\nfunction createRootErrorUpdate(root, errorInfo, lane) {\n  lane = createUpdate(lane);\n  lane.tag = 3;\n  lane.payload = { element: null };\n  lane.callback = function () {\n    logUncaughtError(root, errorInfo);\n  };\n  return lane;\n}\nfunction createClassErrorUpdate(lane) {\n  lane = createUpdate(lane);\n  lane.tag = 3;\n  return lane;\n}\nfunction initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n  var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n  if (\"function\" === typeof getDerivedStateFromError) {\n    var error = errorInfo.value;\n    update.payload = function () {\n      return getDerivedStateFromError(error);\n    };\n    update.callback = function () {\n      logCaughtError(root, fiber, errorInfo);\n    };\n  }\n  var inst = fiber.stateNode;\n  null !== inst &&\n    \"function\" === typeof inst.componentDidCatch &&\n    (update.callback = function () {\n      logCaughtError(root, fiber, errorInfo);\n      \"function\" !== typeof getDerivedStateFromError &&\n        (null === legacyErrorBoundariesThatAlreadyFailed\n          ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n          : legacyErrorBoundariesThatAlreadyFailed.add(this));\n      var stack = errorInfo.stack;\n      this.componentDidCatch(errorInfo.value, {\n        componentStack: null !== stack ? stack : \"\"\n      });\n    });\n}\nfunction throwException(\n  root,\n  returnFiber,\n  sourceFiber,\n  value,\n  rootRenderLanes\n) {\n  sourceFiber.flags |= 32768;\n  if (\n    null !== value &&\n    \"object\" === typeof value &&\n    \"function\" === typeof value.then\n  ) {\n    returnFiber = sourceFiber.alternate;\n    null !== returnFiber &&\n      propagateParentContextChanges(\n        returnFiber,\n        sourceFiber,\n        rootRenderLanes,\n        !0\n      );\n    sourceFiber = suspenseHandlerStackCursor.current;\n    if (null !== sourceFiber) {\n      switch (sourceFiber.tag) {\n        case 13:\n          return (\n            null === shellBoundary\n              ? renderDidSuspendDelayIfPossible()\n              : null === sourceFiber.alternate &&\n                0 === workInProgressRootExitStatus &&\n                (workInProgressRootExitStatus = 3),\n            (sourceFiber.flags &= -257),\n            (sourceFiber.flags |= 65536),\n            (sourceFiber.lanes = rootRenderLanes),\n            value === noopSuspenseyCommitThenable\n              ? (sourceFiber.flags |= 16384)\n              : ((returnFiber = sourceFiber.updateQueue),\n                null === returnFiber\n                  ? (sourceFiber.updateQueue = new Set([value]))\n                  : returnFiber.add(value),\n                attachPingListener(root, value, rootRenderLanes)),\n            !1\n          );\n        case 22:\n          return (\n            (sourceFiber.flags |= 65536),\n            value === noopSuspenseyCommitThenable\n              ? (sourceFiber.flags |= 16384)\n              : ((returnFiber = sourceFiber.updateQueue),\n                null === returnFiber\n                  ? ((returnFiber = {\n                      transitions: null,\n                      markerInstances: null,\n                      retryQueue: new Set([value])\n                    }),\n                    (sourceFiber.updateQueue = returnFiber))\n                  : ((sourceFiber = returnFiber.retryQueue),\n                    null === sourceFiber\n                      ? (returnFiber.retryQueue = new Set([value]))\n                      : sourceFiber.add(value)),\n                attachPingListener(root, value, rootRenderLanes)),\n            !1\n          );\n      }\n      throw Error(formatProdErrorMessage(435, sourceFiber.tag));\n    }\n    attachPingListener(root, value, rootRenderLanes);\n    renderDidSuspendDelayIfPossible();\n    return !1;\n  }\n  if (isHydrating)\n    return (\n      (returnFiber = suspenseHandlerStackCursor.current),\n      null !== returnFiber\n        ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n          (returnFiber.flags |= 65536),\n          (returnFiber.lanes = rootRenderLanes),\n          value !== HydrationMismatchException &&\n            ((root = Error(formatProdErrorMessage(422), { cause: value })),\n            queueHydrationError(createCapturedValueAtFiber(root, sourceFiber))))\n        : (value !== HydrationMismatchException &&\n            ((returnFiber = Error(formatProdErrorMessage(423), {\n              cause: value\n            })),\n            queueHydrationError(\n              createCapturedValueAtFiber(returnFiber, sourceFiber)\n            )),\n          (root = root.current.alternate),\n          (root.flags |= 65536),\n          (rootRenderLanes &= -rootRenderLanes),\n          (root.lanes |= rootRenderLanes),\n          (value = createCapturedValueAtFiber(value, sourceFiber)),\n          (rootRenderLanes = createRootErrorUpdate(\n            root.stateNode,\n            value,\n            rootRenderLanes\n          )),\n          enqueueCapturedUpdate(root, rootRenderLanes),\n          4 !== workInProgressRootExitStatus &&\n            (workInProgressRootExitStatus = 2)),\n      !1\n    );\n  var wrapperError = Error(formatProdErrorMessage(520), { cause: value });\n  wrapperError = createCapturedValueAtFiber(wrapperError, sourceFiber);\n  null === workInProgressRootConcurrentErrors\n    ? (workInProgressRootConcurrentErrors = [wrapperError])\n    : workInProgressRootConcurrentErrors.push(wrapperError);\n  4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2);\n  if (null === returnFiber) return !0;\n  value = createCapturedValueAtFiber(value, sourceFiber);\n  sourceFiber = returnFiber;\n  do {\n    switch (sourceFiber.tag) {\n      case 3:\n        return (\n          (sourceFiber.flags |= 65536),\n          (root = rootRenderLanes & -rootRenderLanes),\n          (sourceFiber.lanes |= root),\n          (root = createRootErrorUpdate(sourceFiber.stateNode, value, root)),\n          enqueueCapturedUpdate(sourceFiber, root),\n          !1\n        );\n      case 1:\n        if (\n          ((returnFiber = sourceFiber.type),\n          (wrapperError = sourceFiber.stateNode),\n          0 === (sourceFiber.flags & 128) &&\n            (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n              (null !== wrapperError &&\n                \"function\" === typeof wrapperError.componentDidCatch &&\n                (null === legacyErrorBoundariesThatAlreadyFailed ||\n                  !legacyErrorBoundariesThatAlreadyFailed.has(wrapperError)))))\n        )\n          return (\n            (sourceFiber.flags |= 65536),\n            (rootRenderLanes &= -rootRenderLanes),\n            (sourceFiber.lanes |= rootRenderLanes),\n            (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n            initializeClassErrorUpdate(\n              rootRenderLanes,\n              root,\n              sourceFiber,\n              value\n            ),\n            enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n            !1\n          );\n    }\n    sourceFiber = sourceFiber.return;\n  } while (null !== sourceFiber);\n  return !1;\n}\nvar SelectiveHydrationException = Error(formatProdErrorMessage(461)),\n  didReceiveUpdate = !1;\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n  workInProgress.child =\n    null === current\n      ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n      : reconcileChildFibers(\n          workInProgress,\n          current.child,\n          nextChildren,\n          renderLanes\n        );\n}\nfunction updateForwardRef(\n  current,\n  workInProgress,\n  Component,\n  nextProps,\n  renderLanes\n) {\n  Component = Component.render;\n  var ref = workInProgress.ref;\n  if (\"ref\" in nextProps) {\n    var propsWithoutRef = {};\n    for (var key in nextProps)\n      \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n  } else propsWithoutRef = nextProps;\n  prepareToReadContext(workInProgress);\n  nextProps = renderWithHooks(\n    current,\n    workInProgress,\n    Component,\n    propsWithoutRef,\n    ref,\n    renderLanes\n  );\n  key = checkDidRenderIdHook();\n  if (null !== current && !didReceiveUpdate)\n    return (\n      bailoutHooks(current, workInProgress, renderLanes),\n      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n    );\n  isHydrating && key && pushMaterializedTreeId(workInProgress);\n  workInProgress.flags |= 1;\n  reconcileChildren(current, workInProgress, nextProps, renderLanes);\n  return workInProgress.child;\n}\nfunction updateMemoComponent(\n  current,\n  workInProgress,\n  Component,\n  nextProps,\n  renderLanes\n) {\n  if (null === current) {\n    var type = Component.type;\n    if (\n      \"function\" === typeof type &&\n      !shouldConstruct(type) &&\n      void 0 === type.defaultProps &&\n      null === Component.compare\n    )\n      return (\n        (workInProgress.tag = 15),\n        (workInProgress.type = type),\n        updateSimpleMemoComponent(\n          current,\n          workInProgress,\n          type,\n          nextProps,\n          renderLanes\n        )\n      );\n    current = createFiberFromTypeAndProps(\n      Component.type,\n      null,\n      nextProps,\n      workInProgress,\n      workInProgress.mode,\n      renderLanes\n    );\n    current.ref = workInProgress.ref;\n    current.return = workInProgress;\n    return (workInProgress.child = current);\n  }\n  type = current.child;\n  if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n    var prevProps = type.memoizedProps;\n    Component = Component.compare;\n    Component = null !== Component ? Component : shallowEqual;\n    if (Component(prevProps, nextProps) && current.ref === workInProgress.ref)\n      return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n  }\n  workInProgress.flags |= 1;\n  current = createWorkInProgress(type, nextProps);\n  current.ref = workInProgress.ref;\n  current.return = workInProgress;\n  return (workInProgress.child = current);\n}\nfunction updateSimpleMemoComponent(\n  current,\n  workInProgress,\n  Component,\n  nextProps,\n  renderLanes\n) {\n  if (null !== current) {\n    var prevProps = current.memoizedProps;\n    if (\n      shallowEqual(prevProps, nextProps) &&\n      current.ref === workInProgress.ref\n    )\n      if (\n        ((didReceiveUpdate = !1),\n        (workInProgress.pendingProps = nextProps = prevProps),\n        checkScheduledUpdateOrContext(current, renderLanes))\n      )\n        0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n      else\n        return (\n          (workInProgress.lanes = current.lanes),\n          bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n        );\n  }\n  return updateFunctionComponent(\n    current,\n    workInProgress,\n    Component,\n    nextProps,\n    renderLanes\n  );\n}\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps,\n    nextChildren = nextProps.children,\n    nextIsDetached = 0 !== (workInProgress.stateNode._pendingVisibility & 2),\n    prevState = null !== current ? current.memoizedState : null;\n  markRef(current, workInProgress);\n  if (\"hidden\" === nextProps.mode || nextIsDetached) {\n    if (0 !== (workInProgress.flags & 128)) {\n      nextProps =\n        null !== prevState ? prevState.baseLanes | renderLanes : renderLanes;\n      if (null !== current) {\n        nextChildren = workInProgress.child = current.child;\n        for (nextIsDetached = 0; null !== nextChildren; )\n          (nextIsDetached =\n            nextIsDetached | nextChildren.lanes | nextChildren.childLanes),\n            (nextChildren = nextChildren.sibling);\n        workInProgress.childLanes = nextIsDetached & ~nextProps;\n      } else (workInProgress.childLanes = 0), (workInProgress.child = null);\n      return deferHiddenOffscreenComponent(\n        current,\n        workInProgress,\n        nextProps,\n        renderLanes\n      );\n    }\n    if (0 !== (renderLanes & 536870912))\n      (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n        null !== current &&\n          pushTransition(\n            workInProgress,\n            null !== prevState ? prevState.cachePool : null\n          ),\n        null !== prevState\n          ? pushHiddenContext(workInProgress, prevState)\n          : reuseHiddenContextOnStack(),\n        pushOffscreenSuspenseHandler(workInProgress);\n    else\n      return (\n        (workInProgress.lanes = workInProgress.childLanes = 536870912),\n        deferHiddenOffscreenComponent(\n          current,\n          workInProgress,\n          null !== prevState ? prevState.baseLanes | renderLanes : renderLanes,\n          renderLanes\n        )\n      );\n  } else\n    null !== prevState\n      ? (pushTransition(workInProgress, prevState.cachePool),\n        pushHiddenContext(workInProgress, prevState),\n        reuseSuspenseHandlerOnStack(workInProgress),\n        (workInProgress.memoizedState = null))\n      : (null !== current && pushTransition(workInProgress, null),\n        reuseHiddenContextOnStack(),\n        reuseSuspenseHandlerOnStack(workInProgress));\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\nfunction deferHiddenOffscreenComponent(\n  current,\n  workInProgress,\n  nextBaseLanes,\n  renderLanes\n) {\n  var JSCompiler_inline_result = peekCacheFromPool();\n  JSCompiler_inline_result =\n    null === JSCompiler_inline_result\n      ? null\n      : { parent: CacheContext._currentValue, pool: JSCompiler_inline_result };\n  workInProgress.memoizedState = {\n    baseLanes: nextBaseLanes,\n    cachePool: JSCompiler_inline_result\n  };\n  null !== current && pushTransition(workInProgress, null);\n  reuseHiddenContextOnStack();\n  pushOffscreenSuspenseHandler(workInProgress);\n  null !== current &&\n    propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n  return null;\n}\nfunction markRef(current, workInProgress) {\n  var ref = workInProgress.ref;\n  if (null === ref)\n    null !== current &&\n      null !== current.ref &&\n      (workInProgress.flags |= 2097664);\n  else {\n    if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n      throw Error(formatProdErrorMessage(284));\n    if (null === current || current.ref !== ref)\n      workInProgress.flags |= 2097664;\n  }\n}\nfunction updateFunctionComponent(\n  current,\n  workInProgress,\n  Component,\n  nextProps,\n  renderLanes\n) {\n  prepareToReadContext(workInProgress);\n  Component = renderWithHooks(\n    current,\n    workInProgress,\n    Component,\n    nextProps,\n    void 0,\n    renderLanes\n  );\n  nextProps = checkDidRenderIdHook();\n  if (null !== current && !didReceiveUpdate)\n    return (\n      bailoutHooks(current, workInProgress, renderLanes),\n      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n    );\n  isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n  workInProgress.flags |= 1;\n  reconcileChildren(current, workInProgress, Component, renderLanes);\n  return workInProgress.child;\n}\nfunction replayFunctionComponent(\n  current,\n  workInProgress,\n  nextProps,\n  Component,\n  secondArg,\n  renderLanes\n) {\n  prepareToReadContext(workInProgress);\n  workInProgress.updateQueue = null;\n  nextProps = renderWithHooksAgain(\n    workInProgress,\n    Component,\n    nextProps,\n    secondArg\n  );\n  finishRenderingHooks(current);\n  Component = checkDidRenderIdHook();\n  if (null !== current && !didReceiveUpdate)\n    return (\n      bailoutHooks(current, workInProgress, renderLanes),\n      bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n    );\n  isHydrating && Component && pushMaterializedTreeId(workInProgress);\n  workInProgress.flags |= 1;\n  reconcileChildren(current, workInProgress, nextProps, renderLanes);\n  return workInProgress.child;\n}\nfunction updateClassComponent(\n  current,\n  workInProgress,\n  Component,\n  nextProps,\n  renderLanes\n) {\n  prepareToReadContext(workInProgress);\n  if (null === workInProgress.stateNode) {\n    var context = emptyContextObject,\n      contextType = Component.contextType;\n    \"object\" === typeof contextType &&\n      null !== contextType &&\n      (context = readContext(contextType));\n    context = new Component(nextProps, context);\n    workInProgress.memoizedState =\n      null !== context.state && void 0 !== context.state ? context.state : null;\n    context.updater = classComponentUpdater;\n    workInProgress.stateNode = context;\n    context._reactInternals = workInProgress;\n    context = workInProgress.stateNode;\n    context.props = nextProps;\n    context.state = workInProgress.memoizedState;\n    context.refs = {};\n    initializeUpdateQueue(workInProgress);\n    contextType = Component.contextType;\n    context.context =\n      \"object\" === typeof contextType && null !== contextType\n        ? readContext(contextType)\n        : emptyContextObject;\n    context.state = workInProgress.memoizedState;\n    contextType = Component.getDerivedStateFromProps;\n    \"function\" === typeof contextType &&\n      (applyDerivedStateFromProps(\n        workInProgress,\n        Component,\n        contextType,\n        nextProps\n      ),\n      (context.state = workInProgress.memoizedState));\n    \"function\" === typeof Component.getDerivedStateFromProps ||\n      \"function\" === typeof context.getSnapshotBeforeUpdate ||\n      (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n        \"function\" !== typeof context.componentWillMount) ||\n      ((contextType = context.state),\n      \"function\" === typeof context.componentWillMount &&\n        context.componentWillMount(),\n      \"function\" === typeof context.UNSAFE_componentWillMount &&\n        context.UNSAFE_componentWillMount(),\n      contextType !== context.state &&\n        classComponentUpdater.enqueueReplaceState(context, context.state, null),\n      processUpdateQueue(workInProgress, nextProps, context, renderLanes),\n      suspendIfUpdateReadFromEntangledAsyncAction(),\n      (context.state = workInProgress.memoizedState));\n    \"function\" === typeof context.componentDidMount &&\n      (workInProgress.flags |= 4194308);\n    nextProps = !0;\n  } else if (null === current) {\n    context = workInProgress.stateNode;\n    var unresolvedOldProps = workInProgress.memoizedProps,\n      oldProps = resolveClassComponentProps(Component, unresolvedOldProps);\n    context.props = oldProps;\n    var oldContext = context.context,\n      contextType$jscomp$0 = Component.contextType;\n    contextType = emptyContextObject;\n    \"object\" === typeof contextType$jscomp$0 &&\n      null !== contextType$jscomp$0 &&\n      (contextType = readContext(contextType$jscomp$0));\n    var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n    contextType$jscomp$0 =\n      \"function\" === typeof getDerivedStateFromProps ||\n      \"function\" === typeof context.getSnapshotBeforeUpdate;\n    unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n    contextType$jscomp$0 ||\n      (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n        \"function\" !== typeof context.componentWillReceiveProps) ||\n      ((unresolvedOldProps || oldContext !== contextType) &&\n        callComponentWillReceiveProps(\n          workInProgress,\n          context,\n          nextProps,\n          contextType\n        ));\n    hasForceUpdate = !1;\n    var oldState = workInProgress.memoizedState;\n    context.state = oldState;\n    processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n    suspendIfUpdateReadFromEntangledAsyncAction();\n    oldContext = workInProgress.memoizedState;\n    unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n      ? (\"function\" === typeof getDerivedStateFromProps &&\n          (applyDerivedStateFromProps(\n            workInProgress,\n            Component,\n            getDerivedStateFromProps,\n            nextProps\n          ),\n          (oldContext = workInProgress.memoizedState)),\n        (oldProps =\n          hasForceUpdate ||\n          checkShouldComponentUpdate(\n            workInProgress,\n            Component,\n            oldProps,\n            nextProps,\n            oldState,\n            oldContext,\n            contextType\n          ))\n          ? (contextType$jscomp$0 ||\n              (\"function\" !== typeof context.UNSAFE_componentWillMount &&\n                \"function\" !== typeof context.componentWillMount) ||\n              (\"function\" === typeof context.componentWillMount &&\n                context.componentWillMount(),\n              \"function\" === typeof context.UNSAFE_componentWillMount &&\n                context.UNSAFE_componentWillMount()),\n            \"function\" === typeof context.componentDidMount &&\n              (workInProgress.flags |= 4194308))\n          : (\"function\" === typeof context.componentDidMount &&\n              (workInProgress.flags |= 4194308),\n            (workInProgress.memoizedProps = nextProps),\n            (workInProgress.memoizedState = oldContext)),\n        (context.props = nextProps),\n        (context.state = oldContext),\n        (context.context = contextType),\n        (nextProps = oldProps))\n      : (\"function\" === typeof context.componentDidMount &&\n          (workInProgress.flags |= 4194308),\n        (nextProps = !1));\n  } else {\n    context = workInProgress.stateNode;\n    cloneUpdateQueue(current, workInProgress);\n    contextType = workInProgress.memoizedProps;\n    contextType$jscomp$0 = resolveClassComponentProps(Component, contextType);\n    context.props = contextType$jscomp$0;\n    getDerivedStateFromProps = workInProgress.pendingProps;\n    oldState = context.context;\n    oldContext = Component.contextType;\n    oldProps = emptyContextObject;\n    \"object\" === typeof oldContext &&\n      null !== oldContext &&\n      (oldProps = readContext(oldContext));\n    unresolvedOldProps = Component.getDerivedStateFromProps;\n    (oldContext =\n      \"function\" === typeof unresolvedOldProps ||\n      \"function\" === typeof context.getSnapshotBeforeUpdate) ||\n      (\"function\" !== typeof context.UNSAFE_componentWillReceiveProps &&\n        \"function\" !== typeof context.componentWillReceiveProps) ||\n      ((contextType !== getDerivedStateFromProps || oldState !== oldProps) &&\n        callComponentWillReceiveProps(\n          workInProgress,\n          context,\n          nextProps,\n          oldProps\n        ));\n    hasForceUpdate = !1;\n    oldState = workInProgress.memoizedState;\n    context.state = oldState;\n    processUpdateQueue(workInProgress, nextProps, context, renderLanes);\n    suspendIfUpdateReadFromEntangledAsyncAction();\n    var newState = workInProgress.memoizedState;\n    contextType !== getDerivedStateFromProps ||\n    oldState !== newState ||\n    hasForceUpdate ||\n    (null !== current &&\n      null !== current.dependencies &&\n      checkIfContextChanged(current.dependencies))\n      ? (\"function\" === typeof unresolvedOldProps &&\n          (applyDerivedStateFromProps(\n            workInProgress,\n            Component,\n            unresolvedOldProps,\n            nextProps\n          ),\n          (newState = workInProgress.memoizedState)),\n        (contextType$jscomp$0 =\n          hasForceUpdate ||\n          checkShouldComponentUpdate(\n            workInProgress,\n            Component,\n            contextType$jscomp$0,\n            nextProps,\n            oldState,\n            newState,\n            oldProps\n          ) ||\n          (null !== current &&\n            null !== current.dependencies &&\n            checkIfContextChanged(current.dependencies)))\n          ? (oldContext ||\n              (\"function\" !== typeof context.UNSAFE_componentWillUpdate &&\n                \"function\" !== typeof context.componentWillUpdate) ||\n              (\"function\" === typeof context.componentWillUpdate &&\n                context.componentWillUpdate(nextProps, newState, oldProps),\n              \"function\" === typeof context.UNSAFE_componentWillUpdate &&\n                context.UNSAFE_componentWillUpdate(\n                  nextProps,\n                  newState,\n                  oldProps\n                )),\n            \"function\" === typeof context.componentDidUpdate &&\n              (workInProgress.flags |= 4),\n            \"function\" === typeof context.getSnapshotBeforeUpdate &&\n              (workInProgress.flags |= 1024))\n          : (\"function\" !== typeof context.componentDidUpdate ||\n              (contextType === current.memoizedProps &&\n                oldState === current.memoizedState) ||\n              (workInProgress.flags |= 4),\n            \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n              (contextType === current.memoizedProps &&\n                oldState === current.memoizedState) ||\n              (workInProgress.flags |= 1024),\n            (workInProgress.memoizedProps = nextProps),\n            (workInProgress.memoizedState = newState)),\n        (context.props = nextProps),\n        (context.state = newState),\n        (context.context = oldProps),\n        (nextProps = contextType$jscomp$0))\n      : (\"function\" !== typeof context.componentDidUpdate ||\n          (contextType === current.memoizedProps &&\n            oldState === current.memoizedState) ||\n          (workInProgress.flags |= 4),\n        \"function\" !== typeof context.getSnapshotBeforeUpdate ||\n          (contextType === current.memoizedProps &&\n            oldState === current.memoizedState) ||\n          (workInProgress.flags |= 1024),\n        (nextProps = !1));\n  }\n  context = nextProps;\n  markRef(current, workInProgress);\n  nextProps = 0 !== (workInProgress.flags & 128);\n  context || nextProps\n    ? ((context = workInProgress.stateNode),\n      (Component =\n        nextProps && \"function\" !== typeof Component.getDerivedStateFromError\n          ? null\n          : context.render()),\n      (workInProgress.flags |= 1),\n      null !== current && nextProps\n        ? ((workInProgress.child = reconcileChildFibers(\n            workInProgress,\n            current.child,\n            null,\n            renderLanes\n          )),\n          (workInProgress.child = reconcileChildFibers(\n            workInProgress,\n            null,\n            Component,\n            renderLanes\n          )))\n        : reconcileChildren(current, workInProgress, Component, renderLanes),\n      (workInProgress.memoizedState = context.state),\n      (current = workInProgress.child))\n    : (current = bailoutOnAlreadyFinishedWork(\n        current,\n        workInProgress,\n        renderLanes\n      ));\n  return current;\n}\nfunction mountHostRootWithoutHydrating(\n  current,\n  workInProgress,\n  nextChildren,\n  renderLanes\n) {\n  resetHydrationState();\n  workInProgress.flags |= 256;\n  reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n  return workInProgress.child;\n}\nvar SUSPENDED_MARKER = { dehydrated: null, treeContext: null, retryLane: 0 };\nfunction mountSuspenseOffscreenState(renderLanes) {\n  return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n}\nfunction getRemainingWorkInPrimaryTree(\n  current,\n  primaryTreeDidDefer,\n  renderLanes\n) {\n  current = null !== current ? current.childLanes & ~renderLanes : 0;\n  primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n  return current;\n}\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps,\n    showFallback = !1,\n    didSuspend = 0 !== (workInProgress.flags & 128),\n    JSCompiler_temp;\n  (JSCompiler_temp = didSuspend) ||\n    (JSCompiler_temp =\n      null !== current && null === current.memoizedState\n        ? !1\n        : 0 !== (suspenseStackCursor.current & 2));\n  JSCompiler_temp && ((showFallback = !0), (workInProgress.flags &= -129));\n  JSCompiler_temp = 0 !== (workInProgress.flags & 32);\n  workInProgress.flags &= -33;\n  if (null === current) {\n    if (isHydrating) {\n      showFallback\n        ? pushPrimaryTreeSuspenseHandler(workInProgress)\n        : reuseSuspenseHandlerOnStack(workInProgress);\n      if (isHydrating) {\n        var nextInstance = nextHydratableInstance,\n          JSCompiler_temp$jscomp$0;\n        if ((JSCompiler_temp$jscomp$0 = nextInstance)) {\n          c: {\n            JSCompiler_temp$jscomp$0 = nextInstance;\n            for (\n              nextInstance = rootOrSingletonContext;\n              8 !== JSCompiler_temp$jscomp$0.nodeType;\n\n            ) {\n              if (!nextInstance) {\n                nextInstance = null;\n                break c;\n              }\n              JSCompiler_temp$jscomp$0 = getNextHydratable(\n                JSCompiler_temp$jscomp$0.nextSibling\n              );\n              if (null === JSCompiler_temp$jscomp$0) {\n                nextInstance = null;\n                break c;\n              }\n            }\n            nextInstance = JSCompiler_temp$jscomp$0;\n          }\n          null !== nextInstance\n            ? ((workInProgress.memoizedState = {\n                dehydrated: nextInstance,\n                treeContext:\n                  null !== treeContextProvider\n                    ? { id: treeContextId, overflow: treeContextOverflow }\n                    : null,\n                retryLane: 536870912\n              }),\n              (JSCompiler_temp$jscomp$0 = createFiberImplClass(\n                18,\n                null,\n                null,\n                0\n              )),\n              (JSCompiler_temp$jscomp$0.stateNode = nextInstance),\n              (JSCompiler_temp$jscomp$0.return = workInProgress),\n              (workInProgress.child = JSCompiler_temp$jscomp$0),\n              (hydrationParentFiber = workInProgress),\n              (nextHydratableInstance = null),\n              (JSCompiler_temp$jscomp$0 = !0))\n            : (JSCompiler_temp$jscomp$0 = !1);\n        }\n        JSCompiler_temp$jscomp$0 || throwOnHydrationMismatch(workInProgress);\n      }\n      nextInstance = workInProgress.memoizedState;\n      if (\n        null !== nextInstance &&\n        ((nextInstance = nextInstance.dehydrated), null !== nextInstance)\n      )\n        return (\n          \"$!\" === nextInstance.data\n            ? (workInProgress.lanes = 16)\n            : (workInProgress.lanes = 536870912),\n          null\n        );\n      popSuspenseHandler(workInProgress);\n    }\n    nextInstance = nextProps.children;\n    nextProps = nextProps.fallback;\n    if (showFallback)\n      return (\n        reuseSuspenseHandlerOnStack(workInProgress),\n        (showFallback = workInProgress.mode),\n        (nextInstance = mountWorkInProgressOffscreenFiber(\n          { mode: \"hidden\", children: nextInstance },\n          showFallback\n        )),\n        (nextProps = createFiberFromFragment(\n          nextProps,\n          showFallback,\n          renderLanes,\n          null\n        )),\n        (nextInstance.return = workInProgress),\n        (nextProps.return = workInProgress),\n        (nextInstance.sibling = nextProps),\n        (workInProgress.child = nextInstance),\n        (showFallback = workInProgress.child),\n        (showFallback.memoizedState = mountSuspenseOffscreenState(renderLanes)),\n        (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n          current,\n          JSCompiler_temp,\n          renderLanes\n        )),\n        (workInProgress.memoizedState = SUSPENDED_MARKER),\n        nextProps\n      );\n    pushPrimaryTreeSuspenseHandler(workInProgress);\n    return mountSuspensePrimaryChildren(workInProgress, nextInstance);\n  }\n  JSCompiler_temp$jscomp$0 = current.memoizedState;\n  if (\n    null !== JSCompiler_temp$jscomp$0 &&\n    ((nextInstance = JSCompiler_temp$jscomp$0.dehydrated),\n    null !== nextInstance)\n  ) {\n    if (didSuspend)\n      workInProgress.flags & 256\n        ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n          (workInProgress.flags &= -257),\n          (workInProgress = retrySuspenseComponentWithoutHydrating(\n            current,\n            workInProgress,\n            renderLanes\n          )))\n        : null !== workInProgress.memoizedState\n          ? (reuseSuspenseHandlerOnStack(workInProgress),\n            (workInProgress.child = current.child),\n            (workInProgress.flags |= 128),\n            (workInProgress = null))\n          : (reuseSuspenseHandlerOnStack(workInProgress),\n            (showFallback = nextProps.fallback),\n            (nextInstance = workInProgress.mode),\n            (nextProps = mountWorkInProgressOffscreenFiber(\n              { mode: \"visible\", children: nextProps.children },\n              nextInstance\n            )),\n            (showFallback = createFiberFromFragment(\n              showFallback,\n              nextInstance,\n              renderLanes,\n              null\n            )),\n            (showFallback.flags |= 2),\n            (nextProps.return = workInProgress),\n            (showFallback.return = workInProgress),\n            (nextProps.sibling = showFallback),\n            (workInProgress.child = nextProps),\n            reconcileChildFibers(\n              workInProgress,\n              current.child,\n              null,\n              renderLanes\n            ),\n            (nextProps = workInProgress.child),\n            (nextProps.memoizedState =\n              mountSuspenseOffscreenState(renderLanes)),\n            (nextProps.childLanes = getRemainingWorkInPrimaryTree(\n              current,\n              JSCompiler_temp,\n              renderLanes\n            )),\n            (workInProgress.memoizedState = SUSPENDED_MARKER),\n            (workInProgress = showFallback));\n    else if (\n      (pushPrimaryTreeSuspenseHandler(workInProgress),\n      \"$!\" === nextInstance.data)\n    ) {\n      JSCompiler_temp =\n        nextInstance.nextSibling && nextInstance.nextSibling.dataset;\n      if (JSCompiler_temp) var digest = JSCompiler_temp.dgst;\n      JSCompiler_temp = digest;\n      nextProps = Error(formatProdErrorMessage(419));\n      nextProps.stack = \"\";\n      nextProps.digest = JSCompiler_temp;\n      queueHydrationError({ value: nextProps, source: null, stack: null });\n      workInProgress = retrySuspenseComponentWithoutHydrating(\n        current,\n        workInProgress,\n        renderLanes\n      );\n    } else if (\n      (didReceiveUpdate ||\n        propagateParentContextChanges(current, workInProgress, renderLanes, !1),\n      (JSCompiler_temp = 0 !== (renderLanes & current.childLanes)),\n      didReceiveUpdate || JSCompiler_temp)\n    ) {\n      JSCompiler_temp = workInProgressRoot;\n      if (null !== JSCompiler_temp) {\n        nextProps = renderLanes & -renderLanes;\n        if (0 !== (nextProps & 42)) nextProps = 1;\n        else\n          switch (nextProps) {\n            case 2:\n              nextProps = 1;\n              break;\n            case 8:\n              nextProps = 4;\n              break;\n            case 32:\n              nextProps = 16;\n              break;\n            case 128:\n            case 256:\n            case 512:\n            case 1024:\n            case 2048:\n            case 4096:\n            case 8192:\n            case 16384:\n            case 32768:\n            case 65536:\n            case 131072:\n            case 262144:\n            case 524288:\n            case 1048576:\n            case 2097152:\n            case 4194304:\n            case 8388608:\n            case 16777216:\n            case 33554432:\n              nextProps = 64;\n              break;\n            case 268435456:\n              nextProps = 134217728;\n              break;\n            default:\n              nextProps = 0;\n          }\n        nextProps =\n          0 !== (nextProps & (JSCompiler_temp.suspendedLanes | renderLanes))\n            ? 0\n            : nextProps;\n        if (0 !== nextProps && nextProps !== JSCompiler_temp$jscomp$0.retryLane)\n          throw (\n            ((JSCompiler_temp$jscomp$0.retryLane = nextProps),\n            enqueueConcurrentRenderForLane(current, nextProps),\n            scheduleUpdateOnFiber(JSCompiler_temp, current, nextProps),\n            SelectiveHydrationException)\n          );\n      }\n      \"$?\" === nextInstance.data || renderDidSuspendDelayIfPossible();\n      workInProgress = retrySuspenseComponentWithoutHydrating(\n        current,\n        workInProgress,\n        renderLanes\n      );\n    } else\n      \"$?\" === nextInstance.data\n        ? ((workInProgress.flags |= 128),\n          (workInProgress.child = current.child),\n          (workInProgress = retryDehydratedSuspenseBoundary.bind(\n            null,\n            current\n          )),\n          (nextInstance._reactRetry = workInProgress),\n          (workInProgress = null))\n        : ((current = JSCompiler_temp$jscomp$0.treeContext),\n          (nextHydratableInstance = getNextHydratable(\n            nextInstance.nextSibling\n          )),\n          (hydrationParentFiber = workInProgress),\n          (isHydrating = !0),\n          (hydrationErrors = null),\n          (rootOrSingletonContext = !1),\n          null !== current &&\n            ((idStack[idStackIndex++] = treeContextId),\n            (idStack[idStackIndex++] = treeContextOverflow),\n            (idStack[idStackIndex++] = treeContextProvider),\n            (treeContextId = current.id),\n            (treeContextOverflow = current.overflow),\n            (treeContextProvider = workInProgress)),\n          (workInProgress = mountSuspensePrimaryChildren(\n            workInProgress,\n            nextProps.children\n          )),\n          (workInProgress.flags |= 4096));\n    return workInProgress;\n  }\n  if (showFallback)\n    return (\n      reuseSuspenseHandlerOnStack(workInProgress),\n      (showFallback = nextProps.fallback),\n      (nextInstance = workInProgress.mode),\n      (JSCompiler_temp$jscomp$0 = current.child),\n      (digest = JSCompiler_temp$jscomp$0.sibling),\n      (nextProps = createWorkInProgress(JSCompiler_temp$jscomp$0, {\n        mode: \"hidden\",\n        children: nextProps.children\n      })),\n      (nextProps.subtreeFlags =\n        JSCompiler_temp$jscomp$0.subtreeFlags & 31457280),\n      null !== digest\n        ? (showFallback = createWorkInProgress(digest, showFallback))\n        : ((showFallback = createFiberFromFragment(\n            showFallback,\n            nextInstance,\n            renderLanes,\n            null\n          )),\n          (showFallback.flags |= 2)),\n      (showFallback.return = workInProgress),\n      (nextProps.return = workInProgress),\n      (nextProps.sibling = showFallback),\n      (workInProgress.child = nextProps),\n      (nextProps = showFallback),\n      (showFallback = workInProgress.child),\n      (nextInstance = current.child.memoizedState),\n      null === nextInstance\n        ? (nextInstance = mountSuspenseOffscreenState(renderLanes))\n        : ((JSCompiler_temp$jscomp$0 = nextInstance.cachePool),\n          null !== JSCompiler_temp$jscomp$0\n            ? ((digest = CacheContext._currentValue),\n              (JSCompiler_temp$jscomp$0 =\n                JSCompiler_temp$jscomp$0.parent !== digest\n                  ? { parent: digest, pool: digest }\n                  : JSCompiler_temp$jscomp$0))\n            : (JSCompiler_temp$jscomp$0 = getSuspendedCache()),\n          (nextInstance = {\n            baseLanes: nextInstance.baseLanes | renderLanes,\n            cachePool: JSCompiler_temp$jscomp$0\n          })),\n      (showFallback.memoizedState = nextInstance),\n      (showFallback.childLanes = getRemainingWorkInPrimaryTree(\n        current,\n        JSCompiler_temp,\n        renderLanes\n      )),\n      (workInProgress.memoizedState = SUSPENDED_MARKER),\n      nextProps\n    );\n  pushPrimaryTreeSuspenseHandler(workInProgress);\n  renderLanes = current.child;\n  current = renderLanes.sibling;\n  renderLanes = createWorkInProgress(renderLanes, {\n    mode: \"visible\",\n    children: nextProps.children\n  });\n  renderLanes.return = workInProgress;\n  renderLanes.sibling = null;\n  null !== current &&\n    ((JSCompiler_temp = workInProgress.deletions),\n    null === JSCompiler_temp\n      ? ((workInProgress.deletions = [current]), (workInProgress.flags |= 16))\n      : JSCompiler_temp.push(current));\n  workInProgress.child = renderLanes;\n  workInProgress.memoizedState = null;\n  return renderLanes;\n}\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n  primaryChildren = mountWorkInProgressOffscreenFiber(\n    { mode: \"visible\", children: primaryChildren },\n    workInProgress.mode\n  );\n  primaryChildren.return = workInProgress;\n  return (workInProgress.child = primaryChildren);\n}\nfunction mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n  return createFiberFromOffscreen(offscreenProps, mode, 0, null);\n}\nfunction retrySuspenseComponentWithoutHydrating(\n  current,\n  workInProgress,\n  renderLanes\n) {\n  reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n  current = mountSuspensePrimaryChildren(\n    workInProgress,\n    workInProgress.pendingProps.children\n  );\n  current.flags |= 2;\n  workInProgress.memoizedState = null;\n  return current;\n}\nfunction scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n  fiber.lanes |= renderLanes;\n  var alternate = fiber.alternate;\n  null !== alternate && (alternate.lanes |= renderLanes);\n  scheduleContextWorkOnParentPath(fiber.return, renderLanes, propagationRoot);\n}\nfunction initSuspenseListRenderState(\n  workInProgress,\n  isBackwards,\n  tail,\n  lastContentRow,\n  tailMode\n) {\n  var renderState = workInProgress.memoizedState;\n  null === renderState\n    ? (workInProgress.memoizedState = {\n        isBackwards: isBackwards,\n        rendering: null,\n        renderingStartTime: 0,\n        last: lastContentRow,\n        tail: tail,\n        tailMode: tailMode\n      })\n    : ((renderState.isBackwards = isBackwards),\n      (renderState.rendering = null),\n      (renderState.renderingStartTime = 0),\n      (renderState.last = lastContentRow),\n      (renderState.tail = tail),\n      (renderState.tailMode = tailMode));\n}\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n  var nextProps = workInProgress.pendingProps,\n    revealOrder = nextProps.revealOrder,\n    tailMode = nextProps.tail;\n  reconcileChildren(current, workInProgress, nextProps.children, renderLanes);\n  nextProps = suspenseStackCursor.current;\n  if (0 !== (nextProps & 2))\n    (nextProps = (nextProps & 1) | 2), (workInProgress.flags |= 128);\n  else {\n    if (null !== current && 0 !== (current.flags & 128))\n      a: for (current = workInProgress.child; null !== current; ) {\n        if (13 === current.tag)\n          null !== current.memoizedState &&\n            scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n        else if (19 === current.tag)\n          scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n        else if (null !== current.child) {\n          current.child.return = current;\n          current = current.child;\n          continue;\n        }\n        if (current === workInProgress) break a;\n        for (; null === current.sibling; ) {\n          if (null === current.return || current.return === workInProgress)\n            break a;\n          current = current.return;\n        }\n        current.sibling.return = current.return;\n        current = current.sibling;\n      }\n    nextProps &= 1;\n  }\n  push(suspenseStackCursor, nextProps);\n  switch (revealOrder) {\n    case \"forwards\":\n      renderLanes = workInProgress.child;\n      for (revealOrder = null; null !== renderLanes; )\n        (current = renderLanes.alternate),\n          null !== current &&\n            null === findFirstSuspended(current) &&\n            (revealOrder = renderLanes),\n          (renderLanes = renderLanes.sibling);\n      renderLanes = revealOrder;\n      null === renderLanes\n        ? ((revealOrder = workInProgress.child), (workInProgress.child = null))\n        : ((revealOrder = renderLanes.sibling), (renderLanes.sibling = null));\n      initSuspenseListRenderState(\n        workInProgress,\n        !1,\n        revealOrder,\n        renderLanes,\n        tailMode\n      );\n      break;\n    case \"backwards\":\n      renderLanes = null;\n      revealOrder = workInProgress.child;\n      for (workInProgress.child = null; null !== revealOrder; ) {\n        current = revealOrder.alternate;\n        if (null !== current && null === findFirstSuspended(current)) {\n          workInProgress.child = revealOrder;\n          break;\n        }\n        current = revealOrder.sibling;\n        revealOrder.sibling = renderLanes;\n        renderLanes = revealOrder;\n        revealOrder = current;\n      }\n      initSuspenseListRenderState(\n        workInProgress,\n        !0,\n        renderLanes,\n        null,\n        tailMode\n      );\n      break;\n    case \"together\":\n      initSuspenseListRenderState(workInProgress, !1, null, null, void 0);\n      break;\n    default:\n      workInProgress.memoizedState = null;\n  }\n  return workInProgress.child;\n}\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n  null !== current && (workInProgress.dependencies = current.dependencies);\n  workInProgressRootSkippedLanes |= workInProgress.lanes;\n  if (0 === (renderLanes & workInProgress.childLanes))\n    if (null !== current) {\n      if (\n        (propagateParentContextChanges(\n          current,\n          workInProgress,\n          renderLanes,\n          !1\n        ),\n        0 === (renderLanes & workInProgress.childLanes))\n      )\n        return null;\n    } else return null;\n  if (null !== current && workInProgress.child !== current.child)\n    throw Error(formatProdErrorMessage(153));\n  if (null !== workInProgress.child) {\n    current = workInProgress.child;\n    renderLanes = createWorkInProgress(current, current.pendingProps);\n    workInProgress.child = renderLanes;\n    for (renderLanes.return = workInProgress; null !== current.sibling; )\n      (current = current.sibling),\n        (renderLanes = renderLanes.sibling =\n          createWorkInProgress(current, current.pendingProps)),\n        (renderLanes.return = workInProgress);\n    renderLanes.sibling = null;\n  }\n  return workInProgress.child;\n}\nfunction checkScheduledUpdateOrContext(current, renderLanes) {\n  if (0 !== (current.lanes & renderLanes)) return !0;\n  current = current.dependencies;\n  return null !== current && checkIfContextChanged(current) ? !0 : !1;\n}\nfunction attemptEarlyBailoutIfNoScheduledUpdate(\n  current,\n  workInProgress,\n  renderLanes\n) {\n  switch (workInProgress.tag) {\n    case 3:\n      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n      resetHydrationState();\n      break;\n    case 27:\n    case 5:\n      pushHostContext(workInProgress);\n      break;\n    case 4:\n      pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n      break;\n    case 10:\n      pushProvider(\n        workInProgress,\n        workInProgress.type,\n        workInProgress.memoizedProps.value\n      );\n      break;\n    case 13:\n      var state = workInProgress.memoizedState;\n      if (null !== state) {\n        if (null !== state.dehydrated)\n          return (\n            pushPrimaryTreeSuspenseHandler(workInProgress),\n            (workInProgress.flags |= 128),\n            null\n          );\n        if (0 !== (renderLanes & workInProgress.child.childLanes))\n          return updateSuspenseComponent(current, workInProgress, renderLanes);\n        pushPrimaryTreeSuspenseHandler(workInProgress);\n        current = bailoutOnAlreadyFinishedWork(\n          current,\n          workInProgress,\n          renderLanes\n        );\n        return null !== current ? current.sibling : null;\n      }\n      pushPrimaryTreeSuspenseHandler(workInProgress);\n      break;\n    case 19:\n      var didSuspendBefore = 0 !== (current.flags & 128);\n      state = 0 !== (renderLanes & workInProgress.childLanes);\n      state ||\n        (propagateParentContextChanges(\n          current,\n          workInProgress,\n          renderLanes,\n          !1\n        ),\n        (state = 0 !== (renderLanes & workInProgress.childLanes)));\n      if (didSuspendBefore) {\n        if (state)\n          return updateSuspenseListComponent(\n            current,\n            workInProgress,\n            renderLanes\n          );\n        workInProgress.flags |= 128;\n      }\n      didSuspendBefore = workInProgress.memoizedState;\n      null !== didSuspendBefore &&\n        ((didSuspendBefore.rendering = null),\n        (didSuspendBefore.tail = null),\n        (didSuspendBefore.lastEffect = null));\n      push(suspenseStackCursor, suspenseStackCursor.current);\n      if (state) break;\n      else return null;\n    case 22:\n    case 23:\n      return (\n        (workInProgress.lanes = 0),\n        updateOffscreenComponent(current, workInProgress, renderLanes)\n      );\n    case 24:\n      pushProvider(workInProgress, CacheContext, current.memoizedState.cache);\n  }\n  return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n}\nfunction beginWork(current, workInProgress, renderLanes) {\n  if (null !== current)\n    if (current.memoizedProps !== workInProgress.pendingProps)\n      didReceiveUpdate = !0;\n    else {\n      if (\n        !checkScheduledUpdateOrContext(current, renderLanes) &&\n        0 === (workInProgress.flags & 128)\n      )\n        return (\n          (didReceiveUpdate = !1),\n          attemptEarlyBailoutIfNoScheduledUpdate(\n            current,\n            workInProgress,\n            renderLanes\n          )\n        );\n      didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n    }\n  else\n    (didReceiveUpdate = !1),\n      isHydrating &&\n        0 !== (workInProgress.flags & 1048576) &&\n        pushTreeId(workInProgress, treeForkCount, workInProgress.index);\n  workInProgress.lanes = 0;\n  switch (workInProgress.tag) {\n    case 16:\n      a: {\n        current = workInProgress.pendingProps;\n        var lazyComponent = workInProgress.elementType,\n          init = lazyComponent._init;\n        lazyComponent = init(lazyComponent._payload);\n        workInProgress.type = lazyComponent;\n        if (\"function\" === typeof lazyComponent)\n          shouldConstruct(lazyComponent)\n            ? ((current = resolveClassComponentProps(lazyComponent, current)),\n              (workInProgress.tag = 1),\n              (workInProgress = updateClassComponent(\n                null,\n                workInProgress,\n                lazyComponent,\n                current,\n                renderLanes\n              )))\n            : ((workInProgress.tag = 0),\n              (workInProgress = updateFunctionComponent(\n                null,\n                workInProgress,\n                lazyComponent,\n                current,\n                renderLanes\n              )));\n        else {\n          if (void 0 !== lazyComponent && null !== lazyComponent)\n            if (\n              ((init = lazyComponent.$$typeof), init === REACT_FORWARD_REF_TYPE)\n            ) {\n              workInProgress.tag = 11;\n              workInProgress = updateForwardRef(\n                null,\n                workInProgress,\n                lazyComponent,\n                current,\n                renderLanes\n              );\n              break a;\n            } else if (init === REACT_MEMO_TYPE) {\n              workInProgress.tag = 14;\n              workInProgress = updateMemoComponent(\n                null,\n                workInProgress,\n                lazyComponent,\n                current,\n                renderLanes\n              );\n              break a;\n            }\n          workInProgress =\n            getComponentNameFromType(lazyComponent) || lazyComponent;\n          throw Error(formatProdErrorMessage(306, workInProgress, \"\"));\n        }\n      }\n      return workInProgress;\n    case 0:\n      return updateFunctionComponent(\n        current,\n        workInProgress,\n        workInProgress.type,\n        workInProgress.pendingProps,\n        renderLanes\n      );\n    case 1:\n      return (\n        (lazyComponent = workInProgress.type),\n        (init = resolveClassComponentProps(\n          lazyComponent,\n          workInProgress.pendingProps\n        )),\n        updateClassComponent(\n          current,\n          workInProgress,\n          lazyComponent,\n          init,\n          renderLanes\n        )\n      );\n    case 3:\n      a: {\n        pushHostContainer(\n          workInProgress,\n          workInProgress.stateNode.containerInfo\n        );\n        if (null === current) throw Error(formatProdErrorMessage(387));\n        var nextProps = workInProgress.pendingProps;\n        init = workInProgress.memoizedState;\n        lazyComponent = init.element;\n        cloneUpdateQueue(current, workInProgress);\n        processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n        var nextState = workInProgress.memoizedState;\n        nextProps = nextState.cache;\n        pushProvider(workInProgress, CacheContext, nextProps);\n        nextProps !== init.cache &&\n          propagateContextChanges(\n            workInProgress,\n            [CacheContext],\n            renderLanes,\n            !0\n          );\n        suspendIfUpdateReadFromEntangledAsyncAction();\n        nextProps = nextState.element;\n        if (init.isDehydrated)\n          if (\n            ((init = {\n              element: nextProps,\n              isDehydrated: !1,\n              cache: nextState.cache\n            }),\n            (workInProgress.updateQueue.baseState = init),\n            (workInProgress.memoizedState = init),\n            workInProgress.flags & 256)\n          ) {\n            workInProgress = mountHostRootWithoutHydrating(\n              current,\n              workInProgress,\n              nextProps,\n              renderLanes\n            );\n            break a;\n          } else if (nextProps !== lazyComponent) {\n            lazyComponent = createCapturedValueAtFiber(\n              Error(formatProdErrorMessage(424)),\n              workInProgress\n            );\n            queueHydrationError(lazyComponent);\n            workInProgress = mountHostRootWithoutHydrating(\n              current,\n              workInProgress,\n              nextProps,\n              renderLanes\n            );\n            break a;\n          } else\n            for (\n              nextHydratableInstance = getNextHydratable(\n                workInProgress.stateNode.containerInfo.firstChild\n              ),\n                hydrationParentFiber = workInProgress,\n                isHydrating = !0,\n                hydrationErrors = null,\n                rootOrSingletonContext = !0,\n                renderLanes = mountChildFibers(\n                  workInProgress,\n                  null,\n                  nextProps,\n                  renderLanes\n                ),\n                workInProgress.child = renderLanes;\n              renderLanes;\n\n            )\n              (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n                (renderLanes = renderLanes.sibling);\n        else {\n          resetHydrationState();\n          if (nextProps === lazyComponent) {\n            workInProgress = bailoutOnAlreadyFinishedWork(\n              current,\n              workInProgress,\n              renderLanes\n            );\n            break a;\n          }\n          reconcileChildren(current, workInProgress, nextProps, renderLanes);\n        }\n        workInProgress = workInProgress.child;\n      }\n      return workInProgress;\n    case 26:\n      return (\n        markRef(current, workInProgress),\n        null === current\n          ? (renderLanes = getResource(\n              workInProgress.type,\n              null,\n              workInProgress.pendingProps,\n              null\n            ))\n            ? (workInProgress.memoizedState = renderLanes)\n            : isHydrating ||\n              ((renderLanes = workInProgress.type),\n              (current = workInProgress.pendingProps),\n              (lazyComponent = getOwnerDocumentFromRootContainer(\n                rootInstanceStackCursor.current\n              ).createElement(renderLanes)),\n              (lazyComponent[internalInstanceKey] = workInProgress),\n              (lazyComponent[internalPropsKey] = current),\n              setInitialProperties(lazyComponent, renderLanes, current),\n              markNodeAsHoistable(lazyComponent),\n              (workInProgress.stateNode = lazyComponent))\n          : (workInProgress.memoizedState = getResource(\n              workInProgress.type,\n              current.memoizedProps,\n              workInProgress.pendingProps,\n              current.memoizedState\n            )),\n        null\n      );\n    case 27:\n      return (\n        pushHostContext(workInProgress),\n        null === current &&\n          isHydrating &&\n          ((lazyComponent = workInProgress.stateNode =\n            resolveSingletonInstance(\n              workInProgress.type,\n              workInProgress.pendingProps,\n              rootInstanceStackCursor.current\n            )),\n          (hydrationParentFiber = workInProgress),\n          (rootOrSingletonContext = !0),\n          (nextHydratableInstance = getNextHydratable(\n            lazyComponent.firstChild\n          ))),\n        (lazyComponent = workInProgress.pendingProps.children),\n        null !== current || isHydrating\n          ? reconcileChildren(\n              current,\n              workInProgress,\n              lazyComponent,\n              renderLanes\n            )\n          : (workInProgress.child = reconcileChildFibers(\n              workInProgress,\n              null,\n              lazyComponent,\n              renderLanes\n            )),\n        markRef(current, workInProgress),\n        workInProgress.child\n      );\n    case 5:\n      if (null === current && isHydrating) {\n        if ((init = lazyComponent = nextHydratableInstance))\n          (lazyComponent = canHydrateInstance(\n            lazyComponent,\n            workInProgress.type,\n            workInProgress.pendingProps,\n            rootOrSingletonContext\n          )),\n            null !== lazyComponent\n              ? ((workInProgress.stateNode = lazyComponent),\n                (hydrationParentFiber = workInProgress),\n                (nextHydratableInstance = getNextHydratable(\n                  lazyComponent.firstChild\n                )),\n                (rootOrSingletonContext = !1),\n                (init = !0))\n              : (init = !1);\n        init || throwOnHydrationMismatch(workInProgress);\n      }\n      pushHostContext(workInProgress);\n      init = workInProgress.type;\n      nextProps = workInProgress.pendingProps;\n      nextState = null !== current ? current.memoizedProps : null;\n      lazyComponent = nextProps.children;\n      shouldSetTextContent(init, nextProps)\n        ? (lazyComponent = null)\n        : null !== nextState &&\n          shouldSetTextContent(init, nextState) &&\n          (workInProgress.flags |= 32);\n      null !== workInProgress.memoizedState &&\n        ((init = renderWithHooks(\n          current,\n          workInProgress,\n          TransitionAwareHostComponent,\n          null,\n          null,\n          renderLanes\n        )),\n        (HostTransitionContext._currentValue = init));\n      markRef(current, workInProgress);\n      reconcileChildren(current, workInProgress, lazyComponent, renderLanes);\n      return workInProgress.child;\n    case 6:\n      if (null === current && isHydrating) {\n        if ((current = renderLanes = nextHydratableInstance))\n          (renderLanes = canHydrateTextInstance(\n            renderLanes,\n            workInProgress.pendingProps,\n            rootOrSingletonContext\n          )),\n            null !== renderLanes\n              ? ((workInProgress.stateNode = renderLanes),\n                (hydrationParentFiber = workInProgress),\n                (nextHydratableInstance = null),\n                (current = !0))\n              : (current = !1);\n        current || throwOnHydrationMismatch(workInProgress);\n      }\n      return null;\n    case 13:\n      return updateSuspenseComponent(current, workInProgress, renderLanes);\n    case 4:\n      return (\n        pushHostContainer(\n          workInProgress,\n          workInProgress.stateNode.containerInfo\n        ),\n        (lazyComponent = workInProgress.pendingProps),\n        null === current\n          ? (workInProgress.child = reconcileChildFibers(\n              workInProgress,\n              null,\n              lazyComponent,\n              renderLanes\n            ))\n          : reconcileChildren(\n              current,\n              workInProgress,\n              lazyComponent,\n              renderLanes\n            ),\n        workInProgress.child\n      );\n    case 11:\n      return updateForwardRef(\n        current,\n        workInProgress,\n        workInProgress.type,\n        workInProgress.pendingProps,\n        renderLanes\n      );\n    case 7:\n      return (\n        reconcileChildren(\n          current,\n          workInProgress,\n          workInProgress.pendingProps,\n          renderLanes\n        ),\n        workInProgress.child\n      );\n    case 8:\n      return (\n        reconcileChildren(\n          current,\n          workInProgress,\n          workInProgress.pendingProps.children,\n          renderLanes\n        ),\n        workInProgress.child\n      );\n    case 12:\n      return (\n        reconcileChildren(\n          current,\n          workInProgress,\n          workInProgress.pendingProps.children,\n          renderLanes\n        ),\n        workInProgress.child\n      );\n    case 10:\n      return (\n        (lazyComponent = workInProgress.pendingProps),\n        pushProvider(workInProgress, workInProgress.type, lazyComponent.value),\n        reconcileChildren(\n          current,\n          workInProgress,\n          lazyComponent.children,\n          renderLanes\n        ),\n        workInProgress.child\n      );\n    case 9:\n      return (\n        (init = workInProgress.type._context),\n        (lazyComponent = workInProgress.pendingProps.children),\n        prepareToReadContext(workInProgress),\n        (init = readContext(init)),\n        (lazyComponent = lazyComponent(init)),\n        (workInProgress.flags |= 1),\n        reconcileChildren(current, workInProgress, lazyComponent, renderLanes),\n        workInProgress.child\n      );\n    case 14:\n      return updateMemoComponent(\n        current,\n        workInProgress,\n        workInProgress.type,\n        workInProgress.pendingProps,\n        renderLanes\n      );\n    case 15:\n      return updateSimpleMemoComponent(\n        current,\n        workInProgress,\n        workInProgress.type,\n        workInProgress.pendingProps,\n        renderLanes\n      );\n    case 19:\n      return updateSuspenseListComponent(current, workInProgress, renderLanes);\n    case 22:\n      return updateOffscreenComponent(current, workInProgress, renderLanes);\n    case 24:\n      return (\n        prepareToReadContext(workInProgress),\n        (lazyComponent = readContext(CacheContext)),\n        null === current\n          ? ((init = peekCacheFromPool()),\n            null === init &&\n              ((init = workInProgressRoot),\n              (nextProps = createCache()),\n              (init.pooledCache = nextProps),\n              nextProps.refCount++,\n              null !== nextProps && (init.pooledCacheLanes |= renderLanes),\n              (init = nextProps)),\n            (workInProgress.memoizedState = {\n              parent: lazyComponent,\n              cache: init\n            }),\n            initializeUpdateQueue(workInProgress),\n            pushProvider(workInProgress, CacheContext, init))\n          : (0 !== (current.lanes & renderLanes) &&\n              (cloneUpdateQueue(current, workInProgress),\n              processUpdateQueue(workInProgress, null, null, renderLanes),\n              suspendIfUpdateReadFromEntangledAsyncAction()),\n            (init = current.memoizedState),\n            (nextProps = workInProgress.memoizedState),\n            init.parent !== lazyComponent\n              ? ((init = { parent: lazyComponent, cache: lazyComponent }),\n                (workInProgress.memoizedState = init),\n                0 === workInProgress.lanes &&\n                  (workInProgress.memoizedState =\n                    workInProgress.updateQueue.baseState =\n                      init),\n                pushProvider(workInProgress, CacheContext, lazyComponent))\n              : ((lazyComponent = nextProps.cache),\n                pushProvider(workInProgress, CacheContext, lazyComponent),\n                lazyComponent !== init.cache &&\n                  propagateContextChanges(\n                    workInProgress,\n                    [CacheContext],\n                    renderLanes,\n                    !0\n                  ))),\n        reconcileChildren(\n          current,\n          workInProgress,\n          workInProgress.pendingProps.children,\n          renderLanes\n        ),\n        workInProgress.child\n      );\n    case 29:\n      throw workInProgress.pendingProps;\n  }\n  throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nvar valueCursor = createCursor(null),\n  currentlyRenderingFiber = null,\n  lastContextDependency = null;\nfunction pushProvider(providerFiber, context, nextValue) {\n  push(valueCursor, context._currentValue);\n  context._currentValue = nextValue;\n}\nfunction popProvider(context) {\n  context._currentValue = valueCursor.current;\n  pop(valueCursor);\n}\nfunction scheduleContextWorkOnParentPath(parent, renderLanes, propagationRoot) {\n  for (; null !== parent; ) {\n    var alternate = parent.alternate;\n    (parent.childLanes & renderLanes) !== renderLanes\n      ? ((parent.childLanes |= renderLanes),\n        null !== alternate && (alternate.childLanes |= renderLanes))\n      : null !== alternate &&\n        (alternate.childLanes & renderLanes) !== renderLanes &&\n        (alternate.childLanes |= renderLanes);\n    if (parent === propagationRoot) break;\n    parent = parent.return;\n  }\n}\nfunction propagateContextChanges(\n  workInProgress,\n  contexts,\n  renderLanes,\n  forcePropagateEntireTree\n) {\n  var fiber = workInProgress.child;\n  null !== fiber && (fiber.return = workInProgress);\n  for (; null !== fiber; ) {\n    var list = fiber.dependencies;\n    if (null !== list) {\n      var nextFiber = fiber.child;\n      list = list.firstContext;\n      a: for (; null !== list; ) {\n        var dependency = list;\n        list = fiber;\n        for (var i = 0; i < contexts.length; i++)\n          if (dependency.context === contexts[i]) {\n            list.lanes |= renderLanes;\n            dependency = list.alternate;\n            null !== dependency && (dependency.lanes |= renderLanes);\n            scheduleContextWorkOnParentPath(\n              list.return,\n              renderLanes,\n              workInProgress\n            );\n            forcePropagateEntireTree || (nextFiber = null);\n            break a;\n          }\n        list = dependency.next;\n      }\n    } else if (18 === fiber.tag) {\n      nextFiber = fiber.return;\n      if (null === nextFiber) throw Error(formatProdErrorMessage(341));\n      nextFiber.lanes |= renderLanes;\n      list = nextFiber.alternate;\n      null !== list && (list.lanes |= renderLanes);\n      scheduleContextWorkOnParentPath(nextFiber, renderLanes, workInProgress);\n      nextFiber = null;\n    } else nextFiber = fiber.child;\n    if (null !== nextFiber) nextFiber.return = fiber;\n    else\n      for (nextFiber = fiber; null !== nextFiber; ) {\n        if (nextFiber === workInProgress) {\n          nextFiber = null;\n          break;\n        }\n        fiber = nextFiber.sibling;\n        if (null !== fiber) {\n          fiber.return = nextFiber.return;\n          nextFiber = fiber;\n          break;\n        }\n        nextFiber = nextFiber.return;\n      }\n    fiber = nextFiber;\n  }\n}\nfunction propagateParentContextChanges(\n  current,\n  workInProgress,\n  renderLanes,\n  forcePropagateEntireTree\n) {\n  current = null;\n  for (\n    var parent = workInProgress, isInsidePropagationBailout = !1;\n    null !== parent;\n\n  ) {\n    if (!isInsidePropagationBailout)\n      if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n      else if (0 !== (parent.flags & 262144)) break;\n    if (10 === parent.tag) {\n      var currentParent = parent.alternate;\n      if (null === currentParent) throw Error(formatProdErrorMessage(387));\n      currentParent = currentParent.memoizedProps;\n      if (null !== currentParent) {\n        var context = parent.type;\n        objectIs(parent.pendingProps.value, currentParent.value) ||\n          (null !== current ? current.push(context) : (current = [context]));\n      }\n    } else if (parent === hostTransitionProviderCursor.current) {\n      currentParent = parent.alternate;\n      if (null === currentParent) throw Error(formatProdErrorMessage(387));\n      currentParent.memoizedState.memoizedState !==\n        parent.memoizedState.memoizedState &&\n        (null !== current\n          ? current.push(HostTransitionContext)\n          : (current = [HostTransitionContext]));\n    }\n    parent = parent.return;\n  }\n  null !== current &&\n    propagateContextChanges(\n      workInProgress,\n      current,\n      renderLanes,\n      forcePropagateEntireTree\n    );\n  workInProgress.flags |= 262144;\n}\nfunction checkIfContextChanged(currentDependencies) {\n  for (\n    currentDependencies = currentDependencies.firstContext;\n    null !== currentDependencies;\n\n  ) {\n    if (\n      !objectIs(\n        currentDependencies.context._currentValue,\n        currentDependencies.memoizedValue\n      )\n    )\n      return !0;\n    currentDependencies = currentDependencies.next;\n  }\n  return !1;\n}\nfunction prepareToReadContext(workInProgress) {\n  currentlyRenderingFiber = workInProgress;\n  lastContextDependency = null;\n  workInProgress = workInProgress.dependencies;\n  null !== workInProgress && (workInProgress.firstContext = null);\n}\nfunction readContext(context) {\n  return readContextForConsumer(currentlyRenderingFiber, context);\n}\nfunction readContextDuringReconciliation(consumer, context) {\n  null === currentlyRenderingFiber && prepareToReadContext(consumer);\n  return readContextForConsumer(consumer, context);\n}\nfunction readContextForConsumer(consumer, context) {\n  var value = context._currentValue;\n  context = { context: context, memoizedValue: value, next: null };\n  if (null === lastContextDependency) {\n    if (null === consumer) throw Error(formatProdErrorMessage(308));\n    lastContextDependency = context;\n    consumer.dependencies = { lanes: 0, firstContext: context };\n    consumer.flags |= 524288;\n  } else lastContextDependency = lastContextDependency.next = context;\n  return value;\n}\nvar hasForceUpdate = !1;\nfunction initializeUpdateQueue(fiber) {\n  fiber.updateQueue = {\n    baseState: fiber.memoizedState,\n    firstBaseUpdate: null,\n    lastBaseUpdate: null,\n    shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n    callbacks: null\n  };\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n  current = current.updateQueue;\n  workInProgress.updateQueue === current &&\n    (workInProgress.updateQueue = {\n      baseState: current.baseState,\n      firstBaseUpdate: current.firstBaseUpdate,\n      lastBaseUpdate: current.lastBaseUpdate,\n      shared: current.shared,\n      callbacks: null\n    });\n}\nfunction createUpdate(lane) {\n  return { lane: lane, tag: 0, payload: null, callback: null, next: null };\n}\nfunction enqueueUpdate(fiber, update, lane) {\n  var updateQueue = fiber.updateQueue;\n  if (null === updateQueue) return null;\n  updateQueue = updateQueue.shared;\n  if (0 !== (executionContext & 2)) {\n    var pending = updateQueue.pending;\n    null === pending\n      ? (update.next = update)\n      : ((update.next = pending.next), (pending.next = update));\n    updateQueue.pending = update;\n    update = getRootForUpdatedFiber(fiber);\n    markUpdateLaneFromFiberToRoot(fiber, null, lane);\n    return update;\n  }\n  enqueueUpdate$1(fiber, updateQueue, update, lane);\n  return getRootForUpdatedFiber(fiber);\n}\nfunction entangleTransitions(root, fiber, lane) {\n  fiber = fiber.updateQueue;\n  if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194176))) {\n    var queueLanes = fiber.lanes;\n    queueLanes &= root.pendingLanes;\n    lane |= queueLanes;\n    fiber.lanes = lane;\n    markRootEntangled(root, lane);\n  }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n  var queue = workInProgress.updateQueue,\n    current = workInProgress.alternate;\n  if (\n    null !== current &&\n    ((current = current.updateQueue), queue === current)\n  ) {\n    var newFirst = null,\n      newLast = null;\n    queue = queue.firstBaseUpdate;\n    if (null !== queue) {\n      do {\n        var clone = {\n          lane: queue.lane,\n          tag: queue.tag,\n          payload: queue.payload,\n          callback: null,\n          next: null\n        };\n        null === newLast\n          ? (newFirst = newLast = clone)\n          : (newLast = newLast.next = clone);\n        queue = queue.next;\n      } while (null !== queue);\n      null === newLast\n        ? (newFirst = newLast = capturedUpdate)\n        : (newLast = newLast.next = capturedUpdate);\n    } else newFirst = newLast = capturedUpdate;\n    queue = {\n      baseState: current.baseState,\n      firstBaseUpdate: newFirst,\n      lastBaseUpdate: newLast,\n      shared: current.shared,\n      callbacks: current.callbacks\n    };\n    workInProgress.updateQueue = queue;\n    return;\n  }\n  workInProgress = queue.lastBaseUpdate;\n  null === workInProgress\n    ? (queue.firstBaseUpdate = capturedUpdate)\n    : (workInProgress.next = capturedUpdate);\n  queue.lastBaseUpdate = capturedUpdate;\n}\nvar didReadFromEntangledAsyncAction = !1;\nfunction suspendIfUpdateReadFromEntangledAsyncAction() {\n  if (didReadFromEntangledAsyncAction) {\n    var entangledActionThenable = currentEntangledActionThenable;\n    if (null !== entangledActionThenable) throw entangledActionThenable;\n  }\n}\nfunction processUpdateQueue(\n  workInProgress$jscomp$0,\n  props,\n  instance$jscomp$0,\n  renderLanes\n) {\n  didReadFromEntangledAsyncAction = !1;\n  var queue = workInProgress$jscomp$0.updateQueue;\n  hasForceUpdate = !1;\n  var firstBaseUpdate = queue.firstBaseUpdate,\n    lastBaseUpdate = queue.lastBaseUpdate,\n    pendingQueue = queue.shared.pending;\n  if (null !== pendingQueue) {\n    queue.shared.pending = null;\n    var lastPendingUpdate = pendingQueue,\n      firstPendingUpdate = lastPendingUpdate.next;\n    lastPendingUpdate.next = null;\n    null === lastBaseUpdate\n      ? (firstBaseUpdate = firstPendingUpdate)\n      : (lastBaseUpdate.next = firstPendingUpdate);\n    lastBaseUpdate = lastPendingUpdate;\n    var current = workInProgress$jscomp$0.alternate;\n    null !== current &&\n      ((current = current.updateQueue),\n      (pendingQueue = current.lastBaseUpdate),\n      pendingQueue !== lastBaseUpdate &&\n        (null === pendingQueue\n          ? (current.firstBaseUpdate = firstPendingUpdate)\n          : (pendingQueue.next = firstPendingUpdate),\n        (current.lastBaseUpdate = lastPendingUpdate)));\n  }\n  if (null !== firstBaseUpdate) {\n    var newState = queue.baseState;\n    lastBaseUpdate = 0;\n    current = firstPendingUpdate = lastPendingUpdate = null;\n    pendingQueue = firstBaseUpdate;\n    do {\n      var updateLane = pendingQueue.lane & -536870913,\n        isHiddenUpdate = updateLane !== pendingQueue.lane;\n      if (\n        isHiddenUpdate\n          ? (workInProgressRootRenderLanes & updateLane) === updateLane\n          : (renderLanes & updateLane) === updateLane\n      ) {\n        0 !== updateLane &&\n          updateLane === currentEntangledLane &&\n          (didReadFromEntangledAsyncAction = !0);\n        null !== current &&\n          (current = current.next =\n            {\n              lane: 0,\n              tag: pendingQueue.tag,\n              payload: pendingQueue.payload,\n              callback: null,\n              next: null\n            });\n        a: {\n          var workInProgress = workInProgress$jscomp$0,\n            update = pendingQueue;\n          updateLane = props;\n          var instance = instance$jscomp$0;\n          switch (update.tag) {\n            case 1:\n              workInProgress = update.payload;\n              if (\"function\" === typeof workInProgress) {\n                newState = workInProgress.call(instance, newState, updateLane);\n                break a;\n              }\n              newState = workInProgress;\n              break a;\n            case 3:\n              workInProgress.flags = (workInProgress.flags & -65537) | 128;\n            case 0:\n              workInProgress = update.payload;\n              updateLane =\n                \"function\" === typeof workInProgress\n                  ? workInProgress.call(instance, newState, updateLane)\n                  : workInProgress;\n              if (null === updateLane || void 0 === updateLane) break a;\n              newState = assign({}, newState, updateLane);\n              break a;\n            case 2:\n              hasForceUpdate = !0;\n          }\n        }\n        updateLane = pendingQueue.callback;\n        null !== updateLane &&\n          ((workInProgress$jscomp$0.flags |= 64),\n          isHiddenUpdate && (workInProgress$jscomp$0.flags |= 8192),\n          (isHiddenUpdate = queue.callbacks),\n          null === isHiddenUpdate\n            ? (queue.callbacks = [updateLane])\n            : isHiddenUpdate.push(updateLane));\n      } else\n        (isHiddenUpdate = {\n          lane: updateLane,\n          tag: pendingQueue.tag,\n          payload: pendingQueue.payload,\n          callback: pendingQueue.callback,\n          next: null\n        }),\n          null === current\n            ? ((firstPendingUpdate = current = isHiddenUpdate),\n              (lastPendingUpdate = newState))\n            : (current = current.next = isHiddenUpdate),\n          (lastBaseUpdate |= updateLane);\n      pendingQueue = pendingQueue.next;\n      if (null === pendingQueue)\n        if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n          break;\n        else\n          (isHiddenUpdate = pendingQueue),\n            (pendingQueue = isHiddenUpdate.next),\n            (isHiddenUpdate.next = null),\n            (queue.lastBaseUpdate = isHiddenUpdate),\n            (queue.shared.pending = null);\n    } while (1);\n    null === current && (lastPendingUpdate = newState);\n    queue.baseState = lastPendingUpdate;\n    queue.firstBaseUpdate = firstPendingUpdate;\n    queue.lastBaseUpdate = current;\n    null === firstBaseUpdate && (queue.shared.lanes = 0);\n    workInProgressRootSkippedLanes |= lastBaseUpdate;\n    workInProgress$jscomp$0.lanes = lastBaseUpdate;\n    workInProgress$jscomp$0.memoizedState = newState;\n  }\n}\nfunction callCallback(callback, context) {\n  if (\"function\" !== typeof callback)\n    throw Error(formatProdErrorMessage(191, callback));\n  callback.call(context);\n}\nfunction commitCallbacks(updateQueue, context) {\n  var callbacks = updateQueue.callbacks;\n  if (null !== callbacks)\n    for (\n      updateQueue.callbacks = null, updateQueue = 0;\n      updateQueue < callbacks.length;\n      updateQueue++\n    )\n      callCallback(callbacks[updateQueue], context);\n}\nfunction commitHookEffectListMount(flags, finishedWork) {\n  try {\n    var updateQueue = finishedWork.updateQueue,\n      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n    if (null !== lastEffect) {\n      var firstEffect = lastEffect.next;\n      updateQueue = firstEffect;\n      do {\n        if ((updateQueue.tag & flags) === flags) {\n          lastEffect = void 0;\n          var create = updateQueue.create,\n            inst = updateQueue.inst;\n          lastEffect = create();\n          inst.destroy = lastEffect;\n        }\n        updateQueue = updateQueue.next;\n      } while (updateQueue !== firstEffect);\n    }\n  } catch (error) {\n    captureCommitPhaseError(finishedWork, finishedWork.return, error);\n  }\n}\nfunction commitHookEffectListUnmount(\n  flags,\n  finishedWork,\n  nearestMountedAncestor$jscomp$0\n) {\n  try {\n    var updateQueue = finishedWork.updateQueue,\n      lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n    if (null !== lastEffect) {\n      var firstEffect = lastEffect.next;\n      updateQueue = firstEffect;\n      do {\n        if ((updateQueue.tag & flags) === flags) {\n          var inst = updateQueue.inst,\n            destroy = inst.destroy;\n          if (void 0 !== destroy) {\n            inst.destroy = void 0;\n            lastEffect = finishedWork;\n            var nearestMountedAncestor = nearestMountedAncestor$jscomp$0;\n            try {\n              destroy();\n            } catch (error) {\n              captureCommitPhaseError(\n                lastEffect,\n                nearestMountedAncestor,\n                error\n              );\n            }\n          }\n        }\n        updateQueue = updateQueue.next;\n      } while (updateQueue !== firstEffect);\n    }\n  } catch (error) {\n    captureCommitPhaseError(finishedWork, finishedWork.return, error);\n  }\n}\nfunction commitClassCallbacks(finishedWork) {\n  var updateQueue = finishedWork.updateQueue;\n  if (null !== updateQueue) {\n    var instance = finishedWork.stateNode;\n    try {\n      commitCallbacks(updateQueue, instance);\n    } catch (error) {\n      captureCommitPhaseError(finishedWork, finishedWork.return, error);\n    }\n  }\n}\nfunction safelyCallComponentWillUnmount(\n  current,\n  nearestMountedAncestor,\n  instance\n) {\n  instance.props = resolveClassComponentProps(\n    current.type,\n    current.memoizedProps\n  );\n  instance.state = current.memoizedState;\n  try {\n    instance.componentWillUnmount();\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n}\nfunction safelyAttachRef(current, nearestMountedAncestor) {\n  try {\n    var ref = current.ref;\n    if (null !== ref) {\n      var instance = current.stateNode;\n      switch (current.tag) {\n        case 26:\n        case 27:\n        case 5:\n          var instanceToUse = instance;\n          break;\n        default:\n          instanceToUse = instance;\n      }\n      \"function\" === typeof ref\n        ? (current.refCleanup = ref(instanceToUse))\n        : (ref.current = instanceToUse);\n    }\n  } catch (error) {\n    captureCommitPhaseError(current, nearestMountedAncestor, error);\n  }\n}\nfunction safelyDetachRef(current, nearestMountedAncestor) {\n  var ref = current.ref,\n    refCleanup = current.refCleanup;\n  if (null !== ref)\n    if (\"function\" === typeof refCleanup)\n      try {\n        refCleanup();\n      } catch (error) {\n        captureCommitPhaseError(current, nearestMountedAncestor, error);\n      } finally {\n        (current.refCleanup = null),\n          (current = current.alternate),\n          null != current && (current.refCleanup = null);\n      }\n    else if (\"function\" === typeof ref)\n      try {\n        ref(null);\n      } catch (error$112) {\n        captureCommitPhaseError(current, nearestMountedAncestor, error$112);\n      }\n    else ref.current = null;\n}\nfunction commitHostMount(finishedWork) {\n  var type = finishedWork.type,\n    props = finishedWork.memoizedProps,\n    instance = finishedWork.stateNode;\n  try {\n    a: switch (type) {\n      case \"button\":\n      case \"input\":\n      case \"select\":\n      case \"textarea\":\n        props.autoFocus && instance.focus();\n        break a;\n      case \"img\":\n        props.src\n          ? (instance.src = props.src)\n          : props.srcSet && (instance.srcset = props.srcSet);\n    }\n  } catch (error) {\n    captureCommitPhaseError(finishedWork, finishedWork.return, error);\n  }\n}\nfunction commitHostUpdate(finishedWork, newProps, oldProps) {\n  try {\n    var domElement = finishedWork.stateNode;\n    updateProperties(domElement, finishedWork.type, oldProps, newProps);\n    domElement[internalPropsKey] = newProps;\n  } catch (error) {\n    captureCommitPhaseError(finishedWork, finishedWork.return, error);\n  }\n}\nfunction isHostParent(fiber) {\n  return (\n    5 === fiber.tag ||\n    3 === fiber.tag ||\n    26 === fiber.tag ||\n    27 === fiber.tag ||\n    4 === fiber.tag\n  );\n}\nfunction getHostSibling(fiber) {\n  a: for (;;) {\n    for (; null === fiber.sibling; ) {\n      if (null === fiber.return || isHostParent(fiber.return)) return null;\n      fiber = fiber.return;\n    }\n    fiber.sibling.return = fiber.return;\n    for (\n      fiber = fiber.sibling;\n      5 !== fiber.tag &&\n      6 !== fiber.tag &&\n      27 !== fiber.tag &&\n      18 !== fiber.tag;\n\n    ) {\n      if (fiber.flags & 2) continue a;\n      if (null === fiber.child || 4 === fiber.tag) continue a;\n      else (fiber.child.return = fiber), (fiber = fiber.child);\n    }\n    if (!(fiber.flags & 2)) return fiber.stateNode;\n  }\n}\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n  var tag = node.tag;\n  if (5 === tag || 6 === tag)\n    (node = node.stateNode),\n      before\n        ? 8 === parent.nodeType\n          ? parent.parentNode.insertBefore(node, before)\n          : parent.insertBefore(node, before)\n        : (8 === parent.nodeType\n            ? ((before = parent.parentNode), before.insertBefore(node, parent))\n            : ((before = parent), before.appendChild(node)),\n          (parent = parent._reactRootContainer),\n          (null !== parent && void 0 !== parent) ||\n            null !== before.onclick ||\n            (before.onclick = noop$1));\n  else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n    for (\n      insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n        node = node.sibling;\n      null !== node;\n\n    )\n      insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n        (node = node.sibling);\n}\nfunction insertOrAppendPlacementNode(node, before, parent) {\n  var tag = node.tag;\n  if (5 === tag || 6 === tag)\n    (node = node.stateNode),\n      before ? parent.insertBefore(node, before) : parent.appendChild(node);\n  else if (4 !== tag && 27 !== tag && ((node = node.child), null !== node))\n    for (\n      insertOrAppendPlacementNode(node, before, parent), node = node.sibling;\n      null !== node;\n\n    )\n      insertOrAppendPlacementNode(node, before, parent), (node = node.sibling);\n}\nvar offscreenSubtreeIsHidden = !1,\n  offscreenSubtreeWasHidden = !1,\n  needsFormReset = !1,\n  PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n  nextEffect = null,\n  shouldFireAfterActiveInstanceBlur = !1;\nfunction commitBeforeMutationEffects(root, firstChild) {\n  root = root.containerInfo;\n  eventsEnabled = _enabled;\n  root = getActiveElementDeep(root);\n  if (hasSelectionCapabilities(root)) {\n    if (\"selectionStart\" in root)\n      var JSCompiler_temp = {\n        start: root.selectionStart,\n        end: root.selectionEnd\n      };\n    else\n      a: {\n        JSCompiler_temp =\n          ((JSCompiler_temp = root.ownerDocument) &&\n            JSCompiler_temp.defaultView) ||\n          window;\n        var selection =\n          JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n        if (selection && 0 !== selection.rangeCount) {\n          JSCompiler_temp = selection.anchorNode;\n          var anchorOffset = selection.anchorOffset,\n            focusNode = selection.focusNode;\n          selection = selection.focusOffset;\n          try {\n            JSCompiler_temp.nodeType, focusNode.nodeType;\n          } catch (e$20) {\n            JSCompiler_temp = null;\n            break a;\n          }\n          var length = 0,\n            start = -1,\n            end = -1,\n            indexWithinAnchor = 0,\n            indexWithinFocus = 0,\n            node = root,\n            parentNode = null;\n          b: for (;;) {\n            for (var next; ; ) {\n              node !== JSCompiler_temp ||\n                (0 !== anchorOffset && 3 !== node.nodeType) ||\n                (start = length + anchorOffset);\n              node !== focusNode ||\n                (0 !== selection && 3 !== node.nodeType) ||\n                (end = length + selection);\n              3 === node.nodeType && (length += node.nodeValue.length);\n              if (null === (next = node.firstChild)) break;\n              parentNode = node;\n              node = next;\n            }\n            for (;;) {\n              if (node === root) break b;\n              parentNode === JSCompiler_temp &&\n                ++indexWithinAnchor === anchorOffset &&\n                (start = length);\n              parentNode === focusNode &&\n                ++indexWithinFocus === selection &&\n                (end = length);\n              if (null !== (next = node.nextSibling)) break;\n              node = parentNode;\n              parentNode = node.parentNode;\n            }\n            node = next;\n          }\n          JSCompiler_temp =\n            -1 === start || -1 === end ? null : { start: start, end: end };\n        } else JSCompiler_temp = null;\n      }\n    JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n  } else JSCompiler_temp = null;\n  selectionInformation = { focusedElem: root, selectionRange: JSCompiler_temp };\n  _enabled = !1;\n  for (nextEffect = firstChild; null !== nextEffect; )\n    if (\n      ((firstChild = nextEffect),\n      (root = firstChild.child),\n      0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n    )\n      (root.return = firstChild), (nextEffect = root);\n    else\n      for (; null !== nextEffect; ) {\n        firstChild = nextEffect;\n        focusNode = firstChild.alternate;\n        root = firstChild.flags;\n        switch (firstChild.tag) {\n          case 0:\n            break;\n          case 11:\n          case 15:\n            break;\n          case 1:\n            if (0 !== (root & 1024) && null !== focusNode) {\n              root = void 0;\n              JSCompiler_temp = firstChild;\n              anchorOffset = focusNode.memoizedProps;\n              focusNode = focusNode.memoizedState;\n              selection = JSCompiler_temp.stateNode;\n              try {\n                var resolvedPrevProps = resolveClassComponentProps(\n                  JSCompiler_temp.type,\n                  anchorOffset,\n                  JSCompiler_temp.elementType === JSCompiler_temp.type\n                );\n                root = selection.getSnapshotBeforeUpdate(\n                  resolvedPrevProps,\n                  focusNode\n                );\n                selection.__reactInternalSnapshotBeforeUpdate = root;\n              } catch (error) {\n                captureCommitPhaseError(\n                  JSCompiler_temp,\n                  JSCompiler_temp.return,\n                  error\n                );\n              }\n            }\n            break;\n          case 3:\n            if (0 !== (root & 1024))\n              if (\n                ((root = firstChild.stateNode.containerInfo),\n                (JSCompiler_temp = root.nodeType),\n                9 === JSCompiler_temp)\n              )\n                clearContainerSparingly(root);\n              else if (1 === JSCompiler_temp)\n                switch (root.nodeName) {\n                  case \"HEAD\":\n                  case \"HTML\":\n                  case \"BODY\":\n                    clearContainerSparingly(root);\n                    break;\n                  default:\n                    root.textContent = \"\";\n                }\n            break;\n          case 5:\n          case 26:\n          case 27:\n          case 6:\n          case 4:\n          case 17:\n            break;\n          default:\n            if (0 !== (root & 1024)) throw Error(formatProdErrorMessage(163));\n        }\n        root = firstChild.sibling;\n        if (null !== root) {\n          root.return = firstChild.return;\n          nextEffect = root;\n          break;\n        }\n        nextEffect = firstChild.return;\n      }\n  resolvedPrevProps = shouldFireAfterActiveInstanceBlur;\n  shouldFireAfterActiveInstanceBlur = !1;\n  return resolvedPrevProps;\n}\nfunction commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n  var flags = finishedWork.flags;\n  switch (finishedWork.tag) {\n    case 0:\n    case 11:\n    case 15:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      flags & 4 && commitHookEffectListMount(5, finishedWork);\n      break;\n    case 1:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      if (flags & 4)\n        if (((finishedRoot = finishedWork.stateNode), null === current))\n          try {\n            finishedRoot.componentDidMount();\n          } catch (error) {\n            captureCommitPhaseError(finishedWork, finishedWork.return, error);\n          }\n        else {\n          var prevProps = resolveClassComponentProps(\n            finishedWork.type,\n            current.memoizedProps\n          );\n          current = current.memoizedState;\n          try {\n            finishedRoot.componentDidUpdate(\n              prevProps,\n              current,\n              finishedRoot.__reactInternalSnapshotBeforeUpdate\n            );\n          } catch (error$111) {\n            captureCommitPhaseError(\n              finishedWork,\n              finishedWork.return,\n              error$111\n            );\n          }\n        }\n      flags & 64 && commitClassCallbacks(finishedWork);\n      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n      break;\n    case 3:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      if (flags & 64 && ((flags = finishedWork.updateQueue), null !== flags)) {\n        finishedRoot = null;\n        if (null !== finishedWork.child)\n          switch (finishedWork.child.tag) {\n            case 27:\n            case 5:\n              finishedRoot = finishedWork.child.stateNode;\n              break;\n            case 1:\n              finishedRoot = finishedWork.child.stateNode;\n          }\n        try {\n          commitCallbacks(flags, finishedRoot);\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      }\n      break;\n    case 26:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n      break;\n    case 27:\n    case 5:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      null === current && flags & 4 && commitHostMount(finishedWork);\n      flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n      break;\n    case 12:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      break;\n    case 13:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n      flags & 4 && commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n      break;\n    case 22:\n      prevProps =\n        null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n      if (!prevProps) {\n        current =\n          (null !== current && null !== current.memoizedState) ||\n          offscreenSubtreeWasHidden;\n        var prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n          prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n        offscreenSubtreeIsHidden = prevProps;\n        (offscreenSubtreeWasHidden = current) && !prevOffscreenSubtreeWasHidden\n          ? recursivelyTraverseReappearLayoutEffects(\n              finishedRoot,\n              finishedWork,\n              0 !== (finishedWork.subtreeFlags & 8772)\n            )\n          : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n        offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n        offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n      }\n      flags & 512 &&\n        (\"manual\" === finishedWork.memoizedProps.mode\n          ? safelyAttachRef(finishedWork, finishedWork.return)\n          : safelyDetachRef(finishedWork, finishedWork.return));\n      break;\n    default:\n      recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n  }\n}\nfunction detachFiberAfterEffects(fiber) {\n  var alternate = fiber.alternate;\n  null !== alternate &&\n    ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n  fiber.child = null;\n  fiber.deletions = null;\n  fiber.sibling = null;\n  5 === fiber.tag &&\n    ((alternate = fiber.stateNode),\n    null !== alternate && detachDeletedInstance(alternate));\n  fiber.stateNode = null;\n  fiber.return = null;\n  fiber.dependencies = null;\n  fiber.memoizedProps = null;\n  fiber.memoizedState = null;\n  fiber.pendingProps = null;\n  fiber.stateNode = null;\n  fiber.updateQueue = null;\n}\nvar hostParent = null,\n  hostParentIsContainer = !1;\nfunction recursivelyTraverseDeletionEffects(\n  finishedRoot,\n  nearestMountedAncestor,\n  parent\n) {\n  for (parent = parent.child; null !== parent; )\n    commitDeletionEffectsOnFiber(finishedRoot, nearestMountedAncestor, parent),\n      (parent = parent.sibling);\n}\nfunction commitDeletionEffectsOnFiber(\n  finishedRoot,\n  nearestMountedAncestor,\n  deletedFiber\n) {\n  if (injectedHook && \"function\" === typeof injectedHook.onCommitFiberUnmount)\n    try {\n      injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n    } catch (err) {}\n  switch (deletedFiber.tag) {\n    case 26:\n      offscreenSubtreeWasHidden ||\n        safelyDetachRef(deletedFiber, nearestMountedAncestor);\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      deletedFiber.memoizedState\n        ? deletedFiber.memoizedState.count--\n        : deletedFiber.stateNode &&\n          ((deletedFiber = deletedFiber.stateNode),\n          deletedFiber.parentNode.removeChild(deletedFiber));\n      break;\n    case 27:\n      offscreenSubtreeWasHidden ||\n        safelyDetachRef(deletedFiber, nearestMountedAncestor);\n      var prevHostParent = hostParent,\n        prevHostParentIsContainer = hostParentIsContainer;\n      hostParent = deletedFiber.stateNode;\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      deletedFiber = deletedFiber.stateNode;\n      for (\n        nearestMountedAncestor = deletedFiber.attributes;\n        nearestMountedAncestor.length;\n\n      )\n        deletedFiber.removeAttributeNode(nearestMountedAncestor[0]);\n      detachDeletedInstance(deletedFiber);\n      hostParent = prevHostParent;\n      hostParentIsContainer = prevHostParentIsContainer;\n      break;\n    case 5:\n      offscreenSubtreeWasHidden ||\n        safelyDetachRef(deletedFiber, nearestMountedAncestor);\n    case 6:\n      prevHostParentIsContainer = hostParent;\n      var prevHostParentIsContainer$119 = hostParentIsContainer;\n      hostParent = null;\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      hostParent = prevHostParentIsContainer;\n      hostParentIsContainer = prevHostParentIsContainer$119;\n      if (null !== hostParent)\n        if (hostParentIsContainer)\n          try {\n            (finishedRoot = hostParent),\n              (prevHostParent = deletedFiber.stateNode),\n              8 === finishedRoot.nodeType\n                ? finishedRoot.parentNode.removeChild(prevHostParent)\n                : finishedRoot.removeChild(prevHostParent);\n          } catch (error) {\n            captureCommitPhaseError(\n              deletedFiber,\n              nearestMountedAncestor,\n              error\n            );\n          }\n        else\n          try {\n            hostParent.removeChild(deletedFiber.stateNode);\n          } catch (error) {\n            captureCommitPhaseError(\n              deletedFiber,\n              nearestMountedAncestor,\n              error\n            );\n          }\n      break;\n    case 18:\n      null !== hostParent &&\n        (hostParentIsContainer\n          ? ((nearestMountedAncestor = hostParent),\n            (deletedFiber = deletedFiber.stateNode),\n            8 === nearestMountedAncestor.nodeType\n              ? clearSuspenseBoundary(\n                  nearestMountedAncestor.parentNode,\n                  deletedFiber\n                )\n              : 1 === nearestMountedAncestor.nodeType &&\n                clearSuspenseBoundary(nearestMountedAncestor, deletedFiber),\n            retryIfBlockedOn(nearestMountedAncestor))\n          : clearSuspenseBoundary(hostParent, deletedFiber.stateNode));\n      break;\n    case 4:\n      prevHostParent = hostParent;\n      prevHostParentIsContainer = hostParentIsContainer;\n      hostParent = deletedFiber.stateNode.containerInfo;\n      hostParentIsContainer = !0;\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      hostParent = prevHostParent;\n      hostParentIsContainer = prevHostParentIsContainer;\n      break;\n    case 0:\n    case 11:\n    case 14:\n    case 15:\n      offscreenSubtreeWasHidden ||\n        commitHookEffectListUnmount(2, deletedFiber, nearestMountedAncestor);\n      offscreenSubtreeWasHidden ||\n        commitHookEffectListUnmount(4, deletedFiber, nearestMountedAncestor);\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      break;\n    case 1:\n      offscreenSubtreeWasHidden ||\n        (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n        (prevHostParent = deletedFiber.stateNode),\n        \"function\" === typeof prevHostParent.componentWillUnmount &&\n          safelyCallComponentWillUnmount(\n            deletedFiber,\n            nearestMountedAncestor,\n            prevHostParent\n          ));\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      break;\n    case 21:\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      break;\n    case 22:\n      offscreenSubtreeWasHidden ||\n        safelyDetachRef(deletedFiber, nearestMountedAncestor);\n      offscreenSubtreeWasHidden =\n        (prevHostParent = offscreenSubtreeWasHidden) ||\n        null !== deletedFiber.memoizedState;\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n      offscreenSubtreeWasHidden = prevHostParent;\n      break;\n    default:\n      recursivelyTraverseDeletionEffects(\n        finishedRoot,\n        nearestMountedAncestor,\n        deletedFiber\n      );\n  }\n}\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n  if (\n    null === finishedWork.memoizedState &&\n    ((finishedRoot = finishedWork.alternate),\n    null !== finishedRoot &&\n      ((finishedRoot = finishedRoot.memoizedState),\n      null !== finishedRoot &&\n        ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n  )\n    try {\n      retryIfBlockedOn(finishedRoot);\n    } catch (error) {\n      captureCommitPhaseError(finishedWork, finishedWork.return, error);\n    }\n}\nfunction getRetryCache(finishedWork) {\n  switch (finishedWork.tag) {\n    case 13:\n    case 19:\n      var retryCache = finishedWork.stateNode;\n      null === retryCache &&\n        (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n      return retryCache;\n    case 22:\n      return (\n        (finishedWork = finishedWork.stateNode),\n        (retryCache = finishedWork._retryCache),\n        null === retryCache &&\n          (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n        retryCache\n      );\n    default:\n      throw Error(formatProdErrorMessage(435, finishedWork.tag));\n  }\n}\nfunction attachSuspenseRetryListeners(finishedWork, wakeables) {\n  var retryCache = getRetryCache(finishedWork);\n  wakeables.forEach(function (wakeable) {\n    var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n    retryCache.has(wakeable) ||\n      (retryCache.add(wakeable), wakeable.then(retry, retry));\n  });\n}\nfunction recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n  var deletions = parentFiber.deletions;\n  if (null !== deletions)\n    for (var i = 0; i < deletions.length; i++) {\n      var childToDelete = deletions[i],\n        root = root$jscomp$0,\n        returnFiber = parentFiber,\n        parent = returnFiber;\n      a: for (; null !== parent; ) {\n        switch (parent.tag) {\n          case 27:\n          case 5:\n            hostParent = parent.stateNode;\n            hostParentIsContainer = !1;\n            break a;\n          case 3:\n            hostParent = parent.stateNode.containerInfo;\n            hostParentIsContainer = !0;\n            break a;\n          case 4:\n            hostParent = parent.stateNode.containerInfo;\n            hostParentIsContainer = !0;\n            break a;\n        }\n        parent = parent.return;\n      }\n      if (null === hostParent) throw Error(formatProdErrorMessage(160));\n      commitDeletionEffectsOnFiber(root, returnFiber, childToDelete);\n      hostParent = null;\n      hostParentIsContainer = !1;\n      root = childToDelete.alternate;\n      null !== root && (root.return = null);\n      childToDelete.return = null;\n    }\n  if (parentFiber.subtreeFlags & 13878)\n    for (parentFiber = parentFiber.child; null !== parentFiber; )\n      commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n        (parentFiber = parentFiber.sibling);\n}\nvar currentHoistableRoot = null;\nfunction commitMutationEffectsOnFiber(finishedWork, root) {\n  var current = finishedWork.alternate,\n    flags = finishedWork.flags;\n  switch (finishedWork.tag) {\n    case 0:\n    case 11:\n    case 14:\n    case 15:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      flags & 4 &&\n        (commitHookEffectListUnmount(3, finishedWork, finishedWork.return),\n        commitHookEffectListMount(3, finishedWork),\n        commitHookEffectListUnmount(5, finishedWork, finishedWork.return));\n      break;\n    case 1:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      flags & 512 &&\n        (offscreenSubtreeWasHidden ||\n          null === current ||\n          safelyDetachRef(current, current.return));\n      flags & 64 &&\n        offscreenSubtreeIsHidden &&\n        ((finishedWork = finishedWork.updateQueue),\n        null !== finishedWork &&\n          ((flags = finishedWork.callbacks),\n          null !== flags &&\n            ((current = finishedWork.shared.hiddenCallbacks),\n            (finishedWork.shared.hiddenCallbacks =\n              null === current ? flags : current.concat(flags)))));\n      break;\n    case 26:\n      var hoistableRoot = currentHoistableRoot;\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      flags & 512 &&\n        (offscreenSubtreeWasHidden ||\n          null === current ||\n          safelyDetachRef(current, current.return));\n      if (flags & 4) {\n        var currentResource = null !== current ? current.memoizedState : null;\n        flags = finishedWork.memoizedState;\n        if (null === current)\n          if (null === flags)\n            if (null === finishedWork.stateNode) {\n              a: {\n                flags = finishedWork.type;\n                current = finishedWork.memoizedProps;\n                hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n                b: switch (flags) {\n                  case \"title\":\n                    currentResource =\n                      hoistableRoot.getElementsByTagName(\"title\")[0];\n                    if (\n                      !currentResource ||\n                      currentResource[internalHoistableMarker] ||\n                      currentResource[internalInstanceKey] ||\n                      \"http://www.w3.org/2000/svg\" ===\n                        currentResource.namespaceURI ||\n                      currentResource.hasAttribute(\"itemprop\")\n                    )\n                      (currentResource = hoistableRoot.createElement(flags)),\n                        hoistableRoot.head.insertBefore(\n                          currentResource,\n                          hoistableRoot.querySelector(\"head > title\")\n                        );\n                    setInitialProperties(currentResource, flags, current);\n                    currentResource[internalInstanceKey] = finishedWork;\n                    markNodeAsHoistable(currentResource);\n                    flags = currentResource;\n                    break a;\n                  case \"link\":\n                    var maybeNodes = getHydratableHoistableCache(\n                      \"link\",\n                      \"href\",\n                      hoistableRoot\n                    ).get(flags + (current.href || \"\"));\n                    if (maybeNodes)\n                      for (var i = 0; i < maybeNodes.length; i++)\n                        if (\n                          ((currentResource = maybeNodes[i]),\n                          currentResource.getAttribute(\"href\") ===\n                            (null == current.href ? null : current.href) &&\n                            currentResource.getAttribute(\"rel\") ===\n                              (null == current.rel ? null : current.rel) &&\n                            currentResource.getAttribute(\"title\") ===\n                              (null == current.title ? null : current.title) &&\n                            currentResource.getAttribute(\"crossorigin\") ===\n                              (null == current.crossOrigin\n                                ? null\n                                : current.crossOrigin))\n                        ) {\n                          maybeNodes.splice(i, 1);\n                          break b;\n                        }\n                    currentResource = hoistableRoot.createElement(flags);\n                    setInitialProperties(currentResource, flags, current);\n                    hoistableRoot.head.appendChild(currentResource);\n                    break;\n                  case \"meta\":\n                    if (\n                      (maybeNodes = getHydratableHoistableCache(\n                        \"meta\",\n                        \"content\",\n                        hoistableRoot\n                      ).get(flags + (current.content || \"\")))\n                    )\n                      for (i = 0; i < maybeNodes.length; i++)\n                        if (\n                          ((currentResource = maybeNodes[i]),\n                          currentResource.getAttribute(\"content\") ===\n                            (null == current.content\n                              ? null\n                              : \"\" + current.content) &&\n                            currentResource.getAttribute(\"name\") ===\n                              (null == current.name ? null : current.name) &&\n                            currentResource.getAttribute(\"property\") ===\n                              (null == current.property\n                                ? null\n                                : current.property) &&\n                            currentResource.getAttribute(\"http-equiv\") ===\n                              (null == current.httpEquiv\n                                ? null\n                                : current.httpEquiv) &&\n                            currentResource.getAttribute(\"charset\") ===\n                              (null == current.charSet\n                                ? null\n                                : current.charSet))\n                        ) {\n                          maybeNodes.splice(i, 1);\n                          break b;\n                        }\n                    currentResource = hoistableRoot.createElement(flags);\n                    setInitialProperties(currentResource, flags, current);\n                    hoistableRoot.head.appendChild(currentResource);\n                    break;\n                  default:\n                    throw Error(formatProdErrorMessage(468, flags));\n                }\n                currentResource[internalInstanceKey] = finishedWork;\n                markNodeAsHoistable(currentResource);\n                flags = currentResource;\n              }\n              finishedWork.stateNode = flags;\n            } else\n              mountHoistable(\n                hoistableRoot,\n                finishedWork.type,\n                finishedWork.stateNode\n              );\n          else\n            finishedWork.stateNode = acquireResource(\n              hoistableRoot,\n              flags,\n              finishedWork.memoizedProps\n            );\n        else\n          currentResource !== flags\n            ? (null === currentResource\n                ? null !== current.stateNode &&\n                  ((current = current.stateNode),\n                  current.parentNode.removeChild(current))\n                : currentResource.count--,\n              null === flags\n                ? mountHoistable(\n                    hoistableRoot,\n                    finishedWork.type,\n                    finishedWork.stateNode\n                  )\n                : acquireResource(\n                    hoistableRoot,\n                    flags,\n                    finishedWork.memoizedProps\n                  ))\n            : null === flags &&\n              null !== finishedWork.stateNode &&\n              commitHostUpdate(\n                finishedWork,\n                finishedWork.memoizedProps,\n                current.memoizedProps\n              );\n      }\n      break;\n    case 27:\n      if (flags & 4 && null === finishedWork.alternate) {\n        hoistableRoot = finishedWork.stateNode;\n        currentResource = finishedWork.memoizedProps;\n        try {\n          for (var node = hoistableRoot.firstChild; node; ) {\n            var nextNode = node.nextSibling,\n              nodeName = node.nodeName;\n            node[internalHoistableMarker] ||\n              \"HEAD\" === nodeName ||\n              \"BODY\" === nodeName ||\n              \"SCRIPT\" === nodeName ||\n              \"STYLE\" === nodeName ||\n              (\"LINK\" === nodeName &&\n                \"stylesheet\" === node.rel.toLowerCase()) ||\n              hoistableRoot.removeChild(node);\n            node = nextNode;\n          }\n          for (\n            var type = finishedWork.type, attributes = hoistableRoot.attributes;\n            attributes.length;\n\n          )\n            hoistableRoot.removeAttributeNode(attributes[0]);\n          setInitialProperties(hoistableRoot, type, currentResource);\n          hoistableRoot[internalInstanceKey] = finishedWork;\n          hoistableRoot[internalPropsKey] = currentResource;\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      }\n    case 5:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      flags & 512 &&\n        (offscreenSubtreeWasHidden ||\n          null === current ||\n          safelyDetachRef(current, current.return));\n      if (finishedWork.flags & 32) {\n        hoistableRoot = finishedWork.stateNode;\n        try {\n          setTextContent(hoistableRoot, \"\");\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      }\n      flags & 4 &&\n        null != finishedWork.stateNode &&\n        ((hoistableRoot = finishedWork.memoizedProps),\n        commitHostUpdate(\n          finishedWork,\n          hoistableRoot,\n          null !== current ? current.memoizedProps : hoistableRoot\n        ));\n      flags & 1024 && (needsFormReset = !0);\n      break;\n    case 6:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      if (flags & 4) {\n        if (null === finishedWork.stateNode)\n          throw Error(formatProdErrorMessage(162));\n        flags = finishedWork.memoizedProps;\n        current = finishedWork.stateNode;\n        try {\n          current.nodeValue = flags;\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      }\n      break;\n    case 3:\n      tagCaches = null;\n      hoistableRoot = currentHoistableRoot;\n      currentHoistableRoot = getHoistableRoot(root.containerInfo);\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      currentHoistableRoot = hoistableRoot;\n      commitReconciliationEffects(finishedWork);\n      if (flags & 4 && null !== current && current.memoizedState.isDehydrated)\n        try {\n          retryIfBlockedOn(root.containerInfo);\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      needsFormReset &&\n        ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n      break;\n    case 4:\n      flags = currentHoistableRoot;\n      currentHoistableRoot = getHoistableRoot(\n        finishedWork.stateNode.containerInfo\n      );\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      currentHoistableRoot = flags;\n      break;\n    case 12:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      break;\n    case 13:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      finishedWork.child.flags & 8192 &&\n        (null !== finishedWork.memoizedState) !==\n          (null !== current && null !== current.memoizedState) &&\n        (globalMostRecentFallbackTime = now());\n      flags & 4 &&\n        ((flags = finishedWork.updateQueue),\n        null !== flags &&\n          ((finishedWork.updateQueue = null),\n          attachSuspenseRetryListeners(finishedWork, flags)));\n      break;\n    case 22:\n      flags & 512 &&\n        (offscreenSubtreeWasHidden ||\n          null === current ||\n          safelyDetachRef(current, current.return));\n      node = null !== finishedWork.memoizedState;\n      nextNode = null !== current && null !== current.memoizedState;\n      nodeName = offscreenSubtreeIsHidden;\n      type = offscreenSubtreeWasHidden;\n      offscreenSubtreeIsHidden = nodeName || node;\n      offscreenSubtreeWasHidden = type || nextNode;\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      offscreenSubtreeWasHidden = type;\n      offscreenSubtreeIsHidden = nodeName;\n      commitReconciliationEffects(finishedWork);\n      root = finishedWork.stateNode;\n      root._current = finishedWork;\n      root._visibility &= -3;\n      root._visibility |= root._pendingVisibility & 2;\n      if (\n        flags & 8192 &&\n        ((root._visibility = node\n          ? root._visibility & -2\n          : root._visibility | 1),\n        node &&\n          ((root = offscreenSubtreeIsHidden || offscreenSubtreeWasHidden),\n          null === current ||\n            nextNode ||\n            root ||\n            recursivelyTraverseDisappearLayoutEffects(finishedWork)),\n        null === finishedWork.memoizedProps ||\n          \"manual\" !== finishedWork.memoizedProps.mode)\n      )\n        a: for (current = null, root = finishedWork; ; ) {\n          if (5 === root.tag || 26 === root.tag || 27 === root.tag) {\n            if (null === current) {\n              nextNode = current = root;\n              try {\n                if (((hoistableRoot = nextNode.stateNode), node))\n                  (currentResource = hoistableRoot.style),\n                    \"function\" === typeof currentResource.setProperty\n                      ? currentResource.setProperty(\n                          \"display\",\n                          \"none\",\n                          \"important\"\n                        )\n                      : (currentResource.display = \"none\");\n                else {\n                  maybeNodes = nextNode.stateNode;\n                  i = nextNode.memoizedProps.style;\n                  var display =\n                    void 0 !== i && null !== i && i.hasOwnProperty(\"display\")\n                      ? i.display\n                      : null;\n                  maybeNodes.style.display =\n                    null == display || \"boolean\" === typeof display\n                      ? \"\"\n                      : (\"\" + display).trim();\n                }\n              } catch (error) {\n                captureCommitPhaseError(nextNode, nextNode.return, error);\n              }\n            }\n          } else if (6 === root.tag) {\n            if (null === current) {\n              nextNode = root;\n              try {\n                nextNode.stateNode.nodeValue = node\n                  ? \"\"\n                  : nextNode.memoizedProps;\n              } catch (error) {\n                captureCommitPhaseError(nextNode, nextNode.return, error);\n              }\n            }\n          } else if (\n            ((22 !== root.tag && 23 !== root.tag) ||\n              null === root.memoizedState ||\n              root === finishedWork) &&\n            null !== root.child\n          ) {\n            root.child.return = root;\n            root = root.child;\n            continue;\n          }\n          if (root === finishedWork) break a;\n          for (; null === root.sibling; ) {\n            if (null === root.return || root.return === finishedWork) break a;\n            current === root && (current = null);\n            root = root.return;\n          }\n          current === root && (current = null);\n          root.sibling.return = root.return;\n          root = root.sibling;\n        }\n      flags & 4 &&\n        ((flags = finishedWork.updateQueue),\n        null !== flags &&\n          ((current = flags.retryQueue),\n          null !== current &&\n            ((flags.retryQueue = null),\n            attachSuspenseRetryListeners(finishedWork, current))));\n      break;\n    case 19:\n      recursivelyTraverseMutationEffects(root, finishedWork);\n      commitReconciliationEffects(finishedWork);\n      flags & 4 &&\n        ((flags = finishedWork.updateQueue),\n        null !== flags &&\n          ((finishedWork.updateQueue = null),\n          attachSuspenseRetryListeners(finishedWork, flags)));\n      break;\n    case 21:\n      break;\n    default:\n      recursivelyTraverseMutationEffects(root, finishedWork),\n        commitReconciliationEffects(finishedWork);\n  }\n}\nfunction commitReconciliationEffects(finishedWork) {\n  var flags = finishedWork.flags;\n  if (flags & 2) {\n    try {\n      if (27 !== finishedWork.tag) {\n        a: {\n          for (var parent = finishedWork.return; null !== parent; ) {\n            if (isHostParent(parent)) {\n              var JSCompiler_inline_result = parent;\n              break a;\n            }\n            parent = parent.return;\n          }\n          throw Error(formatProdErrorMessage(160));\n        }\n        switch (JSCompiler_inline_result.tag) {\n          case 27:\n            var parent$jscomp$0 = JSCompiler_inline_result.stateNode,\n              before = getHostSibling(finishedWork);\n            insertOrAppendPlacementNode(finishedWork, before, parent$jscomp$0);\n            break;\n          case 5:\n            var parent$113 = JSCompiler_inline_result.stateNode;\n            JSCompiler_inline_result.flags & 32 &&\n              (setTextContent(parent$113, \"\"),\n              (JSCompiler_inline_result.flags &= -33));\n            var before$114 = getHostSibling(finishedWork);\n            insertOrAppendPlacementNode(finishedWork, before$114, parent$113);\n            break;\n          case 3:\n          case 4:\n            var parent$115 = JSCompiler_inline_result.stateNode.containerInfo,\n              before$116 = getHostSibling(finishedWork);\n            insertOrAppendPlacementNodeIntoContainer(\n              finishedWork,\n              before$116,\n              parent$115\n            );\n            break;\n          default:\n            throw Error(formatProdErrorMessage(161));\n        }\n      }\n    } catch (error) {\n      captureCommitPhaseError(finishedWork, finishedWork.return, error);\n    }\n    finishedWork.flags &= -3;\n  }\n  flags & 4096 && (finishedWork.flags &= -4097);\n}\nfunction recursivelyResetForms(parentFiber) {\n  if (parentFiber.subtreeFlags & 1024)\n    for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n      var fiber = parentFiber;\n      recursivelyResetForms(fiber);\n      5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n      parentFiber = parentFiber.sibling;\n    }\n}\nfunction recursivelyTraverseLayoutEffects(root, parentFiber) {\n  if (parentFiber.subtreeFlags & 8772)\n    for (parentFiber = parentFiber.child; null !== parentFiber; )\n      commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n        (parentFiber = parentFiber.sibling);\n}\nfunction recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n  for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n    var finishedWork = parentFiber;\n    switch (finishedWork.tag) {\n      case 0:\n      case 11:\n      case 14:\n      case 15:\n        commitHookEffectListUnmount(4, finishedWork, finishedWork.return);\n        recursivelyTraverseDisappearLayoutEffects(finishedWork);\n        break;\n      case 1:\n        safelyDetachRef(finishedWork, finishedWork.return);\n        var instance = finishedWork.stateNode;\n        \"function\" === typeof instance.componentWillUnmount &&\n          safelyCallComponentWillUnmount(\n            finishedWork,\n            finishedWork.return,\n            instance\n          );\n        recursivelyTraverseDisappearLayoutEffects(finishedWork);\n        break;\n      case 26:\n      case 27:\n      case 5:\n        safelyDetachRef(finishedWork, finishedWork.return);\n        recursivelyTraverseDisappearLayoutEffects(finishedWork);\n        break;\n      case 22:\n        safelyDetachRef(finishedWork, finishedWork.return);\n        null === finishedWork.memoizedState &&\n          recursivelyTraverseDisappearLayoutEffects(finishedWork);\n        break;\n      default:\n        recursivelyTraverseDisappearLayoutEffects(finishedWork);\n    }\n    parentFiber = parentFiber.sibling;\n  }\n}\nfunction recursivelyTraverseReappearLayoutEffects(\n  finishedRoot$jscomp$0,\n  parentFiber,\n  includeWorkInProgressEffects\n) {\n  includeWorkInProgressEffects =\n    includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n  for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n    var current = parentFiber.alternate,\n      finishedRoot = finishedRoot$jscomp$0,\n      finishedWork = parentFiber,\n      flags = finishedWork.flags;\n    switch (finishedWork.tag) {\n      case 0:\n      case 11:\n      case 15:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n        commitHookEffectListMount(4, finishedWork);\n        break;\n      case 1:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n        current = finishedWork;\n        finishedRoot = current.stateNode;\n        if (\"function\" === typeof finishedRoot.componentDidMount)\n          try {\n            finishedRoot.componentDidMount();\n          } catch (error) {\n            captureCommitPhaseError(current, current.return, error);\n          }\n        current = finishedWork;\n        finishedRoot = current.updateQueue;\n        if (null !== finishedRoot) {\n          var instance = current.stateNode;\n          try {\n            var hiddenCallbacks = finishedRoot.shared.hiddenCallbacks;\n            if (null !== hiddenCallbacks)\n              for (\n                finishedRoot.shared.hiddenCallbacks = null, finishedRoot = 0;\n                finishedRoot < hiddenCallbacks.length;\n                finishedRoot++\n              )\n                callCallback(hiddenCallbacks[finishedRoot], instance);\n          } catch (error) {\n            captureCommitPhaseError(current, current.return, error);\n          }\n        }\n        includeWorkInProgressEffects &&\n          flags & 64 &&\n          commitClassCallbacks(finishedWork);\n        safelyAttachRef(finishedWork, finishedWork.return);\n        break;\n      case 26:\n      case 27:\n      case 5:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n        includeWorkInProgressEffects &&\n          null === current &&\n          flags & 4 &&\n          commitHostMount(finishedWork);\n        safelyAttachRef(finishedWork, finishedWork.return);\n        break;\n      case 12:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n        break;\n      case 13:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n        includeWorkInProgressEffects &&\n          flags & 4 &&\n          commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n        break;\n      case 22:\n        null === finishedWork.memoizedState &&\n          recursivelyTraverseReappearLayoutEffects(\n            finishedRoot,\n            finishedWork,\n            includeWorkInProgressEffects\n          );\n        safelyAttachRef(finishedWork, finishedWork.return);\n        break;\n      default:\n        recursivelyTraverseReappearLayoutEffects(\n          finishedRoot,\n          finishedWork,\n          includeWorkInProgressEffects\n        );\n    }\n    parentFiber = parentFiber.sibling;\n  }\n}\nfunction commitOffscreenPassiveMountEffects(current, finishedWork) {\n  var previousCache = null;\n  null !== current &&\n    null !== current.memoizedState &&\n    null !== current.memoizedState.cachePool &&\n    (previousCache = current.memoizedState.cachePool.pool);\n  current = null;\n  null !== finishedWork.memoizedState &&\n    null !== finishedWork.memoizedState.cachePool &&\n    (current = finishedWork.memoizedState.cachePool.pool);\n  current !== previousCache &&\n    (null != current && current.refCount++,\n    null != previousCache && releaseCache(previousCache));\n}\nfunction commitCachePassiveMountEffect(current, finishedWork) {\n  current = null;\n  null !== finishedWork.alternate &&\n    (current = finishedWork.alternate.memoizedState.cache);\n  finishedWork = finishedWork.memoizedState.cache;\n  finishedWork !== current &&\n    (finishedWork.refCount++, null != current && releaseCache(current));\n}\nfunction recursivelyTraversePassiveMountEffects(\n  root,\n  parentFiber,\n  committedLanes,\n  committedTransitions\n) {\n  if (parentFiber.subtreeFlags & 10256)\n    for (parentFiber = parentFiber.child; null !== parentFiber; )\n      commitPassiveMountOnFiber(\n        root,\n        parentFiber,\n        committedLanes,\n        committedTransitions\n      ),\n        (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveMountOnFiber(\n  finishedRoot,\n  finishedWork,\n  committedLanes,\n  committedTransitions\n) {\n  var flags = finishedWork.flags;\n  switch (finishedWork.tag) {\n    case 0:\n    case 11:\n    case 15:\n      recursivelyTraversePassiveMountEffects(\n        finishedRoot,\n        finishedWork,\n        committedLanes,\n        committedTransitions\n      );\n      flags & 2048 && commitHookEffectListMount(9, finishedWork);\n      break;\n    case 3:\n      recursivelyTraversePassiveMountEffects(\n        finishedRoot,\n        finishedWork,\n        committedLanes,\n        committedTransitions\n      );\n      flags & 2048 &&\n        ((finishedRoot = null),\n        null !== finishedWork.alternate &&\n          (finishedRoot = finishedWork.alternate.memoizedState.cache),\n        (finishedWork = finishedWork.memoizedState.cache),\n        finishedWork !== finishedRoot &&\n          (finishedWork.refCount++,\n          null != finishedRoot && releaseCache(finishedRoot)));\n      break;\n    case 12:\n      if (flags & 2048) {\n        recursivelyTraversePassiveMountEffects(\n          finishedRoot,\n          finishedWork,\n          committedLanes,\n          committedTransitions\n        );\n        finishedRoot = finishedWork.stateNode;\n        try {\n          var _finishedWork$memoize2 = finishedWork.memoizedProps,\n            id = _finishedWork$memoize2.id,\n            onPostCommit = _finishedWork$memoize2.onPostCommit;\n          \"function\" === typeof onPostCommit &&\n            onPostCommit(\n              id,\n              null === finishedWork.alternate ? \"mount\" : \"update\",\n              finishedRoot.passiveEffectDuration,\n              -0\n            );\n        } catch (error) {\n          captureCommitPhaseError(finishedWork, finishedWork.return, error);\n        }\n      } else\n        recursivelyTraversePassiveMountEffects(\n          finishedRoot,\n          finishedWork,\n          committedLanes,\n          committedTransitions\n        );\n      break;\n    case 23:\n      break;\n    case 22:\n      _finishedWork$memoize2 = finishedWork.stateNode;\n      null !== finishedWork.memoizedState\n        ? _finishedWork$memoize2._visibility & 4\n          ? recursivelyTraversePassiveMountEffects(\n              finishedRoot,\n              finishedWork,\n              committedLanes,\n              committedTransitions\n            )\n          : recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork)\n        : _finishedWork$memoize2._visibility & 4\n          ? recursivelyTraversePassiveMountEffects(\n              finishedRoot,\n              finishedWork,\n              committedLanes,\n              committedTransitions\n            )\n          : ((_finishedWork$memoize2._visibility |= 4),\n            recursivelyTraverseReconnectPassiveEffects(\n              finishedRoot,\n              finishedWork,\n              committedLanes,\n              committedTransitions,\n              0 !== (finishedWork.subtreeFlags & 10256)\n            ));\n      flags & 2048 &&\n        commitOffscreenPassiveMountEffects(\n          finishedWork.alternate,\n          finishedWork\n        );\n      break;\n    case 24:\n      recursivelyTraversePassiveMountEffects(\n        finishedRoot,\n        finishedWork,\n        committedLanes,\n        committedTransitions\n      );\n      flags & 2048 &&\n        commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n      break;\n    default:\n      recursivelyTraversePassiveMountEffects(\n        finishedRoot,\n        finishedWork,\n        committedLanes,\n        committedTransitions\n      );\n  }\n}\nfunction recursivelyTraverseReconnectPassiveEffects(\n  finishedRoot$jscomp$0,\n  parentFiber,\n  committedLanes$jscomp$0,\n  committedTransitions$jscomp$0,\n  includeWorkInProgressEffects\n) {\n  includeWorkInProgressEffects =\n    includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 10256);\n  for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n    var finishedRoot = finishedRoot$jscomp$0,\n      finishedWork = parentFiber,\n      committedLanes = committedLanes$jscomp$0,\n      committedTransitions = committedTransitions$jscomp$0,\n      flags = finishedWork.flags;\n    switch (finishedWork.tag) {\n      case 0:\n      case 11:\n      case 15:\n        recursivelyTraverseReconnectPassiveEffects(\n          finishedRoot,\n          finishedWork,\n          committedLanes,\n          committedTransitions,\n          includeWorkInProgressEffects\n        );\n        commitHookEffectListMount(8, finishedWork);\n        break;\n      case 23:\n        break;\n      case 22:\n        var instance = finishedWork.stateNode;\n        null !== finishedWork.memoizedState\n          ? instance._visibility & 4\n            ? recursivelyTraverseReconnectPassiveEffects(\n                finishedRoot,\n                finishedWork,\n                committedLanes,\n                committedTransitions,\n                includeWorkInProgressEffects\n              )\n            : recursivelyTraverseAtomicPassiveEffects(\n                finishedRoot,\n                finishedWork\n              )\n          : ((instance._visibility |= 4),\n            recursivelyTraverseReconnectPassiveEffects(\n              finishedRoot,\n              finishedWork,\n              committedLanes,\n              committedTransitions,\n              includeWorkInProgressEffects\n            ));\n        includeWorkInProgressEffects &&\n          flags & 2048 &&\n          commitOffscreenPassiveMountEffects(\n            finishedWork.alternate,\n            finishedWork\n          );\n        break;\n      case 24:\n        recursivelyTraverseReconnectPassiveEffects(\n          finishedRoot,\n          finishedWork,\n          committedLanes,\n          committedTransitions,\n          includeWorkInProgressEffects\n        );\n        includeWorkInProgressEffects &&\n          flags & 2048 &&\n          commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n        break;\n      default:\n        recursivelyTraverseReconnectPassiveEffects(\n          finishedRoot,\n          finishedWork,\n          committedLanes,\n          committedTransitions,\n          includeWorkInProgressEffects\n        );\n    }\n    parentFiber = parentFiber.sibling;\n  }\n}\nfunction recursivelyTraverseAtomicPassiveEffects(\n  finishedRoot$jscomp$0,\n  parentFiber\n) {\n  if (parentFiber.subtreeFlags & 10256)\n    for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n      var finishedRoot = finishedRoot$jscomp$0,\n        finishedWork = parentFiber,\n        flags = finishedWork.flags;\n      switch (finishedWork.tag) {\n        case 22:\n          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n          flags & 2048 &&\n            commitOffscreenPassiveMountEffects(\n              finishedWork.alternate,\n              finishedWork\n            );\n          break;\n        case 24:\n          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n          flags & 2048 &&\n            commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n          break;\n        default:\n          recursivelyTraverseAtomicPassiveEffects(finishedRoot, finishedWork);\n      }\n      parentFiber = parentFiber.sibling;\n    }\n}\nvar suspenseyCommitFlag = 8192;\nfunction recursivelyAccumulateSuspenseyCommit(parentFiber) {\n  if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n    for (parentFiber = parentFiber.child; null !== parentFiber; )\n      accumulateSuspenseyCommitOnFiber(parentFiber),\n        (parentFiber = parentFiber.sibling);\n}\nfunction accumulateSuspenseyCommitOnFiber(fiber) {\n  switch (fiber.tag) {\n    case 26:\n      recursivelyAccumulateSuspenseyCommit(fiber);\n      fiber.flags & suspenseyCommitFlag &&\n        null !== fiber.memoizedState &&\n        suspendResource(\n          currentHoistableRoot,\n          fiber.memoizedState,\n          fiber.memoizedProps\n        );\n      break;\n    case 5:\n      recursivelyAccumulateSuspenseyCommit(fiber);\n      break;\n    case 3:\n    case 4:\n      var previousHoistableRoot = currentHoistableRoot;\n      currentHoistableRoot = getHoistableRoot(fiber.stateNode.containerInfo);\n      recursivelyAccumulateSuspenseyCommit(fiber);\n      currentHoistableRoot = previousHoistableRoot;\n      break;\n    case 22:\n      null === fiber.memoizedState &&\n        ((previousHoistableRoot = fiber.alternate),\n        null !== previousHoistableRoot &&\n        null !== previousHoistableRoot.memoizedState\n          ? ((previousHoistableRoot = suspenseyCommitFlag),\n            (suspenseyCommitFlag = 16777216),\n            recursivelyAccumulateSuspenseyCommit(fiber),\n            (suspenseyCommitFlag = previousHoistableRoot))\n          : recursivelyAccumulateSuspenseyCommit(fiber));\n      break;\n    default:\n      recursivelyAccumulateSuspenseyCommit(fiber);\n  }\n}\nfunction detachAlternateSiblings(parentFiber) {\n  var previousFiber = parentFiber.alternate;\n  if (\n    null !== previousFiber &&\n    ((parentFiber = previousFiber.child), null !== parentFiber)\n  ) {\n    previousFiber.child = null;\n    do\n      (previousFiber = parentFiber.sibling),\n        (parentFiber.sibling = null),\n        (parentFiber = previousFiber);\n    while (null !== parentFiber);\n  }\n}\nfunction recursivelyTraversePassiveUnmountEffects(parentFiber) {\n  var deletions = parentFiber.deletions;\n  if (0 !== (parentFiber.flags & 16)) {\n    if (null !== deletions)\n      for (var i = 0; i < deletions.length; i++) {\n        var childToDelete = deletions[i];\n        nextEffect = childToDelete;\n        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n          childToDelete,\n          parentFiber\n        );\n      }\n    detachAlternateSiblings(parentFiber);\n  }\n  if (parentFiber.subtreeFlags & 10256)\n    for (parentFiber = parentFiber.child; null !== parentFiber; )\n      commitPassiveUnmountOnFiber(parentFiber),\n        (parentFiber = parentFiber.sibling);\n}\nfunction commitPassiveUnmountOnFiber(finishedWork) {\n  switch (finishedWork.tag) {\n    case 0:\n    case 11:\n    case 15:\n      recursivelyTraversePassiveUnmountEffects(finishedWork);\n      finishedWork.flags & 2048 &&\n        commitHookEffectListUnmount(9, finishedWork, finishedWork.return);\n      break;\n    case 3:\n      recursivelyTraversePassiveUnmountEffects(finishedWork);\n      break;\n    case 12:\n      recursivelyTraversePassiveUnmountEffects(finishedWork);\n      break;\n    case 22:\n      var instance = finishedWork.stateNode;\n      null !== finishedWork.memoizedState &&\n      instance._visibility & 4 &&\n      (null === finishedWork.return || 13 !== finishedWork.return.tag)\n        ? ((instance._visibility &= -5),\n          recursivelyTraverseDisconnectPassiveEffects(finishedWork))\n        : recursivelyTraversePassiveUnmountEffects(finishedWork);\n      break;\n    default:\n      recursivelyTraversePassiveUnmountEffects(finishedWork);\n  }\n}\nfunction recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n  var deletions = parentFiber.deletions;\n  if (0 !== (parentFiber.flags & 16)) {\n    if (null !== deletions)\n      for (var i = 0; i < deletions.length; i++) {\n        var childToDelete = deletions[i];\n        nextEffect = childToDelete;\n        commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n          childToDelete,\n          parentFiber\n        );\n      }\n    detachAlternateSiblings(parentFiber);\n  }\n  for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n    deletions = parentFiber;\n    switch (deletions.tag) {\n      case 0:\n      case 11:\n      case 15:\n        commitHookEffectListUnmount(8, deletions, deletions.return);\n        recursivelyTraverseDisconnectPassiveEffects(deletions);\n        break;\n      case 22:\n        i = deletions.stateNode;\n        i._visibility & 4 &&\n          ((i._visibility &= -5),\n          recursivelyTraverseDisconnectPassiveEffects(deletions));\n        break;\n      default:\n        recursivelyTraverseDisconnectPassiveEffects(deletions);\n    }\n    parentFiber = parentFiber.sibling;\n  }\n}\nfunction commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n  deletedSubtreeRoot,\n  nearestMountedAncestor\n) {\n  for (; null !== nextEffect; ) {\n    var fiber = nextEffect;\n    switch (fiber.tag) {\n      case 0:\n      case 11:\n      case 15:\n        commitHookEffectListUnmount(8, fiber, nearestMountedAncestor);\n        break;\n      case 23:\n      case 22:\n        if (\n          null !== fiber.memoizedState &&\n          null !== fiber.memoizedState.cachePool\n        ) {\n          var cache = fiber.memoizedState.cachePool.pool;\n          null != cache && cache.refCount++;\n        }\n        break;\n      case 24:\n        releaseCache(fiber.memoizedState.cache);\n    }\n    cache = fiber.child;\n    if (null !== cache) (cache.return = fiber), (nextEffect = cache);\n    else\n      a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n        cache = nextEffect;\n        var sibling = cache.sibling,\n          returnFiber = cache.return;\n        detachFiberAfterEffects(cache);\n        if (cache === fiber) {\n          nextEffect = null;\n          break a;\n        }\n        if (null !== sibling) {\n          sibling.return = returnFiber;\n          nextEffect = sibling;\n          break a;\n        }\n        nextEffect = returnFiber;\n      }\n  }\n}\nfunction FiberNode(tag, pendingProps, key, mode) {\n  this.tag = tag;\n  this.key = key;\n  this.sibling =\n    this.child =\n    this.return =\n    this.stateNode =\n    this.type =\n    this.elementType =\n      null;\n  this.index = 0;\n  this.refCleanup = this.ref = null;\n  this.pendingProps = pendingProps;\n  this.dependencies =\n    this.memoizedState =\n    this.updateQueue =\n    this.memoizedProps =\n      null;\n  this.mode = mode;\n  this.subtreeFlags = this.flags = 0;\n  this.deletions = null;\n  this.childLanes = this.lanes = 0;\n  this.alternate = null;\n}\nfunction createFiberImplClass(tag, pendingProps, key, mode) {\n  return new FiberNode(tag, pendingProps, key, mode);\n}\nfunction shouldConstruct(Component) {\n  Component = Component.prototype;\n  return !(!Component || !Component.isReactComponent);\n}\nfunction createWorkInProgress(current, pendingProps) {\n  var workInProgress = current.alternate;\n  null === workInProgress\n    ? ((workInProgress = createFiberImplClass(\n        current.tag,\n        pendingProps,\n        current.key,\n        current.mode\n      )),\n      (workInProgress.elementType = current.elementType),\n      (workInProgress.type = current.type),\n      (workInProgress.stateNode = current.stateNode),\n      (workInProgress.alternate = current),\n      (current.alternate = workInProgress))\n    : ((workInProgress.pendingProps = pendingProps),\n      (workInProgress.type = current.type),\n      (workInProgress.flags = 0),\n      (workInProgress.subtreeFlags = 0),\n      (workInProgress.deletions = null));\n  workInProgress.flags = current.flags & 31457280;\n  workInProgress.childLanes = current.childLanes;\n  workInProgress.lanes = current.lanes;\n  workInProgress.child = current.child;\n  workInProgress.memoizedProps = current.memoizedProps;\n  workInProgress.memoizedState = current.memoizedState;\n  workInProgress.updateQueue = current.updateQueue;\n  pendingProps = current.dependencies;\n  workInProgress.dependencies =\n    null === pendingProps\n      ? null\n      : { lanes: pendingProps.lanes, firstContext: pendingProps.firstContext };\n  workInProgress.sibling = current.sibling;\n  workInProgress.index = current.index;\n  workInProgress.ref = current.ref;\n  workInProgress.refCleanup = current.refCleanup;\n  return workInProgress;\n}\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n  workInProgress.flags &= 31457282;\n  var current = workInProgress.alternate;\n  null === current\n    ? ((workInProgress.childLanes = 0),\n      (workInProgress.lanes = renderLanes),\n      (workInProgress.child = null),\n      (workInProgress.subtreeFlags = 0),\n      (workInProgress.memoizedProps = null),\n      (workInProgress.memoizedState = null),\n      (workInProgress.updateQueue = null),\n      (workInProgress.dependencies = null),\n      (workInProgress.stateNode = null))\n    : ((workInProgress.childLanes = current.childLanes),\n      (workInProgress.lanes = current.lanes),\n      (workInProgress.child = current.child),\n      (workInProgress.subtreeFlags = 0),\n      (workInProgress.deletions = null),\n      (workInProgress.memoizedProps = current.memoizedProps),\n      (workInProgress.memoizedState = current.memoizedState),\n      (workInProgress.updateQueue = current.updateQueue),\n      (workInProgress.type = current.type),\n      (renderLanes = current.dependencies),\n      (workInProgress.dependencies =\n        null === renderLanes\n          ? null\n          : {\n              lanes: renderLanes.lanes,\n              firstContext: renderLanes.firstContext\n            }));\n  return workInProgress;\n}\nfunction createFiberFromTypeAndProps(\n  type,\n  key,\n  pendingProps,\n  owner,\n  mode,\n  lanes\n) {\n  var fiberTag = 0;\n  owner = type;\n  if (\"function\" === typeof type) shouldConstruct(type) && (fiberTag = 1);\n  else if (\"string\" === typeof type)\n    fiberTag = isHostHoistableType(\n      type,\n      pendingProps,\n      contextStackCursor.current\n    )\n      ? 26\n      : \"html\" === type || \"head\" === type || \"body\" === type\n        ? 27\n        : 5;\n  else\n    a: switch (type) {\n      case REACT_FRAGMENT_TYPE:\n        return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n      case REACT_STRICT_MODE_TYPE:\n        fiberTag = 8;\n        mode |= 24;\n        break;\n      case REACT_PROFILER_TYPE:\n        return (\n          (type = createFiberImplClass(12, pendingProps, key, mode | 2)),\n          (type.elementType = REACT_PROFILER_TYPE),\n          (type.lanes = lanes),\n          type\n        );\n      case REACT_SUSPENSE_TYPE:\n        return (\n          (type = createFiberImplClass(13, pendingProps, key, mode)),\n          (type.elementType = REACT_SUSPENSE_TYPE),\n          (type.lanes = lanes),\n          type\n        );\n      case REACT_SUSPENSE_LIST_TYPE:\n        return (\n          (type = createFiberImplClass(19, pendingProps, key, mode)),\n          (type.elementType = REACT_SUSPENSE_LIST_TYPE),\n          (type.lanes = lanes),\n          type\n        );\n      case REACT_OFFSCREEN_TYPE:\n        return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n      default:\n        if (\"object\" === typeof type && null !== type)\n          switch (type.$$typeof) {\n            case REACT_PROVIDER_TYPE:\n            case REACT_CONTEXT_TYPE:\n              fiberTag = 10;\n              break a;\n            case REACT_CONSUMER_TYPE:\n              fiberTag = 9;\n              break a;\n            case REACT_FORWARD_REF_TYPE:\n              fiberTag = 11;\n              break a;\n            case REACT_MEMO_TYPE:\n              fiberTag = 14;\n              break a;\n            case REACT_LAZY_TYPE:\n              fiberTag = 16;\n              owner = null;\n              break a;\n          }\n        fiberTag = 29;\n        pendingProps = Error(\n          formatProdErrorMessage(130, null === type ? \"null\" : typeof type, \"\")\n        );\n        owner = null;\n    }\n  key = createFiberImplClass(fiberTag, pendingProps, key, mode);\n  key.elementType = type;\n  key.type = owner;\n  key.lanes = lanes;\n  return key;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n  elements = createFiberImplClass(7, elements, key, mode);\n  elements.lanes = lanes;\n  return elements;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n  pendingProps = createFiberImplClass(22, pendingProps, key, mode);\n  pendingProps.elementType = REACT_OFFSCREEN_TYPE;\n  pendingProps.lanes = lanes;\n  var primaryChildInstance = {\n    _visibility: 1,\n    _pendingVisibility: 1,\n    _pendingMarkers: null,\n    _retryCache: null,\n    _transitions: null,\n    _current: null,\n    detach: function () {\n      var fiber = primaryChildInstance._current;\n      if (null === fiber) throw Error(formatProdErrorMessage(456));\n      if (0 === (primaryChildInstance._pendingVisibility & 2)) {\n        var root = enqueueConcurrentRenderForLane(fiber, 2);\n        null !== root &&\n          ((primaryChildInstance._pendingVisibility |= 2),\n          scheduleUpdateOnFiber(root, fiber, 2));\n      }\n    },\n    attach: function () {\n      var fiber = primaryChildInstance._current;\n      if (null === fiber) throw Error(formatProdErrorMessage(456));\n      if (0 !== (primaryChildInstance._pendingVisibility & 2)) {\n        var root = enqueueConcurrentRenderForLane(fiber, 2);\n        null !== root &&\n          ((primaryChildInstance._pendingVisibility &= -3),\n          scheduleUpdateOnFiber(root, fiber, 2));\n      }\n    }\n  };\n  pendingProps.stateNode = primaryChildInstance;\n  return pendingProps;\n}\nfunction createFiberFromText(content, mode, lanes) {\n  content = createFiberImplClass(6, content, null, mode);\n  content.lanes = lanes;\n  return content;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n  mode = createFiberImplClass(\n    4,\n    null !== portal.children ? portal.children : [],\n    portal.key,\n    mode\n  );\n  mode.lanes = lanes;\n  mode.stateNode = {\n    containerInfo: portal.containerInfo,\n    pendingChildren: null,\n    implementation: portal.implementation\n  };\n  return mode;\n}\nfunction markUpdate(workInProgress) {\n  workInProgress.flags |= 4;\n}\nfunction preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n  if (\"stylesheet\" !== resource.type || 0 !== (resource.state.loading & 4))\n    workInProgress.flags &= -16777217;\n  else if (((workInProgress.flags |= 16777216), !preloadResource(resource))) {\n    resource = suspenseHandlerStackCursor.current;\n    if (\n      null !== resource &&\n      ((workInProgressRootRenderLanes & 4194176) ===\n      workInProgressRootRenderLanes\n        ? null !== shellBoundary\n        : ((workInProgressRootRenderLanes & 62914560) !==\n            workInProgressRootRenderLanes &&\n            0 === (workInProgressRootRenderLanes & 536870912)) ||\n          resource !== shellBoundary)\n    )\n      throw (\n        ((suspendedThenable = noopSuspenseyCommitThenable),\n        SuspenseyCommitException)\n      );\n    workInProgress.flags |= 8192;\n  }\n}\nfunction scheduleRetryEffect(workInProgress, retryQueue) {\n  null !== retryQueue && (workInProgress.flags |= 4);\n  workInProgress.flags & 16384 &&\n    ((retryQueue =\n      22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n    (workInProgress.lanes |= retryQueue),\n    (workInProgressSuspendedRetryLanes |= retryQueue));\n}\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n  if (!isHydrating)\n    switch (renderState.tailMode) {\n      case \"hidden\":\n        hasRenderedATailFallback = renderState.tail;\n        for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n          null !== hasRenderedATailFallback.alternate &&\n            (lastTailNode = hasRenderedATailFallback),\n            (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n        null === lastTailNode\n          ? (renderState.tail = null)\n          : (lastTailNode.sibling = null);\n        break;\n      case \"collapsed\":\n        lastTailNode = renderState.tail;\n        for (var lastTailNode$131 = null; null !== lastTailNode; )\n          null !== lastTailNode.alternate && (lastTailNode$131 = lastTailNode),\n            (lastTailNode = lastTailNode.sibling);\n        null === lastTailNode$131\n          ? hasRenderedATailFallback || null === renderState.tail\n            ? (renderState.tail = null)\n            : (renderState.tail.sibling = null)\n          : (lastTailNode$131.sibling = null);\n    }\n}\nfunction bubbleProperties(completedWork) {\n  var didBailout =\n      null !== completedWork.alternate &&\n      completedWork.alternate.child === completedWork.child,\n    newChildLanes = 0,\n    subtreeFlags = 0;\n  if (didBailout)\n    for (var child$132 = completedWork.child; null !== child$132; )\n      (newChildLanes |= child$132.lanes | child$132.childLanes),\n        (subtreeFlags |= child$132.subtreeFlags & 31457280),\n        (subtreeFlags |= child$132.flags & 31457280),\n        (child$132.return = completedWork),\n        (child$132 = child$132.sibling);\n  else\n    for (child$132 = completedWork.child; null !== child$132; )\n      (newChildLanes |= child$132.lanes | child$132.childLanes),\n        (subtreeFlags |= child$132.subtreeFlags),\n        (subtreeFlags |= child$132.flags),\n        (child$132.return = completedWork),\n        (child$132 = child$132.sibling);\n  completedWork.subtreeFlags |= subtreeFlags;\n  completedWork.childLanes = newChildLanes;\n  return didBailout;\n}\nfunction completeWork(current, workInProgress, renderLanes) {\n  var newProps = workInProgress.pendingProps;\n  popTreeContext(workInProgress);\n  switch (workInProgress.tag) {\n    case 16:\n    case 15:\n    case 0:\n    case 11:\n    case 7:\n    case 8:\n    case 12:\n    case 9:\n    case 14:\n      return bubbleProperties(workInProgress), null;\n    case 1:\n      return bubbleProperties(workInProgress), null;\n    case 3:\n      renderLanes = workInProgress.stateNode;\n      newProps = null;\n      null !== current && (newProps = current.memoizedState.cache);\n      workInProgress.memoizedState.cache !== newProps &&\n        (workInProgress.flags |= 2048);\n      popProvider(CacheContext);\n      popHostContainer();\n      renderLanes.pendingContext &&\n        ((renderLanes.context = renderLanes.pendingContext),\n        (renderLanes.pendingContext = null));\n      if (null === current || null === current.child)\n        popHydrationState(workInProgress)\n          ? markUpdate(workInProgress)\n          : null === current ||\n            (current.memoizedState.isDehydrated &&\n              0 === (workInProgress.flags & 256)) ||\n            ((workInProgress.flags |= 1024),\n            null !== hydrationErrors &&\n              (queueRecoverableErrors(hydrationErrors),\n              (hydrationErrors = null)));\n      bubbleProperties(workInProgress);\n      return null;\n    case 26:\n      return (\n        (renderLanes = workInProgress.memoizedState),\n        null === current\n          ? (markUpdate(workInProgress),\n            null !== renderLanes\n              ? (bubbleProperties(workInProgress),\n                preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n              : (bubbleProperties(workInProgress),\n                (workInProgress.flags &= -16777217)))\n          : renderLanes\n            ? renderLanes !== current.memoizedState\n              ? (markUpdate(workInProgress),\n                bubbleProperties(workInProgress),\n                preloadResourceAndSuspendIfNeeded(workInProgress, renderLanes))\n              : (bubbleProperties(workInProgress),\n                (workInProgress.flags &= -16777217))\n            : (current.memoizedProps !== newProps && markUpdate(workInProgress),\n              bubbleProperties(workInProgress),\n              (workInProgress.flags &= -16777217)),\n        null\n      );\n    case 27:\n      popHostContext(workInProgress);\n      renderLanes = rootInstanceStackCursor.current;\n      var type = workInProgress.type;\n      if (null !== current && null != workInProgress.stateNode)\n        current.memoizedProps !== newProps && markUpdate(workInProgress);\n      else {\n        if (!newProps) {\n          if (null === workInProgress.stateNode)\n            throw Error(formatProdErrorMessage(166));\n          bubbleProperties(workInProgress);\n          return null;\n        }\n        current = contextStackCursor.current;\n        popHydrationState(workInProgress)\n          ? prepareToHydrateHostInstance(workInProgress, current)\n          : ((current = resolveSingletonInstance(type, newProps, renderLanes)),\n            (workInProgress.stateNode = current),\n            markUpdate(workInProgress));\n      }\n      bubbleProperties(workInProgress);\n      return null;\n    case 5:\n      popHostContext(workInProgress);\n      renderLanes = workInProgress.type;\n      if (null !== current && null != workInProgress.stateNode)\n        current.memoizedProps !== newProps && markUpdate(workInProgress);\n      else {\n        if (!newProps) {\n          if (null === workInProgress.stateNode)\n            throw Error(formatProdErrorMessage(166));\n          bubbleProperties(workInProgress);\n          return null;\n        }\n        current = contextStackCursor.current;\n        if (popHydrationState(workInProgress))\n          prepareToHydrateHostInstance(workInProgress, current);\n        else {\n          type = getOwnerDocumentFromRootContainer(\n            rootInstanceStackCursor.current\n          );\n          switch (current) {\n            case 1:\n              current = type.createElementNS(\n                \"http://www.w3.org/2000/svg\",\n                renderLanes\n              );\n              break;\n            case 2:\n              current = type.createElementNS(\n                \"http://www.w3.org/1998/Math/MathML\",\n                renderLanes\n              );\n              break;\n            default:\n              switch (renderLanes) {\n                case \"svg\":\n                  current = type.createElementNS(\n                    \"http://www.w3.org/2000/svg\",\n                    renderLanes\n                  );\n                  break;\n                case \"math\":\n                  current = type.createElementNS(\n                    \"http://www.w3.org/1998/Math/MathML\",\n                    renderLanes\n                  );\n                  break;\n                case \"script\":\n                  current = type.createElement(\"div\");\n                  current.innerHTML = \"<script>\\x3c/script>\";\n                  current = current.removeChild(current.firstChild);\n                  break;\n                case \"select\":\n                  current =\n                    \"string\" === typeof newProps.is\n                      ? type.createElement(\"select\", { is: newProps.is })\n                      : type.createElement(\"select\");\n                  newProps.multiple\n                    ? (current.multiple = !0)\n                    : newProps.size && (current.size = newProps.size);\n                  break;\n                default:\n                  current =\n                    \"string\" === typeof newProps.is\n                      ? type.createElement(renderLanes, { is: newProps.is })\n                      : type.createElement(renderLanes);\n              }\n          }\n          current[internalInstanceKey] = workInProgress;\n          current[internalPropsKey] = newProps;\n          a: for (type = workInProgress.child; null !== type; ) {\n            if (5 === type.tag || 6 === type.tag)\n              current.appendChild(type.stateNode);\n            else if (4 !== type.tag && 27 !== type.tag && null !== type.child) {\n              type.child.return = type;\n              type = type.child;\n              continue;\n            }\n            if (type === workInProgress) break a;\n            for (; null === type.sibling; ) {\n              if (null === type.return || type.return === workInProgress)\n                break a;\n              type = type.return;\n            }\n            type.sibling.return = type.return;\n            type = type.sibling;\n          }\n          workInProgress.stateNode = current;\n          a: switch (\n            (setInitialProperties(current, renderLanes, newProps), renderLanes)\n          ) {\n            case \"button\":\n            case \"input\":\n            case \"select\":\n            case \"textarea\":\n              current = !!newProps.autoFocus;\n              break a;\n            case \"img\":\n              current = !0;\n              break a;\n            default:\n              current = !1;\n          }\n          current && markUpdate(workInProgress);\n        }\n      }\n      bubbleProperties(workInProgress);\n      workInProgress.flags &= -16777217;\n      return null;\n    case 6:\n      if (current && null != workInProgress.stateNode)\n        current.memoizedProps !== newProps && markUpdate(workInProgress);\n      else {\n        if (\"string\" !== typeof newProps && null === workInProgress.stateNode)\n          throw Error(formatProdErrorMessage(166));\n        current = rootInstanceStackCursor.current;\n        if (popHydrationState(workInProgress)) {\n          current = workInProgress.stateNode;\n          renderLanes = workInProgress.memoizedProps;\n          newProps = null;\n          type = hydrationParentFiber;\n          if (null !== type)\n            switch (type.tag) {\n              case 27:\n              case 5:\n                newProps = type.memoizedProps;\n            }\n          current[internalInstanceKey] = workInProgress;\n          current =\n            current.nodeValue === renderLanes ||\n            (null !== newProps && !0 === newProps.suppressHydrationWarning) ||\n            checkForUnmatchedText(current.nodeValue, renderLanes)\n              ? !0\n              : !1;\n          current || throwOnHydrationMismatch(workInProgress);\n        } else\n          (current =\n            getOwnerDocumentFromRootContainer(current).createTextNode(\n              newProps\n            )),\n            (current[internalInstanceKey] = workInProgress),\n            (workInProgress.stateNode = current);\n      }\n      bubbleProperties(workInProgress);\n      return null;\n    case 13:\n      newProps = workInProgress.memoizedState;\n      if (\n        null === current ||\n        (null !== current.memoizedState &&\n          null !== current.memoizedState.dehydrated)\n      ) {\n        type = popHydrationState(workInProgress);\n        if (null !== newProps && null !== newProps.dehydrated) {\n          if (null === current) {\n            if (!type) throw Error(formatProdErrorMessage(318));\n            type = workInProgress.memoizedState;\n            type = null !== type ? type.dehydrated : null;\n            if (!type) throw Error(formatProdErrorMessage(317));\n            type[internalInstanceKey] = workInProgress;\n          } else\n            resetHydrationState(),\n              0 === (workInProgress.flags & 128) &&\n                (workInProgress.memoizedState = null),\n              (workInProgress.flags |= 4);\n          bubbleProperties(workInProgress);\n          type = !1;\n        } else\n          null !== hydrationErrors &&\n            (queueRecoverableErrors(hydrationErrors), (hydrationErrors = null)),\n            (type = !0);\n        if (!type) {\n          if (workInProgress.flags & 256)\n            return popSuspenseHandler(workInProgress), workInProgress;\n          popSuspenseHandler(workInProgress);\n          return null;\n        }\n      }\n      popSuspenseHandler(workInProgress);\n      if (0 !== (workInProgress.flags & 128))\n        return (workInProgress.lanes = renderLanes), workInProgress;\n      renderLanes = null !== newProps;\n      current = null !== current && null !== current.memoizedState;\n      if (renderLanes) {\n        newProps = workInProgress.child;\n        type = null;\n        null !== newProps.alternate &&\n          null !== newProps.alternate.memoizedState &&\n          null !== newProps.alternate.memoizedState.cachePool &&\n          (type = newProps.alternate.memoizedState.cachePool.pool);\n        var cache$144 = null;\n        null !== newProps.memoizedState &&\n          null !== newProps.memoizedState.cachePool &&\n          (cache$144 = newProps.memoizedState.cachePool.pool);\n        cache$144 !== type && (newProps.flags |= 2048);\n      }\n      renderLanes !== current &&\n        renderLanes &&\n        (workInProgress.child.flags |= 8192);\n      scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n      bubbleProperties(workInProgress);\n      return null;\n    case 4:\n      return (\n        popHostContainer(),\n        null === current &&\n          listenToAllSupportedEvents(workInProgress.stateNode.containerInfo),\n        bubbleProperties(workInProgress),\n        null\n      );\n    case 10:\n      return (\n        popProvider(workInProgress.type), bubbleProperties(workInProgress), null\n      );\n    case 19:\n      pop(suspenseStackCursor);\n      type = workInProgress.memoizedState;\n      if (null === type) return bubbleProperties(workInProgress), null;\n      newProps = 0 !== (workInProgress.flags & 128);\n      cache$144 = type.rendering;\n      if (null === cache$144)\n        if (newProps) cutOffTailIfNeeded(type, !1);\n        else {\n          if (\n            0 !== workInProgressRootExitStatus ||\n            (null !== current && 0 !== (current.flags & 128))\n          )\n            for (current = workInProgress.child; null !== current; ) {\n              cache$144 = findFirstSuspended(current);\n              if (null !== cache$144) {\n                workInProgress.flags |= 128;\n                cutOffTailIfNeeded(type, !1);\n                current = cache$144.updateQueue;\n                workInProgress.updateQueue = current;\n                scheduleRetryEffect(workInProgress, current);\n                workInProgress.subtreeFlags = 0;\n                current = renderLanes;\n                for (renderLanes = workInProgress.child; null !== renderLanes; )\n                  resetWorkInProgress(renderLanes, current),\n                    (renderLanes = renderLanes.sibling);\n                push(\n                  suspenseStackCursor,\n                  (suspenseStackCursor.current & 1) | 2\n                );\n                return workInProgress.child;\n              }\n              current = current.sibling;\n            }\n          null !== type.tail &&\n            now() > workInProgressRootRenderTargetTime &&\n            ((workInProgress.flags |= 128),\n            (newProps = !0),\n            cutOffTailIfNeeded(type, !1),\n            (workInProgress.lanes = 4194304));\n        }\n      else {\n        if (!newProps)\n          if (((current = findFirstSuspended(cache$144)), null !== current)) {\n            if (\n              ((workInProgress.flags |= 128),\n              (newProps = !0),\n              (current = current.updateQueue),\n              (workInProgress.updateQueue = current),\n              scheduleRetryEffect(workInProgress, current),\n              cutOffTailIfNeeded(type, !0),\n              null === type.tail &&\n                \"hidden\" === type.tailMode &&\n                !cache$144.alternate &&\n                !isHydrating)\n            )\n              return bubbleProperties(workInProgress), null;\n          } else\n            2 * now() - type.renderingStartTime >\n              workInProgressRootRenderTargetTime &&\n              536870912 !== renderLanes &&\n              ((workInProgress.flags |= 128),\n              (newProps = !0),\n              cutOffTailIfNeeded(type, !1),\n              (workInProgress.lanes = 4194304));\n        type.isBackwards\n          ? ((cache$144.sibling = workInProgress.child),\n            (workInProgress.child = cache$144))\n          : ((current = type.last),\n            null !== current\n              ? (current.sibling = cache$144)\n              : (workInProgress.child = cache$144),\n            (type.last = cache$144));\n      }\n      if (null !== type.tail)\n        return (\n          (workInProgress = type.tail),\n          (type.rendering = workInProgress),\n          (type.tail = workInProgress.sibling),\n          (type.renderingStartTime = now()),\n          (workInProgress.sibling = null),\n          (current = suspenseStackCursor.current),\n          push(suspenseStackCursor, newProps ? (current & 1) | 2 : current & 1),\n          workInProgress\n        );\n      bubbleProperties(workInProgress);\n      return null;\n    case 22:\n    case 23:\n      return (\n        popSuspenseHandler(workInProgress),\n        popHiddenContext(),\n        (newProps = null !== workInProgress.memoizedState),\n        null !== current\n          ? (null !== current.memoizedState) !== newProps &&\n            (workInProgress.flags |= 8192)\n          : newProps && (workInProgress.flags |= 8192),\n        newProps\n          ? 0 !== (renderLanes & 536870912) &&\n            0 === (workInProgress.flags & 128) &&\n            (bubbleProperties(workInProgress),\n            workInProgress.subtreeFlags & 6 && (workInProgress.flags |= 8192))\n          : bubbleProperties(workInProgress),\n        (renderLanes = workInProgress.updateQueue),\n        null !== renderLanes &&\n          scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n        (renderLanes = null),\n        null !== current &&\n          null !== current.memoizedState &&\n          null !== current.memoizedState.cachePool &&\n          (renderLanes = current.memoizedState.cachePool.pool),\n        (newProps = null),\n        null !== workInProgress.memoizedState &&\n          null !== workInProgress.memoizedState.cachePool &&\n          (newProps = workInProgress.memoizedState.cachePool.pool),\n        newProps !== renderLanes && (workInProgress.flags |= 2048),\n        null !== current && pop(resumedCache),\n        null\n      );\n    case 24:\n      return (\n        (renderLanes = null),\n        null !== current && (renderLanes = current.memoizedState.cache),\n        workInProgress.memoizedState.cache !== renderLanes &&\n          (workInProgress.flags |= 2048),\n        popProvider(CacheContext),\n        bubbleProperties(workInProgress),\n        null\n      );\n    case 25:\n      return null;\n  }\n  throw Error(formatProdErrorMessage(156, workInProgress.tag));\n}\nfunction unwindWork(current, workInProgress) {\n  popTreeContext(workInProgress);\n  switch (workInProgress.tag) {\n    case 1:\n      return (\n        (current = workInProgress.flags),\n        current & 65536\n          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n          : null\n      );\n    case 3:\n      return (\n        popProvider(CacheContext),\n        popHostContainer(),\n        (current = workInProgress.flags),\n        0 !== (current & 65536) && 0 === (current & 128)\n          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n          : null\n      );\n    case 26:\n    case 27:\n    case 5:\n      return popHostContext(workInProgress), null;\n    case 13:\n      popSuspenseHandler(workInProgress);\n      current = workInProgress.memoizedState;\n      if (null !== current && null !== current.dehydrated) {\n        if (null === workInProgress.alternate)\n          throw Error(formatProdErrorMessage(340));\n        resetHydrationState();\n      }\n      current = workInProgress.flags;\n      return current & 65536\n        ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n        : null;\n    case 19:\n      return pop(suspenseStackCursor), null;\n    case 4:\n      return popHostContainer(), null;\n    case 10:\n      return popProvider(workInProgress.type), null;\n    case 22:\n    case 23:\n      return (\n        popSuspenseHandler(workInProgress),\n        popHiddenContext(),\n        null !== current && pop(resumedCache),\n        (current = workInProgress.flags),\n        current & 65536\n          ? ((workInProgress.flags = (current & -65537) | 128), workInProgress)\n          : null\n      );\n    case 24:\n      return popProvider(CacheContext), null;\n    case 25:\n      return null;\n    default:\n      return null;\n  }\n}\nfunction unwindInterruptedWork(current, interruptedWork) {\n  popTreeContext(interruptedWork);\n  switch (interruptedWork.tag) {\n    case 3:\n      popProvider(CacheContext);\n      popHostContainer();\n      break;\n    case 26:\n    case 27:\n    case 5:\n      popHostContext(interruptedWork);\n      break;\n    case 4:\n      popHostContainer();\n      break;\n    case 13:\n      popSuspenseHandler(interruptedWork);\n      break;\n    case 19:\n      pop(suspenseStackCursor);\n      break;\n    case 10:\n      popProvider(interruptedWork.type);\n      break;\n    case 22:\n    case 23:\n      popSuspenseHandler(interruptedWork);\n      popHiddenContext();\n      null !== current && pop(resumedCache);\n      break;\n    case 24:\n      popProvider(CacheContext);\n  }\n}\nvar DefaultAsyncDispatcher = {\n    getCacheForType: function (resourceType) {\n      var cache = readContext(CacheContext),\n        cacheForType = cache.data.get(resourceType);\n      void 0 === cacheForType &&\n        ((cacheForType = resourceType()),\n        cache.data.set(resourceType, cacheForType));\n      return cacheForType;\n    }\n  },\n  PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n  executionContext = 0,\n  workInProgressRoot = null,\n  workInProgress = null,\n  workInProgressRootRenderLanes = 0,\n  workInProgressSuspendedReason = 0,\n  workInProgressThrownValue = null,\n  workInProgressRootDidSkipSuspendedSiblings = !1,\n  workInProgressRootIsPrerendering = !1,\n  workInProgressRootDidAttachPingListener = !1,\n  entangledRenderLanes = 0,\n  workInProgressRootExitStatus = 0,\n  workInProgressRootSkippedLanes = 0,\n  workInProgressRootInterleavedUpdatedLanes = 0,\n  workInProgressRootPingedLanes = 0,\n  workInProgressDeferredLane = 0,\n  workInProgressSuspendedRetryLanes = 0,\n  workInProgressRootConcurrentErrors = null,\n  workInProgressRootRecoverableErrors = null,\n  workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n  globalMostRecentFallbackTime = 0,\n  workInProgressRootRenderTargetTime = Infinity,\n  workInProgressTransitions = null,\n  legacyErrorBoundariesThatAlreadyFailed = null,\n  rootDoesHavePassiveEffects = !1,\n  rootWithPendingPassiveEffects = null,\n  pendingPassiveEffectsLanes = 0,\n  pendingPassiveEffectsRemainingLanes = 0,\n  pendingPassiveTransitions = null,\n  nestedUpdateCount = 0,\n  rootWithNestedUpdates = null;\nfunction requestUpdateLane() {\n  if (0 !== (executionContext & 2) && 0 !== workInProgressRootRenderLanes)\n    return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n  if (null !== ReactSharedInternals.T) {\n    var actionScopeLane = currentEntangledLane;\n    return 0 !== actionScopeLane ? actionScopeLane : requestTransitionLane();\n  }\n  return resolveUpdatePriority();\n}\nfunction requestDeferredLane() {\n  0 === workInProgressDeferredLane &&\n    (workInProgressDeferredLane =\n      0 === (workInProgressRootRenderLanes & 536870912) || isHydrating\n        ? claimNextTransitionLane()\n        : 536870912);\n  var suspenseHandler = suspenseHandlerStackCursor.current;\n  null !== suspenseHandler && (suspenseHandler.flags |= 32);\n  return workInProgressDeferredLane;\n}\nfunction scheduleUpdateOnFiber(root, fiber, lane) {\n  if (\n    (root === workInProgressRoot && 2 === workInProgressSuspendedReason) ||\n    null !== root.cancelPendingCommit\n  )\n    prepareFreshStack(root, 0),\n      markRootSuspended(\n        root,\n        workInProgressRootRenderLanes,\n        workInProgressDeferredLane,\n        !1\n      );\n  markRootUpdated$1(root, lane);\n  if (0 === (executionContext & 2) || root !== workInProgressRoot)\n    root === workInProgressRoot &&\n      (0 === (executionContext & 2) &&\n        (workInProgressRootInterleavedUpdatedLanes |= lane),\n      4 === workInProgressRootExitStatus &&\n        markRootSuspended(\n          root,\n          workInProgressRootRenderLanes,\n          workInProgressDeferredLane,\n          !1\n        )),\n      ensureRootIsScheduled(root);\n}\nfunction performWorkOnRoot(root$jscomp$0, lanes, forceSync) {\n  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n  var shouldTimeSlice =\n      (!forceSync &&\n        0 === (lanes & 60) &&\n        0 === (lanes & root$jscomp$0.expiredLanes)) ||\n      checkIfRootIsPrerendering(root$jscomp$0, lanes),\n    exitStatus = shouldTimeSlice\n      ? renderRootConcurrent(root$jscomp$0, lanes)\n      : renderRootSync(root$jscomp$0, lanes, !0),\n    renderWasConcurrent = shouldTimeSlice;\n  do {\n    if (0 === exitStatus) {\n      workInProgressRootIsPrerendering &&\n        !shouldTimeSlice &&\n        markRootSuspended(root$jscomp$0, lanes, 0, !1);\n      break;\n    } else if (6 === exitStatus)\n      markRootSuspended(\n        root$jscomp$0,\n        lanes,\n        0,\n        !workInProgressRootDidSkipSuspendedSiblings\n      );\n    else {\n      forceSync = root$jscomp$0.current.alternate;\n      if (\n        renderWasConcurrent &&\n        !isRenderConsistentWithExternalStores(forceSync)\n      ) {\n        exitStatus = renderRootSync(root$jscomp$0, lanes, !1);\n        renderWasConcurrent = !1;\n        continue;\n      }\n      if (2 === exitStatus) {\n        renderWasConcurrent = lanes;\n        if (root$jscomp$0.errorRecoveryDisabledLanes & renderWasConcurrent)\n          var JSCompiler_inline_result = 0;\n        else\n          (JSCompiler_inline_result = root$jscomp$0.pendingLanes & -536870913),\n            (JSCompiler_inline_result =\n              0 !== JSCompiler_inline_result\n                ? JSCompiler_inline_result\n                : JSCompiler_inline_result & 536870912\n                  ? 536870912\n                  : 0);\n        if (0 !== JSCompiler_inline_result) {\n          lanes = JSCompiler_inline_result;\n          a: {\n            var root = root$jscomp$0;\n            exitStatus = workInProgressRootConcurrentErrors;\n            var wasRootDehydrated = root.current.memoizedState.isDehydrated;\n            wasRootDehydrated &&\n              (prepareFreshStack(root, JSCompiler_inline_result).flags |= 256);\n            JSCompiler_inline_result = renderRootSync(\n              root,\n              JSCompiler_inline_result,\n              !1\n            );\n            if (2 !== JSCompiler_inline_result) {\n              if (\n                workInProgressRootDidAttachPingListener &&\n                !wasRootDehydrated\n              ) {\n                root.errorRecoveryDisabledLanes |= renderWasConcurrent;\n                workInProgressRootInterleavedUpdatedLanes |=\n                  renderWasConcurrent;\n                exitStatus = 4;\n                break a;\n              }\n              renderWasConcurrent = workInProgressRootRecoverableErrors;\n              workInProgressRootRecoverableErrors = exitStatus;\n              null !== renderWasConcurrent &&\n                queueRecoverableErrors(renderWasConcurrent);\n            }\n            exitStatus = JSCompiler_inline_result;\n          }\n          renderWasConcurrent = !1;\n          if (2 !== exitStatus) continue;\n        }\n      }\n      if (1 === exitStatus) {\n        prepareFreshStack(root$jscomp$0, 0);\n        markRootSuspended(root$jscomp$0, lanes, 0, !0);\n        break;\n      }\n      a: {\n        shouldTimeSlice = root$jscomp$0;\n        switch (exitStatus) {\n          case 0:\n          case 1:\n            throw Error(formatProdErrorMessage(345));\n          case 4:\n            if ((lanes & 4194176) === lanes) {\n              markRootSuspended(\n                shouldTimeSlice,\n                lanes,\n                workInProgressDeferredLane,\n                !workInProgressRootDidSkipSuspendedSiblings\n              );\n              break a;\n            }\n            break;\n          case 2:\n            workInProgressRootRecoverableErrors = null;\n            break;\n          case 3:\n          case 5:\n            break;\n          default:\n            throw Error(formatProdErrorMessage(329));\n        }\n        shouldTimeSlice.finishedWork = forceSync;\n        shouldTimeSlice.finishedLanes = lanes;\n        if (\n          (lanes & 62914560) === lanes &&\n          ((renderWasConcurrent = globalMostRecentFallbackTime + 300 - now()),\n          10 < renderWasConcurrent)\n        ) {\n          markRootSuspended(\n            shouldTimeSlice,\n            lanes,\n            workInProgressDeferredLane,\n            !workInProgressRootDidSkipSuspendedSiblings\n          );\n          if (0 !== getNextLanes(shouldTimeSlice, 0)) break a;\n          shouldTimeSlice.timeoutHandle = scheduleTimeout(\n            commitRootWhenReady.bind(\n              null,\n              shouldTimeSlice,\n              forceSync,\n              workInProgressRootRecoverableErrors,\n              workInProgressTransitions,\n              workInProgressRootDidIncludeRecursiveRenderUpdate,\n              lanes,\n              workInProgressDeferredLane,\n              workInProgressRootInterleavedUpdatedLanes,\n              workInProgressSuspendedRetryLanes,\n              workInProgressRootDidSkipSuspendedSiblings,\n              2,\n              -0,\n              0\n            ),\n            renderWasConcurrent\n          );\n          break a;\n        }\n        commitRootWhenReady(\n          shouldTimeSlice,\n          forceSync,\n          workInProgressRootRecoverableErrors,\n          workInProgressTransitions,\n          workInProgressRootDidIncludeRecursiveRenderUpdate,\n          lanes,\n          workInProgressDeferredLane,\n          workInProgressRootInterleavedUpdatedLanes,\n          workInProgressSuspendedRetryLanes,\n          workInProgressRootDidSkipSuspendedSiblings,\n          0,\n          -0,\n          0\n        );\n      }\n    }\n    break;\n  } while (1);\n  ensureRootIsScheduled(root$jscomp$0);\n}\nfunction queueRecoverableErrors(errors) {\n  null === workInProgressRootRecoverableErrors\n    ? (workInProgressRootRecoverableErrors = errors)\n    : workInProgressRootRecoverableErrors.push.apply(\n        workInProgressRootRecoverableErrors,\n        errors\n      );\n}\nfunction commitRootWhenReady(\n  root,\n  finishedWork,\n  recoverableErrors,\n  transitions,\n  didIncludeRenderPhaseUpdate,\n  lanes,\n  spawnedLane,\n  updatedLanes,\n  suspendedRetryLanes,\n  didSkipSuspendedSiblings,\n  suspendedCommitReason,\n  completedRenderStartTime,\n  completedRenderEndTime\n) {\n  var subtreeFlags = finishedWork.subtreeFlags;\n  if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408))\n    if (\n      ((suspendedState = { stylesheets: null, count: 0, unsuspend: noop }),\n      accumulateSuspenseyCommitOnFiber(finishedWork),\n      (finishedWork = waitForCommitToBeReady()),\n      null !== finishedWork)\n    ) {\n      root.cancelPendingCommit = finishedWork(\n        commitRoot.bind(\n          null,\n          root,\n          recoverableErrors,\n          transitions,\n          didIncludeRenderPhaseUpdate,\n          spawnedLane,\n          updatedLanes,\n          suspendedRetryLanes,\n          1,\n          completedRenderStartTime,\n          completedRenderEndTime\n        )\n      );\n      markRootSuspended(root, lanes, spawnedLane, !didSkipSuspendedSiblings);\n      return;\n    }\n  commitRoot(\n    root,\n    recoverableErrors,\n    transitions,\n    didIncludeRenderPhaseUpdate,\n    spawnedLane,\n    updatedLanes,\n    suspendedRetryLanes,\n    suspendedCommitReason,\n    completedRenderStartTime,\n    completedRenderEndTime\n  );\n}\nfunction isRenderConsistentWithExternalStores(finishedWork) {\n  for (var node = finishedWork; ; ) {\n    var tag = node.tag;\n    if (\n      (0 === tag || 11 === tag || 15 === tag) &&\n      node.flags & 16384 &&\n      ((tag = node.updateQueue),\n      null !== tag && ((tag = tag.stores), null !== tag))\n    )\n      for (var i = 0; i < tag.length; i++) {\n        var check = tag[i],\n          getSnapshot = check.getSnapshot;\n        check = check.value;\n        try {\n          if (!objectIs(getSnapshot(), check)) return !1;\n        } catch (error) {\n          return !1;\n        }\n      }\n    tag = node.child;\n    if (node.subtreeFlags & 16384 && null !== tag)\n      (tag.return = node), (node = tag);\n    else {\n      if (node === finishedWork) break;\n      for (; null === node.sibling; ) {\n        if (null === node.return || node.return === finishedWork) return !0;\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n  }\n  return !0;\n}\nfunction markRootSuspended(\n  root,\n  suspendedLanes,\n  spawnedLane,\n  didAttemptEntireTree\n) {\n  suspendedLanes &= ~workInProgressRootPingedLanes;\n  suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n  root.suspendedLanes |= suspendedLanes;\n  root.pingedLanes &= ~suspendedLanes;\n  didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n  didAttemptEntireTree = root.expirationTimes;\n  for (var lanes = suspendedLanes; 0 < lanes; ) {\n    var index$6 = 31 - clz32(lanes),\n      lane = 1 << index$6;\n    didAttemptEntireTree[index$6] = -1;\n    lanes &= ~lane;\n  }\n  0 !== spawnedLane &&\n    markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n}\nfunction flushSyncWork$1() {\n  return 0 === (executionContext & 6)\n    ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n    : !0;\n}\nfunction resetWorkInProgressStack() {\n  if (null !== workInProgress) {\n    if (0 === workInProgressSuspendedReason)\n      var interruptedWork = workInProgress.return;\n    else\n      (interruptedWork = workInProgress),\n        (lastContextDependency = currentlyRenderingFiber = null),\n        resetHooksOnUnwind(interruptedWork),\n        (thenableState$1 = null),\n        (thenableIndexCounter$1 = 0),\n        (interruptedWork = workInProgress);\n    for (; null !== interruptedWork; )\n      unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n        (interruptedWork = interruptedWork.return);\n    workInProgress = null;\n  }\n}\nfunction prepareFreshStack(root, lanes) {\n  root.finishedWork = null;\n  root.finishedLanes = 0;\n  var timeoutHandle = root.timeoutHandle;\n  -1 !== timeoutHandle &&\n    ((root.timeoutHandle = -1), cancelTimeout(timeoutHandle));\n  timeoutHandle = root.cancelPendingCommit;\n  null !== timeoutHandle &&\n    ((root.cancelPendingCommit = null), timeoutHandle());\n  resetWorkInProgressStack();\n  workInProgressRoot = root;\n  workInProgress = timeoutHandle = createWorkInProgress(root.current, null);\n  workInProgressRootRenderLanes = lanes;\n  workInProgressSuspendedReason = 0;\n  workInProgressThrownValue = null;\n  workInProgressRootDidSkipSuspendedSiblings = !1;\n  workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n  workInProgressRootDidAttachPingListener = !1;\n  workInProgressSuspendedRetryLanes =\n    workInProgressDeferredLane =\n    workInProgressRootPingedLanes =\n    workInProgressRootInterleavedUpdatedLanes =\n    workInProgressRootSkippedLanes =\n    workInProgressRootExitStatus =\n      0;\n  workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n    null;\n  workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n  0 !== (lanes & 8) && (lanes |= lanes & 32);\n  var allEntangledLanes = root.entangledLanes;\n  if (0 !== allEntangledLanes)\n    for (\n      root = root.entanglements, allEntangledLanes &= lanes;\n      0 < allEntangledLanes;\n\n    ) {\n      var index$4 = 31 - clz32(allEntangledLanes),\n        lane = 1 << index$4;\n      lanes |= root[index$4];\n      allEntangledLanes &= ~lane;\n    }\n  entangledRenderLanes = lanes;\n  finishQueueingConcurrentUpdates();\n  return timeoutHandle;\n}\nfunction handleThrow(root, thrownValue) {\n  currentlyRenderingFiber$1 = null;\n  ReactSharedInternals.H = ContextOnlyDispatcher;\n  thrownValue === SuspenseException\n    ? ((thrownValue = getSuspendedThenable()),\n      (workInProgressSuspendedReason = 3))\n    : thrownValue === SuspenseyCommitException\n      ? ((thrownValue = getSuspendedThenable()),\n        (workInProgressSuspendedReason = 4))\n      : (workInProgressSuspendedReason =\n          thrownValue === SelectiveHydrationException\n            ? 8\n            : null !== thrownValue &&\n                \"object\" === typeof thrownValue &&\n                \"function\" === typeof thrownValue.then\n              ? 6\n              : 1);\n  workInProgressThrownValue = thrownValue;\n  null === workInProgress &&\n    ((workInProgressRootExitStatus = 1),\n    logUncaughtError(\n      root,\n      createCapturedValueAtFiber(thrownValue, root.current)\n    ));\n}\nfunction pushDispatcher() {\n  var prevDispatcher = ReactSharedInternals.H;\n  ReactSharedInternals.H = ContextOnlyDispatcher;\n  return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n}\nfunction pushAsyncDispatcher() {\n  var prevAsyncDispatcher = ReactSharedInternals.A;\n  ReactSharedInternals.A = DefaultAsyncDispatcher;\n  return prevAsyncDispatcher;\n}\nfunction renderDidSuspendDelayIfPossible() {\n  workInProgressRootExitStatus = 4;\n  workInProgressRootDidSkipSuspendedSiblings ||\n    ((workInProgressRootRenderLanes & 4194176) !==\n      workInProgressRootRenderLanes &&\n      null !== suspenseHandlerStackCursor.current) ||\n    (workInProgressRootIsPrerendering = !0);\n  (0 === (workInProgressRootSkippedLanes & 134217727) &&\n    0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n    null === workInProgressRoot ||\n    markRootSuspended(\n      workInProgressRoot,\n      workInProgressRootRenderLanes,\n      workInProgressDeferredLane,\n      !1\n    );\n}\nfunction renderRootSync(root, lanes, shouldYieldForPrerendering) {\n  var prevExecutionContext = executionContext;\n  executionContext |= 2;\n  var prevDispatcher = pushDispatcher(),\n    prevAsyncDispatcher = pushAsyncDispatcher();\n  if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes)\n    (workInProgressTransitions = null), prepareFreshStack(root, lanes);\n  lanes = !1;\n  var exitStatus = workInProgressRootExitStatus;\n  a: do\n    try {\n      if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n        var unitOfWork = workInProgress,\n          thrownValue = workInProgressThrownValue;\n        switch (workInProgressSuspendedReason) {\n          case 8:\n            resetWorkInProgressStack();\n            exitStatus = 6;\n            break a;\n          case 3:\n          case 2:\n          case 6:\n            null === suspenseHandlerStackCursor.current && (lanes = !0);\n            var reason = workInProgressSuspendedReason;\n            workInProgressSuspendedReason = 0;\n            workInProgressThrownValue = null;\n            throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n            if (\n              shouldYieldForPrerendering &&\n              workInProgressRootIsPrerendering\n            ) {\n              exitStatus = 0;\n              break a;\n            }\n            break;\n          default:\n            (reason = workInProgressSuspendedReason),\n              (workInProgressSuspendedReason = 0),\n              (workInProgressThrownValue = null),\n              throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n        }\n      }\n      workLoopSync();\n      exitStatus = workInProgressRootExitStatus;\n      break;\n    } catch (thrownValue$164) {\n      handleThrow(root, thrownValue$164);\n    }\n  while (1);\n  lanes && root.shellSuspendCounter++;\n  lastContextDependency = currentlyRenderingFiber = null;\n  executionContext = prevExecutionContext;\n  ReactSharedInternals.H = prevDispatcher;\n  ReactSharedInternals.A = prevAsyncDispatcher;\n  null === workInProgress &&\n    ((workInProgressRoot = null),\n    (workInProgressRootRenderLanes = 0),\n    finishQueueingConcurrentUpdates());\n  return exitStatus;\n}\nfunction workLoopSync() {\n  for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n}\nfunction renderRootConcurrent(root, lanes) {\n  var prevExecutionContext = executionContext;\n  executionContext |= 2;\n  var prevDispatcher = pushDispatcher(),\n    prevAsyncDispatcher = pushAsyncDispatcher();\n  workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes\n    ? ((workInProgressTransitions = null),\n      (workInProgressRootRenderTargetTime = now() + 500),\n      prepareFreshStack(root, lanes))\n    : (workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n        root,\n        lanes\n      ));\n  a: do\n    try {\n      if (0 !== workInProgressSuspendedReason && null !== workInProgress) {\n        lanes = workInProgress;\n        var thrownValue = workInProgressThrownValue;\n        b: switch (workInProgressSuspendedReason) {\n          case 1:\n            workInProgressSuspendedReason = 0;\n            workInProgressThrownValue = null;\n            throwAndUnwindWorkLoop(root, lanes, thrownValue, 1);\n            break;\n          case 2:\n            if (isThenableResolved(thrownValue)) {\n              workInProgressSuspendedReason = 0;\n              workInProgressThrownValue = null;\n              replaySuspendedUnitOfWork(lanes);\n              break;\n            }\n            lanes = function () {\n              2 === workInProgressSuspendedReason &&\n                workInProgressRoot === root &&\n                (workInProgressSuspendedReason = 7);\n              ensureRootIsScheduled(root);\n            };\n            thrownValue.then(lanes, lanes);\n            break a;\n          case 3:\n            workInProgressSuspendedReason = 7;\n            break a;\n          case 4:\n            workInProgressSuspendedReason = 5;\n            break a;\n          case 7:\n            isThenableResolved(thrownValue)\n              ? ((workInProgressSuspendedReason = 0),\n                (workInProgressThrownValue = null),\n                replaySuspendedUnitOfWork(lanes))\n              : ((workInProgressSuspendedReason = 0),\n                (workInProgressThrownValue = null),\n                throwAndUnwindWorkLoop(root, lanes, thrownValue, 7));\n            break;\n          case 5:\n            var resource = null;\n            switch (workInProgress.tag) {\n              case 26:\n                resource = workInProgress.memoizedState;\n              case 5:\n              case 27:\n                var hostFiber = workInProgress;\n                if (resource ? preloadResource(resource) : 1) {\n                  workInProgressSuspendedReason = 0;\n                  workInProgressThrownValue = null;\n                  var sibling = hostFiber.sibling;\n                  if (null !== sibling) workInProgress = sibling;\n                  else {\n                    var returnFiber = hostFiber.return;\n                    null !== returnFiber\n                      ? ((workInProgress = returnFiber),\n                        completeUnitOfWork(returnFiber))\n                      : (workInProgress = null);\n                  }\n                  break b;\n                }\n            }\n            workInProgressSuspendedReason = 0;\n            workInProgressThrownValue = null;\n            throwAndUnwindWorkLoop(root, lanes, thrownValue, 5);\n            break;\n          case 6:\n            workInProgressSuspendedReason = 0;\n            workInProgressThrownValue = null;\n            throwAndUnwindWorkLoop(root, lanes, thrownValue, 6);\n            break;\n          case 8:\n            resetWorkInProgressStack();\n            workInProgressRootExitStatus = 6;\n            break a;\n          default:\n            throw Error(formatProdErrorMessage(462));\n        }\n      }\n      workLoopConcurrent();\n      break;\n    } catch (thrownValue$166) {\n      handleThrow(root, thrownValue$166);\n    }\n  while (1);\n  lastContextDependency = currentlyRenderingFiber = null;\n  ReactSharedInternals.H = prevDispatcher;\n  ReactSharedInternals.A = prevAsyncDispatcher;\n  executionContext = prevExecutionContext;\n  if (null !== workInProgress) return 0;\n  workInProgressRoot = null;\n  workInProgressRootRenderLanes = 0;\n  finishQueueingConcurrentUpdates();\n  return workInProgressRootExitStatus;\n}\nfunction workLoopConcurrent() {\n  for (; null !== workInProgress && !shouldYield(); )\n    performUnitOfWork(workInProgress);\n}\nfunction performUnitOfWork(unitOfWork) {\n  var next = beginWork(unitOfWork.alternate, unitOfWork, entangledRenderLanes);\n  unitOfWork.memoizedProps = unitOfWork.pendingProps;\n  null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction replaySuspendedUnitOfWork(unitOfWork) {\n  var next = unitOfWork;\n  var current = next.alternate;\n  switch (next.tag) {\n    case 15:\n    case 0:\n      next = replayFunctionComponent(\n        current,\n        next,\n        next.pendingProps,\n        next.type,\n        void 0,\n        workInProgressRootRenderLanes\n      );\n      break;\n    case 11:\n      next = replayFunctionComponent(\n        current,\n        next,\n        next.pendingProps,\n        next.type.render,\n        next.ref,\n        workInProgressRootRenderLanes\n      );\n      break;\n    case 5:\n      resetHooksOnUnwind(next);\n    default:\n      unwindInterruptedWork(current, next),\n        (next = workInProgress =\n          resetWorkInProgress(next, entangledRenderLanes)),\n        (next = beginWork(current, next, entangledRenderLanes));\n  }\n  unitOfWork.memoizedProps = unitOfWork.pendingProps;\n  null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n}\nfunction throwAndUnwindWorkLoop(\n  root,\n  unitOfWork,\n  thrownValue,\n  suspendedReason\n) {\n  lastContextDependency = currentlyRenderingFiber = null;\n  resetHooksOnUnwind(unitOfWork);\n  thenableState$1 = null;\n  thenableIndexCounter$1 = 0;\n  var returnFiber = unitOfWork.return;\n  try {\n    if (\n      throwException(\n        root,\n        returnFiber,\n        unitOfWork,\n        thrownValue,\n        workInProgressRootRenderLanes\n      )\n    ) {\n      workInProgressRootExitStatus = 1;\n      logUncaughtError(\n        root,\n        createCapturedValueAtFiber(thrownValue, root.current)\n      );\n      workInProgress = null;\n      return;\n    }\n  } catch (error) {\n    if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n    workInProgressRootExitStatus = 1;\n    logUncaughtError(\n      root,\n      createCapturedValueAtFiber(thrownValue, root.current)\n    );\n    workInProgress = null;\n    return;\n  }\n  if (unitOfWork.flags & 32768) {\n    if (isHydrating || 1 === suspendedReason) root = !0;\n    else if (\n      workInProgressRootIsPrerendering ||\n      0 !== (workInProgressRootRenderLanes & 536870912)\n    )\n      root = !1;\n    else if (\n      ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n      2 === suspendedReason || 3 === suspendedReason || 6 === suspendedReason)\n    )\n      (suspendedReason = suspenseHandlerStackCursor.current),\n        null !== suspendedReason &&\n          13 === suspendedReason.tag &&\n          (suspendedReason.flags |= 16384);\n    unwindUnitOfWork(unitOfWork, root);\n  } else completeUnitOfWork(unitOfWork);\n}\nfunction completeUnitOfWork(unitOfWork) {\n  var completedWork = unitOfWork;\n  do {\n    if (0 !== (completedWork.flags & 32768)) {\n      unwindUnitOfWork(\n        completedWork,\n        workInProgressRootDidSkipSuspendedSiblings\n      );\n      return;\n    }\n    unitOfWork = completedWork.return;\n    var next = completeWork(\n      completedWork.alternate,\n      completedWork,\n      entangledRenderLanes\n    );\n    if (null !== next) {\n      workInProgress = next;\n      return;\n    }\n    completedWork = completedWork.sibling;\n    if (null !== completedWork) {\n      workInProgress = completedWork;\n      return;\n    }\n    workInProgress = completedWork = unitOfWork;\n  } while (null !== completedWork);\n  0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 5);\n}\nfunction unwindUnitOfWork(unitOfWork, skipSiblings) {\n  do {\n    var next = unwindWork(unitOfWork.alternate, unitOfWork);\n    if (null !== next) {\n      next.flags &= 32767;\n      workInProgress = next;\n      return;\n    }\n    next = unitOfWork.return;\n    null !== next &&\n      ((next.flags |= 32768), (next.subtreeFlags = 0), (next.deletions = null));\n    if (\n      !skipSiblings &&\n      ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n    ) {\n      workInProgress = unitOfWork;\n      return;\n    }\n    workInProgress = unitOfWork = next;\n  } while (null !== unitOfWork);\n  workInProgressRootExitStatus = 6;\n  workInProgress = null;\n}\nfunction commitRoot(\n  root,\n  recoverableErrors,\n  transitions,\n  didIncludeRenderPhaseUpdate,\n  spawnedLane,\n  updatedLanes,\n  suspendedRetryLanes,\n  suspendedCommitReason,\n  completedRenderStartTime,\n  completedRenderEndTime\n) {\n  var prevTransition = ReactSharedInternals.T,\n    previousUpdateLanePriority = ReactDOMSharedInternals.p;\n  try {\n    (ReactDOMSharedInternals.p = 2),\n      (ReactSharedInternals.T = null),\n      commitRootImpl(\n        root,\n        recoverableErrors,\n        transitions,\n        didIncludeRenderPhaseUpdate,\n        previousUpdateLanePriority,\n        spawnedLane,\n        updatedLanes,\n        suspendedRetryLanes,\n        suspendedCommitReason,\n        completedRenderStartTime,\n        completedRenderEndTime\n      );\n  } finally {\n    (ReactSharedInternals.T = prevTransition),\n      (ReactDOMSharedInternals.p = previousUpdateLanePriority);\n  }\n}\nfunction commitRootImpl(\n  root,\n  recoverableErrors,\n  transitions,\n  didIncludeRenderPhaseUpdate,\n  renderPriorityLevel,\n  spawnedLane,\n  updatedLanes,\n  suspendedRetryLanes\n) {\n  do flushPassiveEffects();\n  while (null !== rootWithPendingPassiveEffects);\n  if (0 !== (executionContext & 6)) throw Error(formatProdErrorMessage(327));\n  var finishedWork = root.finishedWork;\n  didIncludeRenderPhaseUpdate = root.finishedLanes;\n  if (null === finishedWork) return null;\n  root.finishedWork = null;\n  root.finishedLanes = 0;\n  if (finishedWork === root.current) throw Error(formatProdErrorMessage(177));\n  root.callbackNode = null;\n  root.callbackPriority = 0;\n  root.cancelPendingCommit = null;\n  var remainingLanes = finishedWork.lanes | finishedWork.childLanes;\n  remainingLanes |= concurrentlyUpdatedLanes;\n  markRootFinished(\n    root,\n    didIncludeRenderPhaseUpdate,\n    remainingLanes,\n    spawnedLane,\n    updatedLanes,\n    suspendedRetryLanes\n  );\n  root === workInProgressRoot &&\n    ((workInProgress = workInProgressRoot = null),\n    (workInProgressRootRenderLanes = 0));\n  (0 === (finishedWork.subtreeFlags & 10256) &&\n    0 === (finishedWork.flags & 10256)) ||\n    rootDoesHavePassiveEffects ||\n    ((rootDoesHavePassiveEffects = !0),\n    (pendingPassiveEffectsRemainingLanes = remainingLanes),\n    (pendingPassiveTransitions = transitions),\n    scheduleCallback$1(NormalPriority$1, function () {\n      flushPassiveEffects(!0);\n      return null;\n    }));\n  transitions = 0 !== (finishedWork.flags & 15990);\n  0 !== (finishedWork.subtreeFlags & 15990) || transitions\n    ? ((transitions = ReactSharedInternals.T),\n      (ReactSharedInternals.T = null),\n      (spawnedLane = ReactDOMSharedInternals.p),\n      (ReactDOMSharedInternals.p = 2),\n      (updatedLanes = executionContext),\n      (executionContext |= 4),\n      commitBeforeMutationEffects(root, finishedWork),\n      commitMutationEffectsOnFiber(finishedWork, root),\n      restoreSelection(selectionInformation, root.containerInfo),\n      (_enabled = !!eventsEnabled),\n      (selectionInformation = eventsEnabled = null),\n      (root.current = finishedWork),\n      commitLayoutEffectOnFiber(root, finishedWork.alternate, finishedWork),\n      requestPaint(),\n      (executionContext = updatedLanes),\n      (ReactDOMSharedInternals.p = spawnedLane),\n      (ReactSharedInternals.T = transitions))\n    : (root.current = finishedWork);\n  rootDoesHavePassiveEffects\n    ? ((rootDoesHavePassiveEffects = !1),\n      (rootWithPendingPassiveEffects = root),\n      (pendingPassiveEffectsLanes = didIncludeRenderPhaseUpdate))\n    : releaseRootPooledCache(root, remainingLanes);\n  remainingLanes = root.pendingLanes;\n  0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n  onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n  ensureRootIsScheduled(root);\n  if (null !== recoverableErrors)\n    for (\n      renderPriorityLevel = root.onRecoverableError, finishedWork = 0;\n      finishedWork < recoverableErrors.length;\n      finishedWork++\n    )\n      (remainingLanes = recoverableErrors[finishedWork]),\n        renderPriorityLevel(remainingLanes.value, {\n          componentStack: remainingLanes.stack\n        });\n  0 !== (pendingPassiveEffectsLanes & 3) && flushPassiveEffects();\n  remainingLanes = root.pendingLanes;\n  0 !== (didIncludeRenderPhaseUpdate & 4194218) && 0 !== (remainingLanes & 42)\n    ? root === rootWithNestedUpdates\n      ? nestedUpdateCount++\n      : ((nestedUpdateCount = 0), (rootWithNestedUpdates = root))\n    : (nestedUpdateCount = 0);\n  flushSyncWorkAcrossRoots_impl(0, !1);\n  return null;\n}\nfunction releaseRootPooledCache(root, remainingLanes) {\n  0 === (root.pooledCacheLanes &= remainingLanes) &&\n    ((remainingLanes = root.pooledCache),\n    null != remainingLanes &&\n      ((root.pooledCache = null), releaseCache(remainingLanes)));\n}\nfunction flushPassiveEffects() {\n  if (null !== rootWithPendingPassiveEffects) {\n    var root$170 = rootWithPendingPassiveEffects,\n      remainingLanes = pendingPassiveEffectsRemainingLanes;\n    pendingPassiveEffectsRemainingLanes = 0;\n    var renderPriority = lanesToEventPriority(pendingPassiveEffectsLanes),\n      prevTransition = ReactSharedInternals.T,\n      previousPriority = ReactDOMSharedInternals.p;\n    try {\n      ReactDOMSharedInternals.p = 32 > renderPriority ? 32 : renderPriority;\n      ReactSharedInternals.T = null;\n      if (null === rootWithPendingPassiveEffects)\n        var JSCompiler_inline_result = !1;\n      else {\n        renderPriority = pendingPassiveTransitions;\n        pendingPassiveTransitions = null;\n        var root = rootWithPendingPassiveEffects,\n          lanes = pendingPassiveEffectsLanes;\n        rootWithPendingPassiveEffects = null;\n        pendingPassiveEffectsLanes = 0;\n        if (0 !== (executionContext & 6))\n          throw Error(formatProdErrorMessage(331));\n        var prevExecutionContext = executionContext;\n        executionContext |= 4;\n        commitPassiveUnmountOnFiber(root.current);\n        commitPassiveMountOnFiber(root, root.current, lanes, renderPriority);\n        executionContext = prevExecutionContext;\n        flushSyncWorkAcrossRoots_impl(0, !1);\n        if (\n          injectedHook &&\n          \"function\" === typeof injectedHook.onPostCommitFiberRoot\n        )\n          try {\n            injectedHook.onPostCommitFiberRoot(rendererID, root);\n          } catch (err) {}\n        JSCompiler_inline_result = !0;\n      }\n      return JSCompiler_inline_result;\n    } finally {\n      (ReactDOMSharedInternals.p = previousPriority),\n        (ReactSharedInternals.T = prevTransition),\n        releaseRootPooledCache(root$170, remainingLanes);\n    }\n  }\n  return !1;\n}\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n  sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n  sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n  rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n  null !== rootFiber &&\n    (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n}\nfunction captureCommitPhaseError(sourceFiber, nearestMountedAncestor, error) {\n  if (3 === sourceFiber.tag)\n    captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n  else\n    for (; null !== nearestMountedAncestor; ) {\n      if (3 === nearestMountedAncestor.tag) {\n        captureCommitPhaseErrorOnRoot(\n          nearestMountedAncestor,\n          sourceFiber,\n          error\n        );\n        break;\n      } else if (1 === nearestMountedAncestor.tag) {\n        var instance = nearestMountedAncestor.stateNode;\n        if (\n          \"function\" ===\n            typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n          (\"function\" === typeof instance.componentDidCatch &&\n            (null === legacyErrorBoundariesThatAlreadyFailed ||\n              !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n        ) {\n          sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n          error = createClassErrorUpdate(2);\n          instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n          null !== instance &&\n            (initializeClassErrorUpdate(\n              error,\n              instance,\n              nearestMountedAncestor,\n              sourceFiber\n            ),\n            markRootUpdated$1(instance, 2),\n            ensureRootIsScheduled(instance));\n          break;\n        }\n      }\n      nearestMountedAncestor = nearestMountedAncestor.return;\n    }\n}\nfunction attachPingListener(root, wakeable, lanes) {\n  var pingCache = root.pingCache;\n  if (null === pingCache) {\n    pingCache = root.pingCache = new PossiblyWeakMap();\n    var threadIDs = new Set();\n    pingCache.set(wakeable, threadIDs);\n  } else\n    (threadIDs = pingCache.get(wakeable)),\n      void 0 === threadIDs &&\n        ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n  threadIDs.has(lanes) ||\n    ((workInProgressRootDidAttachPingListener = !0),\n    threadIDs.add(lanes),\n    (root = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n    wakeable.then(root, root));\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n  var pingCache = root.pingCache;\n  null !== pingCache && pingCache.delete(wakeable);\n  root.pingedLanes |= root.suspendedLanes & pingedLanes;\n  root.warmLanes &= ~pingedLanes;\n  workInProgressRoot === root &&\n    (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n    (4 === workInProgressRootExitStatus ||\n    (3 === workInProgressRootExitStatus &&\n      (workInProgressRootRenderLanes & 62914560) ===\n        workInProgressRootRenderLanes &&\n      300 > now() - globalMostRecentFallbackTime)\n      ? 0 === (executionContext & 2) && prepareFreshStack(root, 0)\n      : (workInProgressRootPingedLanes |= pingedLanes),\n    workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n      (workInProgressSuspendedRetryLanes = 0));\n  ensureRootIsScheduled(root);\n}\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n  0 === retryLane && (retryLane = claimNextRetryLane());\n  boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n  null !== boundaryFiber &&\n    (markRootUpdated$1(boundaryFiber, retryLane),\n    ensureRootIsScheduled(boundaryFiber));\n}\nfunction retryDehydratedSuspenseBoundary(boundaryFiber) {\n  var suspenseState = boundaryFiber.memoizedState,\n    retryLane = 0;\n  null !== suspenseState && (retryLane = suspenseState.retryLane);\n  retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n  var retryLane = 0;\n  switch (boundaryFiber.tag) {\n    case 13:\n      var retryCache = boundaryFiber.stateNode;\n      var suspenseState = boundaryFiber.memoizedState;\n      null !== suspenseState && (retryLane = suspenseState.retryLane);\n      break;\n    case 19:\n      retryCache = boundaryFiber.stateNode;\n      break;\n    case 22:\n      retryCache = boundaryFiber.stateNode._retryCache;\n      break;\n    default:\n      throw Error(formatProdErrorMessage(314));\n  }\n  null !== retryCache && retryCache.delete(wakeable);\n  retryTimedOutBoundary(boundaryFiber, retryLane);\n}\nfunction scheduleCallback$1(priorityLevel, callback) {\n  return scheduleCallback$3(priorityLevel, callback);\n}\nvar firstScheduledRoot = null,\n  lastScheduledRoot = null,\n  didScheduleMicrotask = !1,\n  mightHavePendingSyncWork = !1,\n  isFlushingWork = !1,\n  currentEventTransitionLane = 0;\nfunction ensureRootIsScheduled(root) {\n  root !== lastScheduledRoot &&\n    null === root.next &&\n    (null === lastScheduledRoot\n      ? (firstScheduledRoot = lastScheduledRoot = root)\n      : (lastScheduledRoot = lastScheduledRoot.next = root));\n  mightHavePendingSyncWork = !0;\n  didScheduleMicrotask ||\n    ((didScheduleMicrotask = !0),\n    scheduleImmediateTask(processRootScheduleInMicrotask));\n}\nfunction flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n  if (!isFlushingWork && mightHavePendingSyncWork) {\n    isFlushingWork = !0;\n    do {\n      var didPerformSomeWork = !1;\n      for (var root$172 = firstScheduledRoot; null !== root$172; ) {\n        if (!onlyLegacy)\n          if (0 !== syncTransitionLanes) {\n            var pendingLanes = root$172.pendingLanes;\n            if (0 === pendingLanes) var JSCompiler_inline_result = 0;\n            else {\n              var suspendedLanes = root$172.suspendedLanes,\n                pingedLanes = root$172.pingedLanes;\n              JSCompiler_inline_result =\n                (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n              JSCompiler_inline_result &=\n                pendingLanes & ~(suspendedLanes & ~pingedLanes);\n              JSCompiler_inline_result =\n                JSCompiler_inline_result & 201326677\n                  ? (JSCompiler_inline_result & 201326677) | 1\n                  : JSCompiler_inline_result\n                    ? JSCompiler_inline_result | 2\n                    : 0;\n            }\n            0 !== JSCompiler_inline_result &&\n              ((didPerformSomeWork = !0),\n              performSyncWorkOnRoot(root$172, JSCompiler_inline_result));\n          } else\n            (JSCompiler_inline_result = workInProgressRootRenderLanes),\n              (JSCompiler_inline_result = getNextLanes(\n                root$172,\n                root$172 === workInProgressRoot ? JSCompiler_inline_result : 0\n              )),\n              0 === (JSCompiler_inline_result & 3) ||\n                checkIfRootIsPrerendering(root$172, JSCompiler_inline_result) ||\n                ((didPerformSomeWork = !0),\n                performSyncWorkOnRoot(root$172, JSCompiler_inline_result));\n        root$172 = root$172.next;\n      }\n    } while (didPerformSomeWork);\n    isFlushingWork = !1;\n  }\n}\nfunction processRootScheduleInMicrotask() {\n  mightHavePendingSyncWork = didScheduleMicrotask = !1;\n  var syncTransitionLanes = 0;\n  0 !== currentEventTransitionLane &&\n    (shouldAttemptEagerTransition() &&\n      (syncTransitionLanes = currentEventTransitionLane),\n    (currentEventTransitionLane = 0));\n  for (\n    var currentTime = now(), prev = null, root = firstScheduledRoot;\n    null !== root;\n\n  ) {\n    var next = root.next,\n      nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n    if (0 === nextLanes)\n      (root.next = null),\n        null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n        null === next && (lastScheduledRoot = prev);\n    else if (\n      ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n    )\n      mightHavePendingSyncWork = !0;\n    root = next;\n  }\n  flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n}\nfunction scheduleTaskForRootDuringMicrotask(root, currentTime) {\n  for (\n    var suspendedLanes = root.suspendedLanes,\n      pingedLanes = root.pingedLanes,\n      expirationTimes = root.expirationTimes,\n      lanes = root.pendingLanes & -62914561;\n    0 < lanes;\n\n  ) {\n    var index$5 = 31 - clz32(lanes),\n      lane = 1 << index$5,\n      expirationTime = expirationTimes[index$5];\n    if (-1 === expirationTime) {\n      if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n        expirationTimes[index$5] = computeExpirationTime(lane, currentTime);\n    } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n    lanes &= ~lane;\n  }\n  currentTime = workInProgressRoot;\n  suspendedLanes = workInProgressRootRenderLanes;\n  suspendedLanes = getNextLanes(\n    root,\n    root === currentTime ? suspendedLanes : 0\n  );\n  pingedLanes = root.callbackNode;\n  if (\n    0 === suspendedLanes ||\n    (root === currentTime && 2 === workInProgressSuspendedReason) ||\n    null !== root.cancelPendingCommit\n  )\n    return (\n      null !== pingedLanes &&\n        null !== pingedLanes &&\n        cancelCallback$1(pingedLanes),\n      (root.callbackNode = null),\n      (root.callbackPriority = 0)\n    );\n  if (\n    0 === (suspendedLanes & 3) ||\n    checkIfRootIsPrerendering(root, suspendedLanes)\n  ) {\n    currentTime = suspendedLanes & -suspendedLanes;\n    if (currentTime === root.callbackPriority) return currentTime;\n    null !== pingedLanes && cancelCallback$1(pingedLanes);\n    switch (lanesToEventPriority(suspendedLanes)) {\n      case 2:\n      case 8:\n        suspendedLanes = UserBlockingPriority;\n        break;\n      case 32:\n        suspendedLanes = NormalPriority$1;\n        break;\n      case 268435456:\n        suspendedLanes = IdlePriority;\n        break;\n      default:\n        suspendedLanes = NormalPriority$1;\n    }\n    pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n    suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes);\n    root.callbackPriority = currentTime;\n    root.callbackNode = suspendedLanes;\n    return currentTime;\n  }\n  null !== pingedLanes && null !== pingedLanes && cancelCallback$1(pingedLanes);\n  root.callbackPriority = 2;\n  root.callbackNode = null;\n  return 2;\n}\nfunction performWorkOnRootViaSchedulerTask(root, didTimeout) {\n  var originalCallbackNode = root.callbackNode;\n  if (flushPassiveEffects() && root.callbackNode !== originalCallbackNode)\n    return null;\n  var workInProgressRootRenderLanes$jscomp$0 = workInProgressRootRenderLanes;\n  workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n    root,\n    root === workInProgressRoot ? workInProgressRootRenderLanes$jscomp$0 : 0\n  );\n  if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n  performWorkOnRoot(root, workInProgressRootRenderLanes$jscomp$0, didTimeout);\n  scheduleTaskForRootDuringMicrotask(root, now());\n  return null != root.callbackNode && root.callbackNode === originalCallbackNode\n    ? performWorkOnRootViaSchedulerTask.bind(null, root)\n    : null;\n}\nfunction performSyncWorkOnRoot(root, lanes) {\n  if (flushPassiveEffects()) return null;\n  performWorkOnRoot(root, lanes, !0);\n}\nfunction scheduleImmediateTask(cb) {\n  scheduleMicrotask(function () {\n    0 !== (executionContext & 6)\n      ? scheduleCallback$3(ImmediatePriority, cb)\n      : cb();\n  });\n}\nfunction requestTransitionLane() {\n  0 === currentEventTransitionLane &&\n    (currentEventTransitionLane = claimNextTransitionLane());\n  return currentEventTransitionLane;\n}\nfunction coerceFormActionProp(actionProp) {\n  return null == actionProp ||\n    \"symbol\" === typeof actionProp ||\n    \"boolean\" === typeof actionProp\n    ? null\n    : \"function\" === typeof actionProp\n      ? actionProp\n      : sanitizeURL(\"\" + actionProp);\n}\nfunction createFormDataWithSubmitter(form, submitter) {\n  var temp = submitter.ownerDocument.createElement(\"input\");\n  temp.name = submitter.name;\n  temp.value = submitter.value;\n  form.id && temp.setAttribute(\"form\", form.id);\n  submitter.parentNode.insertBefore(temp, submitter);\n  form = new FormData(form);\n  temp.parentNode.removeChild(temp);\n  return form;\n}\nfunction extractEvents$1(\n  dispatchQueue,\n  domEventName,\n  maybeTargetInst,\n  nativeEvent,\n  nativeEventTarget\n) {\n  if (\n    \"submit\" === domEventName &&\n    maybeTargetInst &&\n    maybeTargetInst.stateNode === nativeEventTarget\n  ) {\n    var action = coerceFormActionProp(\n        (nativeEventTarget[internalPropsKey] || null).action\n      ),\n      submitter = nativeEvent.submitter;\n    submitter &&\n      ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n        ? coerceFormActionProp(domEventName.formAction)\n        : submitter.getAttribute(\"formAction\")),\n      null !== domEventName && ((action = domEventName), (submitter = null)));\n    var event = new SyntheticEvent(\n      \"action\",\n      \"action\",\n      null,\n      nativeEvent,\n      nativeEventTarget\n    );\n    dispatchQueue.push({\n      event: event,\n      listeners: [\n        {\n          instance: null,\n          listener: function () {\n            if (nativeEvent.defaultPrevented) {\n              if (0 !== currentEventTransitionLane) {\n                var formData = submitter\n                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n                  : new FormData(nativeEventTarget);\n                startHostTransition(\n                  maybeTargetInst,\n                  {\n                    pending: !0,\n                    data: formData,\n                    method: nativeEventTarget.method,\n                    action: action\n                  },\n                  null,\n                  formData\n                );\n              }\n            } else\n              \"function\" === typeof action &&\n                (event.preventDefault(),\n                (formData = submitter\n                  ? createFormDataWithSubmitter(nativeEventTarget, submitter)\n                  : new FormData(nativeEventTarget)),\n                startHostTransition(\n                  maybeTargetInst,\n                  {\n                    pending: !0,\n                    data: formData,\n                    method: nativeEventTarget.method,\n                    action: action\n                  },\n                  action,\n                  formData\n                ));\n          },\n          currentTarget: nativeEventTarget\n        }\n      ]\n    });\n  }\n}\nfor (\n  var i$jscomp$inline_1439 = 0;\n  i$jscomp$inline_1439 < simpleEventPluginEvents.length;\n  i$jscomp$inline_1439++\n) {\n  var eventName$jscomp$inline_1440 =\n      simpleEventPluginEvents[i$jscomp$inline_1439],\n    domEventName$jscomp$inline_1441 =\n      eventName$jscomp$inline_1440.toLowerCase(),\n    capitalizedEvent$jscomp$inline_1442 =\n      eventName$jscomp$inline_1440[0].toUpperCase() +\n      eventName$jscomp$inline_1440.slice(1);\n  registerSimpleEvent(\n    domEventName$jscomp$inline_1441,\n    \"on\" + capitalizedEvent$jscomp$inline_1442\n  );\n}\nregisterSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\nregisterSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\nregisterSimpleEvent(ANIMATION_START, \"onAnimationStart\");\nregisterSimpleEvent(\"dblclick\", \"onDoubleClick\");\nregisterSimpleEvent(\"focusin\", \"onFocus\");\nregisterSimpleEvent(\"focusout\", \"onBlur\");\nregisterSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\nregisterSimpleEvent(TRANSITION_START, \"onTransitionStart\");\nregisterSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\nregisterSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\nregisterDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\nregisterDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\nregisterDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\nregisterTwoPhaseEvent(\n  \"onChange\",\n  \"change click focusin focusout input keydown keyup selectionchange\".split(\" \")\n);\nregisterTwoPhaseEvent(\n  \"onSelect\",\n  \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n    \" \"\n  )\n);\nregisterTwoPhaseEvent(\"onBeforeInput\", [\n  \"compositionend\",\n  \"keypress\",\n  \"textInput\",\n  \"paste\"\n]);\nregisterTwoPhaseEvent(\n  \"onCompositionEnd\",\n  \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n  \"onCompositionStart\",\n  \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n);\nregisterTwoPhaseEvent(\n  \"onCompositionUpdate\",\n  \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n);\nvar mediaEventTypes =\n    \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n      \" \"\n    ),\n  nonDelegatedEvents = new Set(\n    \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n      .split(\" \")\n      .concat(mediaEventTypes)\n  );\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n  eventSystemFlags = 0 !== (eventSystemFlags & 4);\n  for (var i = 0; i < dispatchQueue.length; i++) {\n    var _dispatchQueue$i = dispatchQueue[i],\n      event = _dispatchQueue$i.event;\n    _dispatchQueue$i = _dispatchQueue$i.listeners;\n    a: {\n      var previousInstance = void 0;\n      if (eventSystemFlags)\n        for (\n          var i$jscomp$0 = _dispatchQueue$i.length - 1;\n          0 <= i$jscomp$0;\n          i$jscomp$0--\n        ) {\n          var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n            instance = _dispatchListeners$i.instance,\n            currentTarget = _dispatchListeners$i.currentTarget;\n          _dispatchListeners$i = _dispatchListeners$i.listener;\n          if (instance !== previousInstance && event.isPropagationStopped())\n            break a;\n          previousInstance = _dispatchListeners$i;\n          event.currentTarget = currentTarget;\n          try {\n            previousInstance(event);\n          } catch (error) {\n            reportGlobalError(error);\n          }\n          event.currentTarget = null;\n          previousInstance = instance;\n        }\n      else\n        for (\n          i$jscomp$0 = 0;\n          i$jscomp$0 < _dispatchQueue$i.length;\n          i$jscomp$0++\n        ) {\n          _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n          instance = _dispatchListeners$i.instance;\n          currentTarget = _dispatchListeners$i.currentTarget;\n          _dispatchListeners$i = _dispatchListeners$i.listener;\n          if (instance !== previousInstance && event.isPropagationStopped())\n            break a;\n          previousInstance = _dispatchListeners$i;\n          event.currentTarget = currentTarget;\n          try {\n            previousInstance(event);\n          } catch (error) {\n            reportGlobalError(error);\n          }\n          event.currentTarget = null;\n          previousInstance = instance;\n        }\n    }\n  }\n}\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n  var JSCompiler_inline_result = targetElement[internalEventHandlersKey];\n  void 0 === JSCompiler_inline_result &&\n    (JSCompiler_inline_result = targetElement[internalEventHandlersKey] =\n      new Set());\n  var listenerSetKey = domEventName + \"__bubble\";\n  JSCompiler_inline_result.has(listenerSetKey) ||\n    (addTrappedEventListener(targetElement, domEventName, 2, !1),\n    JSCompiler_inline_result.add(listenerSetKey));\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n  var eventSystemFlags = 0;\n  isCapturePhaseListener && (eventSystemFlags |= 4);\n  addTrappedEventListener(\n    target,\n    domEventName,\n    eventSystemFlags,\n    isCapturePhaseListener\n  );\n}\nvar listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n  if (!rootContainerElement[listeningMarker]) {\n    rootContainerElement[listeningMarker] = !0;\n    allNativeEvents.forEach(function (domEventName) {\n      \"selectionchange\" !== domEventName &&\n        (nonDelegatedEvents.has(domEventName) ||\n          listenToNativeEvent(domEventName, !1, rootContainerElement),\n        listenToNativeEvent(domEventName, !0, rootContainerElement));\n    });\n    var ownerDocument =\n      9 === rootContainerElement.nodeType\n        ? rootContainerElement\n        : rootContainerElement.ownerDocument;\n    null === ownerDocument ||\n      ownerDocument[listeningMarker] ||\n      ((ownerDocument[listeningMarker] = !0),\n      listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n  }\n}\nfunction addTrappedEventListener(\n  targetContainer,\n  domEventName,\n  eventSystemFlags,\n  isCapturePhaseListener\n) {\n  switch (getEventPriority(domEventName)) {\n    case 2:\n      var listenerWrapper = dispatchDiscreteEvent;\n      break;\n    case 8:\n      listenerWrapper = dispatchContinuousEvent;\n      break;\n    default:\n      listenerWrapper = dispatchEvent;\n  }\n  eventSystemFlags = listenerWrapper.bind(\n    null,\n    domEventName,\n    eventSystemFlags,\n    targetContainer\n  );\n  listenerWrapper = void 0;\n  !passiveBrowserEventsSupported ||\n    (\"touchstart\" !== domEventName &&\n      \"touchmove\" !== domEventName &&\n      \"wheel\" !== domEventName) ||\n    (listenerWrapper = !0);\n  isCapturePhaseListener\n    ? void 0 !== listenerWrapper\n      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n          capture: !0,\n          passive: listenerWrapper\n        })\n      : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n    : void 0 !== listenerWrapper\n      ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n          passive: listenerWrapper\n        })\n      : targetContainer.addEventListener(domEventName, eventSystemFlags, !1);\n}\nfunction dispatchEventForPluginEventSystem(\n  domEventName,\n  eventSystemFlags,\n  nativeEvent,\n  targetInst$jscomp$0,\n  targetContainer\n) {\n  var ancestorInst = targetInst$jscomp$0;\n  if (\n    0 === (eventSystemFlags & 1) &&\n    0 === (eventSystemFlags & 2) &&\n    null !== targetInst$jscomp$0\n  )\n    a: for (;;) {\n      if (null === targetInst$jscomp$0) return;\n      var nodeTag = targetInst$jscomp$0.tag;\n      if (3 === nodeTag || 4 === nodeTag) {\n        var container = targetInst$jscomp$0.stateNode.containerInfo;\n        if (\n          container === targetContainer ||\n          (8 === container.nodeType && container.parentNode === targetContainer)\n        )\n          break;\n        if (4 === nodeTag)\n          for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n            var grandTag = nodeTag.tag;\n            if (3 === grandTag || 4 === grandTag)\n              if (\n                ((grandTag = nodeTag.stateNode.containerInfo),\n                grandTag === targetContainer ||\n                  (8 === grandTag.nodeType &&\n                    grandTag.parentNode === targetContainer))\n              )\n                return;\n            nodeTag = nodeTag.return;\n          }\n        for (; null !== container; ) {\n          nodeTag = getClosestInstanceFromNode(container);\n          if (null === nodeTag) return;\n          grandTag = nodeTag.tag;\n          if (\n            5 === grandTag ||\n            6 === grandTag ||\n            26 === grandTag ||\n            27 === grandTag\n          ) {\n            targetInst$jscomp$0 = ancestorInst = nodeTag;\n            continue a;\n          }\n          container = container.parentNode;\n        }\n      }\n      targetInst$jscomp$0 = targetInst$jscomp$0.return;\n    }\n  batchedUpdates$1(function () {\n    var targetInst = ancestorInst,\n      nativeEventTarget = getEventTarget(nativeEvent),\n      dispatchQueue = [];\n    a: {\n      var reactName = topLevelEventsToReactNames.get(domEventName);\n      if (void 0 !== reactName) {\n        var SyntheticEventCtor = SyntheticEvent,\n          reactEventType = domEventName;\n        switch (domEventName) {\n          case \"keypress\":\n            if (0 === getEventCharCode(nativeEvent)) break a;\n          case \"keydown\":\n          case \"keyup\":\n            SyntheticEventCtor = SyntheticKeyboardEvent;\n            break;\n          case \"focusin\":\n            reactEventType = \"focus\";\n            SyntheticEventCtor = SyntheticFocusEvent;\n            break;\n          case \"focusout\":\n            reactEventType = \"blur\";\n            SyntheticEventCtor = SyntheticFocusEvent;\n            break;\n          case \"beforeblur\":\n          case \"afterblur\":\n            SyntheticEventCtor = SyntheticFocusEvent;\n            break;\n          case \"click\":\n            if (2 === nativeEvent.button) break a;\n          case \"auxclick\":\n          case \"dblclick\":\n          case \"mousedown\":\n          case \"mousemove\":\n          case \"mouseup\":\n          case \"mouseout\":\n          case \"mouseover\":\n          case \"contextmenu\":\n            SyntheticEventCtor = SyntheticMouseEvent;\n            break;\n          case \"drag\":\n          case \"dragend\":\n          case \"dragenter\":\n          case \"dragexit\":\n          case \"dragleave\":\n          case \"dragover\":\n          case \"dragstart\":\n          case \"drop\":\n            SyntheticEventCtor = SyntheticDragEvent;\n            break;\n          case \"touchcancel\":\n          case \"touchend\":\n          case \"touchmove\":\n          case \"touchstart\":\n            SyntheticEventCtor = SyntheticTouchEvent;\n            break;\n          case ANIMATION_END:\n          case ANIMATION_ITERATION:\n          case ANIMATION_START:\n            SyntheticEventCtor = SyntheticAnimationEvent;\n            break;\n          case TRANSITION_END:\n            SyntheticEventCtor = SyntheticTransitionEvent;\n            break;\n          case \"scroll\":\n          case \"scrollend\":\n            SyntheticEventCtor = SyntheticUIEvent;\n            break;\n          case \"wheel\":\n            SyntheticEventCtor = SyntheticWheelEvent;\n            break;\n          case \"copy\":\n          case \"cut\":\n          case \"paste\":\n            SyntheticEventCtor = SyntheticClipboardEvent;\n            break;\n          case \"gotpointercapture\":\n          case \"lostpointercapture\":\n          case \"pointercancel\":\n          case \"pointerdown\":\n          case \"pointermove\":\n          case \"pointerout\":\n          case \"pointerover\":\n          case \"pointerup\":\n            SyntheticEventCtor = SyntheticPointerEvent;\n            break;\n          case \"toggle\":\n          case \"beforetoggle\":\n            SyntheticEventCtor = SyntheticToggleEvent;\n        }\n        var inCapturePhase = 0 !== (eventSystemFlags & 4),\n          accumulateTargetOnly =\n            !inCapturePhase &&\n            (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n          reactEventName = inCapturePhase\n            ? null !== reactName\n              ? reactName + \"Capture\"\n              : null\n            : reactName;\n        inCapturePhase = [];\n        for (\n          var instance = targetInst, lastHostComponent;\n          null !== instance;\n\n        ) {\n          var _instance = instance;\n          lastHostComponent = _instance.stateNode;\n          _instance = _instance.tag;\n          (5 !== _instance && 26 !== _instance && 27 !== _instance) ||\n            null === lastHostComponent ||\n            null === reactEventName ||\n            ((_instance = getListener(instance, reactEventName)),\n            null != _instance &&\n              inCapturePhase.push(\n                createDispatchListener(instance, _instance, lastHostComponent)\n              ));\n          if (accumulateTargetOnly) break;\n          instance = instance.return;\n        }\n        0 < inCapturePhase.length &&\n          ((reactName = new SyntheticEventCtor(\n            reactName,\n            reactEventType,\n            null,\n            nativeEvent,\n            nativeEventTarget\n          )),\n          dispatchQueue.push({ event: reactName, listeners: inCapturePhase }));\n      }\n    }\n    if (0 === (eventSystemFlags & 7)) {\n      a: {\n        reactName =\n          \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n        SyntheticEventCtor =\n          \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n        if (\n          reactName &&\n          nativeEvent !== currentReplayingEvent &&\n          (reactEventType =\n            nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n          (getClosestInstanceFromNode(reactEventType) ||\n            reactEventType[internalContainerInstanceKey])\n        )\n          break a;\n        if (SyntheticEventCtor || reactName) {\n          reactName =\n            nativeEventTarget.window === nativeEventTarget\n              ? nativeEventTarget\n              : (reactName = nativeEventTarget.ownerDocument)\n                ? reactName.defaultView || reactName.parentWindow\n                : window;\n          if (SyntheticEventCtor) {\n            if (\n              ((reactEventType =\n                nativeEvent.relatedTarget || nativeEvent.toElement),\n              (SyntheticEventCtor = targetInst),\n              (reactEventType = reactEventType\n                ? getClosestInstanceFromNode(reactEventType)\n                : null),\n              null !== reactEventType &&\n                ((accumulateTargetOnly =\n                  getNearestMountedFiber(reactEventType)),\n                (inCapturePhase = reactEventType.tag),\n                reactEventType !== accumulateTargetOnly ||\n                  (5 !== inCapturePhase &&\n                    27 !== inCapturePhase &&\n                    6 !== inCapturePhase)))\n            )\n              reactEventType = null;\n          } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n          if (SyntheticEventCtor !== reactEventType) {\n            inCapturePhase = SyntheticMouseEvent;\n            _instance = \"onMouseLeave\";\n            reactEventName = \"onMouseEnter\";\n            instance = \"mouse\";\n            if (\"pointerout\" === domEventName || \"pointerover\" === domEventName)\n              (inCapturePhase = SyntheticPointerEvent),\n                (_instance = \"onPointerLeave\"),\n                (reactEventName = \"onPointerEnter\"),\n                (instance = \"pointer\");\n            accumulateTargetOnly =\n              null == SyntheticEventCtor\n                ? reactName\n                : getNodeFromInstance(SyntheticEventCtor);\n            lastHostComponent =\n              null == reactEventType\n                ? reactName\n                : getNodeFromInstance(reactEventType);\n            reactName = new inCapturePhase(\n              _instance,\n              instance + \"leave\",\n              SyntheticEventCtor,\n              nativeEvent,\n              nativeEventTarget\n            );\n            reactName.target = accumulateTargetOnly;\n            reactName.relatedTarget = lastHostComponent;\n            _instance = null;\n            getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n              ((inCapturePhase = new inCapturePhase(\n                reactEventName,\n                instance + \"enter\",\n                reactEventType,\n                nativeEvent,\n                nativeEventTarget\n              )),\n              (inCapturePhase.target = lastHostComponent),\n              (inCapturePhase.relatedTarget = accumulateTargetOnly),\n              (_instance = inCapturePhase));\n            accumulateTargetOnly = _instance;\n            if (SyntheticEventCtor && reactEventType)\n              b: {\n                inCapturePhase = SyntheticEventCtor;\n                reactEventName = reactEventType;\n                instance = 0;\n                for (\n                  lastHostComponent = inCapturePhase;\n                  lastHostComponent;\n                  lastHostComponent = getParent(lastHostComponent)\n                )\n                  instance++;\n                lastHostComponent = 0;\n                for (\n                  _instance = reactEventName;\n                  _instance;\n                  _instance = getParent(_instance)\n                )\n                  lastHostComponent++;\n                for (; 0 < instance - lastHostComponent; )\n                  (inCapturePhase = getParent(inCapturePhase)), instance--;\n                for (; 0 < lastHostComponent - instance; )\n                  (reactEventName = getParent(reactEventName)),\n                    lastHostComponent--;\n                for (; instance--; ) {\n                  if (\n                    inCapturePhase === reactEventName ||\n                    (null !== reactEventName &&\n                      inCapturePhase === reactEventName.alternate)\n                  )\n                    break b;\n                  inCapturePhase = getParent(inCapturePhase);\n                  reactEventName = getParent(reactEventName);\n                }\n                inCapturePhase = null;\n              }\n            else inCapturePhase = null;\n            null !== SyntheticEventCtor &&\n              accumulateEnterLeaveListenersForEvent(\n                dispatchQueue,\n                reactName,\n                SyntheticEventCtor,\n                inCapturePhase,\n                !1\n              );\n            null !== reactEventType &&\n              null !== accumulateTargetOnly &&\n              accumulateEnterLeaveListenersForEvent(\n                dispatchQueue,\n                accumulateTargetOnly,\n                reactEventType,\n                inCapturePhase,\n                !0\n              );\n          }\n        }\n      }\n      a: {\n        reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n        SyntheticEventCtor =\n          reactName.nodeName && reactName.nodeName.toLowerCase();\n        if (\n          \"select\" === SyntheticEventCtor ||\n          (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n        )\n          var getTargetInstFunc = getTargetInstForChangeEvent;\n        else if (isTextInputElement(reactName))\n          if (isInputEventSupported)\n            getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n          else {\n            getTargetInstFunc = getTargetInstForInputEventPolyfill;\n            var handleEventFunc = handleEventsForInputEventPolyfill;\n          }\n        else\n          (SyntheticEventCtor = reactName.nodeName),\n            !SyntheticEventCtor ||\n            \"input\" !== SyntheticEventCtor.toLowerCase() ||\n            (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n              ? targetInst &&\n                isCustomElement(targetInst.elementType) &&\n                (getTargetInstFunc = getTargetInstForChangeEvent)\n              : (getTargetInstFunc = getTargetInstForClickEvent);\n        if (\n          getTargetInstFunc &&\n          (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n        ) {\n          createAndAccumulateChangeEvent(\n            dispatchQueue,\n            getTargetInstFunc,\n            nativeEvent,\n            nativeEventTarget\n          );\n          break a;\n        }\n        handleEventFunc && handleEventFunc(domEventName, reactName, targetInst);\n        \"focusout\" === domEventName &&\n          targetInst &&\n          \"number\" === reactName.type &&\n          null != targetInst.memoizedProps.value &&\n          setDefaultValue(reactName, \"number\", reactName.value);\n      }\n      handleEventFunc = targetInst ? getNodeFromInstance(targetInst) : window;\n      switch (domEventName) {\n        case \"focusin\":\n          if (\n            isTextInputElement(handleEventFunc) ||\n            \"true\" === handleEventFunc.contentEditable\n          )\n            (activeElement = handleEventFunc),\n              (activeElementInst = targetInst),\n              (lastSelection = null);\n          break;\n        case \"focusout\":\n          lastSelection = activeElementInst = activeElement = null;\n          break;\n        case \"mousedown\":\n          mouseDown = !0;\n          break;\n        case \"contextmenu\":\n        case \"mouseup\":\n        case \"dragend\":\n          mouseDown = !1;\n          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n          break;\n        case \"selectionchange\":\n          if (skipSelectionChangeEvent) break;\n        case \"keydown\":\n        case \"keyup\":\n          constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n      }\n      var fallbackData;\n      if (canUseCompositionEvent)\n        b: {\n          switch (domEventName) {\n            case \"compositionstart\":\n              var eventType = \"onCompositionStart\";\n              break b;\n            case \"compositionend\":\n              eventType = \"onCompositionEnd\";\n              break b;\n            case \"compositionupdate\":\n              eventType = \"onCompositionUpdate\";\n              break b;\n          }\n          eventType = void 0;\n        }\n      else\n        isComposing\n          ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n            (eventType = \"onCompositionEnd\")\n          : \"keydown\" === domEventName &&\n            229 === nativeEvent.keyCode &&\n            (eventType = \"onCompositionStart\");\n      eventType &&\n        (useFallbackCompositionData &&\n          \"ko\" !== nativeEvent.locale &&\n          (isComposing || \"onCompositionStart\" !== eventType\n            ? \"onCompositionEnd\" === eventType &&\n              isComposing &&\n              (fallbackData = getData())\n            : ((root = nativeEventTarget),\n              (startText = \"value\" in root ? root.value : root.textContent),\n              (isComposing = !0))),\n        (handleEventFunc = accumulateTwoPhaseListeners(targetInst, eventType)),\n        0 < handleEventFunc.length &&\n          ((eventType = new SyntheticCompositionEvent(\n            eventType,\n            domEventName,\n            null,\n            nativeEvent,\n            nativeEventTarget\n          )),\n          dispatchQueue.push({ event: eventType, listeners: handleEventFunc }),\n          fallbackData\n            ? (eventType.data = fallbackData)\n            : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n              null !== fallbackData && (eventType.data = fallbackData))));\n      if (\n        (fallbackData = canUseTextInputEvent\n          ? getNativeBeforeInputChars(domEventName, nativeEvent)\n          : getFallbackBeforeInputChars(domEventName, nativeEvent))\n      )\n        (eventType = accumulateTwoPhaseListeners(targetInst, \"onBeforeInput\")),\n          0 < eventType.length &&\n            ((handleEventFunc = new SyntheticCompositionEvent(\n              \"onBeforeInput\",\n              \"beforeinput\",\n              null,\n              nativeEvent,\n              nativeEventTarget\n            )),\n            dispatchQueue.push({\n              event: handleEventFunc,\n              listeners: eventType\n            }),\n            (handleEventFunc.data = fallbackData));\n      extractEvents$1(\n        dispatchQueue,\n        domEventName,\n        targetInst,\n        nativeEvent,\n        nativeEventTarget\n      );\n    }\n    processDispatchQueue(dispatchQueue, eventSystemFlags);\n  });\n}\nfunction createDispatchListener(instance, listener, currentTarget) {\n  return {\n    instance: instance,\n    listener: listener,\n    currentTarget: currentTarget\n  };\n}\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n  for (\n    var captureName = reactName + \"Capture\", listeners = [];\n    null !== targetFiber;\n\n  ) {\n    var _instance2 = targetFiber,\n      stateNode = _instance2.stateNode;\n    _instance2 = _instance2.tag;\n    (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n      null === stateNode ||\n      ((_instance2 = getListener(targetFiber, captureName)),\n      null != _instance2 &&\n        listeners.unshift(\n          createDispatchListener(targetFiber, _instance2, stateNode)\n        ),\n      (_instance2 = getListener(targetFiber, reactName)),\n      null != _instance2 &&\n        listeners.push(\n          createDispatchListener(targetFiber, _instance2, stateNode)\n        ));\n    targetFiber = targetFiber.return;\n  }\n  return listeners;\n}\nfunction getParent(inst) {\n  if (null === inst) return null;\n  do inst = inst.return;\n  while (inst && 5 !== inst.tag && 27 !== inst.tag);\n  return inst ? inst : null;\n}\nfunction accumulateEnterLeaveListenersForEvent(\n  dispatchQueue,\n  event,\n  target,\n  common,\n  inCapturePhase\n) {\n  for (\n    var registrationName = event._reactName, listeners = [];\n    null !== target && target !== common;\n\n  ) {\n    var _instance3 = target,\n      alternate = _instance3.alternate,\n      stateNode = _instance3.stateNode;\n    _instance3 = _instance3.tag;\n    if (null !== alternate && alternate === common) break;\n    (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n      null === stateNode ||\n      ((alternate = stateNode),\n      inCapturePhase\n        ? ((stateNode = getListener(target, registrationName)),\n          null != stateNode &&\n            listeners.unshift(\n              createDispatchListener(target, stateNode, alternate)\n            ))\n        : inCapturePhase ||\n          ((stateNode = getListener(target, registrationName)),\n          null != stateNode &&\n            listeners.push(\n              createDispatchListener(target, stateNode, alternate)\n            )));\n    target = target.return;\n  }\n  0 !== listeners.length &&\n    dispatchQueue.push({ event: event, listeners: listeners });\n}\nvar NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n  NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\nfunction normalizeMarkupForTextOrAttribute(markup) {\n  return (\"string\" === typeof markup ? markup : \"\" + markup)\n    .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n    .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n}\nfunction checkForUnmatchedText(serverText, clientText) {\n  clientText = normalizeMarkupForTextOrAttribute(clientText);\n  return normalizeMarkupForTextOrAttribute(serverText) === clientText ? !0 : !1;\n}\nfunction noop$1() {}\nfunction setProp(domElement, tag, key, value, props, prevValue) {\n  switch (key) {\n    case \"children\":\n      \"string\" === typeof value\n        ? \"body\" === tag ||\n          (\"textarea\" === tag && \"\" === value) ||\n          setTextContent(domElement, value)\n        : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n          \"body\" !== tag &&\n          setTextContent(domElement, \"\" + value);\n      break;\n    case \"className\":\n      setValueForKnownAttribute(domElement, \"class\", value);\n      break;\n    case \"tabIndex\":\n      setValueForKnownAttribute(domElement, \"tabindex\", value);\n      break;\n    case \"dir\":\n    case \"role\":\n    case \"viewBox\":\n    case \"width\":\n    case \"height\":\n      setValueForKnownAttribute(domElement, key, value);\n      break;\n    case \"style\":\n      setValueForStyles(domElement, value, prevValue);\n      break;\n    case \"data\":\n      if (\"object\" !== tag) {\n        setValueForKnownAttribute(domElement, \"data\", value);\n        break;\n      }\n    case \"src\":\n    case \"href\":\n      if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n        domElement.removeAttribute(key);\n        break;\n      }\n      if (\n        null == value ||\n        \"function\" === typeof value ||\n        \"symbol\" === typeof value ||\n        \"boolean\" === typeof value\n      ) {\n        domElement.removeAttribute(key);\n        break;\n      }\n      value = sanitizeURL(\"\" + value);\n      domElement.setAttribute(key, value);\n      break;\n    case \"action\":\n    case \"formAction\":\n      if (\"function\" === typeof value) {\n        domElement.setAttribute(\n          key,\n          \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n        );\n        break;\n      } else\n        \"function\" === typeof prevValue &&\n          (\"formAction\" === key\n            ? (\"input\" !== tag &&\n                setProp(domElement, tag, \"name\", props.name, props, null),\n              setProp(\n                domElement,\n                tag,\n                \"formEncType\",\n                props.formEncType,\n                props,\n                null\n              ),\n              setProp(\n                domElement,\n                tag,\n                \"formMethod\",\n                props.formMethod,\n                props,\n                null\n              ),\n              setProp(\n                domElement,\n                tag,\n                \"formTarget\",\n                props.formTarget,\n                props,\n                null\n              ))\n            : (setProp(domElement, tag, \"encType\", props.encType, props, null),\n              setProp(domElement, tag, \"method\", props.method, props, null),\n              setProp(domElement, tag, \"target\", props.target, props, null)));\n      if (\n        null == value ||\n        \"symbol\" === typeof value ||\n        \"boolean\" === typeof value\n      ) {\n        domElement.removeAttribute(key);\n        break;\n      }\n      value = sanitizeURL(\"\" + value);\n      domElement.setAttribute(key, value);\n      break;\n    case \"onClick\":\n      null != value && (domElement.onclick = noop$1);\n      break;\n    case \"onScroll\":\n      null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n      break;\n    case \"onScrollEnd\":\n      null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n      break;\n    case \"dangerouslySetInnerHTML\":\n      if (null != value) {\n        if (\"object\" !== typeof value || !(\"__html\" in value))\n          throw Error(formatProdErrorMessage(61));\n        key = value.__html;\n        if (null != key) {\n          if (null != props.children) throw Error(formatProdErrorMessage(60));\n          domElement.innerHTML = key;\n        }\n      }\n      break;\n    case \"multiple\":\n      domElement.multiple =\n        value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n      break;\n    case \"muted\":\n      domElement.muted =\n        value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n      break;\n    case \"suppressContentEditableWarning\":\n    case \"suppressHydrationWarning\":\n    case \"defaultValue\":\n    case \"defaultChecked\":\n    case \"innerHTML\":\n    case \"ref\":\n      break;\n    case \"autoFocus\":\n      break;\n    case \"xlinkHref\":\n      if (\n        null == value ||\n        \"function\" === typeof value ||\n        \"boolean\" === typeof value ||\n        \"symbol\" === typeof value\n      ) {\n        domElement.removeAttribute(\"xlink:href\");\n        break;\n      }\n      key = sanitizeURL(\"\" + value);\n      domElement.setAttributeNS(\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:href\",\n        key\n      );\n      break;\n    case \"contentEditable\":\n    case \"spellCheck\":\n    case \"draggable\":\n    case \"value\":\n    case \"autoReverse\":\n    case \"externalResourcesRequired\":\n    case \"focusable\":\n    case \"preserveAlpha\":\n      null != value && \"function\" !== typeof value && \"symbol\" !== typeof value\n        ? domElement.setAttribute(key, \"\" + value)\n        : domElement.removeAttribute(key);\n      break;\n    case \"inert\":\n    case \"allowFullScreen\":\n    case \"async\":\n    case \"autoPlay\":\n    case \"controls\":\n    case \"default\":\n    case \"defer\":\n    case \"disabled\":\n    case \"disablePictureInPicture\":\n    case \"disableRemotePlayback\":\n    case \"formNoValidate\":\n    case \"hidden\":\n    case \"loop\":\n    case \"noModule\":\n    case \"noValidate\":\n    case \"open\":\n    case \"playsInline\":\n    case \"readOnly\":\n    case \"required\":\n    case \"reversed\":\n    case \"scoped\":\n    case \"seamless\":\n    case \"itemScope\":\n      value && \"function\" !== typeof value && \"symbol\" !== typeof value\n        ? domElement.setAttribute(key, \"\")\n        : domElement.removeAttribute(key);\n      break;\n    case \"capture\":\n    case \"download\":\n      !0 === value\n        ? domElement.setAttribute(key, \"\")\n        : !1 !== value &&\n            null != value &&\n            \"function\" !== typeof value &&\n            \"symbol\" !== typeof value\n          ? domElement.setAttribute(key, value)\n          : domElement.removeAttribute(key);\n      break;\n    case \"cols\":\n    case \"rows\":\n    case \"size\":\n    case \"span\":\n      null != value &&\n      \"function\" !== typeof value &&\n      \"symbol\" !== typeof value &&\n      !isNaN(value) &&\n      1 <= value\n        ? domElement.setAttribute(key, value)\n        : domElement.removeAttribute(key);\n      break;\n    case \"rowSpan\":\n    case \"start\":\n      null == value ||\n      \"function\" === typeof value ||\n      \"symbol\" === typeof value ||\n      isNaN(value)\n        ? domElement.removeAttribute(key)\n        : domElement.setAttribute(key, value);\n      break;\n    case \"popover\":\n      listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n      listenToNonDelegatedEvent(\"toggle\", domElement);\n      setValueForAttribute(domElement, \"popover\", value);\n      break;\n    case \"xlinkActuate\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:actuate\",\n        value\n      );\n      break;\n    case \"xlinkArcrole\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:arcrole\",\n        value\n      );\n      break;\n    case \"xlinkRole\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:role\",\n        value\n      );\n      break;\n    case \"xlinkShow\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:show\",\n        value\n      );\n      break;\n    case \"xlinkTitle\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:title\",\n        value\n      );\n      break;\n    case \"xlinkType\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/1999/xlink\",\n        \"xlink:type\",\n        value\n      );\n      break;\n    case \"xmlBase\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/XML/1998/namespace\",\n        \"xml:base\",\n        value\n      );\n      break;\n    case \"xmlLang\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/XML/1998/namespace\",\n        \"xml:lang\",\n        value\n      );\n      break;\n    case \"xmlSpace\":\n      setValueForNamespacedAttribute(\n        domElement,\n        \"http://www.w3.org/XML/1998/namespace\",\n        \"xml:space\",\n        value\n      );\n      break;\n    case \"is\":\n      setValueForAttribute(domElement, \"is\", value);\n      break;\n    case \"innerText\":\n    case \"textContent\":\n      break;\n    default:\n      if (\n        !(2 < key.length) ||\n        (\"o\" !== key[0] && \"O\" !== key[0]) ||\n        (\"n\" !== key[1] && \"N\" !== key[1])\n      )\n        (key = aliases.get(key) || key),\n          setValueForAttribute(domElement, key, value);\n  }\n}\nfunction setPropOnCustomElement(domElement, tag, key, value, props, prevValue) {\n  switch (key) {\n    case \"style\":\n      setValueForStyles(domElement, value, prevValue);\n      break;\n    case \"dangerouslySetInnerHTML\":\n      if (null != value) {\n        if (\"object\" !== typeof value || !(\"__html\" in value))\n          throw Error(formatProdErrorMessage(61));\n        key = value.__html;\n        if (null != key) {\n          if (null != props.children) throw Error(formatProdErrorMessage(60));\n          domElement.innerHTML = key;\n        }\n      }\n      break;\n    case \"children\":\n      \"string\" === typeof value\n        ? setTextContent(domElement, value)\n        : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n          setTextContent(domElement, \"\" + value);\n      break;\n    case \"onScroll\":\n      null != value && listenToNonDelegatedEvent(\"scroll\", domElement);\n      break;\n    case \"onScrollEnd\":\n      null != value && listenToNonDelegatedEvent(\"scrollend\", domElement);\n      break;\n    case \"onClick\":\n      null != value && (domElement.onclick = noop$1);\n      break;\n    case \"suppressContentEditableWarning\":\n    case \"suppressHydrationWarning\":\n    case \"innerHTML\":\n    case \"ref\":\n      break;\n    case \"innerText\":\n    case \"textContent\":\n      break;\n    default:\n      if (!registrationNameDependencies.hasOwnProperty(key))\n        a: {\n          if (\n            \"o\" === key[0] &&\n            \"n\" === key[1] &&\n            ((props = key.endsWith(\"Capture\")),\n            (tag = key.slice(2, props ? key.length - 7 : void 0)),\n            (prevValue = domElement[internalPropsKey] || null),\n            (prevValue = null != prevValue ? prevValue[key] : null),\n            \"function\" === typeof prevValue &&\n              domElement.removeEventListener(tag, prevValue, props),\n            \"function\" === typeof value)\n          ) {\n            \"function\" !== typeof prevValue &&\n              null !== prevValue &&\n              (key in domElement\n                ? (domElement[key] = null)\n                : domElement.hasAttribute(key) &&\n                  domElement.removeAttribute(key));\n            domElement.addEventListener(tag, value, props);\n            break a;\n          }\n          key in domElement\n            ? (domElement[key] = value)\n            : !0 === value\n              ? domElement.setAttribute(key, \"\")\n              : setValueForAttribute(domElement, key, value);\n        }\n  }\n}\nfunction setInitialProperties(domElement, tag, props) {\n  switch (tag) {\n    case \"div\":\n    case \"span\":\n    case \"svg\":\n    case \"path\":\n    case \"a\":\n    case \"g\":\n    case \"p\":\n    case \"li\":\n      break;\n    case \"img\":\n      listenToNonDelegatedEvent(\"error\", domElement);\n      listenToNonDelegatedEvent(\"load\", domElement);\n      var hasSrc = !1,\n        hasSrcSet = !1,\n        propKey;\n      for (propKey in props)\n        if (props.hasOwnProperty(propKey)) {\n          var propValue = props[propKey];\n          if (null != propValue)\n            switch (propKey) {\n              case \"src\":\n                hasSrc = !0;\n                break;\n              case \"srcSet\":\n                hasSrcSet = !0;\n                break;\n              case \"children\":\n              case \"dangerouslySetInnerHTML\":\n                throw Error(formatProdErrorMessage(137, tag));\n              default:\n                setProp(domElement, tag, propKey, propValue, props, null);\n            }\n        }\n      hasSrcSet &&\n        setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n      hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n      return;\n    case \"input\":\n      listenToNonDelegatedEvent(\"invalid\", domElement);\n      var defaultValue = (propKey = propValue = hasSrcSet = null),\n        checked = null,\n        defaultChecked = null;\n      for (hasSrc in props)\n        if (props.hasOwnProperty(hasSrc)) {\n          var propValue$186 = props[hasSrc];\n          if (null != propValue$186)\n            switch (hasSrc) {\n              case \"name\":\n                hasSrcSet = propValue$186;\n                break;\n              case \"type\":\n                propValue = propValue$186;\n                break;\n              case \"checked\":\n                checked = propValue$186;\n                break;\n              case \"defaultChecked\":\n                defaultChecked = propValue$186;\n                break;\n              case \"value\":\n                propKey = propValue$186;\n                break;\n              case \"defaultValue\":\n                defaultValue = propValue$186;\n                break;\n              case \"children\":\n              case \"dangerouslySetInnerHTML\":\n                if (null != propValue$186)\n                  throw Error(formatProdErrorMessage(137, tag));\n                break;\n              default:\n                setProp(domElement, tag, hasSrc, propValue$186, props, null);\n            }\n        }\n      initInput(\n        domElement,\n        propKey,\n        defaultValue,\n        checked,\n        defaultChecked,\n        propValue,\n        hasSrcSet,\n        !1\n      );\n      track(domElement);\n      return;\n    case \"select\":\n      listenToNonDelegatedEvent(\"invalid\", domElement);\n      hasSrc = propValue = propKey = null;\n      for (hasSrcSet in props)\n        if (\n          props.hasOwnProperty(hasSrcSet) &&\n          ((defaultValue = props[hasSrcSet]), null != defaultValue)\n        )\n          switch (hasSrcSet) {\n            case \"value\":\n              propKey = defaultValue;\n              break;\n            case \"defaultValue\":\n              propValue = defaultValue;\n              break;\n            case \"multiple\":\n              hasSrc = defaultValue;\n            default:\n              setProp(domElement, tag, hasSrcSet, defaultValue, props, null);\n          }\n      tag = propKey;\n      props = propValue;\n      domElement.multiple = !!hasSrc;\n      null != tag\n        ? updateOptions(domElement, !!hasSrc, tag, !1)\n        : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n      return;\n    case \"textarea\":\n      listenToNonDelegatedEvent(\"invalid\", domElement);\n      propKey = hasSrcSet = hasSrc = null;\n      for (propValue in props)\n        if (\n          props.hasOwnProperty(propValue) &&\n          ((defaultValue = props[propValue]), null != defaultValue)\n        )\n          switch (propValue) {\n            case \"value\":\n              hasSrc = defaultValue;\n              break;\n            case \"defaultValue\":\n              hasSrcSet = defaultValue;\n              break;\n            case \"children\":\n              propKey = defaultValue;\n              break;\n            case \"dangerouslySetInnerHTML\":\n              if (null != defaultValue) throw Error(formatProdErrorMessage(91));\n              break;\n            default:\n              setProp(domElement, tag, propValue, defaultValue, props, null);\n          }\n      initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n      track(domElement);\n      return;\n    case \"option\":\n      for (checked in props)\n        if (\n          props.hasOwnProperty(checked) &&\n          ((hasSrc = props[checked]), null != hasSrc)\n        )\n          switch (checked) {\n            case \"selected\":\n              domElement.selected =\n                hasSrc &&\n                \"function\" !== typeof hasSrc &&\n                \"symbol\" !== typeof hasSrc;\n              break;\n            default:\n              setProp(domElement, tag, checked, hasSrc, props, null);\n          }\n      return;\n    case \"dialog\":\n      listenToNonDelegatedEvent(\"cancel\", domElement);\n      listenToNonDelegatedEvent(\"close\", domElement);\n      break;\n    case \"iframe\":\n    case \"object\":\n      listenToNonDelegatedEvent(\"load\", domElement);\n      break;\n    case \"video\":\n    case \"audio\":\n      for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n        listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n      break;\n    case \"image\":\n      listenToNonDelegatedEvent(\"error\", domElement);\n      listenToNonDelegatedEvent(\"load\", domElement);\n      break;\n    case \"details\":\n      listenToNonDelegatedEvent(\"toggle\", domElement);\n      break;\n    case \"embed\":\n    case \"source\":\n    case \"link\":\n      listenToNonDelegatedEvent(\"error\", domElement),\n        listenToNonDelegatedEvent(\"load\", domElement);\n    case \"area\":\n    case \"base\":\n    case \"br\":\n    case \"col\":\n    case \"hr\":\n    case \"keygen\":\n    case \"meta\":\n    case \"param\":\n    case \"track\":\n    case \"wbr\":\n    case \"menuitem\":\n      for (defaultChecked in props)\n        if (\n          props.hasOwnProperty(defaultChecked) &&\n          ((hasSrc = props[defaultChecked]), null != hasSrc)\n        )\n          switch (defaultChecked) {\n            case \"children\":\n            case \"dangerouslySetInnerHTML\":\n              throw Error(formatProdErrorMessage(137, tag));\n            default:\n              setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n          }\n      return;\n    default:\n      if (isCustomElement(tag)) {\n        for (propValue$186 in props)\n          props.hasOwnProperty(propValue$186) &&\n            ((hasSrc = props[propValue$186]),\n            void 0 !== hasSrc &&\n              setPropOnCustomElement(\n                domElement,\n                tag,\n                propValue$186,\n                hasSrc,\n                props,\n                void 0\n              ));\n        return;\n      }\n  }\n  for (defaultValue in props)\n    props.hasOwnProperty(defaultValue) &&\n      ((hasSrc = props[defaultValue]),\n      null != hasSrc &&\n        setProp(domElement, tag, defaultValue, hasSrc, props, null));\n}\nfunction updateProperties(domElement, tag, lastProps, nextProps) {\n  switch (tag) {\n    case \"div\":\n    case \"span\":\n    case \"svg\":\n    case \"path\":\n    case \"a\":\n    case \"g\":\n    case \"p\":\n    case \"li\":\n      break;\n    case \"input\":\n      var name = null,\n        type = null,\n        value = null,\n        defaultValue = null,\n        lastDefaultValue = null,\n        checked = null,\n        defaultChecked = null;\n      for (propKey in lastProps) {\n        var lastProp = lastProps[propKey];\n        if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n          switch (propKey) {\n            case \"checked\":\n              break;\n            case \"value\":\n              break;\n            case \"defaultValue\":\n              lastDefaultValue = lastProp;\n            default:\n              nextProps.hasOwnProperty(propKey) ||\n                setProp(domElement, tag, propKey, null, nextProps, lastProp);\n          }\n      }\n      for (var propKey$203 in nextProps) {\n        var propKey = nextProps[propKey$203];\n        lastProp = lastProps[propKey$203];\n        if (\n          nextProps.hasOwnProperty(propKey$203) &&\n          (null != propKey || null != lastProp)\n        )\n          switch (propKey$203) {\n            case \"type\":\n              type = propKey;\n              break;\n            case \"name\":\n              name = propKey;\n              break;\n            case \"checked\":\n              checked = propKey;\n              break;\n            case \"defaultChecked\":\n              defaultChecked = propKey;\n              break;\n            case \"value\":\n              value = propKey;\n              break;\n            case \"defaultValue\":\n              defaultValue = propKey;\n              break;\n            case \"children\":\n            case \"dangerouslySetInnerHTML\":\n              if (null != propKey)\n                throw Error(formatProdErrorMessage(137, tag));\n              break;\n            default:\n              propKey !== lastProp &&\n                setProp(\n                  domElement,\n                  tag,\n                  propKey$203,\n                  propKey,\n                  nextProps,\n                  lastProp\n                );\n          }\n      }\n      updateInput(\n        domElement,\n        value,\n        defaultValue,\n        lastDefaultValue,\n        checked,\n        defaultChecked,\n        type,\n        name\n      );\n      return;\n    case \"select\":\n      propKey = value = defaultValue = propKey$203 = null;\n      for (type in lastProps)\n        if (\n          ((lastDefaultValue = lastProps[type]),\n          lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n        )\n          switch (type) {\n            case \"value\":\n              break;\n            case \"multiple\":\n              propKey = lastDefaultValue;\n            default:\n              nextProps.hasOwnProperty(type) ||\n                setProp(\n                  domElement,\n                  tag,\n                  type,\n                  null,\n                  nextProps,\n                  lastDefaultValue\n                );\n          }\n      for (name in nextProps)\n        if (\n          ((type = nextProps[name]),\n          (lastDefaultValue = lastProps[name]),\n          nextProps.hasOwnProperty(name) &&\n            (null != type || null != lastDefaultValue))\n        )\n          switch (name) {\n            case \"value\":\n              propKey$203 = type;\n              break;\n            case \"defaultValue\":\n              defaultValue = type;\n              break;\n            case \"multiple\":\n              value = type;\n            default:\n              type !== lastDefaultValue &&\n                setProp(\n                  domElement,\n                  tag,\n                  name,\n                  type,\n                  nextProps,\n                  lastDefaultValue\n                );\n          }\n      tag = defaultValue;\n      lastProps = value;\n      nextProps = propKey;\n      null != propKey$203\n        ? updateOptions(domElement, !!lastProps, propKey$203, !1)\n        : !!nextProps !== !!lastProps &&\n          (null != tag\n            ? updateOptions(domElement, !!lastProps, tag, !0)\n            : updateOptions(domElement, !!lastProps, lastProps ? [] : \"\", !1));\n      return;\n    case \"textarea\":\n      propKey = propKey$203 = null;\n      for (defaultValue in lastProps)\n        if (\n          ((name = lastProps[defaultValue]),\n          lastProps.hasOwnProperty(defaultValue) &&\n            null != name &&\n            !nextProps.hasOwnProperty(defaultValue))\n        )\n          switch (defaultValue) {\n            case \"value\":\n              break;\n            case \"children\":\n              break;\n            default:\n              setProp(domElement, tag, defaultValue, null, nextProps, name);\n          }\n      for (value in nextProps)\n        if (\n          ((name = nextProps[value]),\n          (type = lastProps[value]),\n          nextProps.hasOwnProperty(value) && (null != name || null != type))\n        )\n          switch (value) {\n            case \"value\":\n              propKey$203 = name;\n              break;\n            case \"defaultValue\":\n              propKey = name;\n              break;\n            case \"children\":\n              break;\n            case \"dangerouslySetInnerHTML\":\n              if (null != name) throw Error(formatProdErrorMessage(91));\n              break;\n            default:\n              name !== type &&\n                setProp(domElement, tag, value, name, nextProps, type);\n          }\n      updateTextarea(domElement, propKey$203, propKey);\n      return;\n    case \"option\":\n      for (var propKey$219 in lastProps)\n        if (\n          ((propKey$203 = lastProps[propKey$219]),\n          lastProps.hasOwnProperty(propKey$219) &&\n            null != propKey$203 &&\n            !nextProps.hasOwnProperty(propKey$219))\n        )\n          switch (propKey$219) {\n            case \"selected\":\n              domElement.selected = !1;\n              break;\n            default:\n              setProp(\n                domElement,\n                tag,\n                propKey$219,\n                null,\n                nextProps,\n                propKey$203\n              );\n          }\n      for (lastDefaultValue in nextProps)\n        if (\n          ((propKey$203 = nextProps[lastDefaultValue]),\n          (propKey = lastProps[lastDefaultValue]),\n          nextProps.hasOwnProperty(lastDefaultValue) &&\n            propKey$203 !== propKey &&\n            (null != propKey$203 || null != propKey))\n        )\n          switch (lastDefaultValue) {\n            case \"selected\":\n              domElement.selected =\n                propKey$203 &&\n                \"function\" !== typeof propKey$203 &&\n                \"symbol\" !== typeof propKey$203;\n              break;\n            default:\n              setProp(\n                domElement,\n                tag,\n                lastDefaultValue,\n                propKey$203,\n                nextProps,\n                propKey\n              );\n          }\n      return;\n    case \"img\":\n    case \"link\":\n    case \"area\":\n    case \"base\":\n    case \"br\":\n    case \"col\":\n    case \"embed\":\n    case \"hr\":\n    case \"keygen\":\n    case \"meta\":\n    case \"param\":\n    case \"source\":\n    case \"track\":\n    case \"wbr\":\n    case \"menuitem\":\n      for (var propKey$224 in lastProps)\n        (propKey$203 = lastProps[propKey$224]),\n          lastProps.hasOwnProperty(propKey$224) &&\n            null != propKey$203 &&\n            !nextProps.hasOwnProperty(propKey$224) &&\n            setProp(domElement, tag, propKey$224, null, nextProps, propKey$203);\n      for (checked in nextProps)\n        if (\n          ((propKey$203 = nextProps[checked]),\n          (propKey = lastProps[checked]),\n          nextProps.hasOwnProperty(checked) &&\n            propKey$203 !== propKey &&\n            (null != propKey$203 || null != propKey))\n        )\n          switch (checked) {\n            case \"children\":\n            case \"dangerouslySetInnerHTML\":\n              if (null != propKey$203)\n                throw Error(formatProdErrorMessage(137, tag));\n              break;\n            default:\n              setProp(\n                domElement,\n                tag,\n                checked,\n                propKey$203,\n                nextProps,\n                propKey\n              );\n          }\n      return;\n    default:\n      if (isCustomElement(tag)) {\n        for (var propKey$229 in lastProps)\n          (propKey$203 = lastProps[propKey$229]),\n            lastProps.hasOwnProperty(propKey$229) &&\n              void 0 !== propKey$203 &&\n              !nextProps.hasOwnProperty(propKey$229) &&\n              setPropOnCustomElement(\n                domElement,\n                tag,\n                propKey$229,\n                void 0,\n                nextProps,\n                propKey$203\n              );\n        for (defaultChecked in nextProps)\n          (propKey$203 = nextProps[defaultChecked]),\n            (propKey = lastProps[defaultChecked]),\n            !nextProps.hasOwnProperty(defaultChecked) ||\n              propKey$203 === propKey ||\n              (void 0 === propKey$203 && void 0 === propKey) ||\n              setPropOnCustomElement(\n                domElement,\n                tag,\n                defaultChecked,\n                propKey$203,\n                nextProps,\n                propKey\n              );\n        return;\n      }\n  }\n  for (var propKey$234 in lastProps)\n    (propKey$203 = lastProps[propKey$234]),\n      lastProps.hasOwnProperty(propKey$234) &&\n        null != propKey$203 &&\n        !nextProps.hasOwnProperty(propKey$234) &&\n        setProp(domElement, tag, propKey$234, null, nextProps, propKey$203);\n  for (lastProp in nextProps)\n    (propKey$203 = nextProps[lastProp]),\n      (propKey = lastProps[lastProp]),\n      !nextProps.hasOwnProperty(lastProp) ||\n        propKey$203 === propKey ||\n        (null == propKey$203 && null == propKey) ||\n        setProp(domElement, tag, lastProp, propKey$203, nextProps, propKey);\n}\nvar eventsEnabled = null,\n  selectionInformation = null;\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n  return 9 === rootContainerElement.nodeType\n    ? rootContainerElement\n    : rootContainerElement.ownerDocument;\n}\nfunction getOwnHostContext(namespaceURI) {\n  switch (namespaceURI) {\n    case \"http://www.w3.org/2000/svg\":\n      return 1;\n    case \"http://www.w3.org/1998/Math/MathML\":\n      return 2;\n    default:\n      return 0;\n  }\n}\nfunction getChildHostContextProd(parentNamespace, type) {\n  if (0 === parentNamespace)\n    switch (type) {\n      case \"svg\":\n        return 1;\n      case \"math\":\n        return 2;\n      default:\n        return 0;\n    }\n  return 1 === parentNamespace && \"foreignObject\" === type\n    ? 0\n    : parentNamespace;\n}\nfunction shouldSetTextContent(type, props) {\n  return (\n    \"textarea\" === type ||\n    \"noscript\" === type ||\n    \"string\" === typeof props.children ||\n    \"number\" === typeof props.children ||\n    \"bigint\" === typeof props.children ||\n    (\"object\" === typeof props.dangerouslySetInnerHTML &&\n      null !== props.dangerouslySetInnerHTML &&\n      null != props.dangerouslySetInnerHTML.__html)\n  );\n}\nvar currentPopstateTransitionEvent = null;\nfunction shouldAttemptEagerTransition() {\n  var event = window.event;\n  if (event && \"popstate\" === event.type) {\n    if (event === currentPopstateTransitionEvent) return !1;\n    currentPopstateTransitionEvent = event;\n    return !0;\n  }\n  currentPopstateTransitionEvent = null;\n  return !1;\n}\nvar scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n  cancelTimeout = \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n  localPromise = \"function\" === typeof Promise ? Promise : void 0,\n  scheduleMicrotask =\n    \"function\" === typeof queueMicrotask\n      ? queueMicrotask\n      : \"undefined\" !== typeof localPromise\n        ? function (callback) {\n            return localPromise\n              .resolve(null)\n              .then(callback)\n              .catch(handleErrorInNextTick);\n          }\n        : scheduleTimeout;\nfunction handleErrorInNextTick(error) {\n  setTimeout(function () {\n    throw error;\n  });\n}\nfunction clearSuspenseBoundary(parentInstance, suspenseInstance) {\n  var node = suspenseInstance,\n    depth = 0;\n  do {\n    var nextNode = node.nextSibling;\n    parentInstance.removeChild(node);\n    if (nextNode && 8 === nextNode.nodeType)\n      if (((node = nextNode.data), \"/$\" === node)) {\n        if (0 === depth) {\n          parentInstance.removeChild(nextNode);\n          retryIfBlockedOn(suspenseInstance);\n          return;\n        }\n        depth--;\n      } else (\"$\" !== node && \"$?\" !== node && \"$!\" !== node) || depth++;\n    node = nextNode;\n  } while (node);\n  retryIfBlockedOn(suspenseInstance);\n}\nfunction clearContainerSparingly(container) {\n  var nextNode = container.firstChild;\n  nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n  for (; nextNode; ) {\n    var node = nextNode;\n    nextNode = nextNode.nextSibling;\n    switch (node.nodeName) {\n      case \"HTML\":\n      case \"HEAD\":\n      case \"BODY\":\n        clearContainerSparingly(node);\n        detachDeletedInstance(node);\n        continue;\n      case \"SCRIPT\":\n      case \"STYLE\":\n        continue;\n      case \"LINK\":\n        if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n    }\n    container.removeChild(node);\n  }\n}\nfunction canHydrateInstance(instance, type, props, inRootOrSingleton) {\n  for (; 1 === instance.nodeType; ) {\n    var anyProps = props;\n    if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n      if (\n        !inRootOrSingleton &&\n        (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n      )\n        break;\n    } else if (!inRootOrSingleton)\n      if (\"input\" === type && \"hidden\" === instance.type) {\n        var name = null == anyProps.name ? null : \"\" + anyProps.name;\n        if (\n          \"hidden\" === anyProps.type &&\n          instance.getAttribute(\"name\") === name\n        )\n          return instance;\n      } else return instance;\n    else if (!instance[internalHoistableMarker])\n      switch (type) {\n        case \"meta\":\n          if (!instance.hasAttribute(\"itemprop\")) break;\n          return instance;\n        case \"link\":\n          name = instance.getAttribute(\"rel\");\n          if (\"stylesheet\" === name && instance.hasAttribute(\"data-precedence\"))\n            break;\n          else if (\n            name !== anyProps.rel ||\n            instance.getAttribute(\"href\") !==\n              (null == anyProps.href ? null : anyProps.href) ||\n            instance.getAttribute(\"crossorigin\") !==\n              (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) ||\n            instance.getAttribute(\"title\") !==\n              (null == anyProps.title ? null : anyProps.title)\n          )\n            break;\n          return instance;\n        case \"style\":\n          if (instance.hasAttribute(\"data-precedence\")) break;\n          return instance;\n        case \"script\":\n          name = instance.getAttribute(\"src\");\n          if (\n            (name !== (null == anyProps.src ? null : anyProps.src) ||\n              instance.getAttribute(\"type\") !==\n                (null == anyProps.type ? null : anyProps.type) ||\n              instance.getAttribute(\"crossorigin\") !==\n                (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) &&\n            name &&\n            instance.hasAttribute(\"async\") &&\n            !instance.hasAttribute(\"itemprop\")\n          )\n            break;\n          return instance;\n        default:\n          return instance;\n      }\n    instance = getNextHydratable(instance.nextSibling);\n    if (null === instance) break;\n  }\n  return null;\n}\nfunction canHydrateTextInstance(instance, text, inRootOrSingleton) {\n  if (\"\" === text) return null;\n  for (; 3 !== instance.nodeType; ) {\n    if (\n      (1 !== instance.nodeType ||\n        \"INPUT\" !== instance.nodeName ||\n        \"hidden\" !== instance.type) &&\n      !inRootOrSingleton\n    )\n      return null;\n    instance = getNextHydratable(instance.nextSibling);\n    if (null === instance) return null;\n  }\n  return instance;\n}\nfunction getNextHydratable(node) {\n  for (; null != node; node = node.nextSibling) {\n    var nodeType = node.nodeType;\n    if (1 === nodeType || 3 === nodeType) break;\n    if (8 === nodeType) {\n      nodeType = node.data;\n      if (\n        \"$\" === nodeType ||\n        \"$!\" === nodeType ||\n        \"$?\" === nodeType ||\n        \"F!\" === nodeType ||\n        \"F\" === nodeType\n      )\n        break;\n      if (\"/$\" === nodeType) return null;\n    }\n  }\n  return node;\n}\nfunction getParentSuspenseInstance(targetInstance) {\n  targetInstance = targetInstance.previousSibling;\n  for (var depth = 0; targetInstance; ) {\n    if (8 === targetInstance.nodeType) {\n      var data = targetInstance.data;\n      if (\"$\" === data || \"$!\" === data || \"$?\" === data) {\n        if (0 === depth) return targetInstance;\n        depth--;\n      } else \"/$\" === data && depth++;\n    }\n    targetInstance = targetInstance.previousSibling;\n  }\n  return null;\n}\nfunction resolveSingletonInstance(type, props, rootContainerInstance) {\n  props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n  switch (type) {\n    case \"html\":\n      type = props.documentElement;\n      if (!type) throw Error(formatProdErrorMessage(452));\n      return type;\n    case \"head\":\n      type = props.head;\n      if (!type) throw Error(formatProdErrorMessage(453));\n      return type;\n    case \"body\":\n      type = props.body;\n      if (!type) throw Error(formatProdErrorMessage(454));\n      return type;\n    default:\n      throw Error(formatProdErrorMessage(451));\n  }\n}\nvar preloadPropsMap = new Map(),\n  preconnectsSet = new Set();\nfunction getHoistableRoot(container) {\n  return \"function\" === typeof container.getRootNode\n    ? container.getRootNode()\n    : container.ownerDocument;\n}\nvar previousDispatcher = ReactDOMSharedInternals.d;\nReactDOMSharedInternals.d = {\n  f: flushSyncWork,\n  r: requestFormReset,\n  D: prefetchDNS,\n  C: preconnect,\n  L: preload,\n  m: preloadModule,\n  X: preinitScript,\n  S: preinitStyle,\n  M: preinitModuleScript\n};\nfunction flushSyncWork() {\n  var previousWasRendering = previousDispatcher.f(),\n    wasRendering = flushSyncWork$1();\n  return previousWasRendering || wasRendering;\n}\nfunction requestFormReset(form) {\n  var formInst = getInstanceFromNode(form);\n  null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n    ? requestFormReset$1(formInst)\n    : previousDispatcher.r(form);\n}\nvar globalDocument = \"undefined\" === typeof document ? null : document;\nfunction preconnectAs(rel, href, crossOrigin) {\n  var ownerDocument = globalDocument;\n  if (ownerDocument && \"string\" === typeof href && href) {\n    var limitedEscapedHref =\n      escapeSelectorAttributeValueInsideDoubleQuotes(href);\n    limitedEscapedHref =\n      'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n    \"string\" === typeof crossOrigin &&\n      (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n    preconnectsSet.has(limitedEscapedHref) ||\n      (preconnectsSet.add(limitedEscapedHref),\n      (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n      null === ownerDocument.querySelector(limitedEscapedHref) &&\n        ((href = ownerDocument.createElement(\"link\")),\n        setInitialProperties(href, \"link\", rel),\n        markNodeAsHoistable(href),\n        ownerDocument.head.appendChild(href)));\n  }\n}\nfunction prefetchDNS(href) {\n  previousDispatcher.D(href);\n  preconnectAs(\"dns-prefetch\", href, null);\n}\nfunction preconnect(href, crossOrigin) {\n  previousDispatcher.C(href, crossOrigin);\n  preconnectAs(\"preconnect\", href, crossOrigin);\n}\nfunction preload(href, as, options) {\n  previousDispatcher.L(href, as, options);\n  var ownerDocument = globalDocument;\n  if (ownerDocument && href && as) {\n    var preloadSelector =\n      'link[rel=\"preload\"][as=\"' +\n      escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n      '\"]';\n    \"image\" === as\n      ? options && options.imageSrcSet\n        ? ((preloadSelector +=\n            '[imagesrcset=\"' +\n            escapeSelectorAttributeValueInsideDoubleQuotes(\n              options.imageSrcSet\n            ) +\n            '\"]'),\n          \"string\" === typeof options.imageSizes &&\n            (preloadSelector +=\n              '[imagesizes=\"' +\n              escapeSelectorAttributeValueInsideDoubleQuotes(\n                options.imageSizes\n              ) +\n              '\"]'))\n        : (preloadSelector +=\n            '[href=\"' +\n            escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n            '\"]')\n      : (preloadSelector +=\n          '[href=\"' +\n          escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n          '\"]');\n    var key = preloadSelector;\n    switch (as) {\n      case \"style\":\n        key = getStyleKey(href);\n        break;\n      case \"script\":\n        key = getScriptKey(href);\n    }\n    preloadPropsMap.has(key) ||\n      ((href = assign(\n        {\n          rel: \"preload\",\n          href:\n            \"image\" === as && options && options.imageSrcSet ? void 0 : href,\n          as: as\n        },\n        options\n      )),\n      preloadPropsMap.set(key, href),\n      null !== ownerDocument.querySelector(preloadSelector) ||\n        (\"style\" === as &&\n          ownerDocument.querySelector(getStylesheetSelectorFromKey(key))) ||\n        (\"script\" === as &&\n          ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n        ((as = ownerDocument.createElement(\"link\")),\n        setInitialProperties(as, \"link\", href),\n        markNodeAsHoistable(as),\n        ownerDocument.head.appendChild(as)));\n  }\n}\nfunction preloadModule(href, options) {\n  previousDispatcher.m(href, options);\n  var ownerDocument = globalDocument;\n  if (ownerDocument && href) {\n    var as = options && \"string\" === typeof options.as ? options.as : \"script\",\n      preloadSelector =\n        'link[rel=\"modulepreload\"][as=\"' +\n        escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n        '\"][href=\"' +\n        escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n        '\"]',\n      key = preloadSelector;\n    switch (as) {\n      case \"audioworklet\":\n      case \"paintworklet\":\n      case \"serviceworker\":\n      case \"sharedworker\":\n      case \"worker\":\n      case \"script\":\n        key = getScriptKey(href);\n    }\n    if (\n      !preloadPropsMap.has(key) &&\n      ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n      preloadPropsMap.set(key, href),\n      null === ownerDocument.querySelector(preloadSelector))\n    ) {\n      switch (as) {\n        case \"audioworklet\":\n        case \"paintworklet\":\n        case \"serviceworker\":\n        case \"sharedworker\":\n        case \"worker\":\n        case \"script\":\n          if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n            return;\n      }\n      as = ownerDocument.createElement(\"link\");\n      setInitialProperties(as, \"link\", href);\n      markNodeAsHoistable(as);\n      ownerDocument.head.appendChild(as);\n    }\n  }\n}\nfunction preinitStyle(href, precedence, options) {\n  previousDispatcher.S(href, precedence, options);\n  var ownerDocument = globalDocument;\n  if (ownerDocument && href) {\n    var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n      key = getStyleKey(href);\n    precedence = precedence || \"default\";\n    var resource = styles.get(key);\n    if (!resource) {\n      var state = { loading: 0, preload: null };\n      if (\n        (resource = ownerDocument.querySelector(\n          getStylesheetSelectorFromKey(key)\n        ))\n      )\n        state.loading = 5;\n      else {\n        href = assign(\n          { rel: \"stylesheet\", href: href, \"data-precedence\": precedence },\n          options\n        );\n        (options = preloadPropsMap.get(key)) &&\n          adoptPreloadPropsForStylesheet(href, options);\n        var link = (resource = ownerDocument.createElement(\"link\"));\n        markNodeAsHoistable(link);\n        setInitialProperties(link, \"link\", href);\n        link._p = new Promise(function (resolve, reject) {\n          link.onload = resolve;\n          link.onerror = reject;\n        });\n        link.addEventListener(\"load\", function () {\n          state.loading |= 1;\n        });\n        link.addEventListener(\"error\", function () {\n          state.loading |= 2;\n        });\n        state.loading |= 4;\n        insertStylesheet(resource, precedence, ownerDocument);\n      }\n      resource = {\n        type: \"stylesheet\",\n        instance: resource,\n        count: 1,\n        state: state\n      };\n      styles.set(key, resource);\n    }\n  }\n}\nfunction preinitScript(src, options) {\n  previousDispatcher.X(src, options);\n  var ownerDocument = globalDocument;\n  if (ownerDocument && src) {\n    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n      key = getScriptKey(src),\n      resource = scripts.get(key);\n    resource ||\n      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n      resource ||\n        ((src = assign({ src: src, async: !0 }, options)),\n        (options = preloadPropsMap.get(key)) &&\n          adoptPreloadPropsForScript(src, options),\n        (resource = ownerDocument.createElement(\"script\")),\n        markNodeAsHoistable(resource),\n        setInitialProperties(resource, \"link\", src),\n        ownerDocument.head.appendChild(resource)),\n      (resource = {\n        type: \"script\",\n        instance: resource,\n        count: 1,\n        state: null\n      }),\n      scripts.set(key, resource));\n  }\n}\nfunction preinitModuleScript(src, options) {\n  previousDispatcher.M(src, options);\n  var ownerDocument = globalDocument;\n  if (ownerDocument && src) {\n    var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n      key = getScriptKey(src),\n      resource = scripts.get(key);\n    resource ||\n      ((resource = ownerDocument.querySelector(getScriptSelectorFromKey(key))),\n      resource ||\n        ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n        (options = preloadPropsMap.get(key)) &&\n          adoptPreloadPropsForScript(src, options),\n        (resource = ownerDocument.createElement(\"script\")),\n        markNodeAsHoistable(resource),\n        setInitialProperties(resource, \"link\", src),\n        ownerDocument.head.appendChild(resource)),\n      (resource = {\n        type: \"script\",\n        instance: resource,\n        count: 1,\n        state: null\n      }),\n      scripts.set(key, resource));\n  }\n}\nfunction getResource(type, currentProps, pendingProps, currentResource) {\n  var JSCompiler_inline_result = (JSCompiler_inline_result =\n    rootInstanceStackCursor.current)\n    ? getHoistableRoot(JSCompiler_inline_result)\n    : null;\n  if (!JSCompiler_inline_result) throw Error(formatProdErrorMessage(446));\n  switch (type) {\n    case \"meta\":\n    case \"title\":\n      return null;\n    case \"style\":\n      return \"string\" === typeof pendingProps.precedence &&\n        \"string\" === typeof pendingProps.href\n        ? ((currentProps = getStyleKey(pendingProps.href)),\n          (pendingProps = getResourcesFromRoot(\n            JSCompiler_inline_result\n          ).hoistableStyles),\n          (currentResource = pendingProps.get(currentProps)),\n          currentResource ||\n            ((currentResource = {\n              type: \"style\",\n              instance: null,\n              count: 0,\n              state: null\n            }),\n            pendingProps.set(currentProps, currentResource)),\n          currentResource)\n        : { type: \"void\", instance: null, count: 0, state: null };\n    case \"link\":\n      if (\n        \"stylesheet\" === pendingProps.rel &&\n        \"string\" === typeof pendingProps.href &&\n        \"string\" === typeof pendingProps.precedence\n      ) {\n        type = getStyleKey(pendingProps.href);\n        var styles$242 = getResourcesFromRoot(\n            JSCompiler_inline_result\n          ).hoistableStyles,\n          resource$243 = styles$242.get(type);\n        resource$243 ||\n          ((JSCompiler_inline_result =\n            JSCompiler_inline_result.ownerDocument || JSCompiler_inline_result),\n          (resource$243 = {\n            type: \"stylesheet\",\n            instance: null,\n            count: 0,\n            state: { loading: 0, preload: null }\n          }),\n          styles$242.set(type, resource$243),\n          (styles$242 = JSCompiler_inline_result.querySelector(\n            getStylesheetSelectorFromKey(type)\n          )) &&\n            !styles$242._p &&\n            ((resource$243.instance = styles$242),\n            (resource$243.state.loading = 5)),\n          preloadPropsMap.has(type) ||\n            ((pendingProps = {\n              rel: \"preload\",\n              as: \"style\",\n              href: pendingProps.href,\n              crossOrigin: pendingProps.crossOrigin,\n              integrity: pendingProps.integrity,\n              media: pendingProps.media,\n              hrefLang: pendingProps.hrefLang,\n              referrerPolicy: pendingProps.referrerPolicy\n            }),\n            preloadPropsMap.set(type, pendingProps),\n            styles$242 ||\n              preloadStylesheet(\n                JSCompiler_inline_result,\n                type,\n                pendingProps,\n                resource$243.state\n              )));\n        if (currentProps && null === currentResource)\n          throw Error(formatProdErrorMessage(528, \"\"));\n        return resource$243;\n      }\n      if (currentProps && null !== currentResource)\n        throw Error(formatProdErrorMessage(529, \"\"));\n      return null;\n    case \"script\":\n      return (\n        (currentProps = pendingProps.async),\n        (pendingProps = pendingProps.src),\n        \"string\" === typeof pendingProps &&\n        currentProps &&\n        \"function\" !== typeof currentProps &&\n        \"symbol\" !== typeof currentProps\n          ? ((currentProps = getScriptKey(pendingProps)),\n            (pendingProps = getResourcesFromRoot(\n              JSCompiler_inline_result\n            ).hoistableScripts),\n            (currentResource = pendingProps.get(currentProps)),\n            currentResource ||\n              ((currentResource = {\n                type: \"script\",\n                instance: null,\n                count: 0,\n                state: null\n              }),\n              pendingProps.set(currentProps, currentResource)),\n            currentResource)\n          : { type: \"void\", instance: null, count: 0, state: null }\n      );\n    default:\n      throw Error(formatProdErrorMessage(444, type));\n  }\n}\nfunction getStyleKey(href) {\n  return 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"';\n}\nfunction getStylesheetSelectorFromKey(key) {\n  return 'link[rel=\"stylesheet\"][' + key + \"]\";\n}\nfunction stylesheetPropsFromRawProps(rawProps) {\n  return assign({}, rawProps, {\n    \"data-precedence\": rawProps.precedence,\n    precedence: null\n  });\n}\nfunction preloadStylesheet(ownerDocument, key, preloadProps, state) {\n  ownerDocument.querySelector('link[rel=\"preload\"][as=\"style\"][' + key + \"]\")\n    ? (state.loading = 1)\n    : ((key = ownerDocument.createElement(\"link\")),\n      (state.preload = key),\n      key.addEventListener(\"load\", function () {\n        return (state.loading |= 1);\n      }),\n      key.addEventListener(\"error\", function () {\n        return (state.loading |= 2);\n      }),\n      setInitialProperties(key, \"link\", preloadProps),\n      markNodeAsHoistable(key),\n      ownerDocument.head.appendChild(key));\n}\nfunction getScriptKey(src) {\n  return '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]';\n}\nfunction getScriptSelectorFromKey(key) {\n  return \"script[async]\" + key;\n}\nfunction acquireResource(hoistableRoot, resource, props) {\n  resource.count++;\n  if (null === resource.instance)\n    switch (resource.type) {\n      case \"style\":\n        var instance = hoistableRoot.querySelector(\n          'style[data-href~=\"' +\n            escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n            '\"]'\n        );\n        if (instance)\n          return (\n            (resource.instance = instance),\n            markNodeAsHoistable(instance),\n            instance\n          );\n        var styleProps = assign({}, props, {\n          \"data-href\": props.href,\n          \"data-precedence\": props.precedence,\n          href: null,\n          precedence: null\n        });\n        instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement(\n          \"style\"\n        );\n        markNodeAsHoistable(instance);\n        setInitialProperties(instance, \"style\", styleProps);\n        insertStylesheet(instance, props.precedence, hoistableRoot);\n        return (resource.instance = instance);\n      case \"stylesheet\":\n        styleProps = getStyleKey(props.href);\n        var instance$248 = hoistableRoot.querySelector(\n          getStylesheetSelectorFromKey(styleProps)\n        );\n        if (instance$248)\n          return (\n            (resource.state.loading |= 4),\n            (resource.instance = instance$248),\n            markNodeAsHoistable(instance$248),\n            instance$248\n          );\n        instance = stylesheetPropsFromRawProps(props);\n        (styleProps = preloadPropsMap.get(styleProps)) &&\n          adoptPreloadPropsForStylesheet(instance, styleProps);\n        instance$248 = (\n          hoistableRoot.ownerDocument || hoistableRoot\n        ).createElement(\"link\");\n        markNodeAsHoistable(instance$248);\n        var linkInstance = instance$248;\n        linkInstance._p = new Promise(function (resolve, reject) {\n          linkInstance.onload = resolve;\n          linkInstance.onerror = reject;\n        });\n        setInitialProperties(instance$248, \"link\", instance);\n        resource.state.loading |= 4;\n        insertStylesheet(instance$248, props.precedence, hoistableRoot);\n        return (resource.instance = instance$248);\n      case \"script\":\n        instance$248 = getScriptKey(props.src);\n        if (\n          (styleProps = hoistableRoot.querySelector(\n            getScriptSelectorFromKey(instance$248)\n          ))\n        )\n          return (\n            (resource.instance = styleProps),\n            markNodeAsHoistable(styleProps),\n            styleProps\n          );\n        instance = props;\n        if ((styleProps = preloadPropsMap.get(instance$248)))\n          (instance = assign({}, props)),\n            adoptPreloadPropsForScript(instance, styleProps);\n        hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n        styleProps = hoistableRoot.createElement(\"script\");\n        markNodeAsHoistable(styleProps);\n        setInitialProperties(styleProps, \"link\", instance);\n        hoistableRoot.head.appendChild(styleProps);\n        return (resource.instance = styleProps);\n      case \"void\":\n        return null;\n      default:\n        throw Error(formatProdErrorMessage(443, resource.type));\n    }\n  else\n    \"stylesheet\" === resource.type &&\n      0 === (resource.state.loading & 4) &&\n      ((instance = resource.instance),\n      (resource.state.loading |= 4),\n      insertStylesheet(instance, props.precedence, hoistableRoot));\n  return resource.instance;\n}\nfunction insertStylesheet(instance, precedence, root) {\n  for (\n    var nodes = root.querySelectorAll(\n        'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n      ),\n      last = nodes.length ? nodes[nodes.length - 1] : null,\n      prior = last,\n      i = 0;\n    i < nodes.length;\n    i++\n  ) {\n    var node = nodes[i];\n    if (node.dataset.precedence === precedence) prior = node;\n    else if (prior !== last) break;\n  }\n  prior\n    ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n    : ((precedence = 9 === root.nodeType ? root.head : root),\n      precedence.insertBefore(instance, precedence.firstChild));\n}\nfunction adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n  null == stylesheetProps.crossOrigin &&\n    (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n  null == stylesheetProps.referrerPolicy &&\n    (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n  null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);\n}\nfunction adoptPreloadPropsForScript(scriptProps, preloadProps) {\n  null == scriptProps.crossOrigin &&\n    (scriptProps.crossOrigin = preloadProps.crossOrigin);\n  null == scriptProps.referrerPolicy &&\n    (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n  null == scriptProps.integrity &&\n    (scriptProps.integrity = preloadProps.integrity);\n}\nvar tagCaches = null;\nfunction getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n  if (null === tagCaches) {\n    var cache = new Map();\n    var caches = (tagCaches = new Map());\n    caches.set(ownerDocument, cache);\n  } else\n    (caches = tagCaches),\n      (cache = caches.get(ownerDocument)),\n      cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n  if (cache.has(type)) return cache;\n  cache.set(type, null);\n  ownerDocument = ownerDocument.getElementsByTagName(type);\n  for (caches = 0; caches < ownerDocument.length; caches++) {\n    var node = ownerDocument[caches];\n    if (\n      !(\n        node[internalHoistableMarker] ||\n        node[internalInstanceKey] ||\n        (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n      ) &&\n      \"http://www.w3.org/2000/svg\" !== node.namespaceURI\n    ) {\n      var nodeKey = node.getAttribute(keyAttribute) || \"\";\n      nodeKey = type + nodeKey;\n      var existing = cache.get(nodeKey);\n      existing ? existing.push(node) : cache.set(nodeKey, [node]);\n    }\n  }\n  return cache;\n}\nfunction mountHoistable(hoistableRoot, type, instance) {\n  hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n  hoistableRoot.head.insertBefore(\n    instance,\n    \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n  );\n}\nfunction isHostHoistableType(type, props, hostContext) {\n  if (1 === hostContext || null != props.itemProp) return !1;\n  switch (type) {\n    case \"meta\":\n    case \"title\":\n      return !0;\n    case \"style\":\n      if (\n        \"string\" !== typeof props.precedence ||\n        \"string\" !== typeof props.href ||\n        \"\" === props.href\n      )\n        break;\n      return !0;\n    case \"link\":\n      if (\n        \"string\" !== typeof props.rel ||\n        \"string\" !== typeof props.href ||\n        \"\" === props.href ||\n        props.onLoad ||\n        props.onError\n      )\n        break;\n      switch (props.rel) {\n        case \"stylesheet\":\n          return (\n            (type = props.disabled),\n            \"string\" === typeof props.precedence && null == type\n          );\n        default:\n          return !0;\n      }\n    case \"script\":\n      if (\n        props.async &&\n        \"function\" !== typeof props.async &&\n        \"symbol\" !== typeof props.async &&\n        !props.onLoad &&\n        !props.onError &&\n        props.src &&\n        \"string\" === typeof props.src\n      )\n        return !0;\n  }\n  return !1;\n}\nfunction preloadResource(resource) {\n  return \"stylesheet\" === resource.type && 0 === (resource.state.loading & 3)\n    ? !1\n    : !0;\n}\nvar suspendedState = null;\nfunction noop() {}\nfunction suspendResource(hoistableRoot, resource, props) {\n  if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n  var state = suspendedState;\n  if (\n    \"stylesheet\" === resource.type &&\n    (\"string\" !== typeof props.media ||\n      !1 !== matchMedia(props.media).matches) &&\n    0 === (resource.state.loading & 4)\n  ) {\n    if (null === resource.instance) {\n      var key = getStyleKey(props.href),\n        instance = hoistableRoot.querySelector(\n          getStylesheetSelectorFromKey(key)\n        );\n      if (instance) {\n        hoistableRoot = instance._p;\n        null !== hoistableRoot &&\n          \"object\" === typeof hoistableRoot &&\n          \"function\" === typeof hoistableRoot.then &&\n          (state.count++,\n          (state = onUnsuspend.bind(state)),\n          hoistableRoot.then(state, state));\n        resource.state.loading |= 4;\n        resource.instance = instance;\n        markNodeAsHoistable(instance);\n        return;\n      }\n      instance = hoistableRoot.ownerDocument || hoistableRoot;\n      props = stylesheetPropsFromRawProps(props);\n      (key = preloadPropsMap.get(key)) &&\n        adoptPreloadPropsForStylesheet(props, key);\n      instance = instance.createElement(\"link\");\n      markNodeAsHoistable(instance);\n      var linkInstance = instance;\n      linkInstance._p = new Promise(function (resolve, reject) {\n        linkInstance.onload = resolve;\n        linkInstance.onerror = reject;\n      });\n      setInitialProperties(instance, \"link\", props);\n      resource.instance = instance;\n    }\n    null === state.stylesheets && (state.stylesheets = new Map());\n    state.stylesheets.set(resource, hoistableRoot);\n    (hoistableRoot = resource.state.preload) &&\n      0 === (resource.state.loading & 3) &&\n      (state.count++,\n      (resource = onUnsuspend.bind(state)),\n      hoistableRoot.addEventListener(\"load\", resource),\n      hoistableRoot.addEventListener(\"error\", resource));\n  }\n}\nfunction waitForCommitToBeReady() {\n  if (null === suspendedState) throw Error(formatProdErrorMessage(475));\n  var state = suspendedState;\n  state.stylesheets &&\n    0 === state.count &&\n    insertSuspendedStylesheets(state, state.stylesheets);\n  return 0 < state.count\n    ? function (commit) {\n        var stylesheetTimer = setTimeout(function () {\n          state.stylesheets &&\n            insertSuspendedStylesheets(state, state.stylesheets);\n          if (state.unsuspend) {\n            var unsuspend = state.unsuspend;\n            state.unsuspend = null;\n            unsuspend();\n          }\n        }, 6e4);\n        state.unsuspend = commit;\n        return function () {\n          state.unsuspend = null;\n          clearTimeout(stylesheetTimer);\n        };\n      }\n    : null;\n}\nfunction onUnsuspend() {\n  this.count--;\n  if (0 === this.count)\n    if (this.stylesheets) insertSuspendedStylesheets(this, this.stylesheets);\n    else if (this.unsuspend) {\n      var unsuspend = this.unsuspend;\n      this.unsuspend = null;\n      unsuspend();\n    }\n}\nvar precedencesByRoot = null;\nfunction insertSuspendedStylesheets(state, resources) {\n  state.stylesheets = null;\n  null !== state.unsuspend &&\n    (state.count++,\n    (precedencesByRoot = new Map()),\n    resources.forEach(insertStylesheetIntoRoot, state),\n    (precedencesByRoot = null),\n    onUnsuspend.call(state));\n}\nfunction insertStylesheetIntoRoot(root, resource) {\n  if (!(resource.state.loading & 4)) {\n    var precedences = precedencesByRoot.get(root);\n    if (precedences) var last = precedences.get(null);\n    else {\n      precedences = new Map();\n      precedencesByRoot.set(root, precedences);\n      for (\n        var nodes = root.querySelectorAll(\n            \"link[data-precedence],style[data-precedence]\"\n          ),\n          i = 0;\n        i < nodes.length;\n        i++\n      ) {\n        var node = nodes[i];\n        if (\n          \"LINK\" === node.nodeName ||\n          \"not all\" !== node.getAttribute(\"media\")\n        )\n          precedences.set(node.dataset.precedence, node), (last = node);\n      }\n      last && precedences.set(null, last);\n    }\n    nodes = resource.instance;\n    node = nodes.getAttribute(\"data-precedence\");\n    i = precedences.get(node) || last;\n    i === last && precedences.set(null, nodes);\n    precedences.set(node, nodes);\n    this.count++;\n    last = onUnsuspend.bind(this);\n    nodes.addEventListener(\"load\", last);\n    nodes.addEventListener(\"error\", last);\n    i\n      ? i.parentNode.insertBefore(nodes, i.nextSibling)\n      : ((root = 9 === root.nodeType ? root.head : root),\n        root.insertBefore(nodes, root.firstChild));\n    resource.state.loading |= 4;\n  }\n}\nvar HostTransitionContext = {\n  $$typeof: REACT_CONTEXT_TYPE,\n  Provider: null,\n  Consumer: null,\n  _currentValue: sharedNotPendingObject,\n  _currentValue2: sharedNotPendingObject,\n  _threadCount: 0\n};\nfunction FiberRootNode(\n  containerInfo,\n  tag,\n  hydrate,\n  identifierPrefix,\n  onUncaughtError,\n  onCaughtError,\n  onRecoverableError,\n  formState\n) {\n  this.tag = 1;\n  this.containerInfo = containerInfo;\n  this.finishedWork =\n    this.pingCache =\n    this.current =\n    this.pendingChildren =\n      null;\n  this.timeoutHandle = -1;\n  this.callbackNode =\n    this.next =\n    this.pendingContext =\n    this.context =\n    this.cancelPendingCommit =\n      null;\n  this.callbackPriority = 0;\n  this.expirationTimes = createLaneMap(-1);\n  this.entangledLanes =\n    this.shellSuspendCounter =\n    this.errorRecoveryDisabledLanes =\n    this.finishedLanes =\n    this.expiredLanes =\n    this.warmLanes =\n    this.pingedLanes =\n    this.suspendedLanes =\n    this.pendingLanes =\n      0;\n  this.entanglements = createLaneMap(0);\n  this.hiddenUpdates = createLaneMap(null);\n  this.identifierPrefix = identifierPrefix;\n  this.onUncaughtError = onUncaughtError;\n  this.onCaughtError = onCaughtError;\n  this.onRecoverableError = onRecoverableError;\n  this.pooledCache = null;\n  this.pooledCacheLanes = 0;\n  this.formState = formState;\n  this.incompleteTransitions = new Map();\n}\nfunction createFiberRoot(\n  containerInfo,\n  tag,\n  hydrate,\n  initialChildren,\n  hydrationCallbacks,\n  isStrictMode,\n  identifierPrefix,\n  onUncaughtError,\n  onCaughtError,\n  onRecoverableError,\n  transitionCallbacks,\n  formState\n) {\n  containerInfo = new FiberRootNode(\n    containerInfo,\n    tag,\n    hydrate,\n    identifierPrefix,\n    onUncaughtError,\n    onCaughtError,\n    onRecoverableError,\n    formState\n  );\n  tag = 1;\n  !0 === isStrictMode && (tag |= 24);\n  isStrictMode = createFiberImplClass(3, null, null, tag);\n  containerInfo.current = isStrictMode;\n  isStrictMode.stateNode = containerInfo;\n  tag = createCache();\n  tag.refCount++;\n  containerInfo.pooledCache = tag;\n  tag.refCount++;\n  isStrictMode.memoizedState = {\n    element: initialChildren,\n    isDehydrated: hydrate,\n    cache: tag\n  };\n  initializeUpdateQueue(isStrictMode);\n  return containerInfo;\n}\nfunction getContextForSubtree(parentComponent) {\n  if (!parentComponent) return emptyContextObject;\n  parentComponent = emptyContextObject;\n  return parentComponent;\n}\nfunction updateContainerImpl(\n  rootFiber,\n  lane,\n  element,\n  container,\n  parentComponent,\n  callback\n) {\n  parentComponent = getContextForSubtree(parentComponent);\n  null === container.context\n    ? (container.context = parentComponent)\n    : (container.pendingContext = parentComponent);\n  container = createUpdate(lane);\n  container.payload = { element: element };\n  callback = void 0 === callback ? null : callback;\n  null !== callback && (container.callback = callback);\n  element = enqueueUpdate(rootFiber, container, lane);\n  null !== element &&\n    (scheduleUpdateOnFiber(element, rootFiber, lane),\n    entangleTransitions(element, rootFiber, lane));\n}\nfunction markRetryLaneImpl(fiber, retryLane) {\n  fiber = fiber.memoizedState;\n  if (null !== fiber && null !== fiber.dehydrated) {\n    var a = fiber.retryLane;\n    fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n  }\n}\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n  markRetryLaneImpl(fiber, retryLane);\n  (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n}\nfunction attemptContinuousHydration(fiber) {\n  if (13 === fiber.tag) {\n    var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n    null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n    markRetryLaneIfNotHydrated(fiber, 67108864);\n  }\n}\nvar _enabled = !0;\nfunction dispatchDiscreteEvent(\n  domEventName,\n  eventSystemFlags,\n  container,\n  nativeEvent\n) {\n  var prevTransition = ReactSharedInternals.T;\n  ReactSharedInternals.T = null;\n  var previousPriority = ReactDOMSharedInternals.p;\n  try {\n    (ReactDOMSharedInternals.p = 2),\n      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n  } finally {\n    (ReactDOMSharedInternals.p = previousPriority),\n      (ReactSharedInternals.T = prevTransition);\n  }\n}\nfunction dispatchContinuousEvent(\n  domEventName,\n  eventSystemFlags,\n  container,\n  nativeEvent\n) {\n  var prevTransition = ReactSharedInternals.T;\n  ReactSharedInternals.T = null;\n  var previousPriority = ReactDOMSharedInternals.p;\n  try {\n    (ReactDOMSharedInternals.p = 8),\n      dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n  } finally {\n    (ReactDOMSharedInternals.p = previousPriority),\n      (ReactSharedInternals.T = prevTransition);\n  }\n}\nfunction dispatchEvent(\n  domEventName,\n  eventSystemFlags,\n  targetContainer,\n  nativeEvent\n) {\n  if (_enabled) {\n    var blockedOn = findInstanceBlockingEvent(nativeEvent);\n    if (null === blockedOn)\n      dispatchEventForPluginEventSystem(\n        domEventName,\n        eventSystemFlags,\n        nativeEvent,\n        return_targetInst,\n        targetContainer\n      ),\n        clearIfContinuousEvent(domEventName, nativeEvent);\n    else if (\n      queueIfContinuousEvent(\n        blockedOn,\n        domEventName,\n        eventSystemFlags,\n        targetContainer,\n        nativeEvent\n      )\n    )\n      nativeEvent.stopPropagation();\n    else if (\n      (clearIfContinuousEvent(domEventName, nativeEvent),\n      eventSystemFlags & 4 &&\n        -1 < discreteReplayableEvents.indexOf(domEventName))\n    ) {\n      for (; null !== blockedOn; ) {\n        var fiber = getInstanceFromNode(blockedOn);\n        if (null !== fiber)\n          switch (fiber.tag) {\n            case 3:\n              fiber = fiber.stateNode;\n              if (fiber.current.memoizedState.isDehydrated) {\n                var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n                if (0 !== lanes) {\n                  var root = fiber;\n                  root.pendingLanes |= 2;\n                  for (root.entangledLanes |= 2; lanes; ) {\n                    var lane = 1 << (31 - clz32(lanes));\n                    root.entanglements[1] |= lane;\n                    lanes &= ~lane;\n                  }\n                  ensureRootIsScheduled(fiber);\n                  0 === (executionContext & 6) &&\n                    ((workInProgressRootRenderTargetTime = now() + 500),\n                    flushSyncWorkAcrossRoots_impl(0, !1));\n                }\n              }\n              break;\n            case 13:\n              (root = enqueueConcurrentRenderForLane(fiber, 2)),\n                null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n                flushSyncWork$1(),\n                markRetryLaneIfNotHydrated(fiber, 2);\n          }\n        fiber = findInstanceBlockingEvent(nativeEvent);\n        null === fiber &&\n          dispatchEventForPluginEventSystem(\n            domEventName,\n            eventSystemFlags,\n            nativeEvent,\n            return_targetInst,\n            targetContainer\n          );\n        if (fiber === blockedOn) break;\n        blockedOn = fiber;\n      }\n      null !== blockedOn && nativeEvent.stopPropagation();\n    } else\n      dispatchEventForPluginEventSystem(\n        domEventName,\n        eventSystemFlags,\n        nativeEvent,\n        null,\n        targetContainer\n      );\n  }\n}\nfunction findInstanceBlockingEvent(nativeEvent) {\n  nativeEvent = getEventTarget(nativeEvent);\n  return findInstanceBlockingTarget(nativeEvent);\n}\nvar return_targetInst = null;\nfunction findInstanceBlockingTarget(targetNode) {\n  return_targetInst = null;\n  targetNode = getClosestInstanceFromNode(targetNode);\n  if (null !== targetNode) {\n    var nearestMounted = getNearestMountedFiber(targetNode);\n    if (null === nearestMounted) targetNode = null;\n    else {\n      var tag = nearestMounted.tag;\n      if (13 === tag) {\n        targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n        if (null !== targetNode) return targetNode;\n        targetNode = null;\n      } else if (3 === tag) {\n        if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n          return 3 === nearestMounted.tag\n            ? nearestMounted.stateNode.containerInfo\n            : null;\n        targetNode = null;\n      } else nearestMounted !== targetNode && (targetNode = null);\n    }\n  }\n  return_targetInst = targetNode;\n  return null;\n}\nfunction getEventPriority(domEventName) {\n  switch (domEventName) {\n    case \"beforetoggle\":\n    case \"cancel\":\n    case \"click\":\n    case \"close\":\n    case \"contextmenu\":\n    case \"copy\":\n    case \"cut\":\n    case \"auxclick\":\n    case \"dblclick\":\n    case \"dragend\":\n    case \"dragstart\":\n    case \"drop\":\n    case \"focusin\":\n    case \"focusout\":\n    case \"input\":\n    case \"invalid\":\n    case \"keydown\":\n    case \"keypress\":\n    case \"keyup\":\n    case \"mousedown\":\n    case \"mouseup\":\n    case \"paste\":\n    case \"pause\":\n    case \"play\":\n    case \"pointercancel\":\n    case \"pointerdown\":\n    case \"pointerup\":\n    case \"ratechange\":\n    case \"reset\":\n    case \"resize\":\n    case \"seeked\":\n    case \"submit\":\n    case \"toggle\":\n    case \"touchcancel\":\n    case \"touchend\":\n    case \"touchstart\":\n    case \"volumechange\":\n    case \"change\":\n    case \"selectionchange\":\n    case \"textInput\":\n    case \"compositionstart\":\n    case \"compositionend\":\n    case \"compositionupdate\":\n    case \"beforeblur\":\n    case \"afterblur\":\n    case \"beforeinput\":\n    case \"blur\":\n    case \"fullscreenchange\":\n    case \"focus\":\n    case \"hashchange\":\n    case \"popstate\":\n    case \"select\":\n    case \"selectstart\":\n      return 2;\n    case \"drag\":\n    case \"dragenter\":\n    case \"dragexit\":\n    case \"dragleave\":\n    case \"dragover\":\n    case \"mousemove\":\n    case \"mouseout\":\n    case \"mouseover\":\n    case \"pointermove\":\n    case \"pointerout\":\n    case \"pointerover\":\n    case \"scroll\":\n    case \"touchmove\":\n    case \"wheel\":\n    case \"mouseenter\":\n    case \"mouseleave\":\n    case \"pointerenter\":\n    case \"pointerleave\":\n      return 8;\n    case \"message\":\n      switch (getCurrentPriorityLevel()) {\n        case ImmediatePriority:\n          return 2;\n        case UserBlockingPriority:\n          return 8;\n        case NormalPriority$1:\n        case LowPriority:\n          return 32;\n        case IdlePriority:\n          return 268435456;\n        default:\n          return 32;\n      }\n    default:\n      return 32;\n  }\n}\nvar hasScheduledReplayAttempt = !1,\n  queuedFocus = null,\n  queuedDrag = null,\n  queuedMouse = null,\n  queuedPointers = new Map(),\n  queuedPointerCaptures = new Map(),\n  queuedExplicitHydrationTargets = [],\n  discreteReplayableEvents =\n    \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n      \" \"\n    );\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n  switch (domEventName) {\n    case \"focusin\":\n    case \"focusout\":\n      queuedFocus = null;\n      break;\n    case \"dragenter\":\n    case \"dragleave\":\n      queuedDrag = null;\n      break;\n    case \"mouseover\":\n    case \"mouseout\":\n      queuedMouse = null;\n      break;\n    case \"pointerover\":\n    case \"pointerout\":\n      queuedPointers.delete(nativeEvent.pointerId);\n      break;\n    case \"gotpointercapture\":\n    case \"lostpointercapture\":\n      queuedPointerCaptures.delete(nativeEvent.pointerId);\n  }\n}\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(\n  existingQueuedEvent,\n  blockedOn,\n  domEventName,\n  eventSystemFlags,\n  targetContainer,\n  nativeEvent\n) {\n  if (\n    null === existingQueuedEvent ||\n    existingQueuedEvent.nativeEvent !== nativeEvent\n  )\n    return (\n      (existingQueuedEvent = {\n        blockedOn: blockedOn,\n        domEventName: domEventName,\n        eventSystemFlags: eventSystemFlags,\n        nativeEvent: nativeEvent,\n        targetContainers: [targetContainer]\n      }),\n      null !== blockedOn &&\n        ((blockedOn = getInstanceFromNode(blockedOn)),\n        null !== blockedOn && attemptContinuousHydration(blockedOn)),\n      existingQueuedEvent\n    );\n  existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n  blockedOn = existingQueuedEvent.targetContainers;\n  null !== targetContainer &&\n    -1 === blockedOn.indexOf(targetContainer) &&\n    blockedOn.push(targetContainer);\n  return existingQueuedEvent;\n}\nfunction queueIfContinuousEvent(\n  blockedOn,\n  domEventName,\n  eventSystemFlags,\n  targetContainer,\n  nativeEvent\n) {\n  switch (domEventName) {\n    case \"focusin\":\n      return (\n        (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n          queuedFocus,\n          blockedOn,\n          domEventName,\n          eventSystemFlags,\n          targetContainer,\n          nativeEvent\n        )),\n        !0\n      );\n    case \"dragenter\":\n      return (\n        (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n          queuedDrag,\n          blockedOn,\n          domEventName,\n          eventSystemFlags,\n          targetContainer,\n          nativeEvent\n        )),\n        !0\n      );\n    case \"mouseover\":\n      return (\n        (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n          queuedMouse,\n          blockedOn,\n          domEventName,\n          eventSystemFlags,\n          targetContainer,\n          nativeEvent\n        )),\n        !0\n      );\n    case \"pointerover\":\n      var pointerId = nativeEvent.pointerId;\n      queuedPointers.set(\n        pointerId,\n        accumulateOrCreateContinuousQueuedReplayableEvent(\n          queuedPointers.get(pointerId) || null,\n          blockedOn,\n          domEventName,\n          eventSystemFlags,\n          targetContainer,\n          nativeEvent\n        )\n      );\n      return !0;\n    case \"gotpointercapture\":\n      return (\n        (pointerId = nativeEvent.pointerId),\n        queuedPointerCaptures.set(\n          pointerId,\n          accumulateOrCreateContinuousQueuedReplayableEvent(\n            queuedPointerCaptures.get(pointerId) || null,\n            blockedOn,\n            domEventName,\n            eventSystemFlags,\n            targetContainer,\n            nativeEvent\n          )\n        ),\n        !0\n      );\n  }\n  return !1;\n}\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n  var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n  if (null !== targetInst) {\n    var nearestMounted = getNearestMountedFiber(targetInst);\n    if (null !== nearestMounted)\n      if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n        if (\n          ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n          null !== targetInst)\n        ) {\n          queuedTarget.blockedOn = targetInst;\n          runWithPriority(queuedTarget.priority, function () {\n            if (13 === nearestMounted.tag) {\n              var lane = requestUpdateLane(),\n                root = enqueueConcurrentRenderForLane(nearestMounted, lane);\n              null !== root &&\n                scheduleUpdateOnFiber(root, nearestMounted, lane);\n              markRetryLaneIfNotHydrated(nearestMounted, lane);\n            }\n          });\n          return;\n        }\n      } else if (\n        3 === targetInst &&\n        nearestMounted.stateNode.current.memoizedState.isDehydrated\n      ) {\n        queuedTarget.blockedOn =\n          3 === nearestMounted.tag\n            ? nearestMounted.stateNode.containerInfo\n            : null;\n        return;\n      }\n  }\n  queuedTarget.blockedOn = null;\n}\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n  if (null !== queuedEvent.blockedOn) return !1;\n  for (\n    var targetContainers = queuedEvent.targetContainers;\n    0 < targetContainers.length;\n\n  ) {\n    var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n    if (null === nextBlockedOn) {\n      nextBlockedOn = queuedEvent.nativeEvent;\n      var nativeEventClone = new nextBlockedOn.constructor(\n        nextBlockedOn.type,\n        nextBlockedOn\n      );\n      currentReplayingEvent = nativeEventClone;\n      nextBlockedOn.target.dispatchEvent(nativeEventClone);\n      currentReplayingEvent = null;\n    } else\n      return (\n        (targetContainers = getInstanceFromNode(nextBlockedOn)),\n        null !== targetContainers &&\n          attemptContinuousHydration(targetContainers),\n        (queuedEvent.blockedOn = nextBlockedOn),\n        !1\n      );\n    targetContainers.shift();\n  }\n  return !0;\n}\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n  attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n}\nfunction replayUnblockedEvents() {\n  hasScheduledReplayAttempt = !1;\n  null !== queuedFocus &&\n    attemptReplayContinuousQueuedEvent(queuedFocus) &&\n    (queuedFocus = null);\n  null !== queuedDrag &&\n    attemptReplayContinuousQueuedEvent(queuedDrag) &&\n    (queuedDrag = null);\n  null !== queuedMouse &&\n    attemptReplayContinuousQueuedEvent(queuedMouse) &&\n    (queuedMouse = null);\n  queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n  queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n  queuedEvent.blockedOn === unblocked &&\n    ((queuedEvent.blockedOn = null),\n    hasScheduledReplayAttempt ||\n      ((hasScheduledReplayAttempt = !0),\n      Scheduler.unstable_scheduleCallback(\n        Scheduler.unstable_NormalPriority,\n        replayUnblockedEvents\n      )));\n}\nvar lastScheduledReplayQueue = null;\nfunction scheduleReplayQueueIfNeeded(formReplayingQueue) {\n  lastScheduledReplayQueue !== formReplayingQueue &&\n    ((lastScheduledReplayQueue = formReplayingQueue),\n    Scheduler.unstable_scheduleCallback(\n      Scheduler.unstable_NormalPriority,\n      function () {\n        lastScheduledReplayQueue === formReplayingQueue &&\n          (lastScheduledReplayQueue = null);\n        for (var i = 0; i < formReplayingQueue.length; i += 3) {\n          var form = formReplayingQueue[i],\n            submitterOrAction = formReplayingQueue[i + 1],\n            formData = formReplayingQueue[i + 2];\n          if (\"function\" !== typeof submitterOrAction)\n            if (null === findInstanceBlockingTarget(submitterOrAction || form))\n              continue;\n            else break;\n          var formInst = getInstanceFromNode(form);\n          null !== formInst &&\n            (formReplayingQueue.splice(i, 3),\n            (i -= 3),\n            startHostTransition(\n              formInst,\n              {\n                pending: !0,\n                data: formData,\n                method: form.method,\n                action: submitterOrAction\n              },\n              submitterOrAction,\n              formData\n            ));\n        }\n      }\n    ));\n}\nfunction retryIfBlockedOn(unblocked) {\n  function unblock(queuedEvent) {\n    return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n  }\n  null !== queuedFocus && scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n  null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n  null !== queuedMouse && scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n  queuedPointers.forEach(unblock);\n  queuedPointerCaptures.forEach(unblock);\n  for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n    var queuedTarget = queuedExplicitHydrationTargets[i];\n    queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n  }\n  for (\n    ;\n    0 < queuedExplicitHydrationTargets.length &&\n    ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n  )\n    attemptExplicitHydrationTarget(i),\n      null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n  i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n  if (null != i)\n    for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n      var form = i[queuedTarget],\n        submitterOrAction = i[queuedTarget + 1],\n        formProps = form[internalPropsKey] || null;\n      if (\"function\" === typeof submitterOrAction)\n        formProps || scheduleReplayQueueIfNeeded(i);\n      else if (formProps) {\n        var action = null;\n        if (submitterOrAction && submitterOrAction.hasAttribute(\"formAction\"))\n          if (\n            ((form = submitterOrAction),\n            (formProps = submitterOrAction[internalPropsKey] || null))\n          )\n            action = formProps.formAction;\n          else {\n            if (null !== findInstanceBlockingTarget(form)) continue;\n          }\n        else action = formProps.action;\n        \"function\" === typeof action\n          ? (i[queuedTarget + 1] = action)\n          : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n        scheduleReplayQueueIfNeeded(i);\n      }\n    }\n}\nfunction ReactDOMRoot(internalRoot) {\n  this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n  function (children) {\n    var root = this._internalRoot;\n    if (null === root) throw Error(formatProdErrorMessage(409));\n    var current = root.current,\n      lane = requestUpdateLane();\n    updateContainerImpl(current, lane, children, root, null, null);\n  };\nReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n  function () {\n    var root = this._internalRoot;\n    if (null !== root) {\n      this._internalRoot = null;\n      var container = root.containerInfo;\n      0 === root.tag && flushPassiveEffects();\n      updateContainerImpl(root.current, 2, null, root, null, null);\n      flushSyncWork$1();\n      container[internalContainerInstanceKey] = null;\n    }\n  };\nfunction ReactDOMHydrationRoot(internalRoot) {\n  this._internalRoot = internalRoot;\n}\nReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {\n  if (target) {\n    var updatePriority = resolveUpdatePriority();\n    target = { blockedOn: null, target: target, priority: updatePriority };\n    for (\n      var i = 0;\n      i < queuedExplicitHydrationTargets.length &&\n      0 !== updatePriority &&\n      updatePriority < queuedExplicitHydrationTargets[i].priority;\n      i++\n    );\n    queuedExplicitHydrationTargets.splice(i, 0, target);\n    0 === i && attemptExplicitHydrationTarget(target);\n  }\n};\nvar isomorphicReactPackageVersion$jscomp$inline_1686 = React.version;\nif (\n  \"19.0.0\" !==\n  isomorphicReactPackageVersion$jscomp$inline_1686\n)\n  throw Error(\n    formatProdErrorMessage(\n      527,\n      isomorphicReactPackageVersion$jscomp$inline_1686,\n      \"19.0.0\"\n    )\n  );\nReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n  var fiber = componentOrElement._reactInternals;\n  if (void 0 === fiber) {\n    if (\"function\" === typeof componentOrElement.render)\n      throw Error(formatProdErrorMessage(188));\n    componentOrElement = Object.keys(componentOrElement).join(\",\");\n    throw Error(formatProdErrorMessage(268, componentOrElement));\n  }\n  componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n  componentOrElement =\n    null !== componentOrElement\n      ? findCurrentHostFiberImpl(componentOrElement)\n      : null;\n  componentOrElement =\n    null === componentOrElement ? null : componentOrElement.stateNode;\n  return componentOrElement;\n};\nvar internals$jscomp$inline_2165 = {\n  bundleType: 0,\n  version: \"19.0.0\",\n  rendererPackageName: \"react-dom\",\n  currentDispatcherRef: ReactSharedInternals,\n  findFiberByHostInstance: getClosestInstanceFromNode,\n  reconcilerVersion: \"19.0.0\"\n};\nif (\"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {\n  var hook$jscomp$inline_2166 = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n  if (\n    !hook$jscomp$inline_2166.isDisabled &&\n    hook$jscomp$inline_2166.supportsFiber\n  )\n    try {\n      (rendererID = hook$jscomp$inline_2166.inject(\n        internals$jscomp$inline_2165\n      )),\n        (injectedHook = hook$jscomp$inline_2166);\n    } catch (err) {}\n}\nexports.createRoot = function (container, options) {\n  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n  var isStrictMode = !1,\n    identifierPrefix = \"\",\n    onUncaughtError = defaultOnUncaughtError,\n    onCaughtError = defaultOnCaughtError,\n    onRecoverableError = defaultOnRecoverableError,\n    transitionCallbacks = null;\n  null !== options &&\n    void 0 !== options &&\n    (!0 === options.unstable_strictMode && (isStrictMode = !0),\n    void 0 !== options.identifierPrefix &&\n      (identifierPrefix = options.identifierPrefix),\n    void 0 !== options.onUncaughtError &&\n      (onUncaughtError = options.onUncaughtError),\n    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n    void 0 !== options.onRecoverableError &&\n      (onRecoverableError = options.onRecoverableError),\n    void 0 !== options.unstable_transitionCallbacks &&\n      (transitionCallbacks = options.unstable_transitionCallbacks));\n  options = createFiberRoot(\n    container,\n    1,\n    !1,\n    null,\n    null,\n    isStrictMode,\n    identifierPrefix,\n    onUncaughtError,\n    onCaughtError,\n    onRecoverableError,\n    transitionCallbacks,\n    null\n  );\n  container[internalContainerInstanceKey] = options.current;\n  listenToAllSupportedEvents(\n    8 === container.nodeType ? container.parentNode : container\n  );\n  return new ReactDOMRoot(options);\n};\nexports.hydrateRoot = function (container, initialChildren, options) {\n  if (!isValidContainer(container)) throw Error(formatProdErrorMessage(299));\n  var isStrictMode = !1,\n    identifierPrefix = \"\",\n    onUncaughtError = defaultOnUncaughtError,\n    onCaughtError = defaultOnCaughtError,\n    onRecoverableError = defaultOnRecoverableError,\n    transitionCallbacks = null,\n    formState = null;\n  null !== options &&\n    void 0 !== options &&\n    (!0 === options.unstable_strictMode && (isStrictMode = !0),\n    void 0 !== options.identifierPrefix &&\n      (identifierPrefix = options.identifierPrefix),\n    void 0 !== options.onUncaughtError &&\n      (onUncaughtError = options.onUncaughtError),\n    void 0 !== options.onCaughtError && (onCaughtError = options.onCaughtError),\n    void 0 !== options.onRecoverableError &&\n      (onRecoverableError = options.onRecoverableError),\n    void 0 !== options.unstable_transitionCallbacks &&\n      (transitionCallbacks = options.unstable_transitionCallbacks),\n    void 0 !== options.formState && (formState = options.formState));\n  initialChildren = createFiberRoot(\n    container,\n    1,\n    !0,\n    initialChildren,\n    null != options ? options : null,\n    isStrictMode,\n    identifierPrefix,\n    onUncaughtError,\n    onCaughtError,\n    onRecoverableError,\n    transitionCallbacks,\n    formState\n  );\n  initialChildren.context = getContextForSubtree(null);\n  options = initialChildren.current;\n  isStrictMode = requestUpdateLane();\n  identifierPrefix = createUpdate(isStrictMode);\n  identifierPrefix.callback = null;\n  enqueueUpdate(options, identifierPrefix, isStrictMode);\n  initialChildren.current.lanes = isStrictMode;\n  markRootUpdated$1(initialChildren, isStrictMode);\n  ensureRootIsScheduled(initialChildren);\n  container[internalContainerInstanceKey] = initialChildren.current;\n  listenToAllSupportedEvents(container);\n  return new ReactDOMHydrationRoot(initialChildren);\n};\nexports.version = \"19.0.0\";\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n  var url = \"https://react.dev/errors/\" + code;\n  if (1 < arguments.length) {\n    url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n    for (var i = 2; i < arguments.length; i++)\n      url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n  }\n  return (\n    \"Minified React error #\" +\n    code +\n    \"; visit \" +\n    url +\n    \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n  );\n}\nfunction noop() {}\nvar Internals = {\n    d: {\n      f: noop,\n      r: function () {\n        throw Error(formatProdErrorMessage(522));\n      },\n      D: noop,\n      C: noop,\n      L: noop,\n      m: noop,\n      X: noop,\n      S: noop,\n      M: noop\n    },\n    p: 0,\n    findDOMNode: null\n  },\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n  var key =\n    3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n  return {\n    $$typeof: REACT_PORTAL_TYPE,\n    key: null == key ? null : \"\" + key,\n    children: children,\n    containerInfo: containerInfo,\n    implementation: implementation\n  };\n}\nvar ReactSharedInternals =\n  React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n  if (\"font\" === as) return \"\";\n  if (\"string\" === typeof input)\n    return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n  Internals;\nexports.createPortal = function (children, container) {\n  var key =\n    2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n  if (\n    !container ||\n    (1 !== container.nodeType &&\n      9 !== container.nodeType &&\n      11 !== container.nodeType)\n  )\n    throw Error(formatProdErrorMessage(299));\n  return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n  var previousTransition = ReactSharedInternals.T,\n    previousUpdatePriority = Internals.p;\n  try {\n    if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n  } finally {\n    (ReactSharedInternals.T = previousTransition),\n      (Internals.p = previousUpdatePriority),\n      Internals.d.f();\n  }\n};\nexports.preconnect = function (href, options) {\n  \"string\" === typeof href &&\n    (options\n      ? ((options = options.crossOrigin),\n        (options =\n          \"string\" === typeof options\n            ? \"use-credentials\" === options\n              ? options\n              : \"\"\n            : void 0))\n      : (options = null),\n    Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n  \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n  if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n    var as = options.as,\n      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n      integrity =\n        \"string\" === typeof options.integrity ? options.integrity : void 0,\n      fetchPriority =\n        \"string\" === typeof options.fetchPriority\n          ? options.fetchPriority\n          : void 0;\n    \"style\" === as\n      ? Internals.d.S(\n          href,\n          \"string\" === typeof options.precedence ? options.precedence : void 0,\n          {\n            crossOrigin: crossOrigin,\n            integrity: integrity,\n            fetchPriority: fetchPriority\n          }\n        )\n      : \"script\" === as &&\n        Internals.d.X(href, {\n          crossOrigin: crossOrigin,\n          integrity: integrity,\n          fetchPriority: fetchPriority,\n          nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n        });\n  }\n};\nexports.preinitModule = function (href, options) {\n  if (\"string\" === typeof href)\n    if (\"object\" === typeof options && null !== options) {\n      if (null == options.as || \"script\" === options.as) {\n        var crossOrigin = getCrossOriginStringAs(\n          options.as,\n          options.crossOrigin\n        );\n        Internals.d.M(href, {\n          crossOrigin: crossOrigin,\n          integrity:\n            \"string\" === typeof options.integrity ? options.integrity : void 0,\n          nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n        });\n      }\n    } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n  if (\n    \"string\" === typeof href &&\n    \"object\" === typeof options &&\n    null !== options &&\n    \"string\" === typeof options.as\n  ) {\n    var as = options.as,\n      crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n    Internals.d.L(href, as, {\n      crossOrigin: crossOrigin,\n      integrity:\n        \"string\" === typeof options.integrity ? options.integrity : void 0,\n      nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n      type: \"string\" === typeof options.type ? options.type : void 0,\n      fetchPriority:\n        \"string\" === typeof options.fetchPriority\n          ? options.fetchPriority\n          : void 0,\n      referrerPolicy:\n        \"string\" === typeof options.referrerPolicy\n          ? options.referrerPolicy\n          : void 0,\n      imageSrcSet:\n        \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n      imageSizes:\n        \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n      media: \"string\" === typeof options.media ? options.media : void 0\n    });\n  }\n};\nexports.preloadModule = function (href, options) {\n  if (\"string\" === typeof href)\n    if (options) {\n      var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n      Internals.d.m(href, {\n        as:\n          \"string\" === typeof options.as && \"script\" !== options.as\n            ? options.as\n            : void 0,\n        crossOrigin: crossOrigin,\n        integrity:\n          \"string\" === typeof options.integrity ? options.integrity : void 0\n      });\n    } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n  Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n  return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n  return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n  return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.0.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-client.production.js');\n} else {\n  module.exports = require('./cjs/react-dom-client.development.js');\n}\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.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\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\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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.bodyOpenClassName = exports.portalClassName = 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 _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 _reactDom = require(\"react-dom\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ModalPortal = require(\"./ModalPortal\");\n\nvar _ModalPortal2 = _interopRequireDefault(_ModalPortal);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\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 portalClassName = exports.portalClassName = \"ReactModalPortal\";\nvar bodyOpenClassName = exports.bodyOpenClassName = \"ReactModal__Body--open\";\n\nvar isReact16 = _safeHTMLElement.canUseDOM && _reactDom2.default.createPortal !== undefined;\n\nvar createHTMLElement = function createHTMLElement(name) {\n  return document.createElement(name);\n};\n\nvar getCreatePortal = function getCreatePortal() {\n  return isReact16 ? _reactDom2.default.createPortal : _reactDom2.default.unstable_renderSubtreeIntoContainer;\n};\n\nfunction getParentElement(parentSelector) {\n  return parentSelector();\n}\n\nvar Modal = function (_Component) {\n  _inherits(Modal, _Component);\n\n  function Modal() {\n    var _ref;\n\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, (_ref = Modal.__proto__ || Object.getPrototypeOf(Modal)).call.apply(_ref, [this].concat(args))), _this), _this.removePortal = function () {\n      !isReact16 && _reactDom2.default.unmountComponentAtNode(_this.node);\n      var parent = getParentElement(_this.props.parentSelector);\n      if (parent && parent.contains(_this.node)) {\n        parent.removeChild(_this.node);\n      } else {\n        // eslint-disable-next-line no-console\n        console.warn('React-Modal: \"parentSelector\" prop did not returned any DOM ' + \"element. Make sure that the parent element is unmounted to \" + \"avoid any memory leaks.\");\n      }\n    }, _this.portalRef = function (ref) {\n      _this.portal = ref;\n    }, _this.renderPortal = function (props) {\n      var createPortal = getCreatePortal();\n      var portal = createPortal(_this, _react2.default.createElement(_ModalPortal2.default, _extends({ defaultStyles: Modal.defaultStyles }, props)), _this.node);\n      _this.portalRef(portal);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(Modal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (!_safeHTMLElement.canUseDOM) return;\n\n      if (!isReact16) {\n        this.node = createHTMLElement(\"div\");\n      }\n      this.node.className = this.props.portalClassName;\n\n      var parent = getParentElement(this.props.parentSelector);\n      parent.appendChild(this.node);\n\n      !isReact16 && this.renderPortal(this.props);\n    }\n  }, {\n    key: \"getSnapshotBeforeUpdate\",\n    value: function getSnapshotBeforeUpdate(prevProps) {\n      var prevParent = getParentElement(prevProps.parentSelector);\n      var nextParent = getParentElement(this.props.parentSelector);\n      return { prevParent: prevParent, nextParent: nextParent };\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, _, snapshot) {\n      if (!_safeHTMLElement.canUseDOM) return;\n      var _props = this.props,\n          isOpen = _props.isOpen,\n          portalClassName = _props.portalClassName;\n\n\n      if (prevProps.portalClassName !== portalClassName) {\n        this.node.className = portalClassName;\n      }\n\n      var prevParent = snapshot.prevParent,\n          nextParent = snapshot.nextParent;\n\n      if (nextParent !== prevParent) {\n        prevParent.removeChild(this.node);\n        nextParent.appendChild(this.node);\n      }\n\n      // Stop unnecessary renders if modal is remaining closed\n      if (!prevProps.isOpen && !isOpen) return;\n\n      !isReact16 && this.renderPortal(this.props);\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (!_safeHTMLElement.canUseDOM || !this.node || !this.portal) return;\n\n      var state = this.portal.state;\n      var now = Date.now();\n      var closesAt = state.isOpen && this.props.closeTimeoutMS && (state.closesAt || now + this.props.closeTimeoutMS);\n\n      if (closesAt) {\n        if (!state.beforeClose) {\n          this.portal.closeWithTimeout();\n        }\n\n        setTimeout(this.removePortal, closesAt - now);\n      } else {\n        this.removePortal();\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (!_safeHTMLElement.canUseDOM || !isReact16) {\n        return null;\n      }\n\n      if (!this.node && isReact16) {\n        this.node = createHTMLElement(\"div\");\n      }\n\n      var createPortal = getCreatePortal();\n      return createPortal(_react2.default.createElement(_ModalPortal2.default, _extends({\n        ref: this.portalRef,\n        defaultStyles: Modal.defaultStyles\n      }, this.props)), this.node);\n    }\n  }], [{\n    key: \"setAppElement\",\n    value: function setAppElement(element) {\n      ariaAppHider.setElement(element);\n    }\n\n    /* eslint-disable react/no-unused-prop-types */\n\n    /* eslint-enable react/no-unused-prop-types */\n\n  }]);\n\n  return Modal;\n}(_react.Component);\n\nModal.propTypes = {\n  isOpen: _propTypes2.default.bool.isRequired,\n  style: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  portalClassName: _propTypes2.default.string,\n  bodyOpenClassName: _propTypes2.default.string,\n  htmlOpenClassName: _propTypes2.default.string,\n  className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n    base: _propTypes2.default.string.isRequired,\n    afterOpen: _propTypes2.default.string.isRequired,\n    beforeClose: _propTypes2.default.string.isRequired\n  })]),\n  overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({\n    base: _propTypes2.default.string.isRequired,\n    afterOpen: _propTypes2.default.string.isRequired,\n    beforeClose: _propTypes2.default.string.isRequired\n  })]),\n  appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n  onAfterOpen: _propTypes2.default.func,\n  onRequestClose: _propTypes2.default.func,\n  closeTimeoutMS: _propTypes2.default.number,\n  ariaHideApp: _propTypes2.default.bool,\n  shouldFocusAfterRender: _propTypes2.default.bool,\n  shouldCloseOnOverlayClick: _propTypes2.default.bool,\n  shouldReturnFocusAfterClose: _propTypes2.default.bool,\n  preventScroll: _propTypes2.default.bool,\n  parentSelector: _propTypes2.default.func,\n  aria: _propTypes2.default.object,\n  data: _propTypes2.default.object,\n  role: _propTypes2.default.string,\n  contentLabel: _propTypes2.default.string,\n  shouldCloseOnEsc: _propTypes2.default.bool,\n  overlayRef: _propTypes2.default.func,\n  contentRef: _propTypes2.default.func,\n  id: _propTypes2.default.string,\n  overlayElement: _propTypes2.default.func,\n  contentElement: _propTypes2.default.func\n};\nModal.defaultProps = {\n  isOpen: false,\n  portalClassName: portalClassName,\n  bodyOpenClassName: bodyOpenClassName,\n  role: \"dialog\",\n  ariaHideApp: true,\n  closeTimeoutMS: 0,\n  shouldFocusAfterRender: true,\n  shouldCloseOnEsc: true,\n  shouldCloseOnOverlayClick: true,\n  shouldReturnFocusAfterClose: true,\n  preventScroll: false,\n  parentSelector: function parentSelector() {\n    return document.body;\n  },\n  overlayElement: function overlayElement(props, contentEl) {\n    return _react2.default.createElement(\n      \"div\",\n      props,\n      contentEl\n    );\n  },\n  contentElement: function contentElement(props, children) {\n    return _react2.default.createElement(\n      \"div\",\n      props,\n      children\n    );\n  }\n};\nModal.defaultStyles = {\n  overlay: {\n    position: \"fixed\",\n    top: 0,\n    left: 0,\n    right: 0,\n    bottom: 0,\n    backgroundColor: \"rgba(255, 255, 255, 0.75)\"\n  },\n  content: {\n    position: \"absolute\",\n    top: \"40px\",\n    left: \"40px\",\n    right: \"40px\",\n    bottom: \"40px\",\n    border: \"1px solid #ccc\",\n    background: \"#fff\",\n    overflow: \"auto\",\n    WebkitOverflowScrolling: \"touch\",\n    borderRadius: \"4px\",\n    outline: \"none\",\n    padding: \"20px\"\n  }\n};\n\n\n(0, _reactLifecyclesCompat.polyfill)(Modal);\n\nif (process.env.NODE_ENV !== \"production\") {\n  Modal.setCreateHTMLElement = function (fn) {\n    return createHTMLElement = fn;\n  };\n}\n\nexports.default = Modal;","\"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 _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 _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 _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _focusManager = require(\"../helpers/focusManager\");\n\nvar focusManager = _interopRequireWildcard(_focusManager);\n\nvar _scopeTab = require(\"../helpers/scopeTab\");\n\nvar _scopeTab2 = _interopRequireDefault(_scopeTab);\n\nvar _ariaAppHider = require(\"../helpers/ariaAppHider\");\n\nvar ariaAppHider = _interopRequireWildcard(_ariaAppHider);\n\nvar _classList = require(\"../helpers/classList\");\n\nvar classList = _interopRequireWildcard(_classList);\n\nvar _safeHTMLElement = require(\"../helpers/safeHTMLElement\");\n\nvar _safeHTMLElement2 = _interopRequireDefault(_safeHTMLElement);\n\nvar _portalOpenInstances = require(\"../helpers/portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nrequire(\"../helpers/bodyTrap\");\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)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\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// so that our CSS is statically analyzable\nvar CLASS_NAMES = {\n  overlay: \"ReactModal__Overlay\",\n  content: \"ReactModal__Content\"\n};\n\n/**\n * We need to support the deprecated `KeyboardEvent.keyCode` in addition to\n * `KeyboardEvent.code` for apps that still support IE11. Can be removed when\n * `react-modal` only supports React >18 (which dropped IE support).\n */\nvar isTabKey = function isTabKey(event) {\n  return event.code === \"Tab\" || event.keyCode === 9;\n};\nvar isEscKey = function isEscKey(event) {\n  return event.code === \"Escape\" || event.keyCode === 27;\n};\n\nvar ariaHiddenInstances = 0;\n\nvar ModalPortal = function (_Component) {\n  _inherits(ModalPortal, _Component);\n\n  function ModalPortal(props) {\n    _classCallCheck(this, ModalPortal);\n\n    var _this = _possibleConstructorReturn(this, (ModalPortal.__proto__ || Object.getPrototypeOf(ModalPortal)).call(this, props));\n\n    _this.setOverlayRef = function (overlay) {\n      _this.overlay = overlay;\n      _this.props.overlayRef && _this.props.overlayRef(overlay);\n    };\n\n    _this.setContentRef = function (content) {\n      _this.content = content;\n      _this.props.contentRef && _this.props.contentRef(content);\n    };\n\n    _this.afterClose = function () {\n      var _this$props = _this.props,\n          appElement = _this$props.appElement,\n          ariaHideApp = _this$props.ariaHideApp,\n          htmlOpenClassName = _this$props.htmlOpenClassName,\n          bodyOpenClassName = _this$props.bodyOpenClassName,\n          parentSelector = _this$props.parentSelector;\n\n\n      var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n      // Remove classes.\n      bodyOpenClassName && classList.remove(parentDocument.body, bodyOpenClassName);\n\n      htmlOpenClassName && classList.remove(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n      // Reset aria-hidden attribute if all modals have been removed\n      if (ariaHideApp && ariaHiddenInstances > 0) {\n        ariaHiddenInstances -= 1;\n\n        if (ariaHiddenInstances === 0) {\n          ariaAppHider.show(appElement);\n        }\n      }\n\n      if (_this.props.shouldFocusAfterRender) {\n        if (_this.props.shouldReturnFocusAfterClose) {\n          focusManager.returnFocus(_this.props.preventScroll);\n          focusManager.teardownScopedFocus();\n        } else {\n          focusManager.popWithoutFocus();\n        }\n      }\n\n      if (_this.props.onAfterClose) {\n        _this.props.onAfterClose();\n      }\n\n      _portalOpenInstances2.default.deregister(_this);\n    };\n\n    _this.open = function () {\n      _this.beforeOpen();\n      if (_this.state.afterOpen && _this.state.beforeClose) {\n        clearTimeout(_this.closeTimer);\n        _this.setState({ beforeClose: false });\n      } else {\n        if (_this.props.shouldFocusAfterRender) {\n          focusManager.setupScopedFocus(_this.node);\n          focusManager.markForFocusLater();\n        }\n\n        _this.setState({ isOpen: true }, function () {\n          _this.openAnimationFrame = requestAnimationFrame(function () {\n            _this.setState({ afterOpen: true });\n\n            if (_this.props.isOpen && _this.props.onAfterOpen) {\n              _this.props.onAfterOpen({\n                overlayEl: _this.overlay,\n                contentEl: _this.content\n              });\n            }\n          });\n        });\n      }\n    };\n\n    _this.close = function () {\n      if (_this.props.closeTimeoutMS > 0) {\n        _this.closeWithTimeout();\n      } else {\n        _this.closeWithoutTimeout();\n      }\n    };\n\n    _this.focusContent = function () {\n      return _this.content && !_this.contentHasFocus() && _this.content.focus({ preventScroll: true });\n    };\n\n    _this.closeWithTimeout = function () {\n      var closesAt = Date.now() + _this.props.closeTimeoutMS;\n      _this.setState({ beforeClose: true, closesAt: closesAt }, function () {\n        _this.closeTimer = setTimeout(_this.closeWithoutTimeout, _this.state.closesAt - Date.now());\n      });\n    };\n\n    _this.closeWithoutTimeout = function () {\n      _this.setState({\n        beforeClose: false,\n        isOpen: false,\n        afterOpen: false,\n        closesAt: null\n      }, _this.afterClose);\n    };\n\n    _this.handleKeyDown = function (event) {\n      if (isTabKey(event)) {\n        (0, _scopeTab2.default)(_this.content, event);\n      }\n\n      if (_this.props.shouldCloseOnEsc && isEscKey(event)) {\n        event.stopPropagation();\n        _this.requestClose(event);\n      }\n    };\n\n    _this.handleOverlayOnClick = function (event) {\n      if (_this.shouldClose === null) {\n        _this.shouldClose = true;\n      }\n\n      if (_this.shouldClose && _this.props.shouldCloseOnOverlayClick) {\n        if (_this.ownerHandlesClose()) {\n          _this.requestClose(event);\n        } else {\n          _this.focusContent();\n        }\n      }\n      _this.shouldClose = null;\n    };\n\n    _this.handleContentOnMouseUp = function () {\n      _this.shouldClose = false;\n    };\n\n    _this.handleOverlayOnMouseDown = function (event) {\n      if (!_this.props.shouldCloseOnOverlayClick && event.target == _this.overlay) {\n        event.preventDefault();\n      }\n    };\n\n    _this.handleContentOnClick = function () {\n      _this.shouldClose = false;\n    };\n\n    _this.handleContentOnMouseDown = function () {\n      _this.shouldClose = false;\n    };\n\n    _this.requestClose = function (event) {\n      return _this.ownerHandlesClose() && _this.props.onRequestClose(event);\n    };\n\n    _this.ownerHandlesClose = function () {\n      return _this.props.onRequestClose;\n    };\n\n    _this.shouldBeClosed = function () {\n      return !_this.state.isOpen && !_this.state.beforeClose;\n    };\n\n    _this.contentHasFocus = function () {\n      return document.activeElement === _this.content || _this.content.contains(document.activeElement);\n    };\n\n    _this.buildClassName = function (which, additional) {\n      var classNames = (typeof additional === \"undefined\" ? \"undefined\" : _typeof(additional)) === \"object\" ? additional : {\n        base: CLASS_NAMES[which],\n        afterOpen: CLASS_NAMES[which] + \"--after-open\",\n        beforeClose: CLASS_NAMES[which] + \"--before-close\"\n      };\n      var className = classNames.base;\n      if (_this.state.afterOpen) {\n        className = className + \" \" + classNames.afterOpen;\n      }\n      if (_this.state.beforeClose) {\n        className = className + \" \" + classNames.beforeClose;\n      }\n      return typeof additional === \"string\" && additional ? className + \" \" + additional : className;\n    };\n\n    _this.attributesFromObject = function (prefix, items) {\n      return Object.keys(items).reduce(function (acc, name) {\n        acc[prefix + \"-\" + name] = items[name];\n        return acc;\n      }, {});\n    };\n\n    _this.state = {\n      afterOpen: false,\n      beforeClose: false\n    };\n\n    _this.shouldClose = null;\n    _this.moveFromContentToOverlay = null;\n    return _this;\n  }\n\n  _createClass(ModalPortal, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      if (this.props.isOpen) {\n        this.open();\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps, prevState) {\n      if (process.env.NODE_ENV !== \"production\") {\n        if (prevProps.bodyOpenClassName !== this.props.bodyOpenClassName) {\n          // eslint-disable-next-line no-console\n          console.warn('React-Modal: \"bodyOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n        }\n        if (prevProps.htmlOpenClassName !== this.props.htmlOpenClassName) {\n          // eslint-disable-next-line no-console\n          console.warn('React-Modal: \"htmlOpenClassName\" prop has been modified. ' + \"This may cause unexpected behavior when multiple modals are open.\");\n        }\n      }\n\n      if (this.props.isOpen && !prevProps.isOpen) {\n        this.open();\n      } else if (!this.props.isOpen && prevProps.isOpen) {\n        this.close();\n      }\n\n      // Focus only needs to be set once when the modal is being opened\n      if (this.props.shouldFocusAfterRender && this.state.isOpen && !prevState.isOpen) {\n        this.focusContent();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.state.isOpen) {\n        this.afterClose();\n      }\n      clearTimeout(this.closeTimer);\n      cancelAnimationFrame(this.openAnimationFrame);\n    }\n  }, {\n    key: \"beforeOpen\",\n    value: function beforeOpen() {\n      var _props = this.props,\n          appElement = _props.appElement,\n          ariaHideApp = _props.ariaHideApp,\n          htmlOpenClassName = _props.htmlOpenClassName,\n          bodyOpenClassName = _props.bodyOpenClassName,\n          parentSelector = _props.parentSelector;\n\n\n      var parentDocument = parentSelector && parentSelector().ownerDocument || document;\n\n      // Add classes.\n      bodyOpenClassName && classList.add(parentDocument.body, bodyOpenClassName);\n\n      htmlOpenClassName && classList.add(parentDocument.getElementsByTagName(\"html\")[0], htmlOpenClassName);\n\n      if (ariaHideApp) {\n        ariaHiddenInstances += 1;\n        ariaAppHider.hide(appElement);\n      }\n\n      _portalOpenInstances2.default.register(this);\n    }\n\n    // Don't steal focus from inner elements\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _props2 = this.props,\n          id = _props2.id,\n          className = _props2.className,\n          overlayClassName = _props2.overlayClassName,\n          defaultStyles = _props2.defaultStyles,\n          children = _props2.children;\n\n      var contentStyles = className ? {} : defaultStyles.content;\n      var overlayStyles = overlayClassName ? {} : defaultStyles.overlay;\n\n      if (this.shouldBeClosed()) {\n        return null;\n      }\n\n      var overlayProps = {\n        ref: this.setOverlayRef,\n        className: this.buildClassName(\"overlay\", overlayClassName),\n        style: _extends({}, overlayStyles, this.props.style.overlay),\n        onClick: this.handleOverlayOnClick,\n        onMouseDown: this.handleOverlayOnMouseDown\n      };\n\n      var contentProps = _extends({\n        id: id,\n        ref: this.setContentRef,\n        style: _extends({}, contentStyles, this.props.style.content),\n        className: this.buildClassName(\"content\", className),\n        tabIndex: \"-1\",\n        onKeyDown: this.handleKeyDown,\n        onMouseDown: this.handleContentOnMouseDown,\n        onMouseUp: this.handleContentOnMouseUp,\n        onClick: this.handleContentOnClick,\n        role: this.props.role,\n        \"aria-label\": this.props.contentLabel\n      }, this.attributesFromObject(\"aria\", _extends({ modal: true }, this.props.aria)), this.attributesFromObject(\"data\", this.props.data || {}), {\n        \"data-testid\": this.props.testId\n      });\n\n      var contentElement = this.props.contentElement(contentProps, children);\n      return this.props.overlayElement(overlayProps, contentElement);\n    }\n  }]);\n\n  return ModalPortal;\n}(_react.Component);\n\nModalPortal.defaultProps = {\n  style: {\n    overlay: {},\n    content: {}\n  },\n  defaultStyles: {}\n};\nModalPortal.propTypes = {\n  isOpen: _propTypes2.default.bool.isRequired,\n  defaultStyles: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  style: _propTypes2.default.shape({\n    content: _propTypes2.default.object,\n    overlay: _propTypes2.default.object\n  }),\n  className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n  overlayClassName: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),\n  parentSelector: _propTypes2.default.func,\n  bodyOpenClassName: _propTypes2.default.string,\n  htmlOpenClassName: _propTypes2.default.string,\n  ariaHideApp: _propTypes2.default.bool,\n  appElement: _propTypes2.default.oneOfType([_propTypes2.default.instanceOf(_safeHTMLElement2.default), _propTypes2.default.instanceOf(_safeHTMLElement.SafeHTMLCollection), _propTypes2.default.instanceOf(_safeHTMLElement.SafeNodeList), _propTypes2.default.arrayOf(_propTypes2.default.instanceOf(_safeHTMLElement2.default))]),\n  onAfterOpen: _propTypes2.default.func,\n  onAfterClose: _propTypes2.default.func,\n  onRequestClose: _propTypes2.default.func,\n  closeTimeoutMS: _propTypes2.default.number,\n  shouldFocusAfterRender: _propTypes2.default.bool,\n  shouldCloseOnOverlayClick: _propTypes2.default.bool,\n  shouldReturnFocusAfterClose: _propTypes2.default.bool,\n  preventScroll: _propTypes2.default.bool,\n  role: _propTypes2.default.string,\n  contentLabel: _propTypes2.default.string,\n  aria: _propTypes2.default.object,\n  data: _propTypes2.default.object,\n  children: _propTypes2.default.node,\n  shouldCloseOnEsc: _propTypes2.default.bool,\n  overlayRef: _propTypes2.default.func,\n  contentRef: _propTypes2.default.func,\n  id: _propTypes2.default.string,\n  overlayElement: _propTypes2.default.func,\n  contentElement: _propTypes2.default.func,\n  testId: _propTypes2.default.string\n};\nexports.default = ModalPortal;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.assertNodeList = assertNodeList;\nexports.setElement = setElement;\nexports.validateElement = validateElement;\nexports.hide = hide;\nexports.show = show;\nexports.documentNotReadyOrSSRTesting = documentNotReadyOrSSRTesting;\n\nvar _warning = require(\"warning\");\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _safeHTMLElement = require(\"./safeHTMLElement\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar globalElement = null;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n  if (globalElement) {\n    if (globalElement.removeAttribute) {\n      globalElement.removeAttribute(\"aria-hidden\");\n    } else if (globalElement.length != null) {\n      globalElement.forEach(function (element) {\n        return element.removeAttribute(\"aria-hidden\");\n      });\n    } else {\n      document.querySelectorAll(globalElement).forEach(function (element) {\n        return element.removeAttribute(\"aria-hidden\");\n      });\n    }\n  }\n  globalElement = null;\n}\n\n/* istanbul ignore next */\nfunction log() {\n  if (process.env.NODE_ENV !== \"production\") {\n    var check = globalElement || {};\n    console.log(\"ariaAppHider ----------\");\n    console.log(check.nodeName, check.className, check.id);\n    console.log(\"end ariaAppHider ----------\");\n  }\n}\n/* eslint-enable no-console */\n\nfunction assertNodeList(nodeList, selector) {\n  if (!nodeList || !nodeList.length) {\n    throw new Error(\"react-modal: No elements were found for selector \" + selector + \".\");\n  }\n}\n\nfunction setElement(element) {\n  var useElement = element;\n  if (typeof useElement === \"string\" && _safeHTMLElement.canUseDOM) {\n    var el = document.querySelectorAll(useElement);\n    assertNodeList(el, useElement);\n    useElement = el;\n  }\n  globalElement = useElement || globalElement;\n  return globalElement;\n}\n\nfunction validateElement(appElement) {\n  var el = appElement || globalElement;\n  if (el) {\n    return Array.isArray(el) || el instanceof HTMLCollection || el instanceof NodeList ? el : [el];\n  } else {\n    (0, _warning2.default)(false, [\"react-modal: App element is not defined.\", \"Please use `Modal.setAppElement(el)` or set `appElement={el}`.\", \"This is needed so screen readers don't see main content\", \"when modal is opened. It is not recommended, but you can opt-out\", \"by setting `ariaHideApp={false}`.\"].join(\" \"));\n\n    return [];\n  }\n}\n\nfunction hide(appElement) {\n  var _iteratorNormalCompletion = true;\n  var _didIteratorError = false;\n  var _iteratorError = undefined;\n\n  try {\n    for (var _iterator = validateElement(appElement)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n      var el = _step.value;\n\n      el.setAttribute(\"aria-hidden\", \"true\");\n    }\n  } catch (err) {\n    _didIteratorError = true;\n    _iteratorError = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion && _iterator.return) {\n        _iterator.return();\n      }\n    } finally {\n      if (_didIteratorError) {\n        throw _iteratorError;\n      }\n    }\n  }\n}\n\nfunction show(appElement) {\n  var _iteratorNormalCompletion2 = true;\n  var _didIteratorError2 = false;\n  var _iteratorError2 = undefined;\n\n  try {\n    for (var _iterator2 = validateElement(appElement)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n      var el = _step2.value;\n\n      el.removeAttribute(\"aria-hidden\");\n    }\n  } catch (err) {\n    _didIteratorError2 = true;\n    _iteratorError2 = err;\n  } finally {\n    try {\n      if (!_iteratorNormalCompletion2 && _iterator2.return) {\n        _iterator2.return();\n      }\n    } finally {\n      if (_didIteratorError2) {\n        throw _iteratorError2;\n      }\n    }\n  }\n}\n\nfunction documentNotReadyOrSSRTesting() {\n  globalElement = null;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.resetState = resetState;\nexports.log = log;\n\nvar _portalOpenInstances = require(\"./portalOpenInstances\");\n\nvar _portalOpenInstances2 = _interopRequireDefault(_portalOpenInstances);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Body focus trap see Issue #742\n\nvar before = void 0,\n    after = void 0,\n    instances = [];\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n  var _arr = [before, after];\n\n  for (var _i = 0; _i < _arr.length; _i++) {\n    var item = _arr[_i];\n    if (!item) continue;\n    item.parentNode && item.parentNode.removeChild(item);\n  }\n  before = after = null;\n  instances = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n  console.log(\"bodyTrap ----------\");\n  console.log(instances.length);\n  var _arr2 = [before, after];\n  for (var _i2 = 0; _i2 < _arr2.length; _i2++) {\n    var item = _arr2[_i2];\n    var check = item || {};\n    console.log(check.nodeName, check.className, check.id);\n  }\n  console.log(\"edn bodyTrap ----------\");\n}\n/* eslint-enable no-console */\n\nfunction focusContent() {\n  if (instances.length === 0) {\n    if (process.env.NODE_ENV !== \"production\") {\n      // eslint-disable-next-line no-console\n      console.warn(\"React-Modal: Open instances > 0 expected\");\n    }\n    return;\n  }\n  instances[instances.length - 1].focusContent();\n}\n\nfunction bodyTrap(eventType, openInstances) {\n  if (!before && !after) {\n    before = document.createElement(\"div\");\n    before.setAttribute(\"data-react-modal-body-trap\", \"\");\n    before.style.position = \"absolute\";\n    before.style.opacity = \"0\";\n    before.setAttribute(\"tabindex\", \"0\");\n    before.addEventListener(\"focus\", focusContent);\n    after = before.cloneNode();\n    after.addEventListener(\"focus\", focusContent);\n  }\n\n  instances = openInstances;\n\n  if (instances.length > 0) {\n    // Add focus trap\n    if (document.body.firstChild !== before) {\n      document.body.insertBefore(before, document.body.firstChild);\n    }\n    if (document.body.lastChild !== after) {\n      document.body.appendChild(after);\n    }\n  } else {\n    // Remove focus trap\n    if (before.parentElement) {\n      before.parentElement.removeChild(before);\n    }\n    if (after.parentElement) {\n      after.parentElement.removeChild(after);\n    }\n  }\n}\n\n_portalOpenInstances2.default.subscribe(bodyTrap);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nvar htmlClassList = {};\nvar docBodyClassList = {};\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction removeClass(at, cls) {\n  at.classList.remove(cls);\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n  var htmlElement = document.getElementsByTagName(\"html\")[0];\n  for (var cls in htmlClassList) {\n    removeClass(htmlElement, htmlClassList[cls]);\n  }\n\n  var body = document.body;\n  for (var _cls in docBodyClassList) {\n    removeClass(body, docBodyClassList[_cls]);\n  }\n\n  htmlClassList = {};\n  docBodyClassList = {};\n}\n\n/* istanbul ignore next */\nfunction log() {\n  if (process.env.NODE_ENV !== \"production\") {\n    var classes = document.getElementsByTagName(\"html\")[0].className;\n    var buffer = \"Show tracked classes:\\n\\n\";\n\n    buffer += \"<html /> (\" + classes + \"):\\n  \";\n    for (var x in htmlClassList) {\n      buffer += \"  \" + x + \" \" + htmlClassList[x] + \"\\n  \";\n    }\n\n    classes = document.body.className;\n\n    buffer += \"\\n\\ndoc.body (\" + classes + \"):\\n  \";\n    for (var _x in docBodyClassList) {\n      buffer += \"  \" + _x + \" \" + docBodyClassList[_x] + \"\\n  \";\n    }\n\n    buffer += \"\\n\";\n\n    console.log(buffer);\n  }\n}\n/* eslint-enable no-console */\n\n/**\n * Track the number of reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar incrementReference = function incrementReference(poll, className) {\n  if (!poll[className]) {\n    poll[className] = 0;\n  }\n  poll[className] += 1;\n  return className;\n};\n\n/**\n * Drop the reference of a class.\n * @param {object} poll The poll to receive the reference.\n * @param {string} className The class name.\n * @return {string}\n */\nvar decrementReference = function decrementReference(poll, className) {\n  if (poll[className]) {\n    poll[className] -= 1;\n  }\n  return className;\n};\n\n/**\n * Track a class and add to the given class list.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll         The poll to be used.\n * @param {Array}  classes      The list of classes to be tracked.\n */\nvar trackClass = function trackClass(classListRef, poll, classes) {\n  classes.forEach(function (className) {\n    incrementReference(poll, className);\n    classListRef.add(className);\n  });\n};\n\n/**\n * Untrack a class and remove from the given class list if the reference\n * reaches 0.\n * @param {Object} classListRef A class list of an element.\n * @param {Object} poll         The poll to be used.\n * @param {Array}  classes      The list of classes to be untracked.\n */\nvar untrackClass = function untrackClass(classListRef, poll, classes) {\n  classes.forEach(function (className) {\n    decrementReference(poll, className);\n    poll[className] === 0 && classListRef.remove(className);\n  });\n};\n\n/**\n * Public inferface to add classes to the document.body.\n * @param {string} bodyClass The class string to be added.\n *                           It may contain more then one class\n *                           with ' ' as separator.\n */\nvar add = exports.add = function add(element, classString) {\n  return trackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};\n\n/**\n * Public inferface to remove classes from the document.body.\n * @param {string} bodyClass The class string to be added.\n *                           It may contain more then one class\n *                           with ' ' as separator.\n */\nvar remove = exports.remove = function remove(element, classString) {\n  return untrackClass(element.classList, element.nodeName.toLowerCase() == \"html\" ? htmlClassList : docBodyClassList, classString.split(\" \"));\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.resetState = resetState;\nexports.log = log;\nexports.handleBlur = handleBlur;\nexports.handleFocus = handleFocus;\nexports.markForFocusLater = markForFocusLater;\nexports.returnFocus = returnFocus;\nexports.popWithoutFocus = popWithoutFocus;\nexports.setupScopedFocus = setupScopedFocus;\nexports.teardownScopedFocus = teardownScopedFocus;\n\nvar _tabbable = require(\"../helpers/tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar focusLaterElements = [];\nvar modalElement = null;\nvar needToFocus = false;\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction resetState() {\n  focusLaterElements = [];\n}\n\n/* istanbul ignore next */\nfunction log() {\n  if (process.env.NODE_ENV !== \"production\") {\n    console.log(\"focusManager ----------\");\n    focusLaterElements.forEach(function (f) {\n      var check = f || {};\n      console.log(check.nodeName, check.className, check.id);\n    });\n    console.log(\"end focusManager ----------\");\n  }\n}\n/* eslint-enable no-console */\n\nfunction handleBlur() {\n  needToFocus = true;\n}\n\nfunction handleFocus() {\n  if (needToFocus) {\n    needToFocus = false;\n    if (!modalElement) {\n      return;\n    }\n    // need to see how jQuery shims document.on('focusin') so we don't need the\n    // setTimeout, firefox doesn't support focusin, if it did, we could focus\n    // the element outside of a setTimeout. Side-effect of this implementation\n    // is that the document.body gets focus, and then we focus our element right\n    // after, seems fine.\n    setTimeout(function () {\n      if (modalElement.contains(document.activeElement)) {\n        return;\n      }\n      var el = (0, _tabbable2.default)(modalElement)[0] || modalElement;\n      el.focus();\n    }, 0);\n  }\n}\n\nfunction markForFocusLater() {\n  focusLaterElements.push(document.activeElement);\n}\n\n/* eslint-disable no-console */\nfunction returnFocus() {\n  var preventScroll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n  var toFocus = null;\n  try {\n    if (focusLaterElements.length !== 0) {\n      toFocus = focusLaterElements.pop();\n      toFocus.focus({ preventScroll: preventScroll });\n    }\n    return;\n  } catch (e) {\n    console.warn([\"You tried to return focus to\", toFocus, \"but it is not in the DOM anymore\"].join(\" \"));\n  }\n}\n/* eslint-enable no-console */\n\nfunction popWithoutFocus() {\n  focusLaterElements.length > 0 && focusLaterElements.pop();\n}\n\nfunction setupScopedFocus(element) {\n  modalElement = element;\n\n  if (window.addEventListener) {\n    window.addEventListener(\"blur\", handleBlur, false);\n    document.addEventListener(\"focus\", handleFocus, true);\n  } else {\n    window.attachEvent(\"onBlur\", handleBlur);\n    document.attachEvent(\"onFocus\", handleFocus);\n  }\n}\n\nfunction teardownScopedFocus() {\n  modalElement = null;\n\n  if (window.addEventListener) {\n    window.removeEventListener(\"blur\", handleBlur);\n    document.removeEventListener(\"focus\", handleFocus);\n  } else {\n    window.detachEvent(\"onBlur\", handleBlur);\n    document.detachEvent(\"onFocus\", handleFocus);\n  }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.log = log;\nexports.resetState = resetState;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Tracks portals that are open and emits events to subscribers\n\nvar PortalOpenInstances = function PortalOpenInstances() {\n  var _this = this;\n\n  _classCallCheck(this, PortalOpenInstances);\n\n  this.register = function (openInstance) {\n    if (_this.openInstances.indexOf(openInstance) !== -1) {\n      if (process.env.NODE_ENV !== \"production\") {\n        // eslint-disable-next-line no-console\n        console.warn(\"React-Modal: Cannot register modal instance that's already open\");\n      }\n      return;\n    }\n    _this.openInstances.push(openInstance);\n    _this.emit(\"register\");\n  };\n\n  this.deregister = function (openInstance) {\n    var index = _this.openInstances.indexOf(openInstance);\n    if (index === -1) {\n      if (process.env.NODE_ENV !== \"production\") {\n        // eslint-disable-next-line no-console\n        console.warn(\"React-Modal: Unable to deregister \" + openInstance + \" as \" + \"it was never registered\");\n      }\n      return;\n    }\n    _this.openInstances.splice(index, 1);\n    _this.emit(\"deregister\");\n  };\n\n  this.subscribe = function (callback) {\n    _this.subscribers.push(callback);\n  };\n\n  this.emit = function (eventType) {\n    _this.subscribers.forEach(function (subscriber) {\n      return subscriber(eventType,\n      // shallow copy to avoid accidental mutation\n      _this.openInstances.slice());\n    });\n  };\n\n  this.openInstances = [];\n  this.subscribers = [];\n};\n\nvar portalOpenInstances = new PortalOpenInstances();\n\n/* eslint-disable no-console */\n/* istanbul ignore next */\nfunction log() {\n  console.log(\"portalOpenInstances ----------\");\n  console.log(portalOpenInstances.openInstances.length);\n  portalOpenInstances.openInstances.forEach(function (p) {\n    return console.log(p);\n  });\n  console.log(\"end portalOpenInstances ----------\");\n}\n\n/* istanbul ignore next */\nfunction resetState() {\n  portalOpenInstances = new PortalOpenInstances();\n}\n/* eslint-enable no-console */\n\nexports.default = portalOpenInstances;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = scopeTab;\n\nvar _tabbable = require(\"./tabbable\");\n\nvar _tabbable2 = _interopRequireDefault(_tabbable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction getActiveElement() {\n  var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n  return el.activeElement.shadowRoot ? getActiveElement(el.activeElement.shadowRoot) : el.activeElement;\n}\n\nfunction scopeTab(node, event) {\n  var tabbable = (0, _tabbable2.default)(node);\n\n  if (!tabbable.length) {\n    // Do nothing, since there are no elements that can receive focus.\n    event.preventDefault();\n    return;\n  }\n\n  var target = void 0;\n\n  var shiftKey = event.shiftKey;\n  var head = tabbable[0];\n  var tail = tabbable[tabbable.length - 1];\n  var activeElement = getActiveElement();\n\n  // proceed with default browser behavior on tab.\n  // Focus on last element on shift + tab.\n  if (node === activeElement) {\n    if (!shiftKey) return;\n    target = tail;\n  }\n\n  if (tail === activeElement && !shiftKey) {\n    target = head;\n  }\n\n  if (head === activeElement && shiftKey) {\n    target = tail;\n  }\n\n  if (target) {\n    event.preventDefault();\n    target.focus();\n    return;\n  }\n\n  // Safari radio issue.\n  //\n  // Safari does not move the focus to the radio button,\n  // so we need to force it to really walk through all elements.\n  //\n  // This is very error prone, since we are trying to guess\n  // if it is a safari browser from the first occurence between\n  // chrome or safari.\n  //\n  // The chrome user agent contains the first ocurrence\n  // as the 'chrome/version' and later the 'safari/version'.\n  var checkSafari = /(\\bChrome\\b|\\bSafari\\b)\\//.exec(navigator.userAgent);\n  var isSafariDesktop = checkSafari != null && checkSafari[1] != \"Chrome\" && /\\biPod\\b|\\biPad\\b/g.exec(navigator.userAgent) == null;\n\n  // If we are not in safari desktop, let the browser control\n  // the focus\n  if (!isSafariDesktop) return;\n\n  var x = tabbable.indexOf(activeElement);\n\n  if (x > -1) {\n    x += shiftKey ? -1 : 1;\n  }\n\n  target = tabbable[x];\n\n  // If the tabbable element does not exist,\n  // focus head/tail based on shiftKey\n  if (typeof target === \"undefined\") {\n    event.preventDefault();\n    target = shiftKey ? tail : head;\n    target.focus();\n    return;\n  }\n\n  event.preventDefault();\n\n  target.focus();\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = findTabbableDescendants;\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\n\nvar DISPLAY_NONE = \"none\";\nvar DISPLAY_CONTENTS = \"contents\";\n\n// match the whole word to prevent fuzzy searching\nvar tabbableNode = /^(input|select|textarea|button|object|iframe)$/;\n\nfunction isNotOverflowing(element, style) {\n  return style.getPropertyValue(\"overflow\") !== \"visible\" ||\n  // if 'overflow: visible' set, check if there is actually any overflow\n  element.scrollWidth <= 0 && element.scrollHeight <= 0;\n}\n\nfunction hidesContents(element) {\n  var zeroSize = element.offsetWidth <= 0 && element.offsetHeight <= 0;\n\n  // If the node is empty, this is good enough\n  if (zeroSize && !element.innerHTML) return true;\n\n  try {\n    // Otherwise we need to check some styles\n    var style = window.getComputedStyle(element);\n    var displayValue = style.getPropertyValue(\"display\");\n    return zeroSize ? displayValue !== DISPLAY_CONTENTS && isNotOverflowing(element, style) : displayValue === DISPLAY_NONE;\n  } catch (exception) {\n    // eslint-disable-next-line no-console\n    console.warn(\"Failed to inspect element style\");\n    return false;\n  }\n}\n\nfunction visible(element) {\n  var parentElement = element;\n  var rootNode = element.getRootNode && element.getRootNode();\n  while (parentElement) {\n    if (parentElement === document.body) break;\n\n    // if we are not hidden yet, skip to checking outside the Web Component\n    if (rootNode && parentElement === rootNode) parentElement = rootNode.host.parentNode;\n\n    if (hidesContents(parentElement)) return false;\n    parentElement = parentElement.parentNode;\n  }\n  return true;\n}\n\nfunction focusable(element, isTabIndexNotNaN) {\n  var nodeName = element.nodeName.toLowerCase();\n  var res = tabbableNode.test(nodeName) && !element.disabled || (nodeName === \"a\" ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n  return res && visible(element);\n}\n\nfunction tabbable(element) {\n  var tabIndex = element.getAttribute(\"tabindex\");\n  if (tabIndex === null) tabIndex = undefined;\n  var isTabIndexNaN = isNaN(tabIndex);\n  return (isTabIndexNaN || tabIndex >= 0) && focusable(element, !isTabIndexNaN);\n}\n\nfunction findTabbableDescendants(element) {\n  var descendants = [].slice.call(element.querySelectorAll(\"*\"), 0).reduce(function (finished, el) {\n    return finished.concat(!el.shadowRoot ? [el] : findTabbableDescendants(el.shadowRoot));\n  }, []);\n  return descendants.filter(tabbable);\n}\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _Modal = require(\"./components/Modal\");\n\nvar _Modal2 = _interopRequireDefault(_Modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _Modal2.default;\nmodule.exports = exports[\"default\"];","/**\n * RegExp to match cookie-name in RFC 6265 sec 4.1.1\n * This refers out to the obsoleted definition of token in RFC 2616 sec 2.2\n * which has been replaced by the token definition in RFC 7230 appendix B.\n *\n * cookie-name       = token\n * token             = 1*tchar\n * tchar             = \"!\" / \"#\" / \"$\" / \"%\" / \"&\" / \"'\" /\n *                     \"*\" / \"+\" / \"-\" / \".\" / \"^\" / \"_\" /\n *                     \"`\" / \"|\" / \"~\" / DIGIT / ALPHA\n *\n * Note: Allowing more characters - https://github.com/jshttp/cookie/issues/191\n * Allow same range as cookie value, except `=`, which delimits end of name.\n */\nconst cookieNameRegExp = /^[\\u0021-\\u003A\\u003C\\u003E-\\u007E]+$/;\n\n/**\n * RegExp to match cookie-value in RFC 6265 sec 4.1.1\n *\n * cookie-value      = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )\n * cookie-octet      = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E\n *                     ; US-ASCII characters excluding CTLs,\n *                     ; whitespace DQUOTE, comma, semicolon,\n *                     ; and backslash\n *\n * Allowing more characters: https://github.com/jshttp/cookie/issues/191\n * Comma, backslash, and DQUOTE are not part of the parsing algorithm.\n */\nconst cookieValueRegExp = /^[\\u0021-\\u003A\\u003C-\\u007E]*$/;\n\n/**\n * RegExp to match domain-value in RFC 6265 sec 4.1.1\n *\n * domain-value      = <subdomain>\n *                     ; defined in [RFC1034], Section 3.5, as\n *                     ; enhanced by [RFC1123], Section 2.1\n * <subdomain>       = <label> | <subdomain> \".\" <label>\n * <label>           = <let-dig> [ [ <ldh-str> ] <let-dig> ]\n *                     Labels must be 63 characters or less.\n *                     'let-dig' not 'letter' in the first char, per RFC1123\n * <ldh-str>         = <let-dig-hyp> | <let-dig-hyp> <ldh-str>\n * <let-dig-hyp>     = <let-dig> | \"-\"\n * <let-dig>         = <letter> | <digit>\n * <letter>          = any one of the 52 alphabetic characters A through Z in\n *                     upper case and a through z in lower case\n * <digit>           = any one of the ten digits 0 through 9\n *\n * Keep support for leading dot: https://github.com/jshttp/cookie/issues/173\n *\n * > (Note that a leading %x2E (\".\"), if present, is ignored even though that\n * character is not permitted, but a trailing %x2E (\".\"), if present, will\n * cause the user agent to ignore the attribute.)\n */\nconst domainValueRegExp =\n  /^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i;\n\n/**\n * RegExp to match path-value in RFC 6265 sec 4.1.1\n *\n * path-value        = <any CHAR except CTLs or \";\">\n * CHAR              = %x01-7F\n *                     ; defined in RFC 5234 appendix B.1\n */\nconst pathValueRegExp = /^[\\u0020-\\u003A\\u003D-\\u007E]*$/;\n\nconst __toString = Object.prototype.toString;\n\nconst NullObject = /* @__PURE__ */ (() => {\n  const C = function () {};\n  C.prototype = Object.create(null);\n  return C;\n})() as unknown as { new (): any };\n\n/**\n * Parse options.\n */\nexport interface ParseOptions {\n  /**\n   * Specifies a function that will be used to decode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n   * Since the value of a cookie has a limited character set (and must be a simple string), this function can be used to decode\n   * a previously-encoded cookie value into a JavaScript string.\n   *\n   * The default function is the global `decodeURIComponent`, wrapped in a `try..catch`. If an error\n   * is thrown it will return the cookie's original value. If you provide your own encode/decode\n   * scheme you must ensure errors are appropriately handled.\n   *\n   * @default decode\n   */\n  decode?: (str: string) => string | undefined;\n}\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n */\nexport function parse(\n  str: string,\n  options?: ParseOptions,\n): Record<string, string | undefined> {\n  const obj: Record<string, string | undefined> = new NullObject();\n  const len = str.length;\n  // RFC 6265 sec 4.1.1, RFC 2616 2.2 defines a cookie name consists of one char minimum, plus '='.\n  if (len < 2) return obj;\n\n  const dec = options?.decode || decode;\n  let index = 0;\n\n  do {\n    const eqIdx = str.indexOf(\"=\", index);\n    if (eqIdx === -1) break; // No more cookie pairs.\n\n    const colonIdx = str.indexOf(\";\", index);\n    const endIdx = colonIdx === -1 ? len : colonIdx;\n\n    if (eqIdx > endIdx) {\n      // backtrack on prior semicolon\n      index = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n      continue;\n    }\n\n    const keyStartIdx = startIndex(str, index, eqIdx);\n    const keyEndIdx = endIndex(str, eqIdx, keyStartIdx);\n    const key = str.slice(keyStartIdx, keyEndIdx);\n\n    // only assign once\n    if (obj[key] === undefined) {\n      let valStartIdx = startIndex(str, eqIdx + 1, endIdx);\n      let valEndIdx = endIndex(str, endIdx, valStartIdx);\n\n      const value = dec(str.slice(valStartIdx, valEndIdx));\n      obj[key] = value;\n    }\n\n    index = endIdx + 1;\n  } while (index < len);\n\n  return obj;\n}\n\nfunction startIndex(str: string, index: number, max: number) {\n  do {\n    const code = str.charCodeAt(index);\n    if (code !== 0x20 /*   */ && code !== 0x09 /* \\t */) return index;\n  } while (++index < max);\n  return max;\n}\n\nfunction endIndex(str: string, index: number, min: number) {\n  while (index > min) {\n    const code = str.charCodeAt(--index);\n    if (code !== 0x20 /*   */ && code !== 0x09 /* \\t */) return index + 1;\n  }\n  return min;\n}\n\n/**\n * Serialize options.\n */\nexport interface SerializeOptions {\n  /**\n   * Specifies a function that will be used to encode a [cookie-value](https://datatracker.ietf.org/doc/html/rfc6265#section-4.1.1).\n   * Since value of a cookie has a limited character set (and must be a simple string), this function can be used to encode\n   * a value into a string suited for a cookie's value, and should mirror `decode` when parsing.\n   *\n   * @default encodeURIComponent\n   */\n  encode?: (str: string) => string;\n  /**\n   * Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.2).\n   *\n   * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n   * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n   * so if both are set, they should point to the same date and time.\n   */\n  maxAge?: number;\n  /**\n   * Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.1).\n   * When no expiration is set clients consider this a \"non-persistent cookie\" and delete it the current session is over.\n   *\n   * The [cookie storage model specification](https://tools.ietf.org/html/rfc6265#section-5.3) states that if both `expires` and\n   * `maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this,\n   * so if both are set, they should point to the same date and time.\n   */\n  expires?: Date;\n  /**\n   * Specifies the value for the [`Domain` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.3).\n   * When no domain is set clients consider the cookie to apply to the current domain only.\n   */\n  domain?: string;\n  /**\n   * Specifies the value for the [`Path` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.4).\n   * When no path is set, the path is considered the [\"default path\"](https://tools.ietf.org/html/rfc6265#section-5.1.4).\n   */\n  path?: string;\n  /**\n   * Enables the [`HttpOnly` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.6).\n   * When enabled, clients will not allow client-side JavaScript to see the cookie in `document.cookie`.\n   */\n  httpOnly?: boolean;\n  /**\n   * Enables the [`Secure` `Set-Cookie` attribute](https://tools.ietf.org/html/rfc6265#section-5.2.5).\n   * When enabled, clients will only send the cookie back if the browser has a HTTPS connection.\n   */\n  secure?: boolean;\n  /**\n   * Enables the [`Partitioned` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-cutler-httpbis-partitioned-cookies/).\n   * When enabled, clients will only send the cookie back when the current domain _and_ top-level domain matches.\n   *\n   * This is an attribute that has not yet been fully standardized, and may change in the future.\n   * This also means clients may ignore this attribute until they understand it. More information\n   * about can be found in [the proposal](https://github.com/privacycg/CHIPS).\n   */\n  partitioned?: boolean;\n  /**\n   * Specifies the value for the [`Priority` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n   *\n   * - `'low'` will set the `Priority` attribute to `Low`.\n   * - `'medium'` will set the `Priority` attribute to `Medium`, the default priority when not set.\n   * - `'high'` will set the `Priority` attribute to `High`.\n   *\n   * More information about priority levels can be found in [the specification](https://tools.ietf.org/html/draft-west-cookie-priority-00#section-4.1).\n   */\n  priority?: \"low\" | \"medium\" | \"high\";\n  /**\n   * Specifies the value for the [`SameSite` `Set-Cookie` attribute](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n   *\n   * - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n   * - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement.\n   * - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie.\n   * - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement.\n   *\n   * More information about enforcement levels can be found in [the specification](https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-09#section-5.4.7).\n   */\n  sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize a name value pair into a cookie string suitable for\n * http headers. An optional options object specifies cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n *   => \"foo=bar; httpOnly\"\n */\nexport function serialize(\n  name: string,\n  val: string,\n  options?: SerializeOptions,\n): string {\n  const enc = options?.encode || encodeURIComponent;\n\n  if (!cookieNameRegExp.test(name)) {\n    throw new TypeError(`argument name is invalid: ${name}`);\n  }\n\n  const value = enc(val);\n\n  if (!cookieValueRegExp.test(value)) {\n    throw new TypeError(`argument val is invalid: ${val}`);\n  }\n\n  let str = name + \"=\" + value;\n  if (!options) return str;\n\n  if (options.maxAge !== undefined) {\n    if (!Number.isInteger(options.maxAge)) {\n      throw new TypeError(`option maxAge is invalid: ${options.maxAge}`);\n    }\n\n    str += \"; Max-Age=\" + options.maxAge;\n  }\n\n  if (options.domain) {\n    if (!domainValueRegExp.test(options.domain)) {\n      throw new TypeError(`option domain is invalid: ${options.domain}`);\n    }\n\n    str += \"; Domain=\" + options.domain;\n  }\n\n  if (options.path) {\n    if (!pathValueRegExp.test(options.path)) {\n      throw new TypeError(`option path is invalid: ${options.path}`);\n    }\n\n    str += \"; Path=\" + options.path;\n  }\n\n  if (options.expires) {\n    if (\n      !isDate(options.expires) ||\n      !Number.isFinite(options.expires.valueOf())\n    ) {\n      throw new TypeError(`option expires is invalid: ${options.expires}`);\n    }\n\n    str += \"; Expires=\" + options.expires.toUTCString();\n  }\n\n  if (options.httpOnly) {\n    str += \"; HttpOnly\";\n  }\n\n  if (options.secure) {\n    str += \"; Secure\";\n  }\n\n  if (options.partitioned) {\n    str += \"; Partitioned\";\n  }\n\n  if (options.priority) {\n    const priority =\n      typeof options.priority === \"string\"\n        ? options.priority.toLowerCase()\n        : undefined;\n    switch (priority) {\n      case \"low\":\n        str += \"; Priority=Low\";\n        break;\n      case \"medium\":\n        str += \"; Priority=Medium\";\n        break;\n      case \"high\":\n        str += \"; Priority=High\";\n        break;\n      default:\n        throw new TypeError(`option priority is invalid: ${options.priority}`);\n    }\n  }\n\n  if (options.sameSite) {\n    const sameSite =\n      typeof options.sameSite === \"string\"\n        ? options.sameSite.toLowerCase()\n        : options.sameSite;\n    switch (sameSite) {\n      case true:\n      case \"strict\":\n        str += \"; SameSite=Strict\";\n        break;\n      case \"lax\":\n        str += \"; SameSite=Lax\";\n        break;\n      case \"none\":\n        str += \"; SameSite=None\";\n        break;\n      default:\n        throw new TypeError(`option sameSite is invalid: ${options.sameSite}`);\n    }\n  }\n\n  return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n */\nfunction decode(str: string): string {\n  if (str.indexOf(\"%\") === -1) return str;\n\n  try {\n    return decodeURIComponent(str);\n  } catch (e) {\n    return str;\n  }\n}\n\n/**\n * Determine if value is a Date.\n */\nfunction isDate(val: any): val is Date {\n  return __toString.call(val) === \"[object Date]\";\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n  var key = null;\n  void 0 !== maybeKey && (key = \"\" + maybeKey);\n  void 0 !== config.key && (key = \"\" + config.key);\n  if (\"key\" in config) {\n    maybeKey = {};\n    for (var propName in config)\n      \"key\" !== propName && (maybeKey[propName] = config[propName]);\n  } else maybeKey = config;\n  config = maybeKey.ref;\n  return {\n    $$typeof: REACT_ELEMENT_TYPE,\n    type: type,\n    key: key,\n    ref: void 0 !== config ? config : null,\n    props: maybeKey\n  };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n  REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n  REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n  REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n  REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n  REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n  REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n  REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n  REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n  if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n  maybeIterable =\n    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n    maybeIterable[\"@@iterator\"];\n  return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n    isMounted: function () {\n      return !1;\n    },\n    enqueueForceUpdate: function () {},\n    enqueueReplaceState: function () {},\n    enqueueSetState: function () {}\n  },\n  assign = Object.assign,\n  emptyObject = {};\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n  if (\n    \"object\" !== typeof partialState &&\n    \"function\" !== typeof partialState &&\n    null != partialState\n  )\n    throw Error(\n      \"takes an object of state variables to update or a function which returns an object of state variables.\"\n    );\n  this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n  ReactSharedInternals = { H: null, A: null, T: null, S: null },\n  hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, self, source, owner, props) {\n  self = props.ref;\n  return {\n    $$typeof: REACT_ELEMENT_TYPE,\n    type: type,\n    key: key,\n    ref: void 0 !== self ? self : null,\n    props: props\n  };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  return ReactElement(\n    oldElement.type,\n    newKey,\n    void 0,\n    void 0,\n    void 0,\n    oldElement.props\n  );\n}\nfunction isValidElement(object) {\n  return (\n    \"object\" === typeof object &&\n    null !== object &&\n    object.$$typeof === REACT_ELEMENT_TYPE\n  );\n}\nfunction escape(key) {\n  var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n  return (\n    \"$\" +\n    key.replace(/[=:]/g, function (match) {\n      return escaperLookup[match];\n    })\n  );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n  return \"object\" === typeof element && null !== element && null != element.key\n    ? escape(\"\" + element.key)\n    : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n  switch (thenable.status) {\n    case \"fulfilled\":\n      return thenable.value;\n    case \"rejected\":\n      throw thenable.reason;\n    default:\n      switch (\n        (\"string\" === typeof thenable.status\n          ? thenable.then(noop$1, noop$1)\n          : ((thenable.status = \"pending\"),\n            thenable.then(\n              function (fulfilledValue) {\n                \"pending\" === thenable.status &&\n                  ((thenable.status = \"fulfilled\"),\n                  (thenable.value = fulfilledValue));\n              },\n              function (error) {\n                \"pending\" === thenable.status &&\n                  ((thenable.status = \"rejected\"), (thenable.reason = error));\n              }\n            )),\n        thenable.status)\n      ) {\n        case \"fulfilled\":\n          return thenable.value;\n        case \"rejected\":\n          throw thenable.reason;\n      }\n  }\n  throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n  var type = typeof children;\n  if (\"undefined\" === type || \"boolean\" === type) children = null;\n  var invokeCallback = !1;\n  if (null === children) invokeCallback = !0;\n  else\n    switch (type) {\n      case \"bigint\":\n      case \"string\":\n      case \"number\":\n        invokeCallback = !0;\n        break;\n      case \"object\":\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = !0;\n            break;\n          case REACT_LAZY_TYPE:\n            return (\n              (invokeCallback = children._init),\n              mapIntoArray(\n                invokeCallback(children._payload),\n                array,\n                escapedPrefix,\n                nameSoFar,\n                callback\n              )\n            );\n        }\n    }\n  if (invokeCallback)\n    return (\n      (callback = callback(children)),\n      (invokeCallback =\n        \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n      isArrayImpl(callback)\n        ? ((escapedPrefix = \"\"),\n          null != invokeCallback &&\n            (escapedPrefix =\n              invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n          mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n            return c;\n          }))\n        : null != callback &&\n          (isValidElement(callback) &&\n            (callback = cloneAndReplaceKey(\n              callback,\n              escapedPrefix +\n                (null == callback.key ||\n                (children && children.key === callback.key)\n                  ? \"\"\n                  : (\"\" + callback.key).replace(\n                      userProvidedKeyEscapeRegex,\n                      \"$&/\"\n                    ) + \"/\") +\n                invokeCallback\n            )),\n          array.push(callback)),\n      1\n    );\n  invokeCallback = 0;\n  var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n  if (isArrayImpl(children))\n    for (var i = 0; i < children.length; i++)\n      (nameSoFar = children[i]),\n        (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n        (invokeCallback += mapIntoArray(\n          nameSoFar,\n          array,\n          escapedPrefix,\n          type,\n          callback\n        ));\n  else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n    for (\n      children = i.call(children), i = 0;\n      !(nameSoFar = children.next()).done;\n\n    )\n      (nameSoFar = nameSoFar.value),\n        (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n        (invokeCallback += mapIntoArray(\n          nameSoFar,\n          array,\n          escapedPrefix,\n          type,\n          callback\n        ));\n  else if (\"object\" === type) {\n    if (\"function\" === typeof children.then)\n      return mapIntoArray(\n        resolveThenable(children),\n        array,\n        escapedPrefix,\n        nameSoFar,\n        callback\n      );\n    array = String(children);\n    throw Error(\n      \"Objects are not valid as a React child (found: \" +\n        (\"[object Object]\" === array\n          ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n          : array) +\n        \"). If you meant to render a collection of children, use an array instead.\"\n    );\n  }\n  return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n  if (null == children) return children;\n  var result = [],\n    count = 0;\n  mapIntoArray(children, result, \"\", \"\", function (child) {\n    return func.call(context, child, count++);\n  });\n  return result;\n}\nfunction lazyInitializer(payload) {\n  if (-1 === payload._status) {\n    var ctor = payload._result;\n    ctor = ctor();\n    ctor.then(\n      function (moduleObject) {\n        if (0 === payload._status || -1 === payload._status)\n          (payload._status = 1), (payload._result = moduleObject);\n      },\n      function (error) {\n        if (0 === payload._status || -1 === payload._status)\n          (payload._status = 2), (payload._result = error);\n      }\n    );\n    -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n  }\n  if (1 === payload._status) return payload._result.default;\n  throw payload._result;\n}\nvar reportGlobalError =\n  \"function\" === typeof reportError\n    ? reportError\n    : function (error) {\n        if (\n          \"object\" === typeof window &&\n          \"function\" === typeof window.ErrorEvent\n        ) {\n          var event = new window.ErrorEvent(\"error\", {\n            bubbles: !0,\n            cancelable: !0,\n            message:\n              \"object\" === typeof error &&\n              null !== error &&\n              \"string\" === typeof error.message\n                ? String(error.message)\n                : String(error),\n            error: error\n          });\n          if (!window.dispatchEvent(event)) return;\n        } else if (\n          \"object\" === typeof process &&\n          \"function\" === typeof process.emit\n        ) {\n          process.emit(\"uncaughtException\", error);\n          return;\n        }\n        console.error(error);\n      };\nfunction noop() {}\nexports.Children = {\n  map: mapChildren,\n  forEach: function (children, forEachFunc, forEachContext) {\n    mapChildren(\n      children,\n      function () {\n        forEachFunc.apply(this, arguments);\n      },\n      forEachContext\n    );\n  },\n  count: function (children) {\n    var n = 0;\n    mapChildren(children, function () {\n      n++;\n    });\n    return n;\n  },\n  toArray: function (children) {\n    return (\n      mapChildren(children, function (child) {\n        return child;\n      }) || []\n    );\n  },\n  only: function (children) {\n    if (!isValidElement(children))\n      throw Error(\n        \"React.Children.only expected to receive a single React element child.\"\n      );\n    return children;\n  }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n  ReactSharedInternals;\nexports.act = function () {\n  throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.cache = function (fn) {\n  return function () {\n    return fn.apply(null, arguments);\n  };\n};\nexports.cloneElement = function (element, config, children) {\n  if (null === element || void 0 === element)\n    throw Error(\n      \"The argument must be a React element, but you passed \" + element + \".\"\n    );\n  var props = assign({}, element.props),\n    key = element.key,\n    owner = void 0;\n  if (null != config)\n    for (propName in (void 0 !== config.ref && (owner = void 0),\n    void 0 !== config.key && (key = \"\" + config.key),\n    config))\n      !hasOwnProperty.call(config, propName) ||\n        \"key\" === propName ||\n        \"__self\" === propName ||\n        \"__source\" === propName ||\n        (\"ref\" === propName && void 0 === config.ref) ||\n        (props[propName] = config[propName]);\n  var propName = arguments.length - 2;\n  if (1 === propName) props.children = children;\n  else if (1 < propName) {\n    for (var childArray = Array(propName), i = 0; i < propName; i++)\n      childArray[i] = arguments[i + 2];\n    props.children = childArray;\n  }\n  return ReactElement(element.type, key, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n  defaultValue = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    _threadCount: 0,\n    Provider: null,\n    Consumer: null\n  };\n  defaultValue.Provider = defaultValue;\n  defaultValue.Consumer = {\n    $$typeof: REACT_CONSUMER_TYPE,\n    _context: defaultValue\n  };\n  return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n  var propName,\n    props = {},\n    key = null;\n  if (null != config)\n    for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n      hasOwnProperty.call(config, propName) &&\n        \"key\" !== propName &&\n        \"__self\" !== propName &&\n        \"__source\" !== propName &&\n        (props[propName] = config[propName]);\n  var childrenLength = arguments.length - 2;\n  if (1 === childrenLength) props.children = children;\n  else if (1 < childrenLength) {\n    for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n      childArray[i] = arguments[i + 2];\n    props.children = childArray;\n  }\n  if (type && type.defaultProps)\n    for (propName in ((childrenLength = type.defaultProps), childrenLength))\n      void 0 === props[propName] &&\n        (props[propName] = childrenLength[propName]);\n  return ReactElement(type, key, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n  return { current: null };\n};\nexports.forwardRef = function (render) {\n  return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n  return {\n    $$typeof: REACT_LAZY_TYPE,\n    _payload: { _status: -1, _result: ctor },\n    _init: lazyInitializer\n  };\n};\nexports.memo = function (type, compare) {\n  return {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: void 0 === compare ? null : compare\n  };\n};\nexports.startTransition = function (scope) {\n  var prevTransition = ReactSharedInternals.T,\n    currentTransition = {};\n  ReactSharedInternals.T = currentTransition;\n  try {\n    var returnValue = scope(),\n      onStartTransitionFinish = ReactSharedInternals.S;\n    null !== onStartTransitionFinish &&\n      onStartTransitionFinish(currentTransition, returnValue);\n    \"object\" === typeof returnValue &&\n      null !== returnValue &&\n      \"function\" === typeof returnValue.then &&\n      returnValue.then(noop, reportGlobalError);\n  } catch (error) {\n    reportGlobalError(error);\n  } finally {\n    ReactSharedInternals.T = prevTransition;\n  }\n};\nexports.unstable_useCacheRefresh = function () {\n  return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n  return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n  return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n  return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n  return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n  return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n  return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n  return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n  return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n  return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n  return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n  return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = function (passthrough, reducer) {\n  return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n};\nexports.useReducer = function (reducer, initialArg, init) {\n  return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n  return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n  return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n  subscribe,\n  getSnapshot,\n  getServerSnapshot\n) {\n  return ReactSharedInternals.H.useSyncExternalStore(\n    subscribe,\n    getSnapshot,\n    getServerSnapshot\n  );\n};\nexports.useTransition = function () {\n  return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.0.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n  module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createWebStorage;\n\nvar _getStorage = _interopRequireDefault(require(\"./getStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createWebStorage(type) {\n  var storage = (0, _getStorage.default)(type);\n  return {\n    getItem: function getItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.getItem(key));\n      });\n    },\n    setItem: function setItem(key, item) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.setItem(key, item));\n      });\n    },\n    removeItem: function removeItem(key) {\n      return new Promise(function (resolve, reject) {\n        resolve(storage.removeItem(key));\n      });\n    }\n  };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getStorage;\n\nfunction _typeof(obj) { 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 noop() {}\n\nvar noopStorage = {\n  getItem: noop,\n  setItem: noop,\n  removeItem: noop\n};\n\nfunction hasStorage(storageType) {\n  if ((typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) !== 'object' || !(storageType in self)) {\n    return false;\n  }\n\n  try {\n    var storage = self[storageType];\n    var testKey = \"redux-persist \".concat(storageType, \" test\");\n    storage.setItem(testKey, 'test');\n    storage.getItem(testKey);\n    storage.removeItem(testKey);\n  } catch (e) {\n    if (process.env.NODE_ENV !== 'production') console.warn(\"redux-persist \".concat(storageType, \" test failed, persistence will be disabled.\"));\n    return false;\n  }\n\n  return true;\n}\n\nfunction getStorage(type) {\n  var storageType = \"\".concat(type, \"Storage\");\n  if (hasStorage(storageType)) return self[storageType];else {\n    if (process.env.NODE_ENV !== 'production') {\n      console.error(\"redux-persist failed to create sync storage. falling back to noop storage.\");\n    }\n\n    return noopStorage;\n  }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nfunction push(heap, node) {\n  var index = heap.length;\n  heap.push(node);\n  a: for (; 0 < index; ) {\n    var parentIndex = (index - 1) >>> 1,\n      parent = heap[parentIndex];\n    if (0 < compare(parent, node))\n      (heap[parentIndex] = node), (heap[index] = parent), (index = parentIndex);\n    else break a;\n  }\n}\nfunction peek(heap) {\n  return 0 === heap.length ? null : heap[0];\n}\nfunction pop(heap) {\n  if (0 === heap.length) return null;\n  var first = heap[0],\n    last = heap.pop();\n  if (last !== first) {\n    heap[0] = last;\n    a: for (\n      var index = 0, length = heap.length, halfLength = length >>> 1;\n      index < halfLength;\n\n    ) {\n      var leftIndex = 2 * (index + 1) - 1,\n        left = heap[leftIndex],\n        rightIndex = leftIndex + 1,\n        right = heap[rightIndex];\n      if (0 > compare(left, last))\n        rightIndex < length && 0 > compare(right, left)\n          ? ((heap[index] = right),\n            (heap[rightIndex] = last),\n            (index = rightIndex))\n          : ((heap[index] = left),\n            (heap[leftIndex] = last),\n            (index = leftIndex));\n      else if (rightIndex < length && 0 > compare(right, last))\n        (heap[index] = right), (heap[rightIndex] = last), (index = rightIndex);\n      else break a;\n    }\n  }\n  return first;\n}\nfunction compare(a, b) {\n  var diff = a.sortIndex - b.sortIndex;\n  return 0 !== diff ? diff : a.id - b.id;\n}\nexports.unstable_now = void 0;\nif (\"object\" === typeof performance && \"function\" === typeof performance.now) {\n  var localPerformance = performance;\n  exports.unstable_now = function () {\n    return localPerformance.now();\n  };\n} else {\n  var localDate = Date,\n    initialTime = localDate.now();\n  exports.unstable_now = function () {\n    return localDate.now() - initialTime;\n  };\n}\nvar taskQueue = [],\n  timerQueue = [],\n  taskIdCounter = 1,\n  currentTask = null,\n  currentPriorityLevel = 3,\n  isPerformingWork = !1,\n  isHostCallbackScheduled = !1,\n  isHostTimeoutScheduled = !1,\n  localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n  localClearTimeout = \"function\" === typeof clearTimeout ? clearTimeout : null,\n  localSetImmediate = \"undefined\" !== typeof setImmediate ? setImmediate : null;\nfunction advanceTimers(currentTime) {\n  for (var timer = peek(timerQueue); null !== timer; ) {\n    if (null === timer.callback) pop(timerQueue);\n    else if (timer.startTime <= currentTime)\n      pop(timerQueue),\n        (timer.sortIndex = timer.expirationTime),\n        push(taskQueue, timer);\n    else break;\n    timer = peek(timerQueue);\n  }\n}\nfunction handleTimeout(currentTime) {\n  isHostTimeoutScheduled = !1;\n  advanceTimers(currentTime);\n  if (!isHostCallbackScheduled)\n    if (null !== peek(taskQueue))\n      (isHostCallbackScheduled = !0), requestHostCallback();\n    else {\n      var firstTimer = peek(timerQueue);\n      null !== firstTimer &&\n        requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n    }\n}\nvar isMessageLoopRunning = !1,\n  taskTimeoutID = -1,\n  frameInterval = 5,\n  startTime = -1;\nfunction shouldYieldToHost() {\n  return exports.unstable_now() - startTime < frameInterval ? !1 : !0;\n}\nfunction performWorkUntilDeadline() {\n  if (isMessageLoopRunning) {\n    var currentTime = exports.unstable_now();\n    startTime = currentTime;\n    var hasMoreWork = !0;\n    try {\n      a: {\n        isHostCallbackScheduled = !1;\n        isHostTimeoutScheduled &&\n          ((isHostTimeoutScheduled = !1),\n          localClearTimeout(taskTimeoutID),\n          (taskTimeoutID = -1));\n        isPerformingWork = !0;\n        var previousPriorityLevel = currentPriorityLevel;\n        try {\n          b: {\n            advanceTimers(currentTime);\n            for (\n              currentTask = peek(taskQueue);\n              null !== currentTask &&\n              !(\n                currentTask.expirationTime > currentTime && shouldYieldToHost()\n              );\n\n            ) {\n              var callback = currentTask.callback;\n              if (\"function\" === typeof callback) {\n                currentTask.callback = null;\n                currentPriorityLevel = currentTask.priorityLevel;\n                var continuationCallback = callback(\n                  currentTask.expirationTime <= currentTime\n                );\n                currentTime = exports.unstable_now();\n                if (\"function\" === typeof continuationCallback) {\n                  currentTask.callback = continuationCallback;\n                  advanceTimers(currentTime);\n                  hasMoreWork = !0;\n                  break b;\n                }\n                currentTask === peek(taskQueue) && pop(taskQueue);\n                advanceTimers(currentTime);\n              } else pop(taskQueue);\n              currentTask = peek(taskQueue);\n            }\n            if (null !== currentTask) hasMoreWork = !0;\n            else {\n              var firstTimer = peek(timerQueue);\n              null !== firstTimer &&\n                requestHostTimeout(\n                  handleTimeout,\n                  firstTimer.startTime - currentTime\n                );\n              hasMoreWork = !1;\n            }\n          }\n          break a;\n        } finally {\n          (currentTask = null),\n            (currentPriorityLevel = previousPriorityLevel),\n            (isPerformingWork = !1);\n        }\n        hasMoreWork = void 0;\n      }\n    } finally {\n      hasMoreWork\n        ? schedulePerformWorkUntilDeadline()\n        : (isMessageLoopRunning = !1);\n    }\n  }\n}\nvar schedulePerformWorkUntilDeadline;\nif (\"function\" === typeof localSetImmediate)\n  schedulePerformWorkUntilDeadline = function () {\n    localSetImmediate(performWorkUntilDeadline);\n  };\nelse if (\"undefined\" !== typeof MessageChannel) {\n  var channel = new MessageChannel(),\n    port = channel.port2;\n  channel.port1.onmessage = performWorkUntilDeadline;\n  schedulePerformWorkUntilDeadline = function () {\n    port.postMessage(null);\n  };\n} else\n  schedulePerformWorkUntilDeadline = function () {\n    localSetTimeout(performWorkUntilDeadline, 0);\n  };\nfunction requestHostCallback() {\n  isMessageLoopRunning ||\n    ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n}\nfunction requestHostTimeout(callback, ms) {\n  taskTimeoutID = localSetTimeout(function () {\n    callback(exports.unstable_now());\n  }, ms);\n}\nexports.unstable_IdlePriority = 5;\nexports.unstable_ImmediatePriority = 1;\nexports.unstable_LowPriority = 4;\nexports.unstable_NormalPriority = 3;\nexports.unstable_Profiling = null;\nexports.unstable_UserBlockingPriority = 2;\nexports.unstable_cancelCallback = function (task) {\n  task.callback = null;\n};\nexports.unstable_continueExecution = function () {\n  isHostCallbackScheduled ||\n    isPerformingWork ||\n    ((isHostCallbackScheduled = !0), requestHostCallback());\n};\nexports.unstable_forceFrameRate = function (fps) {\n  0 > fps || 125 < fps\n    ? console.error(\n        \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n      )\n    : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n};\nexports.unstable_getCurrentPriorityLevel = function () {\n  return currentPriorityLevel;\n};\nexports.unstable_getFirstCallbackNode = function () {\n  return peek(taskQueue);\n};\nexports.unstable_next = function (eventHandler) {\n  switch (currentPriorityLevel) {\n    case 1:\n    case 2:\n    case 3:\n      var priorityLevel = 3;\n      break;\n    default:\n      priorityLevel = currentPriorityLevel;\n  }\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n};\nexports.unstable_pauseExecution = function () {};\nexports.unstable_requestPaint = function () {};\nexports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n  switch (priorityLevel) {\n    case 1:\n    case 2:\n    case 3:\n    case 4:\n    case 5:\n      break;\n    default:\n      priorityLevel = 3;\n  }\n  var previousPriorityLevel = currentPriorityLevel;\n  currentPriorityLevel = priorityLevel;\n  try {\n    return eventHandler();\n  } finally {\n    currentPriorityLevel = previousPriorityLevel;\n  }\n};\nexports.unstable_scheduleCallback = function (\n  priorityLevel,\n  callback,\n  options\n) {\n  var currentTime = exports.unstable_now();\n  \"object\" === typeof options && null !== options\n    ? ((options = options.delay),\n      (options =\n        \"number\" === typeof options && 0 < options\n          ? currentTime + options\n          : currentTime))\n    : (options = currentTime);\n  switch (priorityLevel) {\n    case 1:\n      var timeout = -1;\n      break;\n    case 2:\n      timeout = 250;\n      break;\n    case 5:\n      timeout = 1073741823;\n      break;\n    case 4:\n      timeout = 1e4;\n      break;\n    default:\n      timeout = 5e3;\n  }\n  timeout = options + timeout;\n  priorityLevel = {\n    id: taskIdCounter++,\n    callback: callback,\n    priorityLevel: priorityLevel,\n    startTime: options,\n    expirationTime: timeout,\n    sortIndex: -1\n  };\n  options > currentTime\n    ? ((priorityLevel.sortIndex = options),\n      push(timerQueue, priorityLevel),\n      null === peek(taskQueue) &&\n        priorityLevel === peek(timerQueue) &&\n        (isHostTimeoutScheduled\n          ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n          : (isHostTimeoutScheduled = !0),\n        requestHostTimeout(handleTimeout, options - currentTime)))\n    : ((priorityLevel.sortIndex = timeout),\n      push(taskQueue, priorityLevel),\n      isHostCallbackScheduled ||\n        isPerformingWork ||\n        ((isHostCallbackScheduled = !0), requestHostCallback()));\n  return priorityLevel;\n};\nexports.unstable_shouldYield = shouldYieldToHost;\nexports.unstable_wrapCallback = function (callback) {\n  var parentPriorityLevel = currentPriorityLevel;\n  return function () {\n    var previousPriorityLevel = currentPriorityLevel;\n    currentPriorityLevel = parentPriorityLevel;\n    try {\n      return callback.apply(this, arguments);\n    } finally {\n      currentPriorityLevel = previousPriorityLevel;\n    }\n  };\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/scheduler.production.js');\n} else {\n  module.exports = require('./cjs/scheduler.development.js');\n}\n","var camel2hyphen = function (str) {\n  return str\n          .replace(/[A-Z]/g, function (match) {\n            return '-' + match.toLowerCase();\n          })\n          .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar React = require(\"react\");\nfunction is(x, y) {\n  return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n  useSyncExternalStore = React.useSyncExternalStore,\n  useRef = React.useRef,\n  useEffect = React.useEffect,\n  useMemo = React.useMemo,\n  useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n  subscribe,\n  getSnapshot,\n  getServerSnapshot,\n  selector,\n  isEqual\n) {\n  var instRef = useRef(null);\n  if (null === instRef.current) {\n    var inst = { hasValue: !1, value: null };\n    instRef.current = inst;\n  } else inst = instRef.current;\n  instRef = useMemo(\n    function () {\n      function memoizedSelector(nextSnapshot) {\n        if (!hasMemo) {\n          hasMemo = !0;\n          memoizedSnapshot = nextSnapshot;\n          nextSnapshot = selector(nextSnapshot);\n          if (void 0 !== isEqual && inst.hasValue) {\n            var currentSelection = inst.value;\n            if (isEqual(currentSelection, nextSnapshot))\n              return (memoizedSelection = currentSelection);\n          }\n          return (memoizedSelection = nextSnapshot);\n        }\n        currentSelection = memoizedSelection;\n        if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n        var nextSelection = selector(nextSnapshot);\n        if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n          return (memoizedSnapshot = nextSnapshot), currentSelection;\n        memoizedSnapshot = nextSnapshot;\n        return (memoizedSelection = nextSelection);\n      }\n      var hasMemo = !1,\n        memoizedSnapshot,\n        memoizedSelection,\n        maybeGetServerSnapshot =\n          void 0 === getServerSnapshot ? null : getServerSnapshot;\n      return [\n        function () {\n          return memoizedSelector(getSnapshot());\n        },\n        null === maybeGetServerSnapshot\n          ? void 0\n          : function () {\n              return memoizedSelector(maybeGetServerSnapshot());\n            }\n      ];\n    },\n    [getSnapshot, getServerSnapshot, selector, isEqual]\n  );\n  var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n  useEffect(\n    function () {\n      inst.hasValue = !0;\n      inst.value = value;\n    },\n    [value]\n  );\n  useDebugValue(value);\n  return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/use-sync-external-store-with-selector.production.js');\n} else {\n  module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","/**\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","function _assertClassBrand(e, t, n) {\n  if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n  throw new TypeError(\"Private element is not present on this object\");\n}\nmodule.exports = _assertClassBrand, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _checkPrivateRedeclaration(e, t) {\n  if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nmodule.exports = _checkPrivateRedeclaration, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateFieldGet2(s, a) {\n  return s.get(assertClassBrand(s, a));\n}\nmodule.exports = _classPrivateFieldGet2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var checkPrivateRedeclaration = require(\"./checkPrivateRedeclaration.js\");\nfunction _classPrivateFieldInitSpec(e, t, a) {\n  checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nmodule.exports = _classPrivateFieldInitSpec, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateFieldSet2(s, a, r) {\n  return s.set(assertClassBrand(s, a), r), r;\n}\nmodule.exports = _classPrivateFieldSet2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var assertClassBrand = require(\"./assertClassBrand.js\");\nfunction _classPrivateGetter(s, r, a) {\n  return a(assertClassBrand(s, r));\n}\nmodule.exports = _classPrivateGetter, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var checkPrivateRedeclaration = require(\"./checkPrivateRedeclaration.js\");\nfunction _classPrivateMethodInitSpec(e, a) {\n  checkPrivateRedeclaration(e, a), a.add(e);\n}\nmodule.exports = _classPrivateMethodInitSpec, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction 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}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return module.exports = _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  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\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\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) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\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","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"b51d605a\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclient\"] = self[\"webpackChunkclient\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var s = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","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}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction 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}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nexport { _objectSpread2 as default };","/**\n * react-router v7.1.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\n\n// lib/router/history.ts\nvar Action = /* @__PURE__ */ ((Action2) => {\n  Action2[\"Pop\"] = \"POP\";\n  Action2[\"Push\"] = \"PUSH\";\n  Action2[\"Replace\"] = \"REPLACE\";\n  return Action2;\n})(Action || {});\nvar PopStateEventType = \"popstate\";\nfunction createMemoryHistory(options = {}) {\n  let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n  let entries;\n  entries = initialEntries.map(\n    (entry, index2) => createMemoryLocation(\n      entry,\n      typeof entry === \"string\" ? null : entry.state,\n      index2 === 0 ? \"default\" : void 0\n    )\n  );\n  let index = clampIndex(\n    initialIndex == null ? entries.length - 1 : initialIndex\n  );\n  let action = \"POP\" /* Pop */;\n  let listener = null;\n  function clampIndex(n) {\n    return Math.min(Math.max(n, 0), entries.length - 1);\n  }\n  function getCurrentLocation() {\n    return entries[index];\n  }\n  function createMemoryLocation(to, state = null, key) {\n    let location = createLocation(\n      entries ? getCurrentLocation().pathname : \"/\",\n      to,\n      state,\n      key\n    );\n    warning(\n      location.pathname.charAt(0) === \"/\",\n      `relative pathnames are not supported in memory history: ${JSON.stringify(\n        to\n      )}`\n    );\n    return location;\n  }\n  function createHref2(to) {\n    return typeof to === \"string\" ? to : createPath(to);\n  }\n  let history = {\n    get index() {\n      return index;\n    },\n    get action() {\n      return action;\n    },\n    get location() {\n      return getCurrentLocation();\n    },\n    createHref: createHref2,\n    createURL(to) {\n      return new URL(createHref2(to), \"http://localhost\");\n    },\n    encodeLocation(to) {\n      let path = typeof to === \"string\" ? parsePath(to) : to;\n      return {\n        pathname: path.pathname || \"\",\n        search: path.search || \"\",\n        hash: path.hash || \"\"\n      };\n    },\n    push(to, state) {\n      action = \"PUSH\" /* Push */;\n      let nextLocation = createMemoryLocation(to, state);\n      index += 1;\n      entries.splice(index, entries.length, nextLocation);\n      if (v5Compat && listener) {\n        listener({ action, location: nextLocation, delta: 1 });\n      }\n    },\n    replace(to, state) {\n      action = \"REPLACE\" /* Replace */;\n      let nextLocation = createMemoryLocation(to, state);\n      entries[index] = nextLocation;\n      if (v5Compat && listener) {\n        listener({ action, location: nextLocation, delta: 0 });\n      }\n    },\n    go(delta) {\n      action = \"POP\" /* Pop */;\n      let nextIndex = clampIndex(index + delta);\n      let nextLocation = entries[nextIndex];\n      index = nextIndex;\n      if (listener) {\n        listener({ action, location: nextLocation, delta });\n      }\n    },\n    listen(fn) {\n      listener = fn;\n      return () => {\n        listener = null;\n      };\n    }\n  };\n  return history;\n}\nfunction createBrowserHistory(options = {}) {\n  function createBrowserLocation(window2, globalHistory) {\n    let { pathname, search, hash } = window2.location;\n    return createLocation(\n      \"\",\n      { pathname, search, hash },\n      // state defaults to `null` because `window.history.state` does\n      globalHistory.state && globalHistory.state.usr || null,\n      globalHistory.state && globalHistory.state.key || \"default\"\n    );\n  }\n  function createBrowserHref(window2, to) {\n    return typeof to === \"string\" ? to : createPath(to);\n  }\n  return getUrlBasedHistory(\n    createBrowserLocation,\n    createBrowserHref,\n    null,\n    options\n  );\n}\nfunction createHashHistory(options = {}) {\n  function createHashLocation(window2, globalHistory) {\n    let {\n      pathname = \"/\",\n      search = \"\",\n      hash = \"\"\n    } = parsePath(window2.location.hash.substring(1));\n    if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n      pathname = \"/\" + pathname;\n    }\n    return createLocation(\n      \"\",\n      { pathname, search, hash },\n      // state defaults to `null` because `window.history.state` does\n      globalHistory.state && globalHistory.state.usr || null,\n      globalHistory.state && globalHistory.state.key || \"default\"\n    );\n  }\n  function createHashHref(window2, to) {\n    let base = window2.document.querySelector(\"base\");\n    let href = \"\";\n    if (base && base.getAttribute(\"href\")) {\n      let url = window2.location.href;\n      let hashIndex = url.indexOf(\"#\");\n      href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n    }\n    return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n  }\n  function validateHashLocation(location, to) {\n    warning(\n      location.pathname.charAt(0) === \"/\",\n      `relative pathnames are not supported in hash history.push(${JSON.stringify(\n        to\n      )})`\n    );\n  }\n  return getUrlBasedHistory(\n    createHashLocation,\n    createHashHref,\n    validateHashLocation,\n    options\n  );\n}\nfunction invariant(value, message) {\n  if (value === false || value === null || typeof value === \"undefined\") {\n    throw new Error(message);\n  }\n}\nfunction warning(cond, message) {\n  if (!cond) {\n    if (typeof console !== \"undefined\") console.warn(message);\n    try {\n      throw new Error(message);\n    } catch (e) {\n    }\n  }\n}\nfunction createKey() {\n  return Math.random().toString(36).substring(2, 10);\n}\nfunction getHistoryState(location, index) {\n  return {\n    usr: location.state,\n    key: location.key,\n    idx: index\n  };\n}\nfunction createLocation(current, to, state = null, key) {\n  let location = {\n    pathname: typeof current === \"string\" ? current : current.pathname,\n    search: \"\",\n    hash: \"\",\n    ...typeof to === \"string\" ? parsePath(to) : to,\n    state,\n    // TODO: This could be cleaned up.  push/replace should probably just take\n    // full Locations now and avoid the need to run through this flow at all\n    // But that's a pretty big refactor to the current test suite so going to\n    // keep as is for the time being and just let any incoming keys take precedence\n    key: to && to.key || key || createKey()\n  };\n  return location;\n}\nfunction createPath({\n  pathname = \"/\",\n  search = \"\",\n  hash = \"\"\n}) {\n  if (search && search !== \"?\")\n    pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n  if (hash && hash !== \"#\")\n    pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n  return pathname;\n}\nfunction parsePath(path) {\n  let parsedPath = {};\n  if (path) {\n    let hashIndex = path.indexOf(\"#\");\n    if (hashIndex >= 0) {\n      parsedPath.hash = path.substring(hashIndex);\n      path = path.substring(0, hashIndex);\n    }\n    let searchIndex = path.indexOf(\"?\");\n    if (searchIndex >= 0) {\n      parsedPath.search = path.substring(searchIndex);\n      path = path.substring(0, searchIndex);\n    }\n    if (path) {\n      parsedPath.pathname = path;\n    }\n  }\n  return parsedPath;\n}\nfunction getUrlBasedHistory(getLocation, createHref2, validateLocation, options = {}) {\n  let { window: window2 = document.defaultView, v5Compat = false } = options;\n  let globalHistory = window2.history;\n  let action = \"POP\" /* Pop */;\n  let listener = null;\n  let index = getIndex();\n  if (index == null) {\n    index = 0;\n    globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n  }\n  function getIndex() {\n    let state = globalHistory.state || { idx: null };\n    return state.idx;\n  }\n  function handlePop() {\n    action = \"POP\" /* Pop */;\n    let nextIndex = getIndex();\n    let delta = nextIndex == null ? null : nextIndex - index;\n    index = nextIndex;\n    if (listener) {\n      listener({ action, location: history.location, delta });\n    }\n  }\n  function push(to, state) {\n    action = \"PUSH\" /* Push */;\n    let location = createLocation(history.location, to, state);\n    if (validateLocation) validateLocation(location, to);\n    index = getIndex() + 1;\n    let historyState = getHistoryState(location, index);\n    let url = history.createHref(location);\n    try {\n      globalHistory.pushState(historyState, \"\", url);\n    } catch (error) {\n      if (error instanceof DOMException && error.name === \"DataCloneError\") {\n        throw error;\n      }\n      window2.location.assign(url);\n    }\n    if (v5Compat && listener) {\n      listener({ action, location: history.location, delta: 1 });\n    }\n  }\n  function replace2(to, state) {\n    action = \"REPLACE\" /* Replace */;\n    let location = createLocation(history.location, to, state);\n    if (validateLocation) validateLocation(location, to);\n    index = getIndex();\n    let historyState = getHistoryState(location, index);\n    let url = history.createHref(location);\n    globalHistory.replaceState(historyState, \"\", url);\n    if (v5Compat && listener) {\n      listener({ action, location: history.location, delta: 0 });\n    }\n  }\n  function createURL(to) {\n    let base = window2.location.origin !== \"null\" ? window2.location.origin : window2.location.href;\n    let href = typeof to === \"string\" ? to : createPath(to);\n    href = href.replace(/ $/, \"%20\");\n    invariant(\n      base,\n      `No window.location.(origin|href) available to create URL for href: ${href}`\n    );\n    return new URL(href, base);\n  }\n  let history = {\n    get action() {\n      return action;\n    },\n    get location() {\n      return getLocation(window2, globalHistory);\n    },\n    listen(fn) {\n      if (listener) {\n        throw new Error(\"A history only accepts one active listener\");\n      }\n      window2.addEventListener(PopStateEventType, handlePop);\n      listener = fn;\n      return () => {\n        window2.removeEventListener(PopStateEventType, handlePop);\n        listener = null;\n      };\n    },\n    createHref(to) {\n      return createHref2(window2, to);\n    },\n    createURL,\n    encodeLocation(to) {\n      let url = createURL(to);\n      return {\n        pathname: url.pathname,\n        search: url.search,\n        hash: url.hash\n      };\n    },\n    push,\n    replace: replace2,\n    go(n) {\n      return globalHistory.go(n);\n    }\n  };\n  return history;\n}\n\n// lib/router/utils.ts\nvar immutableRouteKeys = /* @__PURE__ */ new Set([\n  \"lazy\",\n  \"caseSensitive\",\n  \"path\",\n  \"id\",\n  \"index\",\n  \"children\"\n]);\nfunction isIndexRoute(route) {\n  return route.index === true;\n}\nfunction convertRoutesToDataRoutes(routes, mapRouteProperties2, parentPath = [], manifest = {}) {\n  return routes.map((route, index) => {\n    let treePath = [...parentPath, String(index)];\n    let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n    invariant(\n      route.index !== true || !route.children,\n      `Cannot specify children on an index route`\n    );\n    invariant(\n      !manifest[id],\n      `Found a route id collision on id \"${id}\".  Route id's must be globally unique within Data Router usages`\n    );\n    if (isIndexRoute(route)) {\n      let indexRoute = {\n        ...route,\n        ...mapRouteProperties2(route),\n        id\n      };\n      manifest[id] = indexRoute;\n      return indexRoute;\n    } else {\n      let pathOrLayoutRoute = {\n        ...route,\n        ...mapRouteProperties2(route),\n        id,\n        children: void 0\n      };\n      manifest[id] = pathOrLayoutRoute;\n      if (route.children) {\n        pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n          route.children,\n          mapRouteProperties2,\n          treePath,\n          manifest\n        );\n      }\n      return pathOrLayoutRoute;\n    }\n  });\n}\nfunction matchRoutes(routes, locationArg, basename = \"/\") {\n  return matchRoutesImpl(routes, locationArg, basename, false);\n}\nfunction matchRoutesImpl(routes, locationArg, basename, allowPartial) {\n  let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n  let pathname = stripBasename(location.pathname || \"/\", basename);\n  if (pathname == null) {\n    return null;\n  }\n  let branches = flattenRoutes(routes);\n  rankRouteBranches(branches);\n  let matches = null;\n  for (let i = 0; matches == null && i < branches.length; ++i) {\n    let decoded = decodePath(pathname);\n    matches = matchRouteBranch(\n      branches[i],\n      decoded,\n      allowPartial\n    );\n  }\n  return matches;\n}\nfunction convertRouteMatchToUiMatch(match, loaderData) {\n  let { route, pathname, params } = match;\n  return {\n    id: route.id,\n    pathname,\n    params,\n    data: loaderData[route.id],\n    handle: route.handle\n  };\n}\nfunction flattenRoutes(routes, branches = [], parentsMeta = [], parentPath = \"\") {\n  let flattenRoute = (route, index, relativePath) => {\n    let meta = {\n      relativePath: relativePath === void 0 ? route.path || \"\" : relativePath,\n      caseSensitive: route.caseSensitive === true,\n      childrenIndex: index,\n      route\n    };\n    if (meta.relativePath.startsWith(\"/\")) {\n      invariant(\n        meta.relativePath.startsWith(parentPath),\n        `Absolute route path \"${meta.relativePath}\" nested under path \"${parentPath}\" is not valid. An absolute child route path must start with the combined path of all its parent routes.`\n      );\n      meta.relativePath = meta.relativePath.slice(parentPath.length);\n    }\n    let path = joinPaths([parentPath, meta.relativePath]);\n    let routesMeta = parentsMeta.concat(meta);\n    if (route.children && route.children.length > 0) {\n      invariant(\n        // Our types know better, but runtime JS may not!\n        // @ts-expect-error\n        route.index !== true,\n        `Index routes must not have child routes. Please remove all child routes from route path \"${path}\".`\n      );\n      flattenRoutes(route.children, branches, routesMeta, path);\n    }\n    if (route.path == null && !route.index) {\n      return;\n    }\n    branches.push({\n      path,\n      score: computeScore(path, route.index),\n      routesMeta\n    });\n  };\n  routes.forEach((route, index) => {\n    if (route.path === \"\" || !route.path?.includes(\"?\")) {\n      flattenRoute(route, index);\n    } else {\n      for (let exploded of explodeOptionalSegments(route.path)) {\n        flattenRoute(route, index, exploded);\n      }\n    }\n  });\n  return branches;\n}\nfunction explodeOptionalSegments(path) {\n  let segments = path.split(\"/\");\n  if (segments.length === 0) return [];\n  let [first, ...rest] = segments;\n  let isOptional = first.endsWith(\"?\");\n  let required = first.replace(/\\?$/, \"\");\n  if (rest.length === 0) {\n    return isOptional ? [required, \"\"] : [required];\n  }\n  let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n  let result = [];\n  result.push(\n    ...restExploded.map(\n      (subpath) => subpath === \"\" ? required : [required, subpath].join(\"/\")\n    )\n  );\n  if (isOptional) {\n    result.push(...restExploded);\n  }\n  return result.map(\n    (exploded) => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n  );\n}\nfunction rankRouteBranches(branches) {\n  branches.sort(\n    (a, b) => a.score !== b.score ? b.score - a.score : compareIndexes(\n      a.routesMeta.map((meta) => meta.childrenIndex),\n      b.routesMeta.map((meta) => meta.childrenIndex)\n    )\n  );\n}\nvar paramRe = /^:[\\w-]+$/;\nvar dynamicSegmentValue = 3;\nvar indexRouteValue = 2;\nvar emptySegmentValue = 1;\nvar staticSegmentValue = 10;\nvar splatPenalty = -2;\nvar isSplat = (s) => s === \"*\";\nfunction computeScore(path, index) {\n  let segments = path.split(\"/\");\n  let initialScore = segments.length;\n  if (segments.some(isSplat)) {\n    initialScore += splatPenalty;\n  }\n  if (index) {\n    initialScore += indexRouteValue;\n  }\n  return segments.filter((s) => !isSplat(s)).reduce(\n    (score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue),\n    initialScore\n  );\n}\nfunction compareIndexes(a, b) {\n  let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n  return siblings ? (\n    // If two routes are siblings, we should try to match the earlier sibling\n    // first. This allows people to have fine-grained control over the matching\n    // behavior by simply putting routes with identical paths in the order they\n    // want them tried.\n    a[a.length - 1] - b[b.length - 1]\n  ) : (\n    // Otherwise, it doesn't really make sense to rank non-siblings by index,\n    // so they sort equally.\n    0\n  );\n}\nfunction matchRouteBranch(branch, pathname, allowPartial = false) {\n  let { routesMeta } = branch;\n  let matchedParams = {};\n  let matchedPathname = \"/\";\n  let matches = [];\n  for (let i = 0; i < routesMeta.length; ++i) {\n    let meta = routesMeta[i];\n    let end = i === routesMeta.length - 1;\n    let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n    let match = matchPath(\n      { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n      remainingPathname\n    );\n    let route = meta.route;\n    if (!match && end && allowPartial && !routesMeta[routesMeta.length - 1].route.index) {\n      match = matchPath(\n        {\n          path: meta.relativePath,\n          caseSensitive: meta.caseSensitive,\n          end: false\n        },\n        remainingPathname\n      );\n    }\n    if (!match) {\n      return null;\n    }\n    Object.assign(matchedParams, match.params);\n    matches.push({\n      // TODO: Can this as be avoided?\n      params: matchedParams,\n      pathname: joinPaths([matchedPathname, match.pathname]),\n      pathnameBase: normalizePathname(\n        joinPaths([matchedPathname, match.pathnameBase])\n      ),\n      route\n    });\n    if (match.pathnameBase !== \"/\") {\n      matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n    }\n  }\n  return matches;\n}\nfunction generatePath(originalPath, params = {}) {\n  let path = originalPath;\n  if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n    warning(\n      false,\n      `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n    );\n    path = path.replace(/\\*$/, \"/*\");\n  }\n  const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n  const stringify = (p) => p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n  const segments = path.split(/\\/+/).map((segment, index, array) => {\n    const isLastSegment = index === array.length - 1;\n    if (isLastSegment && segment === \"*\") {\n      const star = \"*\";\n      return stringify(params[star]);\n    }\n    const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n    if (keyMatch) {\n      const [, key, optional] = keyMatch;\n      let param = params[key];\n      invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n      return stringify(param);\n    }\n    return segment.replace(/\\?$/g, \"\");\n  }).filter((segment) => !!segment);\n  return prefix + segments.join(\"/\");\n}\nfunction matchPath(pattern, pathname) {\n  if (typeof pattern === \"string\") {\n    pattern = { path: pattern, caseSensitive: false, end: true };\n  }\n  let [matcher, compiledParams] = compilePath(\n    pattern.path,\n    pattern.caseSensitive,\n    pattern.end\n  );\n  let match = pathname.match(matcher);\n  if (!match) return null;\n  let matchedPathname = match[0];\n  let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n  let captureGroups = match.slice(1);\n  let params = compiledParams.reduce(\n    (memo2, { paramName, isOptional }, index) => {\n      if (paramName === \"*\") {\n        let splatValue = captureGroups[index] || \"\";\n        pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n      }\n      const value = captureGroups[index];\n      if (isOptional && !value) {\n        memo2[paramName] = void 0;\n      } else {\n        memo2[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n      }\n      return memo2;\n    },\n    {}\n  );\n  return {\n    params,\n    pathname: matchedPathname,\n    pathnameBase,\n    pattern\n  };\n}\nfunction compilePath(path, caseSensitive = false, end = true) {\n  warning(\n    path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n    `Route path \"${path}\" will be treated as if it were \"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must always follow a \\`/\\` in the pattern. To get rid of this warning, please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n  );\n  let params = [];\n  let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\").replace(/^\\/*/, \"/\").replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\").replace(\n    /\\/:([\\w-]+)(\\?)?/g,\n    (_, paramName, isOptional) => {\n      params.push({ paramName, isOptional: isOptional != null });\n      return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n    }\n  );\n  if (path.endsWith(\"*\")) {\n    params.push({ paramName: \"*\" });\n    regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" : \"(?:\\\\/(.+)|\\\\/*)$\";\n  } else if (end) {\n    regexpSource += \"\\\\/*$\";\n  } else if (path !== \"\" && path !== \"/\") {\n    regexpSource += \"(?:(?=\\\\/|$))\";\n  } else {\n  }\n  let matcher = new RegExp(regexpSource, caseSensitive ? void 0 : \"i\");\n  return [matcher, params];\n}\nfunction decodePath(value) {\n  try {\n    return value.split(\"/\").map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\")).join(\"/\");\n  } catch (error) {\n    warning(\n      false,\n      `The URL path \"${value}\" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${error}).`\n    );\n    return value;\n  }\n}\nfunction stripBasename(pathname, basename) {\n  if (basename === \"/\") return pathname;\n  if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n    return null;\n  }\n  let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n  let nextChar = pathname.charAt(startIndex);\n  if (nextChar && nextChar !== \"/\") {\n    return null;\n  }\n  return pathname.slice(startIndex) || \"/\";\n}\nfunction resolvePath(to, fromPathname = \"/\") {\n  let {\n    pathname: toPathname,\n    search = \"\",\n    hash = \"\"\n  } = typeof to === \"string\" ? parsePath(to) : to;\n  let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n  return {\n    pathname,\n    search: normalizeSearch(search),\n    hash: normalizeHash(hash)\n  };\n}\nfunction resolvePathname(relativePath, fromPathname) {\n  let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n  let relativeSegments = relativePath.split(\"/\");\n  relativeSegments.forEach((segment) => {\n    if (segment === \"..\") {\n      if (segments.length > 1) segments.pop();\n    } else if (segment !== \".\") {\n      segments.push(segment);\n    }\n  });\n  return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\nfunction getInvalidPathError(char, field, dest, path) {\n  return `Cannot include a '${char}' character in a manually specified \\`to.${field}\\` field [${JSON.stringify(\n    path\n  )}].  Please separate it out to the \\`to.${dest}\\` field. Alternatively you may provide the full path as a string in <Link to=\"...\"> and the router will parse it for you.`;\n}\nfunction getPathContributingMatches(matches) {\n  return matches.filter(\n    (match, index) => index === 0 || match.route.path && match.route.path.length > 0\n  );\n}\nfunction getResolveToMatches(matches) {\n  let pathMatches = getPathContributingMatches(matches);\n  return pathMatches.map(\n    (match, idx) => idx === pathMatches.length - 1 ? match.pathname : match.pathnameBase\n  );\n}\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative = false) {\n  let to;\n  if (typeof toArg === \"string\") {\n    to = parsePath(toArg);\n  } else {\n    to = { ...toArg };\n    invariant(\n      !to.pathname || !to.pathname.includes(\"?\"),\n      getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n    );\n    invariant(\n      !to.pathname || !to.pathname.includes(\"#\"),\n      getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n    );\n    invariant(\n      !to.search || !to.search.includes(\"#\"),\n      getInvalidPathError(\"#\", \"search\", \"hash\", to)\n    );\n  }\n  let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n  let toPathname = isEmptyPath ? \"/\" : to.pathname;\n  let from;\n  if (toPathname == null) {\n    from = locationPathname;\n  } else {\n    let routePathnameIndex = routePathnames.length - 1;\n    if (!isPathRelative && toPathname.startsWith(\"..\")) {\n      let toSegments = toPathname.split(\"/\");\n      while (toSegments[0] === \"..\") {\n        toSegments.shift();\n        routePathnameIndex -= 1;\n      }\n      to.pathname = toSegments.join(\"/\");\n    }\n    from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n  }\n  let path = resolvePath(to, from);\n  let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n  let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n  if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n    path.pathname += \"/\";\n  }\n  return path;\n}\nvar joinPaths = (paths) => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\nvar normalizePathname = (pathname) => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\nvar normalizeSearch = (search) => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\nvar normalizeHash = (hash) => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\nvar DataWithResponseInit = class {\n  constructor(data2, init) {\n    this.type = \"DataWithResponseInit\";\n    this.data = data2;\n    this.init = init || null;\n  }\n};\nfunction data(data2, init) {\n  return new DataWithResponseInit(\n    data2,\n    typeof init === \"number\" ? { status: init } : init\n  );\n}\nvar redirect = (url, init = 302) => {\n  let responseInit = init;\n  if (typeof responseInit === \"number\") {\n    responseInit = { status: responseInit };\n  } else if (typeof responseInit.status === \"undefined\") {\n    responseInit.status = 302;\n  }\n  let headers = new Headers(responseInit.headers);\n  headers.set(\"Location\", url);\n  return new Response(null, { ...responseInit, headers });\n};\nvar redirectDocument = (url, init) => {\n  let response = redirect(url, init);\n  response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n  return response;\n};\nvar replace = (url, init) => {\n  let response = redirect(url, init);\n  response.headers.set(\"X-Remix-Replace\", \"true\");\n  return response;\n};\nvar ErrorResponseImpl = class {\n  constructor(status, statusText, data2, internal = false) {\n    this.status = status;\n    this.statusText = statusText || \"\";\n    this.internal = internal;\n    if (data2 instanceof Error) {\n      this.data = data2.toString();\n      this.error = data2;\n    } else {\n      this.data = data2;\n    }\n  }\n};\nfunction isRouteErrorResponse(error) {\n  return error != null && typeof error.status === \"number\" && typeof error.statusText === \"string\" && typeof error.internal === \"boolean\" && \"data\" in error;\n}\n\n// lib/router/router.ts\nvar validMutationMethodsArr = [\n  \"POST\",\n  \"PUT\",\n  \"PATCH\",\n  \"DELETE\"\n];\nvar validMutationMethods = new Set(\n  validMutationMethodsArr\n);\nvar validRequestMethodsArr = [\n  \"GET\",\n  ...validMutationMethodsArr\n];\nvar validRequestMethods = new Set(validRequestMethodsArr);\nvar redirectStatusCodes = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);\nvar redirectPreserveMethodStatusCodes = /* @__PURE__ */ new Set([307, 308]);\nvar IDLE_NAVIGATION = {\n  state: \"idle\",\n  location: void 0,\n  formMethod: void 0,\n  formAction: void 0,\n  formEncType: void 0,\n  formData: void 0,\n  json: void 0,\n  text: void 0\n};\nvar IDLE_FETCHER = {\n  state: \"idle\",\n  data: void 0,\n  formMethod: void 0,\n  formAction: void 0,\n  formEncType: void 0,\n  formData: void 0,\n  json: void 0,\n  text: void 0\n};\nvar IDLE_BLOCKER = {\n  state: \"unblocked\",\n  proceed: void 0,\n  reset: void 0,\n  location: void 0\n};\nvar ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar defaultMapRouteProperties = (route) => ({\n  hasErrorBoundary: Boolean(route.hasErrorBoundary)\n});\nvar TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\nvar ResetLoaderDataSymbol = Symbol(\"ResetLoaderData\");\nfunction createRouter(init) {\n  const routerWindow = init.window ? init.window : typeof window !== \"undefined\" ? window : void 0;\n  const isBrowser2 = typeof routerWindow !== \"undefined\" && typeof routerWindow.document !== \"undefined\" && typeof routerWindow.document.createElement !== \"undefined\";\n  invariant(\n    init.routes.length > 0,\n    \"You must provide a non-empty routes array to createRouter\"\n  );\n  let mapRouteProperties2 = init.mapRouteProperties || defaultMapRouteProperties;\n  let manifest = {};\n  let dataRoutes = convertRoutesToDataRoutes(\n    init.routes,\n    mapRouteProperties2,\n    void 0,\n    manifest\n  );\n  let inFlightDataRoutes;\n  let basename = init.basename || \"/\";\n  let dataStrategyImpl = init.dataStrategy || defaultDataStrategy;\n  let patchRoutesOnNavigationImpl = init.patchRoutesOnNavigation;\n  let future = {\n    ...init.future\n  };\n  let unlistenHistory = null;\n  let subscribers = /* @__PURE__ */ new Set();\n  let savedScrollPositions2 = null;\n  let getScrollRestorationKey2 = null;\n  let getScrollPosition = null;\n  let initialScrollRestored = init.hydrationData != null;\n  let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n  let initialErrors = null;\n  if (initialMatches == null && !patchRoutesOnNavigationImpl) {\n    let error = getInternalRouterError(404, {\n      pathname: init.history.location.pathname\n    });\n    let { matches, route } = getShortCircuitMatches(dataRoutes);\n    initialMatches = matches;\n    initialErrors = { [route.id]: error };\n  }\n  if (initialMatches && !init.hydrationData) {\n    let fogOfWar = checkFogOfWar(\n      initialMatches,\n      dataRoutes,\n      init.history.location.pathname\n    );\n    if (fogOfWar.active) {\n      initialMatches = null;\n    }\n  }\n  let initialized;\n  if (!initialMatches) {\n    initialized = false;\n    initialMatches = [];\n    let fogOfWar = checkFogOfWar(\n      null,\n      dataRoutes,\n      init.history.location.pathname\n    );\n    if (fogOfWar.active && fogOfWar.matches) {\n      initialMatches = fogOfWar.matches;\n    }\n  } else if (initialMatches.some((m) => m.route.lazy)) {\n    initialized = false;\n  } else if (!initialMatches.some((m) => m.route.loader)) {\n    initialized = true;\n  } else {\n    let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n    let errors = init.hydrationData ? init.hydrationData.errors : null;\n    if (errors) {\n      let idx = initialMatches.findIndex(\n        (m) => errors[m.route.id] !== void 0\n      );\n      initialized = initialMatches.slice(0, idx + 1).every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n    } else {\n      initialized = initialMatches.every(\n        (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n      );\n    }\n  }\n  let router;\n  let state = {\n    historyAction: init.history.action,\n    location: init.history.location,\n    matches: initialMatches,\n    initialized,\n    navigation: IDLE_NAVIGATION,\n    // Don't restore on initial updateState() if we were SSR'd\n    restoreScrollPosition: init.hydrationData != null ? false : null,\n    preventScrollReset: false,\n    revalidation: \"idle\",\n    loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n    actionData: init.hydrationData && init.hydrationData.actionData || null,\n    errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n    fetchers: /* @__PURE__ */ new Map(),\n    blockers: /* @__PURE__ */ new Map()\n  };\n  let pendingAction = \"POP\" /* Pop */;\n  let pendingPreventScrollReset = false;\n  let pendingNavigationController;\n  let pendingViewTransitionEnabled = false;\n  let appliedViewTransitions = /* @__PURE__ */ new Map();\n  let removePageHideEventListener = null;\n  let isUninterruptedRevalidation = false;\n  let isRevalidationRequired = false;\n  let cancelledFetcherLoads = /* @__PURE__ */ new Set();\n  let fetchControllers = /* @__PURE__ */ new Map();\n  let incrementingLoadId = 0;\n  let pendingNavigationLoadId = -1;\n  let fetchReloadIds = /* @__PURE__ */ new Map();\n  let fetchRedirectIds = /* @__PURE__ */ new Set();\n  let fetchLoadMatches = /* @__PURE__ */ new Map();\n  let activeFetchers = /* @__PURE__ */ new Map();\n  let fetchersQueuedForDeletion = /* @__PURE__ */ new Set();\n  let blockerFunctions = /* @__PURE__ */ new Map();\n  let unblockBlockerHistoryUpdate = void 0;\n  let pendingRevalidationDfd = null;\n  function initialize() {\n    unlistenHistory = init.history.listen(\n      ({ action: historyAction, location, delta }) => {\n        if (unblockBlockerHistoryUpdate) {\n          unblockBlockerHistoryUpdate();\n          unblockBlockerHistoryUpdate = void 0;\n          return;\n        }\n        warning(\n          blockerFunctions.size === 0 || delta != null,\n          \"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs.  This can also happen if you are using createHashRouter and the user manually changes the URL.\"\n        );\n        let blockerKey = shouldBlockNavigation({\n          currentLocation: state.location,\n          nextLocation: location,\n          historyAction\n        });\n        if (blockerKey && delta != null) {\n          let nextHistoryUpdatePromise = new Promise((resolve) => {\n            unblockBlockerHistoryUpdate = resolve;\n          });\n          init.history.go(delta * -1);\n          updateBlocker(blockerKey, {\n            state: \"blocked\",\n            location,\n            proceed() {\n              updateBlocker(blockerKey, {\n                state: \"proceeding\",\n                proceed: void 0,\n                reset: void 0,\n                location\n              });\n              nextHistoryUpdatePromise.then(() => init.history.go(delta));\n            },\n            reset() {\n              let blockers = new Map(state.blockers);\n              blockers.set(blockerKey, IDLE_BLOCKER);\n              updateState({ blockers });\n            }\n          });\n          return;\n        }\n        return startNavigation(historyAction, location);\n      }\n    );\n    if (isBrowser2) {\n      restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n      let _saveAppliedTransitions = () => persistAppliedTransitions(routerWindow, appliedViewTransitions);\n      routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n      removePageHideEventListener = () => routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n    }\n    if (!state.initialized) {\n      startNavigation(\"POP\" /* Pop */, state.location, {\n        initialHydration: true\n      });\n    }\n    return router;\n  }\n  function dispose() {\n    if (unlistenHistory) {\n      unlistenHistory();\n    }\n    if (removePageHideEventListener) {\n      removePageHideEventListener();\n    }\n    subscribers.clear();\n    pendingNavigationController && pendingNavigationController.abort();\n    state.fetchers.forEach((_, key) => deleteFetcher(key));\n    state.blockers.forEach((_, key) => deleteBlocker(key));\n  }\n  function subscribe(fn) {\n    subscribers.add(fn);\n    return () => subscribers.delete(fn);\n  }\n  function updateState(newState, opts = {}) {\n    state = {\n      ...state,\n      ...newState\n    };\n    let unmountedFetchers = [];\n    let mountedFetchers = [];\n    state.fetchers.forEach((fetcher, key) => {\n      if (fetcher.state === \"idle\") {\n        if (fetchersQueuedForDeletion.has(key)) {\n          unmountedFetchers.push(key);\n        } else {\n          mountedFetchers.push(key);\n        }\n      }\n    });\n    fetchersQueuedForDeletion.forEach((key) => {\n      if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n        unmountedFetchers.push(key);\n      }\n    });\n    [...subscribers].forEach(\n      (subscriber) => subscriber(state, {\n        deletedFetchers: unmountedFetchers,\n        viewTransitionOpts: opts.viewTransitionOpts,\n        flushSync: opts.flushSync === true\n      })\n    );\n    unmountedFetchers.forEach((key) => deleteFetcher(key));\n    mountedFetchers.forEach((key) => state.fetchers.delete(key));\n  }\n  function completeNavigation(location, newState, { flushSync } = {}) {\n    let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && location.state?._isRedirect !== true;\n    let actionData;\n    if (newState.actionData) {\n      if (Object.keys(newState.actionData).length > 0) {\n        actionData = newState.actionData;\n      } else {\n        actionData = null;\n      }\n    } else if (isActionReload) {\n      actionData = state.actionData;\n    } else {\n      actionData = null;\n    }\n    let loaderData = newState.loaderData ? mergeLoaderData(\n      state.loaderData,\n      newState.loaderData,\n      newState.matches || [],\n      newState.errors\n    ) : state.loaderData;\n    let blockers = state.blockers;\n    if (blockers.size > 0) {\n      blockers = new Map(blockers);\n      blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n    }\n    let preventScrollReset = pendingPreventScrollReset === true || state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && location.state?._isRedirect !== true;\n    if (inFlightDataRoutes) {\n      dataRoutes = inFlightDataRoutes;\n      inFlightDataRoutes = void 0;\n    }\n    if (isUninterruptedRevalidation) {\n    } else if (pendingAction === \"POP\" /* Pop */) {\n    } else if (pendingAction === \"PUSH\" /* Push */) {\n      init.history.push(location, location.state);\n    } else if (pendingAction === \"REPLACE\" /* Replace */) {\n      init.history.replace(location, location.state);\n    }\n    let viewTransitionOpts;\n    if (pendingAction === \"POP\" /* Pop */) {\n      let priorPaths = appliedViewTransitions.get(state.location.pathname);\n      if (priorPaths && priorPaths.has(location.pathname)) {\n        viewTransitionOpts = {\n          currentLocation: state.location,\n          nextLocation: location\n        };\n      } else if (appliedViewTransitions.has(location.pathname)) {\n        viewTransitionOpts = {\n          currentLocation: location,\n          nextLocation: state.location\n        };\n      }\n    } else if (pendingViewTransitionEnabled) {\n      let toPaths = appliedViewTransitions.get(state.location.pathname);\n      if (toPaths) {\n        toPaths.add(location.pathname);\n      } else {\n        toPaths = /* @__PURE__ */ new Set([location.pathname]);\n        appliedViewTransitions.set(state.location.pathname, toPaths);\n      }\n      viewTransitionOpts = {\n        currentLocation: state.location,\n        nextLocation: location\n      };\n    }\n    updateState(\n      {\n        ...newState,\n        // matches, errors, fetchers go through as-is\n        actionData,\n        loaderData,\n        historyAction: pendingAction,\n        location,\n        initialized: true,\n        navigation: IDLE_NAVIGATION,\n        revalidation: \"idle\",\n        restoreScrollPosition: getSavedScrollPosition(\n          location,\n          newState.matches || state.matches\n        ),\n        preventScrollReset,\n        blockers\n      },\n      {\n        viewTransitionOpts,\n        flushSync: flushSync === true\n      }\n    );\n    pendingAction = \"POP\" /* Pop */;\n    pendingPreventScrollReset = false;\n    pendingViewTransitionEnabled = false;\n    isUninterruptedRevalidation = false;\n    isRevalidationRequired = false;\n    pendingRevalidationDfd?.resolve();\n    pendingRevalidationDfd = null;\n  }\n  async function navigate(to, opts) {\n    if (typeof to === \"number\") {\n      init.history.go(to);\n      return;\n    }\n    let normalizedPath = normalizeTo(\n      state.location,\n      state.matches,\n      basename,\n      to,\n      opts?.fromRouteId,\n      opts?.relative\n    );\n    let { path, submission, error } = normalizeNavigateOptions(\n      false,\n      normalizedPath,\n      opts\n    );\n    let currentLocation = state.location;\n    let nextLocation = createLocation(state.location, path, opts && opts.state);\n    nextLocation = {\n      ...nextLocation,\n      ...init.history.encodeLocation(nextLocation)\n    };\n    let userReplace = opts && opts.replace != null ? opts.replace : void 0;\n    let historyAction = \"PUSH\" /* Push */;\n    if (userReplace === true) {\n      historyAction = \"REPLACE\" /* Replace */;\n    } else if (userReplace === false) {\n    } else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n      historyAction = \"REPLACE\" /* Replace */;\n    }\n    let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : void 0;\n    let flushSync = (opts && opts.flushSync) === true;\n    let blockerKey = shouldBlockNavigation({\n      currentLocation,\n      nextLocation,\n      historyAction\n    });\n    if (blockerKey) {\n      updateBlocker(blockerKey, {\n        state: \"blocked\",\n        location: nextLocation,\n        proceed() {\n          updateBlocker(blockerKey, {\n            state: \"proceeding\",\n            proceed: void 0,\n            reset: void 0,\n            location: nextLocation\n          });\n          navigate(to, opts);\n        },\n        reset() {\n          let blockers = new Map(state.blockers);\n          blockers.set(blockerKey, IDLE_BLOCKER);\n          updateState({ blockers });\n        }\n      });\n      return;\n    }\n    await startNavigation(historyAction, nextLocation, {\n      submission,\n      // Send through the formData serialization error if we have one so we can\n      // render at the right error boundary after we match routes\n      pendingError: error,\n      preventScrollReset,\n      replace: opts && opts.replace,\n      enableViewTransition: opts && opts.viewTransition,\n      flushSync\n    });\n  }\n  function revalidate() {\n    if (!pendingRevalidationDfd) {\n      pendingRevalidationDfd = createDeferred();\n    }\n    interruptActiveLoads();\n    updateState({ revalidation: \"loading\" });\n    let promise = pendingRevalidationDfd.promise;\n    if (state.navigation.state === \"submitting\") {\n      return promise;\n    }\n    if (state.navigation.state === \"idle\") {\n      startNavigation(state.historyAction, state.location, {\n        startUninterruptedRevalidation: true\n      });\n      return promise;\n    }\n    startNavigation(\n      pendingAction || state.historyAction,\n      state.navigation.location,\n      {\n        overrideNavigation: state.navigation,\n        // Proxy through any rending view transition\n        enableViewTransition: pendingViewTransitionEnabled === true\n      }\n    );\n    return promise;\n  }\n  async function startNavigation(historyAction, location, opts) {\n    pendingNavigationController && pendingNavigationController.abort();\n    pendingNavigationController = null;\n    pendingAction = historyAction;\n    isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true;\n    saveScrollPosition(state.location, state.matches);\n    pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n    pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let loadingNavigation = opts && opts.overrideNavigation;\n    let matches = matchRoutes(routesToUse, location, basename);\n    let flushSync = (opts && opts.flushSync) === true;\n    let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n    if (fogOfWar.active && fogOfWar.matches) {\n      matches = fogOfWar.matches;\n    }\n    if (!matches) {\n      let { error, notFoundMatches, route } = handleNavigational404(\n        location.pathname\n      );\n      completeNavigation(\n        location,\n        {\n          matches: notFoundMatches,\n          loaderData: {},\n          errors: {\n            [route.id]: error\n          }\n        },\n        { flushSync }\n      );\n      return;\n    }\n    if (state.initialized && !isRevalidationRequired && isHashChangeOnly(state.location, location) && !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))) {\n      completeNavigation(location, { matches }, { flushSync });\n      return;\n    }\n    pendingNavigationController = new AbortController();\n    let request = createClientSideRequest(\n      init.history,\n      location,\n      pendingNavigationController.signal,\n      opts && opts.submission\n    );\n    let pendingActionResult;\n    if (opts && opts.pendingError) {\n      pendingActionResult = [\n        findNearestBoundary(matches).route.id,\n        { type: \"error\" /* error */, error: opts.pendingError }\n      ];\n    } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n      let actionResult = await handleAction(\n        request,\n        location,\n        opts.submission,\n        matches,\n        fogOfWar.active,\n        { replace: opts.replace, flushSync }\n      );\n      if (actionResult.shortCircuited) {\n        return;\n      }\n      if (actionResult.pendingActionResult) {\n        let [routeId, result] = actionResult.pendingActionResult;\n        if (isErrorResult(result) && isRouteErrorResponse(result.error) && result.error.status === 404) {\n          pendingNavigationController = null;\n          completeNavigation(location, {\n            matches: actionResult.matches,\n            loaderData: {},\n            errors: {\n              [routeId]: result.error\n            }\n          });\n          return;\n        }\n      }\n      matches = actionResult.matches || matches;\n      pendingActionResult = actionResult.pendingActionResult;\n      loadingNavigation = getLoadingNavigation(location, opts.submission);\n      flushSync = false;\n      fogOfWar.active = false;\n      request = createClientSideRequest(\n        init.history,\n        request.url,\n        request.signal\n      );\n    }\n    let {\n      shortCircuited,\n      matches: updatedMatches,\n      loaderData,\n      errors\n    } = await handleLoaders(\n      request,\n      location,\n      matches,\n      fogOfWar.active,\n      loadingNavigation,\n      opts && opts.submission,\n      opts && opts.fetcherSubmission,\n      opts && opts.replace,\n      opts && opts.initialHydration === true,\n      flushSync,\n      pendingActionResult\n    );\n    if (shortCircuited) {\n      return;\n    }\n    pendingNavigationController = null;\n    completeNavigation(location, {\n      matches: updatedMatches || matches,\n      ...getActionDataForCommit(pendingActionResult),\n      loaderData,\n      errors\n    });\n  }\n  async function handleAction(request, location, submission, matches, isFogOfWar, opts = {}) {\n    interruptActiveLoads();\n    let navigation = getSubmittingNavigation(location, submission);\n    updateState({ navigation }, { flushSync: opts.flushSync === true });\n    if (isFogOfWar) {\n      let discoverResult = await discoverRoutes(\n        matches,\n        location.pathname,\n        request.signal\n      );\n      if (discoverResult.type === \"aborted\") {\n        return { shortCircuited: true };\n      } else if (discoverResult.type === \"error\") {\n        let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n        return {\n          matches: discoverResult.partialMatches,\n          pendingActionResult: [\n            boundaryId,\n            {\n              type: \"error\" /* error */,\n              error: discoverResult.error\n            }\n          ]\n        };\n      } else if (!discoverResult.matches) {\n        let { notFoundMatches, error, route } = handleNavigational404(\n          location.pathname\n        );\n        return {\n          matches: notFoundMatches,\n          pendingActionResult: [\n            route.id,\n            {\n              type: \"error\" /* error */,\n              error\n            }\n          ]\n        };\n      } else {\n        matches = discoverResult.matches;\n      }\n    }\n    let result;\n    let actionMatch = getTargetMatch(matches, location);\n    if (!actionMatch.route.action && !actionMatch.route.lazy) {\n      result = {\n        type: \"error\" /* error */,\n        error: getInternalRouterError(405, {\n          method: request.method,\n          pathname: location.pathname,\n          routeId: actionMatch.route.id\n        })\n      };\n    } else {\n      let results = await callDataStrategy(\n        \"action\",\n        state,\n        request,\n        [actionMatch],\n        matches,\n        null\n      );\n      result = results[actionMatch.route.id];\n      if (request.signal.aborted) {\n        return { shortCircuited: true };\n      }\n    }\n    if (isRedirectResult(result)) {\n      let replace2;\n      if (opts && opts.replace != null) {\n        replace2 = opts.replace;\n      } else {\n        let location2 = normalizeRedirectLocation(\n          result.response.headers.get(\"Location\"),\n          new URL(request.url),\n          basename\n        );\n        replace2 = location2 === state.location.pathname + state.location.search;\n      }\n      await startRedirectNavigation(request, result, true, {\n        submission,\n        replace: replace2\n      });\n      return { shortCircuited: true };\n    }\n    if (isErrorResult(result)) {\n      let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n      if ((opts && opts.replace) !== true) {\n        pendingAction = \"PUSH\" /* Push */;\n      }\n      return {\n        matches,\n        pendingActionResult: [boundaryMatch.route.id, result]\n      };\n    }\n    return {\n      matches,\n      pendingActionResult: [actionMatch.route.id, result]\n    };\n  }\n  async function handleLoaders(request, location, matches, isFogOfWar, overrideNavigation, submission, fetcherSubmission, replace2, initialHydration, flushSync, pendingActionResult) {\n    let loadingNavigation = overrideNavigation || getLoadingNavigation(location, submission);\n    let activeSubmission = submission || fetcherSubmission || getSubmissionFromNavigation(loadingNavigation);\n    let shouldUpdateNavigationState = !isUninterruptedRevalidation && !initialHydration;\n    if (isFogOfWar) {\n      if (shouldUpdateNavigationState) {\n        let actionData = getUpdatedActionData(pendingActionResult);\n        updateState(\n          {\n            navigation: loadingNavigation,\n            ...actionData !== void 0 ? { actionData } : {}\n          },\n          {\n            flushSync\n          }\n        );\n      }\n      let discoverResult = await discoverRoutes(\n        matches,\n        location.pathname,\n        request.signal\n      );\n      if (discoverResult.type === \"aborted\") {\n        return { shortCircuited: true };\n      } else if (discoverResult.type === \"error\") {\n        let boundaryId = findNearestBoundary(discoverResult.partialMatches).route.id;\n        return {\n          matches: discoverResult.partialMatches,\n          loaderData: {},\n          errors: {\n            [boundaryId]: discoverResult.error\n          }\n        };\n      } else if (!discoverResult.matches) {\n        let { error, notFoundMatches, route } = handleNavigational404(\n          location.pathname\n        );\n        return {\n          matches: notFoundMatches,\n          loaderData: {},\n          errors: {\n            [route.id]: error\n          }\n        };\n      } else {\n        matches = discoverResult.matches;\n      }\n    }\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n      init.history,\n      state,\n      matches,\n      activeSubmission,\n      location,\n      initialHydration === true,\n      isRevalidationRequired,\n      cancelledFetcherLoads,\n      fetchersQueuedForDeletion,\n      fetchLoadMatches,\n      fetchRedirectIds,\n      routesToUse,\n      basename,\n      pendingActionResult\n    );\n    pendingNavigationLoadId = ++incrementingLoadId;\n    if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n      let updatedFetchers2 = markFetchRedirectsDone();\n      completeNavigation(\n        location,\n        {\n          matches,\n          loaderData: {},\n          // Commit pending error if we're short circuiting\n          errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? { [pendingActionResult[0]]: pendingActionResult[1].error } : null,\n          ...getActionDataForCommit(pendingActionResult),\n          ...updatedFetchers2 ? { fetchers: new Map(state.fetchers) } : {}\n        },\n        { flushSync }\n      );\n      return { shortCircuited: true };\n    }\n    if (shouldUpdateNavigationState) {\n      let updates = {};\n      if (!isFogOfWar) {\n        updates.navigation = loadingNavigation;\n        let actionData = getUpdatedActionData(pendingActionResult);\n        if (actionData !== void 0) {\n          updates.actionData = actionData;\n        }\n      }\n      if (revalidatingFetchers.length > 0) {\n        updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n      }\n      updateState(updates, { flushSync });\n    }\n    revalidatingFetchers.forEach((rf) => {\n      abortFetcher(rf.key);\n      if (rf.controller) {\n        fetchControllers.set(rf.key, rf.controller);\n      }\n    });\n    let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n    if (pendingNavigationController) {\n      pendingNavigationController.signal.addEventListener(\n        \"abort\",\n        abortPendingFetchRevalidations\n      );\n    }\n    let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n      state,\n      matches,\n      matchesToLoad,\n      revalidatingFetchers,\n      request\n    );\n    if (request.signal.aborted) {\n      return { shortCircuited: true };\n    }\n    if (pendingNavigationController) {\n      pendingNavigationController.signal.removeEventListener(\n        \"abort\",\n        abortPendingFetchRevalidations\n      );\n    }\n    revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n    let redirect2 = findRedirect(loaderResults);\n    if (redirect2) {\n      await startRedirectNavigation(request, redirect2.result, true, {\n        replace: replace2\n      });\n      return { shortCircuited: true };\n    }\n    redirect2 = findRedirect(fetcherResults);\n    if (redirect2) {\n      fetchRedirectIds.add(redirect2.key);\n      await startRedirectNavigation(request, redirect2.result, true, {\n        replace: replace2\n      });\n      return { shortCircuited: true };\n    }\n    let { loaderData, errors } = processLoaderData(\n      state,\n      matches,\n      loaderResults,\n      pendingActionResult,\n      revalidatingFetchers,\n      fetcherResults\n    );\n    if (initialHydration && state.errors) {\n      errors = { ...state.errors, ...errors };\n    }\n    let updatedFetchers = markFetchRedirectsDone();\n    let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n    let shouldUpdateFetchers = updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n    return {\n      matches,\n      loaderData,\n      errors,\n      ...shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}\n    };\n  }\n  function getUpdatedActionData(pendingActionResult) {\n    if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n      return {\n        [pendingActionResult[0]]: pendingActionResult[1].data\n      };\n    } else if (state.actionData) {\n      if (Object.keys(state.actionData).length === 0) {\n        return null;\n      } else {\n        return state.actionData;\n      }\n    }\n  }\n  function getUpdatedRevalidatingFetchers(revalidatingFetchers) {\n    revalidatingFetchers.forEach((rf) => {\n      let fetcher = state.fetchers.get(rf.key);\n      let revalidatingFetcher = getLoadingFetcher(\n        void 0,\n        fetcher ? fetcher.data : void 0\n      );\n      state.fetchers.set(rf.key, revalidatingFetcher);\n    });\n    return new Map(state.fetchers);\n  }\n  async function fetch2(key, routeId, href, opts) {\n    abortFetcher(key);\n    let flushSync = (opts && opts.flushSync) === true;\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let normalizedPath = normalizeTo(\n      state.location,\n      state.matches,\n      basename,\n      href,\n      routeId,\n      opts?.relative\n    );\n    let matches = matchRoutes(routesToUse, normalizedPath, basename);\n    let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n    if (fogOfWar.active && fogOfWar.matches) {\n      matches = fogOfWar.matches;\n    }\n    if (!matches) {\n      setFetcherError(\n        key,\n        routeId,\n        getInternalRouterError(404, { pathname: normalizedPath }),\n        { flushSync }\n      );\n      return;\n    }\n    let { path, submission, error } = normalizeNavigateOptions(\n      true,\n      normalizedPath,\n      opts\n    );\n    if (error) {\n      setFetcherError(key, routeId, error, { flushSync });\n      return;\n    }\n    let match = getTargetMatch(matches, path);\n    let preventScrollReset = (opts && opts.preventScrollReset) === true;\n    if (submission && isMutationMethod(submission.formMethod)) {\n      await handleFetcherAction(\n        key,\n        routeId,\n        path,\n        match,\n        matches,\n        fogOfWar.active,\n        flushSync,\n        preventScrollReset,\n        submission\n      );\n      return;\n    }\n    fetchLoadMatches.set(key, { routeId, path });\n    await handleFetcherLoader(\n      key,\n      routeId,\n      path,\n      match,\n      matches,\n      fogOfWar.active,\n      flushSync,\n      preventScrollReset,\n      submission\n    );\n  }\n  async function handleFetcherAction(key, routeId, path, match, requestMatches, isFogOfWar, flushSync, preventScrollReset, submission) {\n    interruptActiveLoads();\n    fetchLoadMatches.delete(key);\n    function detectAndHandle405Error(m) {\n      if (!m.route.action && !m.route.lazy) {\n        let error = getInternalRouterError(405, {\n          method: submission.formMethod,\n          pathname: path,\n          routeId\n        });\n        setFetcherError(key, routeId, error, { flushSync });\n        return true;\n      }\n      return false;\n    }\n    if (!isFogOfWar && detectAndHandle405Error(match)) {\n      return;\n    }\n    let existingFetcher = state.fetchers.get(key);\n    updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n      flushSync\n    });\n    let abortController = new AbortController();\n    let fetchRequest = createClientSideRequest(\n      init.history,\n      path,\n      abortController.signal,\n      submission\n    );\n    if (isFogOfWar) {\n      let discoverResult = await discoverRoutes(\n        requestMatches,\n        path,\n        fetchRequest.signal\n      );\n      if (discoverResult.type === \"aborted\") {\n        return;\n      } else if (discoverResult.type === \"error\") {\n        setFetcherError(key, routeId, discoverResult.error, { flushSync });\n        return;\n      } else if (!discoverResult.matches) {\n        setFetcherError(\n          key,\n          routeId,\n          getInternalRouterError(404, { pathname: path }),\n          { flushSync }\n        );\n        return;\n      } else {\n        requestMatches = discoverResult.matches;\n        match = getTargetMatch(requestMatches, path);\n        if (detectAndHandle405Error(match)) {\n          return;\n        }\n      }\n    }\n    fetchControllers.set(key, abortController);\n    let originatingLoadId = incrementingLoadId;\n    let actionResults = await callDataStrategy(\n      \"action\",\n      state,\n      fetchRequest,\n      [match],\n      requestMatches,\n      key\n    );\n    let actionResult = actionResults[match.route.id];\n    if (fetchRequest.signal.aborted) {\n      if (fetchControllers.get(key) === abortController) {\n        fetchControllers.delete(key);\n      }\n      return;\n    }\n    if (fetchersQueuedForDeletion.has(key)) {\n      if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n        updateFetcherState(key, getDoneFetcher(void 0));\n        return;\n      }\n    } else {\n      if (isRedirectResult(actionResult)) {\n        fetchControllers.delete(key);\n        if (pendingNavigationLoadId > originatingLoadId) {\n          updateFetcherState(key, getDoneFetcher(void 0));\n          return;\n        } else {\n          fetchRedirectIds.add(key);\n          updateFetcherState(key, getLoadingFetcher(submission));\n          return startRedirectNavigation(fetchRequest, actionResult, false, {\n            fetcherSubmission: submission,\n            preventScrollReset\n          });\n        }\n      }\n      if (isErrorResult(actionResult)) {\n        setFetcherError(key, routeId, actionResult.error);\n        return;\n      }\n    }\n    let nextLocation = state.navigation.location || state.location;\n    let revalidationRequest = createClientSideRequest(\n      init.history,\n      nextLocation,\n      abortController.signal\n    );\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let matches = state.navigation.state !== \"idle\" ? matchRoutes(routesToUse, state.navigation.location, basename) : state.matches;\n    invariant(matches, \"Didn't find any matches after fetcher action\");\n    let loadId = ++incrementingLoadId;\n    fetchReloadIds.set(key, loadId);\n    let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n    state.fetchers.set(key, loadFetcher);\n    let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n      init.history,\n      state,\n      matches,\n      submission,\n      nextLocation,\n      false,\n      isRevalidationRequired,\n      cancelledFetcherLoads,\n      fetchersQueuedForDeletion,\n      fetchLoadMatches,\n      fetchRedirectIds,\n      routesToUse,\n      basename,\n      [match.route.id, actionResult]\n    );\n    revalidatingFetchers.filter((rf) => rf.key !== key).forEach((rf) => {\n      let staleKey = rf.key;\n      let existingFetcher2 = state.fetchers.get(staleKey);\n      let revalidatingFetcher = getLoadingFetcher(\n        void 0,\n        existingFetcher2 ? existingFetcher2.data : void 0\n      );\n      state.fetchers.set(staleKey, revalidatingFetcher);\n      abortFetcher(staleKey);\n      if (rf.controller) {\n        fetchControllers.set(staleKey, rf.controller);\n      }\n    });\n    updateState({ fetchers: new Map(state.fetchers) });\n    let abortPendingFetchRevalidations = () => revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n    abortController.signal.addEventListener(\n      \"abort\",\n      abortPendingFetchRevalidations\n    );\n    let { loaderResults, fetcherResults } = await callLoadersAndMaybeResolveData(\n      state,\n      matches,\n      matchesToLoad,\n      revalidatingFetchers,\n      revalidationRequest\n    );\n    if (abortController.signal.aborted) {\n      return;\n    }\n    abortController.signal.removeEventListener(\n      \"abort\",\n      abortPendingFetchRevalidations\n    );\n    fetchReloadIds.delete(key);\n    fetchControllers.delete(key);\n    revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n    let redirect2 = findRedirect(loaderResults);\n    if (redirect2) {\n      return startRedirectNavigation(\n        revalidationRequest,\n        redirect2.result,\n        false,\n        { preventScrollReset }\n      );\n    }\n    redirect2 = findRedirect(fetcherResults);\n    if (redirect2) {\n      fetchRedirectIds.add(redirect2.key);\n      return startRedirectNavigation(\n        revalidationRequest,\n        redirect2.result,\n        false,\n        { preventScrollReset }\n      );\n    }\n    let { loaderData, errors } = processLoaderData(\n      state,\n      matches,\n      loaderResults,\n      void 0,\n      revalidatingFetchers,\n      fetcherResults\n    );\n    if (state.fetchers.has(key)) {\n      let doneFetcher = getDoneFetcher(actionResult.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n    abortStaleFetchLoads(loadId);\n    if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n      invariant(pendingAction, \"Expected pending action\");\n      pendingNavigationController && pendingNavigationController.abort();\n      completeNavigation(state.navigation.location, {\n        matches,\n        loaderData,\n        errors,\n        fetchers: new Map(state.fetchers)\n      });\n    } else {\n      updateState({\n        errors,\n        loaderData: mergeLoaderData(\n          state.loaderData,\n          loaderData,\n          matches,\n          errors\n        ),\n        fetchers: new Map(state.fetchers)\n      });\n      isRevalidationRequired = false;\n    }\n  }\n  async function handleFetcherLoader(key, routeId, path, match, matches, isFogOfWar, flushSync, preventScrollReset, submission) {\n    let existingFetcher = state.fetchers.get(key);\n    updateFetcherState(\n      key,\n      getLoadingFetcher(\n        submission,\n        existingFetcher ? existingFetcher.data : void 0\n      ),\n      { flushSync }\n    );\n    let abortController = new AbortController();\n    let fetchRequest = createClientSideRequest(\n      init.history,\n      path,\n      abortController.signal\n    );\n    if (isFogOfWar) {\n      let discoverResult = await discoverRoutes(\n        matches,\n        path,\n        fetchRequest.signal\n      );\n      if (discoverResult.type === \"aborted\") {\n        return;\n      } else if (discoverResult.type === \"error\") {\n        setFetcherError(key, routeId, discoverResult.error, { flushSync });\n        return;\n      } else if (!discoverResult.matches) {\n        setFetcherError(\n          key,\n          routeId,\n          getInternalRouterError(404, { pathname: path }),\n          { flushSync }\n        );\n        return;\n      } else {\n        matches = discoverResult.matches;\n        match = getTargetMatch(matches, path);\n      }\n    }\n    fetchControllers.set(key, abortController);\n    let originatingLoadId = incrementingLoadId;\n    let results = await callDataStrategy(\n      \"loader\",\n      state,\n      fetchRequest,\n      [match],\n      matches,\n      key\n    );\n    let result = results[match.route.id];\n    if (fetchControllers.get(key) === abortController) {\n      fetchControllers.delete(key);\n    }\n    if (fetchRequest.signal.aborted) {\n      return;\n    }\n    if (fetchersQueuedForDeletion.has(key)) {\n      updateFetcherState(key, getDoneFetcher(void 0));\n      return;\n    }\n    if (isRedirectResult(result)) {\n      if (pendingNavigationLoadId > originatingLoadId) {\n        updateFetcherState(key, getDoneFetcher(void 0));\n        return;\n      } else {\n        fetchRedirectIds.add(key);\n        await startRedirectNavigation(fetchRequest, result, false, {\n          preventScrollReset\n        });\n        return;\n      }\n    }\n    if (isErrorResult(result)) {\n      setFetcherError(key, routeId, result.error);\n      return;\n    }\n    updateFetcherState(key, getDoneFetcher(result.data));\n  }\n  async function startRedirectNavigation(request, redirect2, isNavigation, {\n    submission,\n    fetcherSubmission,\n    preventScrollReset,\n    replace: replace2\n  } = {}) {\n    if (redirect2.response.headers.has(\"X-Remix-Revalidate\")) {\n      isRevalidationRequired = true;\n    }\n    let location = redirect2.response.headers.get(\"Location\");\n    invariant(location, \"Expected a Location header on the redirect Response\");\n    location = normalizeRedirectLocation(\n      location,\n      new URL(request.url),\n      basename\n    );\n    let redirectLocation = createLocation(state.location, location, {\n      _isRedirect: true\n    });\n    if (isBrowser2) {\n      let isDocumentReload = false;\n      if (redirect2.response.headers.has(\"X-Remix-Reload-Document\")) {\n        isDocumentReload = true;\n      } else if (ABSOLUTE_URL_REGEX.test(location)) {\n        const url = init.history.createURL(location);\n        isDocumentReload = // Hard reload if it's an absolute URL to a new origin\n        url.origin !== routerWindow.location.origin || // Hard reload if it's an absolute URL that does not match our basename\n        stripBasename(url.pathname, basename) == null;\n      }\n      if (isDocumentReload) {\n        if (replace2) {\n          routerWindow.location.replace(location);\n        } else {\n          routerWindow.location.assign(location);\n        }\n        return;\n      }\n    }\n    pendingNavigationController = null;\n    let redirectNavigationType = replace2 === true || redirect2.response.headers.has(\"X-Remix-Replace\") ? \"REPLACE\" /* Replace */ : \"PUSH\" /* Push */;\n    let { formMethod, formAction, formEncType } = state.navigation;\n    if (!submission && !fetcherSubmission && formMethod && formAction && formEncType) {\n      submission = getSubmissionFromNavigation(state.navigation);\n    }\n    let activeSubmission = submission || fetcherSubmission;\n    if (redirectPreserveMethodStatusCodes.has(redirect2.response.status) && activeSubmission && isMutationMethod(activeSubmission.formMethod)) {\n      await startNavigation(redirectNavigationType, redirectLocation, {\n        submission: {\n          ...activeSubmission,\n          formAction: location\n        },\n        // Preserve these flags across redirects\n        preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n        enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n      });\n    } else {\n      let overrideNavigation = getLoadingNavigation(\n        redirectLocation,\n        submission\n      );\n      await startNavigation(redirectNavigationType, redirectLocation, {\n        overrideNavigation,\n        // Send fetcher submissions through for shouldRevalidate\n        fetcherSubmission,\n        // Preserve these flags across redirects\n        preventScrollReset: preventScrollReset || pendingPreventScrollReset,\n        enableViewTransition: isNavigation ? pendingViewTransitionEnabled : void 0\n      });\n    }\n  }\n  async function callDataStrategy(type, state2, request, matchesToLoad, matches, fetcherKey) {\n    let results;\n    let dataResults = {};\n    try {\n      results = await callDataStrategyImpl(\n        dataStrategyImpl,\n        type,\n        state2,\n        request,\n        matchesToLoad,\n        matches,\n        fetcherKey,\n        manifest,\n        mapRouteProperties2\n      );\n    } catch (e) {\n      matchesToLoad.forEach((m) => {\n        dataResults[m.route.id] = {\n          type: \"error\" /* error */,\n          error: e\n        };\n      });\n      return dataResults;\n    }\n    for (let [routeId, result] of Object.entries(results)) {\n      if (isRedirectDataStrategyResult(result)) {\n        let response = result.result;\n        dataResults[routeId] = {\n          type: \"redirect\" /* redirect */,\n          response: normalizeRelativeRoutingRedirectResponse(\n            response,\n            request,\n            routeId,\n            matches,\n            basename\n          )\n        };\n      } else {\n        dataResults[routeId] = await convertDataStrategyResultToDataResult(\n          result\n        );\n      }\n    }\n    return dataResults;\n  }\n  async function callLoadersAndMaybeResolveData(state2, matches, matchesToLoad, fetchersToLoad, request) {\n    let loaderResultsPromise = callDataStrategy(\n      \"loader\",\n      state2,\n      request,\n      matchesToLoad,\n      matches,\n      null\n    );\n    let fetcherResultsPromise = Promise.all(\n      fetchersToLoad.map(async (f) => {\n        if (f.matches && f.match && f.controller) {\n          let results = await callDataStrategy(\n            \"loader\",\n            state2,\n            createClientSideRequest(init.history, f.path, f.controller.signal),\n            [f.match],\n            f.matches,\n            f.key\n          );\n          let result = results[f.match.route.id];\n          return { [f.key]: result };\n        } else {\n          return Promise.resolve({\n            [f.key]: {\n              type: \"error\" /* error */,\n              error: getInternalRouterError(404, {\n                pathname: f.path\n              })\n            }\n          });\n        }\n      })\n    );\n    let loaderResults = await loaderResultsPromise;\n    let fetcherResults = (await fetcherResultsPromise).reduce(\n      (acc, r) => Object.assign(acc, r),\n      {}\n    );\n    return {\n      loaderResults,\n      fetcherResults\n    };\n  }\n  function interruptActiveLoads() {\n    isRevalidationRequired = true;\n    fetchLoadMatches.forEach((_, key) => {\n      if (fetchControllers.has(key)) {\n        cancelledFetcherLoads.add(key);\n      }\n      abortFetcher(key);\n    });\n  }\n  function updateFetcherState(key, fetcher, opts = {}) {\n    state.fetchers.set(key, fetcher);\n    updateState(\n      { fetchers: new Map(state.fetchers) },\n      { flushSync: (opts && opts.flushSync) === true }\n    );\n  }\n  function setFetcherError(key, routeId, error, opts = {}) {\n    let boundaryMatch = findNearestBoundary(state.matches, routeId);\n    deleteFetcher(key);\n    updateState(\n      {\n        errors: {\n          [boundaryMatch.route.id]: error\n        },\n        fetchers: new Map(state.fetchers)\n      },\n      { flushSync: (opts && opts.flushSync) === true }\n    );\n  }\n  function getFetcher(key) {\n    activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n    if (fetchersQueuedForDeletion.has(key)) {\n      fetchersQueuedForDeletion.delete(key);\n    }\n    return state.fetchers.get(key) || IDLE_FETCHER;\n  }\n  function deleteFetcher(key) {\n    let fetcher = state.fetchers.get(key);\n    if (fetchControllers.has(key) && !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))) {\n      abortFetcher(key);\n    }\n    fetchLoadMatches.delete(key);\n    fetchReloadIds.delete(key);\n    fetchRedirectIds.delete(key);\n    fetchersQueuedForDeletion.delete(key);\n    cancelledFetcherLoads.delete(key);\n    state.fetchers.delete(key);\n  }\n  function queueFetcherForDeletion(key) {\n    let count = (activeFetchers.get(key) || 0) - 1;\n    if (count <= 0) {\n      activeFetchers.delete(key);\n      fetchersQueuedForDeletion.add(key);\n    } else {\n      activeFetchers.set(key, count);\n    }\n    updateState({ fetchers: new Map(state.fetchers) });\n  }\n  function abortFetcher(key) {\n    let controller = fetchControllers.get(key);\n    if (controller) {\n      controller.abort();\n      fetchControllers.delete(key);\n    }\n  }\n  function markFetchersDone(keys) {\n    for (let key of keys) {\n      let fetcher = getFetcher(key);\n      let doneFetcher = getDoneFetcher(fetcher.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n  }\n  function markFetchRedirectsDone() {\n    let doneKeys = [];\n    let updatedFetchers = false;\n    for (let key of fetchRedirectIds) {\n      let fetcher = state.fetchers.get(key);\n      invariant(fetcher, `Expected fetcher: ${key}`);\n      if (fetcher.state === \"loading\") {\n        fetchRedirectIds.delete(key);\n        doneKeys.push(key);\n        updatedFetchers = true;\n      }\n    }\n    markFetchersDone(doneKeys);\n    return updatedFetchers;\n  }\n  function abortStaleFetchLoads(landedId) {\n    let yeetedKeys = [];\n    for (let [key, id] of fetchReloadIds) {\n      if (id < landedId) {\n        let fetcher = state.fetchers.get(key);\n        invariant(fetcher, `Expected fetcher: ${key}`);\n        if (fetcher.state === \"loading\") {\n          abortFetcher(key);\n          fetchReloadIds.delete(key);\n          yeetedKeys.push(key);\n        }\n      }\n    }\n    markFetchersDone(yeetedKeys);\n    return yeetedKeys.length > 0;\n  }\n  function getBlocker(key, fn) {\n    let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n    if (blockerFunctions.get(key) !== fn) {\n      blockerFunctions.set(key, fn);\n    }\n    return blocker;\n  }\n  function deleteBlocker(key) {\n    state.blockers.delete(key);\n    blockerFunctions.delete(key);\n  }\n  function updateBlocker(key, newBlocker) {\n    let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n    invariant(\n      blocker.state === \"unblocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"blocked\" || blocker.state === \"blocked\" && newBlocker.state === \"proceeding\" || blocker.state === \"blocked\" && newBlocker.state === \"unblocked\" || blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\",\n      `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n    );\n    let blockers = new Map(state.blockers);\n    blockers.set(key, newBlocker);\n    updateState({ blockers });\n  }\n  function shouldBlockNavigation({\n    currentLocation,\n    nextLocation,\n    historyAction\n  }) {\n    if (blockerFunctions.size === 0) {\n      return;\n    }\n    if (blockerFunctions.size > 1) {\n      warning(false, \"A router only supports one blocker at a time\");\n    }\n    let entries = Array.from(blockerFunctions.entries());\n    let [blockerKey, blockerFunction] = entries[entries.length - 1];\n    let blocker = state.blockers.get(blockerKey);\n    if (blocker && blocker.state === \"proceeding\") {\n      return;\n    }\n    if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n      return blockerKey;\n    }\n  }\n  function handleNavigational404(pathname) {\n    let error = getInternalRouterError(404, { pathname });\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    let { matches, route } = getShortCircuitMatches(routesToUse);\n    return { notFoundMatches: matches, route, error };\n  }\n  function enableScrollRestoration(positions, getPosition, getKey) {\n    savedScrollPositions2 = positions;\n    getScrollPosition = getPosition;\n    getScrollRestorationKey2 = getKey || null;\n    if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n      initialScrollRestored = true;\n      let y = getSavedScrollPosition(state.location, state.matches);\n      if (y != null) {\n        updateState({ restoreScrollPosition: y });\n      }\n    }\n    return () => {\n      savedScrollPositions2 = null;\n      getScrollPosition = null;\n      getScrollRestorationKey2 = null;\n    };\n  }\n  function getScrollKey(location, matches) {\n    if (getScrollRestorationKey2) {\n      let key = getScrollRestorationKey2(\n        location,\n        matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n      );\n      return key || location.key;\n    }\n    return location.key;\n  }\n  function saveScrollPosition(location, matches) {\n    if (savedScrollPositions2 && getScrollPosition) {\n      let key = getScrollKey(location, matches);\n      savedScrollPositions2[key] = getScrollPosition();\n    }\n  }\n  function getSavedScrollPosition(location, matches) {\n    if (savedScrollPositions2) {\n      let key = getScrollKey(location, matches);\n      let y = savedScrollPositions2[key];\n      if (typeof y === \"number\") {\n        return y;\n      }\n    }\n    return null;\n  }\n  function checkFogOfWar(matches, routesToUse, pathname) {\n    if (patchRoutesOnNavigationImpl) {\n      if (!matches) {\n        let fogMatches = matchRoutesImpl(\n          routesToUse,\n          pathname,\n          basename,\n          true\n        );\n        return { active: true, matches: fogMatches || [] };\n      } else {\n        if (Object.keys(matches[0].params).length > 0) {\n          let partialMatches = matchRoutesImpl(\n            routesToUse,\n            pathname,\n            basename,\n            true\n          );\n          return { active: true, matches: partialMatches };\n        }\n      }\n    }\n    return { active: false, matches: null };\n  }\n  async function discoverRoutes(matches, pathname, signal) {\n    if (!patchRoutesOnNavigationImpl) {\n      return { type: \"success\", matches };\n    }\n    let partialMatches = matches;\n    while (true) {\n      let isNonHMR = inFlightDataRoutes == null;\n      let routesToUse = inFlightDataRoutes || dataRoutes;\n      let localManifest = manifest;\n      try {\n        await patchRoutesOnNavigationImpl({\n          path: pathname,\n          matches: partialMatches,\n          patch: (routeId, children) => {\n            if (signal.aborted) return;\n            patchRoutesImpl(\n              routeId,\n              children,\n              routesToUse,\n              localManifest,\n              mapRouteProperties2\n            );\n          }\n        });\n      } catch (e) {\n        return { type: \"error\", error: e, partialMatches };\n      } finally {\n        if (isNonHMR && !signal.aborted) {\n          dataRoutes = [...dataRoutes];\n        }\n      }\n      if (signal.aborted) {\n        return { type: \"aborted\" };\n      }\n      let newMatches = matchRoutes(routesToUse, pathname, basename);\n      if (newMatches) {\n        return { type: \"success\", matches: newMatches };\n      }\n      let newPartialMatches = matchRoutesImpl(\n        routesToUse,\n        pathname,\n        basename,\n        true\n      );\n      if (!newPartialMatches || partialMatches.length === newPartialMatches.length && partialMatches.every(\n        (m, i) => m.route.id === newPartialMatches[i].route.id\n      )) {\n        return { type: \"success\", matches: null };\n      }\n      partialMatches = newPartialMatches;\n    }\n  }\n  function _internalSetRoutes(newRoutes) {\n    manifest = {};\n    inFlightDataRoutes = convertRoutesToDataRoutes(\n      newRoutes,\n      mapRouteProperties2,\n      void 0,\n      manifest\n    );\n  }\n  function patchRoutes(routeId, children) {\n    let isNonHMR = inFlightDataRoutes == null;\n    let routesToUse = inFlightDataRoutes || dataRoutes;\n    patchRoutesImpl(\n      routeId,\n      children,\n      routesToUse,\n      manifest,\n      mapRouteProperties2\n    );\n    if (isNonHMR) {\n      dataRoutes = [...dataRoutes];\n      updateState({});\n    }\n  }\n  router = {\n    get basename() {\n      return basename;\n    },\n    get future() {\n      return future;\n    },\n    get state() {\n      return state;\n    },\n    get routes() {\n      return dataRoutes;\n    },\n    get window() {\n      return routerWindow;\n    },\n    initialize,\n    subscribe,\n    enableScrollRestoration,\n    navigate,\n    fetch: fetch2,\n    revalidate,\n    // Passthrough to history-aware createHref used by useHref so we get proper\n    // hash-aware URLs in DOM paths\n    createHref: (to) => init.history.createHref(to),\n    encodeLocation: (to) => init.history.encodeLocation(to),\n    getFetcher,\n    deleteFetcher: queueFetcherForDeletion,\n    dispose,\n    getBlocker,\n    deleteBlocker,\n    patchRoutes,\n    _internalFetchControllers: fetchControllers,\n    // TODO: Remove setRoutes, it's temporary to avoid dealing with\n    // updating the tree while validating the update algorithm.\n    _internalSetRoutes\n  };\n  return router;\n}\nfunction createStaticHandler(routes, opts) {\n  invariant(\n    routes.length > 0,\n    \"You must provide a non-empty routes array to createStaticHandler\"\n  );\n  let manifest = {};\n  let basename = (opts ? opts.basename : null) || \"/\";\n  let mapRouteProperties2 = opts?.mapRouteProperties || defaultMapRouteProperties;\n  let dataRoutes = convertRoutesToDataRoutes(\n    routes,\n    mapRouteProperties2,\n    void 0,\n    manifest\n  );\n  async function query(request, {\n    requestContext,\n    skipLoaderErrorBubbling,\n    dataStrategy\n  } = {}) {\n    let url = new URL(request.url);\n    let method = request.method;\n    let location = createLocation(\"\", createPath(url), null, \"default\");\n    let matches = matchRoutes(dataRoutes, location, basename);\n    if (!isValidMethod(method) && method !== \"HEAD\") {\n      let error = getInternalRouterError(405, { method });\n      let { matches: methodNotAllowedMatches, route } = getShortCircuitMatches(dataRoutes);\n      return {\n        basename,\n        location,\n        matches: methodNotAllowedMatches,\n        loaderData: {},\n        actionData: null,\n        errors: {\n          [route.id]: error\n        },\n        statusCode: error.status,\n        loaderHeaders: {},\n        actionHeaders: {}\n      };\n    } else if (!matches) {\n      let error = getInternalRouterError(404, { pathname: location.pathname });\n      let { matches: notFoundMatches, route } = getShortCircuitMatches(dataRoutes);\n      return {\n        basename,\n        location,\n        matches: notFoundMatches,\n        loaderData: {},\n        actionData: null,\n        errors: {\n          [route.id]: error\n        },\n        statusCode: error.status,\n        loaderHeaders: {},\n        actionHeaders: {}\n      };\n    }\n    let result = await queryImpl(\n      request,\n      location,\n      matches,\n      requestContext,\n      dataStrategy || null,\n      skipLoaderErrorBubbling === true,\n      null\n    );\n    if (isResponse(result)) {\n      return result;\n    }\n    return { location, basename, ...result };\n  }\n  async function queryRoute(request, {\n    routeId,\n    requestContext,\n    dataStrategy\n  } = {}) {\n    let url = new URL(request.url);\n    let method = request.method;\n    let location = createLocation(\"\", createPath(url), null, \"default\");\n    let matches = matchRoutes(dataRoutes, location, basename);\n    if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n      throw getInternalRouterError(405, { method });\n    } else if (!matches) {\n      throw getInternalRouterError(404, { pathname: location.pathname });\n    }\n    let match = routeId ? matches.find((m) => m.route.id === routeId) : getTargetMatch(matches, location);\n    if (routeId && !match) {\n      throw getInternalRouterError(403, {\n        pathname: location.pathname,\n        routeId\n      });\n    } else if (!match) {\n      throw getInternalRouterError(404, { pathname: location.pathname });\n    }\n    let result = await queryImpl(\n      request,\n      location,\n      matches,\n      requestContext,\n      dataStrategy || null,\n      false,\n      match\n    );\n    if (isResponse(result)) {\n      return result;\n    }\n    let error = result.errors ? Object.values(result.errors)[0] : void 0;\n    if (error !== void 0) {\n      throw error;\n    }\n    if (result.actionData) {\n      return Object.values(result.actionData)[0];\n    }\n    if (result.loaderData) {\n      return Object.values(result.loaderData)[0];\n    }\n    return void 0;\n  }\n  async function queryImpl(request, location, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch) {\n    invariant(\n      request.signal,\n      \"query()/queryRoute() requests must contain an AbortController signal\"\n    );\n    try {\n      if (isMutationMethod(request.method)) {\n        let result2 = await submit(\n          request,\n          matches,\n          routeMatch || getTargetMatch(matches, location),\n          requestContext,\n          dataStrategy,\n          skipLoaderErrorBubbling,\n          routeMatch != null\n        );\n        return result2;\n      }\n      let result = await loadRouteData(\n        request,\n        matches,\n        requestContext,\n        dataStrategy,\n        skipLoaderErrorBubbling,\n        routeMatch\n      );\n      return isResponse(result) ? result : {\n        ...result,\n        actionData: null,\n        actionHeaders: {}\n      };\n    } catch (e) {\n      if (isDataStrategyResult(e) && isResponse(e.result)) {\n        if (e.type === \"error\" /* error */) {\n          throw e.result;\n        }\n        return e.result;\n      }\n      if (isRedirectResponse(e)) {\n        return e;\n      }\n      throw e;\n    }\n  }\n  async function submit(request, matches, actionMatch, requestContext, dataStrategy, skipLoaderErrorBubbling, isRouteRequest) {\n    let result;\n    if (!actionMatch.route.action && !actionMatch.route.lazy) {\n      let error = getInternalRouterError(405, {\n        method: request.method,\n        pathname: new URL(request.url).pathname,\n        routeId: actionMatch.route.id\n      });\n      if (isRouteRequest) {\n        throw error;\n      }\n      result = {\n        type: \"error\" /* error */,\n        error\n      };\n    } else {\n      let results = await callDataStrategy(\n        \"action\",\n        request,\n        [actionMatch],\n        matches,\n        isRouteRequest,\n        requestContext,\n        dataStrategy\n      );\n      result = results[actionMatch.route.id];\n      if (request.signal.aborted) {\n        throwStaticHandlerAbortedError(request, isRouteRequest);\n      }\n    }\n    if (isRedirectResult(result)) {\n      throw new Response(null, {\n        status: result.response.status,\n        headers: {\n          Location: result.response.headers.get(\"Location\")\n        }\n      });\n    }\n    if (isRouteRequest) {\n      if (isErrorResult(result)) {\n        throw result.error;\n      }\n      return {\n        matches: [actionMatch],\n        loaderData: {},\n        actionData: { [actionMatch.route.id]: result.data },\n        errors: null,\n        // Note: statusCode + headers are unused here since queryRoute will\n        // return the raw Response or value\n        statusCode: 200,\n        loaderHeaders: {},\n        actionHeaders: {}\n      };\n    }\n    let loaderRequest = new Request(request.url, {\n      headers: request.headers,\n      redirect: request.redirect,\n      signal: request.signal\n    });\n    if (isErrorResult(result)) {\n      let boundaryMatch = skipLoaderErrorBubbling ? actionMatch : findNearestBoundary(matches, actionMatch.route.id);\n      let context2 = await loadRouteData(\n        loaderRequest,\n        matches,\n        requestContext,\n        dataStrategy,\n        skipLoaderErrorBubbling,\n        null,\n        [boundaryMatch.route.id, result]\n      );\n      return {\n        ...context2,\n        statusCode: isRouteErrorResponse(result.error) ? result.error.status : result.statusCode != null ? result.statusCode : 500,\n        actionData: null,\n        actionHeaders: {\n          ...result.headers ? { [actionMatch.route.id]: result.headers } : {}\n        }\n      };\n    }\n    let context = await loadRouteData(\n      loaderRequest,\n      matches,\n      requestContext,\n      dataStrategy,\n      skipLoaderErrorBubbling,\n      null\n    );\n    return {\n      ...context,\n      actionData: {\n        [actionMatch.route.id]: result.data\n      },\n      // action status codes take precedence over loader status codes\n      ...result.statusCode ? { statusCode: result.statusCode } : {},\n      actionHeaders: result.headers ? { [actionMatch.route.id]: result.headers } : {}\n    };\n  }\n  async function loadRouteData(request, matches, requestContext, dataStrategy, skipLoaderErrorBubbling, routeMatch, pendingActionResult) {\n    let isRouteRequest = routeMatch != null;\n    if (isRouteRequest && !routeMatch?.route.loader && !routeMatch?.route.lazy) {\n      throw getInternalRouterError(400, {\n        method: request.method,\n        pathname: new URL(request.url).pathname,\n        routeId: routeMatch?.route.id\n      });\n    }\n    let requestMatches = routeMatch ? [routeMatch] : pendingActionResult && isErrorResult(pendingActionResult[1]) ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0]) : matches;\n    let matchesToLoad = requestMatches.filter(\n      (m) => m.route.loader || m.route.lazy\n    );\n    if (matchesToLoad.length === 0) {\n      return {\n        matches,\n        // Add a null for all matched routes for proper revalidation on the client\n        loaderData: matches.reduce(\n          (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n          {}\n        ),\n        errors: pendingActionResult && isErrorResult(pendingActionResult[1]) ? {\n          [pendingActionResult[0]]: pendingActionResult[1].error\n        } : null,\n        statusCode: 200,\n        loaderHeaders: {}\n      };\n    }\n    let results = await callDataStrategy(\n      \"loader\",\n      request,\n      matchesToLoad,\n      matches,\n      isRouteRequest,\n      requestContext,\n      dataStrategy\n    );\n    if (request.signal.aborted) {\n      throwStaticHandlerAbortedError(request, isRouteRequest);\n    }\n    let context = processRouteLoaderData(\n      matches,\n      results,\n      pendingActionResult,\n      true,\n      skipLoaderErrorBubbling\n    );\n    let executedLoaders = new Set(\n      matchesToLoad.map((match) => match.route.id)\n    );\n    matches.forEach((match) => {\n      if (!executedLoaders.has(match.route.id)) {\n        context.loaderData[match.route.id] = null;\n      }\n    });\n    return {\n      ...context,\n      matches\n    };\n  }\n  async function callDataStrategy(type, request, matchesToLoad, matches, isRouteRequest, requestContext, dataStrategy) {\n    let results = await callDataStrategyImpl(\n      dataStrategy || defaultDataStrategy,\n      type,\n      null,\n      request,\n      matchesToLoad,\n      matches,\n      null,\n      manifest,\n      mapRouteProperties2,\n      requestContext\n    );\n    let dataResults = {};\n    await Promise.all(\n      matches.map(async (match) => {\n        if (!(match.route.id in results)) {\n          return;\n        }\n        let result = results[match.route.id];\n        if (isRedirectDataStrategyResult(result)) {\n          let response = result.result;\n          throw normalizeRelativeRoutingRedirectResponse(\n            response,\n            request,\n            match.route.id,\n            matches,\n            basename\n          );\n        }\n        if (isResponse(result.result) && isRouteRequest) {\n          throw result;\n        }\n        dataResults[match.route.id] = await convertDataStrategyResultToDataResult(result);\n      })\n    );\n    return dataResults;\n  }\n  return {\n    dataRoutes,\n    query,\n    queryRoute\n  };\n}\nfunction getStaticContextFromError(routes, context, error) {\n  let newContext = {\n    ...context,\n    statusCode: isRouteErrorResponse(error) ? error.status : 500,\n    errors: {\n      [context._deepestRenderedBoundaryId || routes[0].id]: error\n    }\n  };\n  return newContext;\n}\nfunction throwStaticHandlerAbortedError(request, isRouteRequest) {\n  if (request.signal.reason !== void 0) {\n    throw request.signal.reason;\n  }\n  let method = isRouteRequest ? \"queryRoute\" : \"query\";\n  throw new Error(\n    `${method}() call aborted without an \\`AbortSignal.reason\\`: ${request.method} ${request.url}`\n  );\n}\nfunction isSubmissionNavigation(opts) {\n  return opts != null && (\"formData\" in opts && opts.formData != null || \"body\" in opts && opts.body !== void 0);\n}\nfunction normalizeTo(location, matches, basename, to, fromRouteId, relative) {\n  let contextualMatches;\n  let activeRouteMatch;\n  if (fromRouteId) {\n    contextualMatches = [];\n    for (let match of matches) {\n      contextualMatches.push(match);\n      if (match.route.id === fromRouteId) {\n        activeRouteMatch = match;\n        break;\n      }\n    }\n  } else {\n    contextualMatches = matches;\n    activeRouteMatch = matches[matches.length - 1];\n  }\n  let path = resolveTo(\n    to ? to : \".\",\n    getResolveToMatches(contextualMatches),\n    stripBasename(location.pathname, basename) || location.pathname,\n    relative === \"path\"\n  );\n  if (to == null) {\n    path.search = location.search;\n    path.hash = location.hash;\n  }\n  if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n    let nakedIndex = hasNakedIndexQuery(path.search);\n    if (activeRouteMatch.route.index && !nakedIndex) {\n      path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n    } else if (!activeRouteMatch.route.index && nakedIndex) {\n      let params = new URLSearchParams(path.search);\n      let indexValues = params.getAll(\"index\");\n      params.delete(\"index\");\n      indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n      let qs = params.toString();\n      path.search = qs ? `?${qs}` : \"\";\n    }\n  }\n  if (basename !== \"/\") {\n    path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n  }\n  return createPath(path);\n}\nfunction normalizeNavigateOptions(isFetcher, path, opts) {\n  if (!opts || !isSubmissionNavigation(opts)) {\n    return { path };\n  }\n  if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n    return {\n      path,\n      error: getInternalRouterError(405, { method: opts.formMethod })\n    };\n  }\n  let getInvalidBodyError = () => ({\n    path,\n    error: getInternalRouterError(400, { type: \"invalid-body\" })\n  });\n  let rawFormMethod = opts.formMethod || \"get\";\n  let formMethod = rawFormMethod.toUpperCase();\n  let formAction = stripHashFromPath(path);\n  if (opts.body !== void 0) {\n    if (opts.formEncType === \"text/plain\") {\n      if (!isMutationMethod(formMethod)) {\n        return getInvalidBodyError();\n      }\n      let text = typeof opts.body === \"string\" ? opts.body : opts.body instanceof FormData || opts.body instanceof URLSearchParams ? (\n        // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n        Array.from(opts.body.entries()).reduce(\n          (acc, [name, value]) => `${acc}${name}=${value}\n`,\n          \"\"\n        )\n      ) : String(opts.body);\n      return {\n        path,\n        submission: {\n          formMethod,\n          formAction,\n          formEncType: opts.formEncType,\n          formData: void 0,\n          json: void 0,\n          text\n        }\n      };\n    } else if (opts.formEncType === \"application/json\") {\n      if (!isMutationMethod(formMethod)) {\n        return getInvalidBodyError();\n      }\n      try {\n        let json = typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n        return {\n          path,\n          submission: {\n            formMethod,\n            formAction,\n            formEncType: opts.formEncType,\n            formData: void 0,\n            json,\n            text: void 0\n          }\n        };\n      } catch (e) {\n        return getInvalidBodyError();\n      }\n    }\n  }\n  invariant(\n    typeof FormData === \"function\",\n    \"FormData is not available in this environment\"\n  );\n  let searchParams;\n  let formData;\n  if (opts.formData) {\n    searchParams = convertFormDataToSearchParams(opts.formData);\n    formData = opts.formData;\n  } else if (opts.body instanceof FormData) {\n    searchParams = convertFormDataToSearchParams(opts.body);\n    formData = opts.body;\n  } else if (opts.body instanceof URLSearchParams) {\n    searchParams = opts.body;\n    formData = convertSearchParamsToFormData(searchParams);\n  } else if (opts.body == null) {\n    searchParams = new URLSearchParams();\n    formData = new FormData();\n  } else {\n    try {\n      searchParams = new URLSearchParams(opts.body);\n      formData = convertSearchParamsToFormData(searchParams);\n    } catch (e) {\n      return getInvalidBodyError();\n    }\n  }\n  let submission = {\n    formMethod,\n    formAction,\n    formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n    formData,\n    json: void 0,\n    text: void 0\n  };\n  if (isMutationMethod(submission.formMethod)) {\n    return { path, submission };\n  }\n  let parsedPath = parsePath(path);\n  if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n    searchParams.append(\"index\", \"\");\n  }\n  parsedPath.search = `?${searchParams}`;\n  return { path: createPath(parsedPath), submission };\n}\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId, includeBoundary = false) {\n  let index = matches.findIndex((m) => m.route.id === boundaryId);\n  if (index >= 0) {\n    return matches.slice(0, includeBoundary ? index + 1 : index);\n  }\n  return matches;\n}\nfunction getMatchesToLoad(history, state, matches, submission, location, initialHydration, isRevalidationRequired, cancelledFetcherLoads, fetchersQueuedForDeletion, fetchLoadMatches, fetchRedirectIds, routesToUse, basename, pendingActionResult) {\n  let actionResult = pendingActionResult ? isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : pendingActionResult[1].data : void 0;\n  let currentUrl = history.createURL(state.location);\n  let nextUrl = history.createURL(location);\n  let boundaryMatches = matches;\n  if (initialHydration && state.errors) {\n    boundaryMatches = getLoaderMatchesUntilBoundary(\n      matches,\n      Object.keys(state.errors)[0],\n      true\n    );\n  } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n    boundaryMatches = getLoaderMatchesUntilBoundary(\n      matches,\n      pendingActionResult[0]\n    );\n  }\n  let actionStatus = pendingActionResult ? pendingActionResult[1].statusCode : void 0;\n  let shouldSkipRevalidation = actionStatus && actionStatus >= 400;\n  let navigationMatches = boundaryMatches.filter((match, index) => {\n    let { route } = match;\n    if (route.lazy) {\n      return true;\n    }\n    if (route.loader == null) {\n      return false;\n    }\n    if (initialHydration) {\n      return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\n    }\n    if (isNewLoader(state.loaderData, state.matches[index], match)) {\n      return true;\n    }\n    let currentRouteMatch = state.matches[index];\n    let nextRouteMatch = match;\n    return shouldRevalidateLoader(match, {\n      currentUrl,\n      currentParams: currentRouteMatch.params,\n      nextUrl,\n      nextParams: nextRouteMatch.params,\n      ...submission,\n      actionResult,\n      actionStatus,\n      defaultShouldRevalidate: shouldSkipRevalidation ? false : (\n        // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n        isRevalidationRequired || currentUrl.pathname + currentUrl.search === nextUrl.pathname + nextUrl.search || // Search params affect all loaders\n        currentUrl.search !== nextUrl.search || isNewRouteInstance(currentRouteMatch, nextRouteMatch)\n      )\n    });\n  });\n  let revalidatingFetchers = [];\n  fetchLoadMatches.forEach((f, key) => {\n    if (initialHydration || !matches.some((m) => m.route.id === f.routeId) || fetchersQueuedForDeletion.has(key)) {\n      return;\n    }\n    let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n    if (!fetcherMatches) {\n      revalidatingFetchers.push({\n        key,\n        routeId: f.routeId,\n        path: f.path,\n        matches: null,\n        match: null,\n        controller: null\n      });\n      return;\n    }\n    let fetcher = state.fetchers.get(key);\n    let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n    let shouldRevalidate = false;\n    if (fetchRedirectIds.has(key)) {\n      shouldRevalidate = false;\n    } else if (cancelledFetcherLoads.has(key)) {\n      cancelledFetcherLoads.delete(key);\n      shouldRevalidate = true;\n    } else if (fetcher && fetcher.state !== \"idle\" && fetcher.data === void 0) {\n      shouldRevalidate = isRevalidationRequired;\n    } else {\n      shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n        currentUrl,\n        currentParams: state.matches[state.matches.length - 1].params,\n        nextUrl,\n        nextParams: matches[matches.length - 1].params,\n        ...submission,\n        actionResult,\n        actionStatus,\n        defaultShouldRevalidate: shouldSkipRevalidation ? false : isRevalidationRequired\n      });\n    }\n    if (shouldRevalidate) {\n      revalidatingFetchers.push({\n        key,\n        routeId: f.routeId,\n        path: f.path,\n        matches: fetcherMatches,\n        match: fetcherMatch,\n        controller: new AbortController()\n      });\n    }\n  });\n  return [navigationMatches, revalidatingFetchers];\n}\nfunction shouldLoadRouteOnHydration(route, loaderData, errors) {\n  if (route.lazy) {\n    return true;\n  }\n  if (!route.loader) {\n    return false;\n  }\n  let hasData = loaderData != null && loaderData[route.id] !== void 0;\n  let hasError = errors != null && errors[route.id] !== void 0;\n  if (!hasData && hasError) {\n    return false;\n  }\n  if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n    return true;\n  }\n  return !hasData && !hasError;\n}\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n  let isNew = (\n    // [a] -> [a, b]\n    !currentMatch || // [a, b] -> [a, c]\n    match.route.id !== currentMatch.route.id\n  );\n  let isMissingData = !currentLoaderData.hasOwnProperty(match.route.id);\n  return isNew || isMissingData;\n}\nfunction isNewRouteInstance(currentMatch, match) {\n  let currentPath = currentMatch.route.path;\n  return (\n    // param change for this match, /users/123 -> /users/456\n    currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n    // e.g. /files/images/avatar.jpg -> files/finances.xls\n    currentPath != null && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n  );\n}\nfunction shouldRevalidateLoader(loaderMatch, arg) {\n  if (loaderMatch.route.shouldRevalidate) {\n    let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n    if (typeof routeChoice === \"boolean\") {\n      return routeChoice;\n    }\n  }\n  return arg.defaultShouldRevalidate;\n}\nfunction patchRoutesImpl(routeId, children, routesToUse, manifest, mapRouteProperties2) {\n  let childrenToPatch;\n  if (routeId) {\n    let route = manifest[routeId];\n    invariant(\n      route,\n      `No route found to patch children into: routeId = ${routeId}`\n    );\n    if (!route.children) {\n      route.children = [];\n    }\n    childrenToPatch = route.children;\n  } else {\n    childrenToPatch = routesToUse;\n  }\n  let uniqueChildren = children.filter(\n    (newRoute) => !childrenToPatch.some(\n      (existingRoute) => isSameRoute(newRoute, existingRoute)\n    )\n  );\n  let newRoutes = convertRoutesToDataRoutes(\n    uniqueChildren,\n    mapRouteProperties2,\n    [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n    manifest\n  );\n  childrenToPatch.push(...newRoutes);\n}\nfunction isSameRoute(newRoute, existingRoute) {\n  if (\"id\" in newRoute && \"id\" in existingRoute && newRoute.id === existingRoute.id) {\n    return true;\n  }\n  if (!(newRoute.index === existingRoute.index && newRoute.path === existingRoute.path && newRoute.caseSensitive === existingRoute.caseSensitive)) {\n    return false;\n  }\n  if ((!newRoute.children || newRoute.children.length === 0) && (!existingRoute.children || existingRoute.children.length === 0)) {\n    return true;\n  }\n  return newRoute.children.every(\n    (aChild, i) => existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\n  );\n}\nasync function loadLazyRouteModule(route, mapRouteProperties2, manifest) {\n  if (!route.lazy) {\n    return;\n  }\n  let lazyRoute = await route.lazy();\n  if (!route.lazy) {\n    return;\n  }\n  let routeToUpdate = manifest[route.id];\n  invariant(routeToUpdate, \"No route found in manifest\");\n  let routeUpdates = {};\n  for (let lazyRouteProperty in lazyRoute) {\n    let staticRouteValue = routeToUpdate[lazyRouteProperty];\n    let isPropertyStaticallyDefined = staticRouteValue !== void 0 && // This property isn't static since it should always be updated based\n    // on the route updates\n    lazyRouteProperty !== \"hasErrorBoundary\";\n    warning(\n      !isPropertyStaticallyDefined,\n      `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" defined but its lazy function is also returning a value for this property. The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n    );\n    if (!isPropertyStaticallyDefined && !immutableRouteKeys.has(lazyRouteProperty)) {\n      routeUpdates[lazyRouteProperty] = lazyRoute[lazyRouteProperty];\n    }\n  }\n  Object.assign(routeToUpdate, routeUpdates);\n  Object.assign(routeToUpdate, {\n    // To keep things framework agnostic, we use the provided `mapRouteProperties`\n    // function to set the framework-aware properties (`element`/`hasErrorBoundary`)\n    // since the logic will differ between frameworks.\n    ...mapRouteProperties2(routeToUpdate),\n    lazy: void 0\n  });\n}\nasync function defaultDataStrategy({\n  matches\n}) {\n  let matchesToLoad = matches.filter((m) => m.shouldLoad);\n  let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n  return results.reduce(\n    (acc, result, i) => Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n    {}\n  );\n}\nasync function callDataStrategyImpl(dataStrategyImpl, type, state, request, matchesToLoad, matches, fetcherKey, manifest, mapRouteProperties2, requestContext) {\n  let loadRouteDefinitionsPromises = matches.map(\n    (m) => m.route.lazy ? loadLazyRouteModule(m.route, mapRouteProperties2, manifest) : void 0\n  );\n  let dsMatches = matches.map((match, i) => {\n    let loadRoutePromise = loadRouteDefinitionsPromises[i];\n    let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n    let resolve = async (handlerOverride) => {\n      if (handlerOverride && request.method === \"GET\" && (match.route.lazy || match.route.loader)) {\n        shouldLoad = true;\n      }\n      return shouldLoad ? callLoaderOrAction(\n        type,\n        request,\n        match,\n        loadRoutePromise,\n        handlerOverride,\n        requestContext\n      ) : Promise.resolve({ type: \"data\" /* data */, result: void 0 });\n    };\n    return {\n      ...match,\n      shouldLoad,\n      resolve\n    };\n  });\n  let results = await dataStrategyImpl({\n    matches: dsMatches,\n    request,\n    params: matches[0].params,\n    fetcherKey,\n    context: requestContext\n  });\n  try {\n    await Promise.all(loadRouteDefinitionsPromises);\n  } catch (e) {\n  }\n  return results;\n}\nasync function callLoaderOrAction(type, request, match, loadRoutePromise, handlerOverride, staticContext) {\n  let result;\n  let onReject;\n  let runHandler = (handler) => {\n    let reject;\n    let abortPromise = new Promise((_, r) => reject = r);\n    onReject = () => reject();\n    request.signal.addEventListener(\"abort\", onReject);\n    let actualHandler = (ctx) => {\n      if (typeof handler !== \"function\") {\n        return Promise.reject(\n          new Error(\n            `You cannot call the handler for a route which defines a boolean \"${type}\" [routeId: ${match.route.id}]`\n          )\n        );\n      }\n      return handler(\n        {\n          request,\n          params: match.params,\n          context: staticContext\n        },\n        ...ctx !== void 0 ? [ctx] : []\n      );\n    };\n    let handlerPromise = (async () => {\n      try {\n        let val = await (handlerOverride ? handlerOverride((ctx) => actualHandler(ctx)) : actualHandler());\n        return { type: \"data\", result: val };\n      } catch (e) {\n        return { type: \"error\", result: e };\n      }\n    })();\n    return Promise.race([handlerPromise, abortPromise]);\n  };\n  try {\n    let handler = match.route[type];\n    if (loadRoutePromise) {\n      if (handler) {\n        let handlerError;\n        let [value] = await Promise.all([\n          // If the handler throws, don't let it immediately bubble out,\n          // since we need to let the lazy() execution finish so we know if this\n          // route has a boundary that can handle the error\n          runHandler(handler).catch((e) => {\n            handlerError = e;\n          }),\n          loadRoutePromise\n        ]);\n        if (handlerError !== void 0) {\n          throw handlerError;\n        }\n        result = value;\n      } else {\n        await loadRoutePromise;\n        handler = match.route[type];\n        if (handler) {\n          result = await runHandler(handler);\n        } else if (type === \"action\") {\n          let url = new URL(request.url);\n          let pathname = url.pathname + url.search;\n          throw getInternalRouterError(405, {\n            method: request.method,\n            pathname,\n            routeId: match.route.id\n          });\n        } else {\n          return { type: \"data\" /* data */, result: void 0 };\n        }\n      }\n    } else if (!handler) {\n      let url = new URL(request.url);\n      let pathname = url.pathname + url.search;\n      throw getInternalRouterError(404, {\n        pathname\n      });\n    } else {\n      result = await runHandler(handler);\n    }\n  } catch (e) {\n    return { type: \"error\" /* error */, result: e };\n  } finally {\n    if (onReject) {\n      request.signal.removeEventListener(\"abort\", onReject);\n    }\n  }\n  return result;\n}\nasync function convertDataStrategyResultToDataResult(dataStrategyResult) {\n  let { result, type } = dataStrategyResult;\n  if (isResponse(result)) {\n    let data2;\n    try {\n      let contentType = result.headers.get(\"Content-Type\");\n      if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n        if (result.body == null) {\n          data2 = null;\n        } else {\n          data2 = await result.json();\n        }\n      } else {\n        data2 = await result.text();\n      }\n    } catch (e) {\n      return { type: \"error\" /* error */, error: e };\n    }\n    if (type === \"error\" /* error */) {\n      return {\n        type: \"error\" /* error */,\n        error: new ErrorResponseImpl(result.status, result.statusText, data2),\n        statusCode: result.status,\n        headers: result.headers\n      };\n    }\n    return {\n      type: \"data\" /* data */,\n      data: data2,\n      statusCode: result.status,\n      headers: result.headers\n    };\n  }\n  if (type === \"error\" /* error */) {\n    if (isDataWithResponseInit(result)) {\n      if (result.data instanceof Error) {\n        return {\n          type: \"error\" /* error */,\n          error: result.data,\n          statusCode: result.init?.status\n        };\n      }\n      result = new ErrorResponseImpl(\n        result.init?.status || 500,\n        void 0,\n        result.data\n      );\n    }\n    return {\n      type: \"error\" /* error */,\n      error: result,\n      statusCode: isRouteErrorResponse(result) ? result.status : void 0\n    };\n  }\n  if (isDataWithResponseInit(result)) {\n    return {\n      type: \"data\" /* data */,\n      data: result.data,\n      statusCode: result.init?.status,\n      headers: result.init?.headers ? new Headers(result.init.headers) : void 0\n    };\n  }\n  return { type: \"data\" /* data */, data: result };\n}\nfunction normalizeRelativeRoutingRedirectResponse(response, request, routeId, matches, basename) {\n  let location = response.headers.get(\"Location\");\n  invariant(\n    location,\n    \"Redirects returned/thrown from loaders/actions must have a Location header\"\n  );\n  if (!ABSOLUTE_URL_REGEX.test(location)) {\n    let trimmedMatches = matches.slice(\n      0,\n      matches.findIndex((m) => m.route.id === routeId) + 1\n    );\n    location = normalizeTo(\n      new URL(request.url),\n      trimmedMatches,\n      basename,\n      location\n    );\n    response.headers.set(\"Location\", location);\n  }\n  return response;\n}\nfunction normalizeRedirectLocation(location, currentUrl, basename) {\n  if (ABSOLUTE_URL_REGEX.test(location)) {\n    let normalizedLocation = location;\n    let url = normalizedLocation.startsWith(\"//\") ? new URL(currentUrl.protocol + normalizedLocation) : new URL(normalizedLocation);\n    let isSameBasename = stripBasename(url.pathname, basename) != null;\n    if (url.origin === currentUrl.origin && isSameBasename) {\n      return url.pathname + url.search + url.hash;\n    }\n  }\n  return location;\n}\nfunction createClientSideRequest(history, location, signal, submission) {\n  let url = history.createURL(stripHashFromPath(location)).toString();\n  let init = { signal };\n  if (submission && isMutationMethod(submission.formMethod)) {\n    let { formMethod, formEncType } = submission;\n    init.method = formMethod.toUpperCase();\n    if (formEncType === \"application/json\") {\n      init.headers = new Headers({ \"Content-Type\": formEncType });\n      init.body = JSON.stringify(submission.json);\n    } else if (formEncType === \"text/plain\") {\n      init.body = submission.text;\n    } else if (formEncType === \"application/x-www-form-urlencoded\" && submission.formData) {\n      init.body = convertFormDataToSearchParams(submission.formData);\n    } else {\n      init.body = submission.formData;\n    }\n  }\n  return new Request(url, init);\n}\nfunction convertFormDataToSearchParams(formData) {\n  let searchParams = new URLSearchParams();\n  for (let [key, value] of formData.entries()) {\n    searchParams.append(key, typeof value === \"string\" ? value : value.name);\n  }\n  return searchParams;\n}\nfunction convertSearchParamsToFormData(searchParams) {\n  let formData = new FormData();\n  for (let [key, value] of searchParams.entries()) {\n    formData.append(key, value);\n  }\n  return formData;\n}\nfunction processRouteLoaderData(matches, results, pendingActionResult, isStaticHandler = false, skipLoaderErrorBubbling = false) {\n  let loaderData = {};\n  let errors = null;\n  let statusCode;\n  let foundError = false;\n  let loaderHeaders = {};\n  let pendingError = pendingActionResult && isErrorResult(pendingActionResult[1]) ? pendingActionResult[1].error : void 0;\n  matches.forEach((match) => {\n    if (!(match.route.id in results)) {\n      return;\n    }\n    let id = match.route.id;\n    let result = results[id];\n    invariant(\n      !isRedirectResult(result),\n      \"Cannot handle redirect results in processLoaderData\"\n    );\n    if (isErrorResult(result)) {\n      let error = result.error;\n      if (pendingError !== void 0) {\n        error = pendingError;\n        pendingError = void 0;\n      }\n      errors = errors || {};\n      if (skipLoaderErrorBubbling) {\n        errors[id] = error;\n      } else {\n        let boundaryMatch = findNearestBoundary(matches, id);\n        if (errors[boundaryMatch.route.id] == null) {\n          errors[boundaryMatch.route.id] = error;\n        }\n      }\n      if (!isStaticHandler) {\n        loaderData[id] = ResetLoaderDataSymbol;\n      }\n      if (!foundError) {\n        foundError = true;\n        statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n      }\n      if (result.headers) {\n        loaderHeaders[id] = result.headers;\n      }\n    } else {\n      loaderData[id] = result.data;\n      if (result.statusCode && result.statusCode !== 200 && !foundError) {\n        statusCode = result.statusCode;\n      }\n      if (result.headers) {\n        loaderHeaders[id] = result.headers;\n      }\n    }\n  });\n  if (pendingError !== void 0 && pendingActionResult) {\n    errors = { [pendingActionResult[0]]: pendingError };\n    loaderData[pendingActionResult[0]] = void 0;\n  }\n  return {\n    loaderData,\n    errors,\n    statusCode: statusCode || 200,\n    loaderHeaders\n  };\n}\nfunction processLoaderData(state, matches, results, pendingActionResult, revalidatingFetchers, fetcherResults) {\n  let { loaderData, errors } = processRouteLoaderData(\n    matches,\n    results,\n    pendingActionResult\n  );\n  revalidatingFetchers.forEach((rf) => {\n    let { key, match, controller } = rf;\n    let result = fetcherResults[key];\n    invariant(result, \"Did not find corresponding fetcher result\");\n    if (controller && controller.signal.aborted) {\n      return;\n    } else if (isErrorResult(result)) {\n      let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n      if (!(errors && errors[boundaryMatch.route.id])) {\n        errors = {\n          ...errors,\n          [boundaryMatch.route.id]: result.error\n        };\n      }\n      state.fetchers.delete(key);\n    } else if (isRedirectResult(result)) {\n      invariant(false, \"Unhandled fetcher revalidation redirect\");\n    } else {\n      let doneFetcher = getDoneFetcher(result.data);\n      state.fetchers.set(key, doneFetcher);\n    }\n  });\n  return { loaderData, errors };\n}\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n  let mergedLoaderData = Object.entries(newLoaderData).filter(([, v]) => v !== ResetLoaderDataSymbol).reduce((merged, [k, v]) => {\n    merged[k] = v;\n    return merged;\n  }, {});\n  for (let match of matches) {\n    let id = match.route.id;\n    if (!newLoaderData.hasOwnProperty(id) && loaderData.hasOwnProperty(id) && match.route.loader) {\n      mergedLoaderData[id] = loaderData[id];\n    }\n    if (errors && errors.hasOwnProperty(id)) {\n      break;\n    }\n  }\n  return mergedLoaderData;\n}\nfunction getActionDataForCommit(pendingActionResult) {\n  if (!pendingActionResult) {\n    return {};\n  }\n  return isErrorResult(pendingActionResult[1]) ? {\n    // Clear out prior actionData on errors\n    actionData: {}\n  } : {\n    actionData: {\n      [pendingActionResult[0]]: pendingActionResult[1].data\n    }\n  };\n}\nfunction findNearestBoundary(matches, routeId) {\n  let eligibleMatches = routeId ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1) : [...matches];\n  return eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) || matches[0];\n}\nfunction getShortCircuitMatches(routes) {\n  let route = routes.length === 1 ? routes[0] : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n    id: `__shim-error-route__`\n  };\n  return {\n    matches: [\n      {\n        params: {},\n        pathname: \"\",\n        pathnameBase: \"\",\n        route\n      }\n    ],\n    route\n  };\n}\nfunction getInternalRouterError(status, {\n  pathname,\n  routeId,\n  method,\n  type,\n  message\n} = {}) {\n  let statusText = \"Unknown Server Error\";\n  let errorMessage = \"Unknown @remix-run/router error\";\n  if (status === 400) {\n    statusText = \"Bad Request\";\n    if (method && pathname && routeId) {\n      errorMessage = `You made a ${method} request to \"${pathname}\" but did not provide a \\`loader\\` for route \"${routeId}\", so there is no way to handle the request.`;\n    } else if (type === \"invalid-body\") {\n      errorMessage = \"Unable to encode submission body\";\n    }\n  } else if (status === 403) {\n    statusText = \"Forbidden\";\n    errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n  } else if (status === 404) {\n    statusText = \"Not Found\";\n    errorMessage = `No route matches URL \"${pathname}\"`;\n  } else if (status === 405) {\n    statusText = \"Method Not Allowed\";\n    if (method && pathname && routeId) {\n      errorMessage = `You made a ${method.toUpperCase()} request to \"${pathname}\" but did not provide an \\`action\\` for route \"${routeId}\", so there is no way to handle the request.`;\n    } else if (method) {\n      errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n    }\n  }\n  return new ErrorResponseImpl(\n    status || 500,\n    statusText,\n    new Error(errorMessage),\n    true\n  );\n}\nfunction findRedirect(results) {\n  let entries = Object.entries(results);\n  for (let i = entries.length - 1; i >= 0; i--) {\n    let [key, result] = entries[i];\n    if (isRedirectResult(result)) {\n      return { key, result };\n    }\n  }\n}\nfunction stripHashFromPath(path) {\n  let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n  return createPath({ ...parsedPath, hash: \"\" });\n}\nfunction isHashChangeOnly(a, b) {\n  if (a.pathname !== b.pathname || a.search !== b.search) {\n    return false;\n  }\n  if (a.hash === \"\") {\n    return b.hash !== \"\";\n  } else if (a.hash === b.hash) {\n    return true;\n  } else if (b.hash !== \"\") {\n    return true;\n  }\n  return false;\n}\nfunction isDataStrategyResult(result) {\n  return result != null && typeof result === \"object\" && \"type\" in result && \"result\" in result && (result.type === \"data\" /* data */ || result.type === \"error\" /* error */);\n}\nfunction isRedirectDataStrategyResult(result) {\n  return isResponse(result.result) && redirectStatusCodes.has(result.result.status);\n}\nfunction isErrorResult(result) {\n  return result.type === \"error\" /* error */;\n}\nfunction isRedirectResult(result) {\n  return (result && result.type) === \"redirect\" /* redirect */;\n}\nfunction isDataWithResponseInit(value) {\n  return typeof value === \"object\" && value != null && \"type\" in value && \"data\" in value && \"init\" in value && value.type === \"DataWithResponseInit\";\n}\nfunction isResponse(value) {\n  return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\nfunction isRedirectStatusCode(statusCode) {\n  return redirectStatusCodes.has(statusCode);\n}\nfunction isRedirectResponse(result) {\n  return isResponse(result) && isRedirectStatusCode(result.status) && result.headers.has(\"Location\");\n}\nfunction isValidMethod(method) {\n  return validRequestMethods.has(method.toUpperCase());\n}\nfunction isMutationMethod(method) {\n  return validMutationMethods.has(method.toUpperCase());\n}\nfunction hasNakedIndexQuery(search) {\n  return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\nfunction getTargetMatch(matches, location) {\n  let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n  if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n    return matches[matches.length - 1];\n  }\n  let pathMatches = getPathContributingMatches(matches);\n  return pathMatches[pathMatches.length - 1];\n}\nfunction getSubmissionFromNavigation(navigation) {\n  let { formMethod, formAction, formEncType, text, formData, json } = navigation;\n  if (!formMethod || !formAction || !formEncType) {\n    return;\n  }\n  if (text != null) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData: void 0,\n      json: void 0,\n      text\n    };\n  } else if (formData != null) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData,\n      json: void 0,\n      text: void 0\n    };\n  } else if (json !== void 0) {\n    return {\n      formMethod,\n      formAction,\n      formEncType,\n      formData: void 0,\n      json,\n      text: void 0\n    };\n  }\n}\nfunction getLoadingNavigation(location, submission) {\n  if (submission) {\n    let navigation = {\n      state: \"loading\",\n      location,\n      formMethod: submission.formMethod,\n      formAction: submission.formAction,\n      formEncType: submission.formEncType,\n      formData: submission.formData,\n      json: submission.json,\n      text: submission.text\n    };\n    return navigation;\n  } else {\n    let navigation = {\n      state: \"loading\",\n      location,\n      formMethod: void 0,\n      formAction: void 0,\n      formEncType: void 0,\n      formData: void 0,\n      json: void 0,\n      text: void 0\n    };\n    return navigation;\n  }\n}\nfunction getSubmittingNavigation(location, submission) {\n  let navigation = {\n    state: \"submitting\",\n    location,\n    formMethod: submission.formMethod,\n    formAction: submission.formAction,\n    formEncType: submission.formEncType,\n    formData: submission.formData,\n    json: submission.json,\n    text: submission.text\n  };\n  return navigation;\n}\nfunction getLoadingFetcher(submission, data2) {\n  if (submission) {\n    let fetcher = {\n      state: \"loading\",\n      formMethod: submission.formMethod,\n      formAction: submission.formAction,\n      formEncType: submission.formEncType,\n      formData: submission.formData,\n      json: submission.json,\n      text: submission.text,\n      data: data2\n    };\n    return fetcher;\n  } else {\n    let fetcher = {\n      state: \"loading\",\n      formMethod: void 0,\n      formAction: void 0,\n      formEncType: void 0,\n      formData: void 0,\n      json: void 0,\n      text: void 0,\n      data: data2\n    };\n    return fetcher;\n  }\n}\nfunction getSubmittingFetcher(submission, existingFetcher) {\n  let fetcher = {\n    state: \"submitting\",\n    formMethod: submission.formMethod,\n    formAction: submission.formAction,\n    formEncType: submission.formEncType,\n    formData: submission.formData,\n    json: submission.json,\n    text: submission.text,\n    data: existingFetcher ? existingFetcher.data : void 0\n  };\n  return fetcher;\n}\nfunction getDoneFetcher(data2) {\n  let fetcher = {\n    state: \"idle\",\n    formMethod: void 0,\n    formAction: void 0,\n    formEncType: void 0,\n    formData: void 0,\n    json: void 0,\n    text: void 0,\n    data: data2\n  };\n  return fetcher;\n}\nfunction restoreAppliedTransitions(_window, transitions) {\n  try {\n    let sessionPositions = _window.sessionStorage.getItem(\n      TRANSITIONS_STORAGE_KEY\n    );\n    if (sessionPositions) {\n      let json = JSON.parse(sessionPositions);\n      for (let [k, v] of Object.entries(json || {})) {\n        if (v && Array.isArray(v)) {\n          transitions.set(k, new Set(v || []));\n        }\n      }\n    }\n  } catch (e) {\n  }\n}\nfunction persistAppliedTransitions(_window, transitions) {\n  if (transitions.size > 0) {\n    let json = {};\n    for (let [k, v] of transitions) {\n      json[k] = [...v];\n    }\n    try {\n      _window.sessionStorage.setItem(\n        TRANSITIONS_STORAGE_KEY,\n        JSON.stringify(json)\n      );\n    } catch (error) {\n      warning(\n        false,\n        `Failed to save applied view transitions in sessionStorage (${error}).`\n      );\n    }\n  }\n}\nfunction createDeferred() {\n  let resolve;\n  let reject;\n  let promise = new Promise((res, rej) => {\n    resolve = async (val) => {\n      res(val);\n      try {\n        await promise;\n      } catch (e) {\n      }\n    };\n    reject = async (error) => {\n      rej(error);\n      try {\n        await promise;\n      } catch (e) {\n      }\n    };\n  });\n  return {\n    promise,\n    //@ts-ignore\n    resolve,\n    //@ts-ignore\n    reject\n  };\n}\n\n// lib/components.tsx\nimport * as React3 from \"react\";\n\n// lib/context.ts\nimport * as React from \"react\";\nvar DataRouterContext = React.createContext(null);\nDataRouterContext.displayName = \"DataRouter\";\nvar DataRouterStateContext = React.createContext(null);\nDataRouterStateContext.displayName = \"DataRouterState\";\nvar ViewTransitionContext = React.createContext({\n  isTransitioning: false\n});\nViewTransitionContext.displayName = \"ViewTransition\";\nvar FetchersContext = React.createContext(\n  /* @__PURE__ */ new Map()\n);\nFetchersContext.displayName = \"Fetchers\";\nvar AwaitContext = React.createContext(null);\nAwaitContext.displayName = \"Await\";\nvar NavigationContext = React.createContext(\n  null\n);\nNavigationContext.displayName = \"Navigation\";\nvar LocationContext = React.createContext(\n  null\n);\nLocationContext.displayName = \"Location\";\nvar RouteContext = React.createContext({\n  outlet: null,\n  matches: [],\n  isDataRoute: false\n});\nRouteContext.displayName = \"Route\";\nvar RouteErrorContext = React.createContext(null);\nRouteErrorContext.displayName = \"RouteError\";\n\n// lib/hooks.tsx\nimport * as React2 from \"react\";\nvar ENABLE_DEV_WARNINGS = true;\nfunction useHref(to, { relative } = {}) {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useHref() may be used only in the context of a <Router> component.`\n  );\n  let { basename, navigator: navigator2 } = React2.useContext(NavigationContext);\n  let { hash, pathname, search } = useResolvedPath(to, { relative });\n  let joinedPathname = pathname;\n  if (basename !== \"/\") {\n    joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n  }\n  return navigator2.createHref({ pathname: joinedPathname, search, hash });\n}\nfunction useInRouterContext() {\n  return React2.useContext(LocationContext) != null;\n}\nfunction useLocation() {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useLocation() may be used only in the context of a <Router> component.`\n  );\n  return React2.useContext(LocationContext).location;\n}\nfunction useNavigationType() {\n  return React2.useContext(LocationContext).navigationType;\n}\nfunction useMatch(pattern) {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useMatch() may be used only in the context of a <Router> component.`\n  );\n  let { pathname } = useLocation();\n  return React2.useMemo(\n    () => matchPath(pattern, decodePath(pathname)),\n    [pathname, pattern]\n  );\n}\nvar navigateEffectWarning = `You should call navigate() in a React.useEffect(), not when your component is first rendered.`;\nfunction useIsomorphicLayoutEffect(cb) {\n  let isStatic = React2.useContext(NavigationContext).static;\n  if (!isStatic) {\n    React2.useLayoutEffect(cb);\n  }\n}\nfunction useNavigate() {\n  let { isDataRoute } = React2.useContext(RouteContext);\n  return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\nfunction useNavigateUnstable() {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useNavigate() may be used only in the context of a <Router> component.`\n  );\n  let dataRouterContext = React2.useContext(DataRouterContext);\n  let { basename, navigator: navigator2 } = React2.useContext(NavigationContext);\n  let { matches } = React2.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n  let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n  let activeRef = React2.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n  let navigate = React2.useCallback(\n    (to, options = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n      if (!activeRef.current) return;\n      if (typeof to === \"number\") {\n        navigator2.go(to);\n        return;\n      }\n      let path = resolveTo(\n        to,\n        JSON.parse(routePathnamesJson),\n        locationPathname,\n        options.relative === \"path\"\n      );\n      if (dataRouterContext == null && basename !== \"/\") {\n        path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n      }\n      (!!options.replace ? navigator2.replace : navigator2.push)(\n        path,\n        options.state,\n        options\n      );\n    },\n    [\n      basename,\n      navigator2,\n      routePathnamesJson,\n      locationPathname,\n      dataRouterContext\n    ]\n  );\n  return navigate;\n}\nvar OutletContext = React2.createContext(null);\nfunction useOutletContext() {\n  return React2.useContext(OutletContext);\n}\nfunction useOutlet(context) {\n  let outlet = React2.useContext(RouteContext).outlet;\n  if (outlet) {\n    return /* @__PURE__ */ React2.createElement(OutletContext.Provider, { value: context }, outlet);\n  }\n  return outlet;\n}\nfunction useParams() {\n  let { matches } = React2.useContext(RouteContext);\n  let routeMatch = matches[matches.length - 1];\n  return routeMatch ? routeMatch.params : {};\n}\nfunction useResolvedPath(to, { relative } = {}) {\n  let { matches } = React2.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n  let routePathnamesJson = JSON.stringify(getResolveToMatches(matches));\n  return React2.useMemo(\n    () => resolveTo(\n      to,\n      JSON.parse(routePathnamesJson),\n      locationPathname,\n      relative === \"path\"\n    ),\n    [to, routePathnamesJson, locationPathname, relative]\n  );\n}\nfunction useRoutes(routes, locationArg) {\n  return useRoutesImpl(routes, locationArg);\n}\nfunction useRoutesImpl(routes, locationArg, dataRouterState, future) {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of the\n    // router loaded. We can help them understand how to avoid that.\n    `useRoutes() may be used only in the context of a <Router> component.`\n  );\n  let { navigator: navigator2 } = React2.useContext(NavigationContext);\n  let { matches: parentMatches } = React2.useContext(RouteContext);\n  let routeMatch = parentMatches[parentMatches.length - 1];\n  let parentParams = routeMatch ? routeMatch.params : {};\n  let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n  let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n  let parentRoute = routeMatch && routeMatch.route;\n  if (ENABLE_DEV_WARNINGS) {\n    let parentPath = parentRoute && parentRoute.path || \"\";\n    warningOnce(\n      parentPathname,\n      !parentRoute || parentPath.endsWith(\"*\") || parentPath.endsWith(\"*?\"),\n      `You rendered descendant <Routes> (or called \\`useRoutes()\\`) at \"${parentPathname}\" (under <Route path=\"${parentPath}\">) but the parent route path has no trailing \"*\". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.\n\nPlease change the parent <Route path=\"${parentPath}\"> to <Route path=\"${parentPath === \"/\" ? \"*\" : `${parentPath}/*`}\">.`\n    );\n  }\n  let locationFromContext = useLocation();\n  let location;\n  if (locationArg) {\n    let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n    invariant(\n      parentPathnameBase === \"/\" || parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n      `When overriding the location using \\`<Routes location>\\` or \\`useRoutes(routes, location)\\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n    );\n    location = parsedLocationArg;\n  } else {\n    location = locationFromContext;\n  }\n  let pathname = location.pathname || \"/\";\n  let remainingPathname = pathname;\n  if (parentPathnameBase !== \"/\") {\n    let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n    let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n    remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n  }\n  let matches = matchRoutes(routes, { pathname: remainingPathname });\n  if (ENABLE_DEV_WARNINGS) {\n    warning(\n      parentRoute || matches != null,\n      `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n    );\n    warning(\n      matches == null || matches[matches.length - 1].route.element !== void 0 || matches[matches.length - 1].route.Component !== void 0 || matches[matches.length - 1].route.lazy !== void 0,\n      `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an \"empty\" page.`\n    );\n  }\n  let renderedMatches = _renderMatches(\n    matches && matches.map(\n      (match) => Object.assign({}, match, {\n        params: Object.assign({}, parentParams, match.params),\n        pathname: joinPaths([\n          parentPathnameBase,\n          // Re-encode pathnames that were decoded inside matchRoutes\n          navigator2.encodeLocation ? navigator2.encodeLocation(match.pathname).pathname : match.pathname\n        ]),\n        pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([\n          parentPathnameBase,\n          // Re-encode pathnames that were decoded inside matchRoutes\n          navigator2.encodeLocation ? navigator2.encodeLocation(match.pathnameBase).pathname : match.pathnameBase\n        ])\n      })\n    ),\n    parentMatches,\n    dataRouterState,\n    future\n  );\n  if (locationArg && renderedMatches) {\n    return /* @__PURE__ */ React2.createElement(\n      LocationContext.Provider,\n      {\n        value: {\n          location: {\n            pathname: \"/\",\n            search: \"\",\n            hash: \"\",\n            state: null,\n            key: \"default\",\n            ...location\n          },\n          navigationType: \"POP\" /* Pop */\n        }\n      },\n      renderedMatches\n    );\n  }\n  return renderedMatches;\n}\nfunction DefaultErrorComponent() {\n  let error = useRouteError();\n  let message = isRouteErrorResponse(error) ? `${error.status} ${error.statusText}` : error instanceof Error ? error.message : JSON.stringify(error);\n  let stack = error instanceof Error ? error.stack : null;\n  let lightgrey = \"rgba(200,200,200, 0.5)\";\n  let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n  let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n  let devInfo = null;\n  if (ENABLE_DEV_WARNINGS) {\n    console.error(\n      \"Error handled by React Router default ErrorBoundary:\",\n      error\n    );\n    devInfo = /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"p\", null, \"\\u{1F4BF} Hey developer \\u{1F44B}\"), /* @__PURE__ */ React2.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"ErrorBoundary\"), \" or\", \" \", /* @__PURE__ */ React2.createElement(\"code\", { style: codeStyles }, \"errorElement\"), \" prop on your route.\"));\n  }\n  return /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement(\"h2\", null, \"Unexpected Application Error!\"), /* @__PURE__ */ React2.createElement(\"h3\", { style: { fontStyle: \"italic\" } }, message), stack ? /* @__PURE__ */ React2.createElement(\"pre\", { style: preStyles }, stack) : null, devInfo);\n}\nvar defaultErrorElement = /* @__PURE__ */ React2.createElement(DefaultErrorComponent, null);\nvar RenderErrorBoundary = class extends React2.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      location: props.location,\n      revalidation: props.revalidation,\n      error: props.error\n    };\n  }\n  static getDerivedStateFromError(error) {\n    return { error };\n  }\n  static getDerivedStateFromProps(props, state) {\n    if (state.location !== props.location || state.revalidation !== \"idle\" && props.revalidation === \"idle\") {\n      return {\n        error: props.error,\n        location: props.location,\n        revalidation: props.revalidation\n      };\n    }\n    return {\n      error: props.error !== void 0 ? props.error : state.error,\n      location: state.location,\n      revalidation: props.revalidation || state.revalidation\n    };\n  }\n  componentDidCatch(error, errorInfo) {\n    console.error(\n      \"React Router caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n  render() {\n    return this.state.error !== void 0 ? /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: this.props.routeContext }, /* @__PURE__ */ React2.createElement(\n      RouteErrorContext.Provider,\n      {\n        value: this.state.error,\n        children: this.props.component\n      }\n    )) : this.props.children;\n  }\n};\nfunction RenderedRoute({ routeContext, match, children }) {\n  let dataRouterContext = React2.useContext(DataRouterContext);\n  if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && (match.route.errorElement || match.route.ErrorBoundary)) {\n    dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n  }\n  return /* @__PURE__ */ React2.createElement(RouteContext.Provider, { value: routeContext }, children);\n}\nfunction _renderMatches(matches, parentMatches = [], dataRouterState = null, future = null) {\n  if (matches == null) {\n    if (!dataRouterState) {\n      return null;\n    }\n    if (dataRouterState.errors) {\n      matches = dataRouterState.matches;\n    } else if (parentMatches.length === 0 && !dataRouterState.initialized && dataRouterState.matches.length > 0) {\n      matches = dataRouterState.matches;\n    } else {\n      return null;\n    }\n  }\n  let renderedMatches = matches;\n  let errors = dataRouterState?.errors;\n  if (errors != null) {\n    let errorIndex = renderedMatches.findIndex(\n      (m) => m.route.id && errors?.[m.route.id] !== void 0\n    );\n    invariant(\n      errorIndex >= 0,\n      `Could not find a matching route for errors on route IDs: ${Object.keys(\n        errors\n      ).join(\",\")}`\n    );\n    renderedMatches = renderedMatches.slice(\n      0,\n      Math.min(renderedMatches.length, errorIndex + 1)\n    );\n  }\n  let renderFallback = false;\n  let fallbackIndex = -1;\n  if (dataRouterState) {\n    for (let i = 0; i < renderedMatches.length; i++) {\n      let match = renderedMatches[i];\n      if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n        fallbackIndex = i;\n      }\n      if (match.route.id) {\n        let { loaderData, errors: errors2 } = dataRouterState;\n        let needsToRunLoader = match.route.loader && !loaderData.hasOwnProperty(match.route.id) && (!errors2 || errors2[match.route.id] === void 0);\n        if (match.route.lazy || needsToRunLoader) {\n          renderFallback = true;\n          if (fallbackIndex >= 0) {\n            renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n          } else {\n            renderedMatches = [renderedMatches[0]];\n          }\n          break;\n        }\n      }\n    }\n  }\n  return renderedMatches.reduceRight((outlet, match, index) => {\n    let error;\n    let shouldRenderHydrateFallback = false;\n    let errorElement = null;\n    let hydrateFallbackElement = null;\n    if (dataRouterState) {\n      error = errors && match.route.id ? errors[match.route.id] : void 0;\n      errorElement = match.route.errorElement || defaultErrorElement;\n      if (renderFallback) {\n        if (fallbackIndex < 0 && index === 0) {\n          warningOnce(\n            \"route-fallback\",\n            false,\n            \"No `HydrateFallback` element provided to render during initial hydration\"\n          );\n          shouldRenderHydrateFallback = true;\n          hydrateFallbackElement = null;\n        } else if (fallbackIndex === index) {\n          shouldRenderHydrateFallback = true;\n          hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n        }\n      }\n    }\n    let matches2 = parentMatches.concat(renderedMatches.slice(0, index + 1));\n    let getChildren = () => {\n      let children;\n      if (error) {\n        children = errorElement;\n      } else if (shouldRenderHydrateFallback) {\n        children = hydrateFallbackElement;\n      } else if (match.route.Component) {\n        children = /* @__PURE__ */ React2.createElement(match.route.Component, null);\n      } else if (match.route.element) {\n        children = match.route.element;\n      } else {\n        children = outlet;\n      }\n      return /* @__PURE__ */ React2.createElement(\n        RenderedRoute,\n        {\n          match,\n          routeContext: {\n            outlet,\n            matches: matches2,\n            isDataRoute: dataRouterState != null\n          },\n          children\n        }\n      );\n    };\n    return dataRouterState && (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? /* @__PURE__ */ React2.createElement(\n      RenderErrorBoundary,\n      {\n        location: dataRouterState.location,\n        revalidation: dataRouterState.revalidation,\n        component: errorElement,\n        error,\n        children: getChildren(),\n        routeContext: { outlet: null, matches: matches2, isDataRoute: true }\n      }\n    ) : getChildren();\n  }, null);\n}\nfunction getDataRouterConsoleError(hookName) {\n  return `${hookName} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext(hookName) {\n  let ctx = React2.useContext(DataRouterContext);\n  invariant(ctx, getDataRouterConsoleError(hookName));\n  return ctx;\n}\nfunction useDataRouterState(hookName) {\n  let state = React2.useContext(DataRouterStateContext);\n  invariant(state, getDataRouterConsoleError(hookName));\n  return state;\n}\nfunction useRouteContext(hookName) {\n  let route = React2.useContext(RouteContext);\n  invariant(route, getDataRouterConsoleError(hookName));\n  return route;\n}\nfunction useCurrentRouteId(hookName) {\n  let route = useRouteContext(hookName);\n  let thisRoute = route.matches[route.matches.length - 1];\n  invariant(\n    thisRoute.route.id,\n    `${hookName} can only be used on routes that contain a unique \"id\"`\n  );\n  return thisRoute.route.id;\n}\nfunction useRouteId() {\n  return useCurrentRouteId(\"useRouteId\" /* UseRouteId */);\n}\nfunction useNavigation() {\n  let state = useDataRouterState(\"useNavigation\" /* UseNavigation */);\n  return state.navigation;\n}\nfunction useRevalidator() {\n  let dataRouterContext = useDataRouterContext(\"useRevalidator\" /* UseRevalidator */);\n  let state = useDataRouterState(\"useRevalidator\" /* UseRevalidator */);\n  return React2.useMemo(\n    () => ({\n      async revalidate() {\n        await dataRouterContext.router.revalidate();\n      },\n      state: state.revalidation\n    }),\n    [dataRouterContext.router, state.revalidation]\n  );\n}\nfunction useMatches() {\n  let { matches, loaderData } = useDataRouterState(\n    \"useMatches\" /* UseMatches */\n  );\n  return React2.useMemo(\n    () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n    [matches, loaderData]\n  );\n}\nfunction useLoaderData() {\n  let state = useDataRouterState(\"useLoaderData\" /* UseLoaderData */);\n  let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n  return state.loaderData[routeId];\n}\nfunction useRouteLoaderData(routeId) {\n  let state = useDataRouterState(\"useRouteLoaderData\" /* UseRouteLoaderData */);\n  return state.loaderData[routeId];\n}\nfunction useActionData() {\n  let state = useDataRouterState(\"useActionData\" /* UseActionData */);\n  let routeId = useCurrentRouteId(\"useLoaderData\" /* UseLoaderData */);\n  return state.actionData ? state.actionData[routeId] : void 0;\n}\nfunction useRouteError() {\n  let error = React2.useContext(RouteErrorContext);\n  let state = useDataRouterState(\"useRouteError\" /* UseRouteError */);\n  let routeId = useCurrentRouteId(\"useRouteError\" /* UseRouteError */);\n  if (error !== void 0) {\n    return error;\n  }\n  return state.errors?.[routeId];\n}\nfunction useAsyncValue() {\n  let value = React2.useContext(AwaitContext);\n  return value?._data;\n}\nfunction useAsyncError() {\n  let value = React2.useContext(AwaitContext);\n  return value?._error;\n}\nvar blockerId = 0;\nfunction useBlocker(shouldBlock) {\n  let { router, basename } = useDataRouterContext(\"useBlocker\" /* UseBlocker */);\n  let state = useDataRouterState(\"useBlocker\" /* UseBlocker */);\n  let [blockerKey, setBlockerKey] = React2.useState(\"\");\n  let blockerFunction = React2.useCallback(\n    (arg) => {\n      if (typeof shouldBlock !== \"function\") {\n        return !!shouldBlock;\n      }\n      if (basename === \"/\") {\n        return shouldBlock(arg);\n      }\n      let { currentLocation, nextLocation, historyAction } = arg;\n      return shouldBlock({\n        currentLocation: {\n          ...currentLocation,\n          pathname: stripBasename(currentLocation.pathname, basename) || currentLocation.pathname\n        },\n        nextLocation: {\n          ...nextLocation,\n          pathname: stripBasename(nextLocation.pathname, basename) || nextLocation.pathname\n        },\n        historyAction\n      });\n    },\n    [basename, shouldBlock]\n  );\n  React2.useEffect(() => {\n    let key = String(++blockerId);\n    setBlockerKey(key);\n    return () => router.deleteBlocker(key);\n  }, [router]);\n  React2.useEffect(() => {\n    if (blockerKey !== \"\") {\n      router.getBlocker(blockerKey, blockerFunction);\n    }\n  }, [router, blockerKey, blockerFunction]);\n  return blockerKey && state.blockers.has(blockerKey) ? state.blockers.get(blockerKey) : IDLE_BLOCKER;\n}\nfunction useNavigateStable() {\n  let { router } = useDataRouterContext(\"useNavigate\" /* UseNavigateStable */);\n  let id = useCurrentRouteId(\"useNavigate\" /* UseNavigateStable */);\n  let activeRef = React2.useRef(false);\n  useIsomorphicLayoutEffect(() => {\n    activeRef.current = true;\n  });\n  let navigate = React2.useCallback(\n    async (to, options = {}) => {\n      warning(activeRef.current, navigateEffectWarning);\n      if (!activeRef.current) return;\n      if (typeof to === \"number\") {\n        router.navigate(to);\n      } else {\n        await router.navigate(to, { fromRouteId: id, ...options });\n      }\n    },\n    [router, id]\n  );\n  return navigate;\n}\nvar alreadyWarned = {};\nfunction warningOnce(key, cond, message) {\n  if (!cond && !alreadyWarned[key]) {\n    alreadyWarned[key] = true;\n    warning(false, message);\n  }\n}\n\n// lib/server-runtime/warnings.ts\nvar alreadyWarned2 = {};\nfunction warnOnce(condition, message) {\n  if (!condition && !alreadyWarned2[message]) {\n    alreadyWarned2[message] = true;\n    console.warn(message);\n  }\n}\n\n// lib/components.tsx\nvar ENABLE_DEV_WARNINGS2 = true;\nfunction mapRouteProperties(route) {\n  let updates = {\n    // Note: this check also occurs in createRoutesFromChildren so update\n    // there if you change this -- please and thank you!\n    hasErrorBoundary: route.hasErrorBoundary || route.ErrorBoundary != null || route.errorElement != null\n  };\n  if (route.Component) {\n    if (ENABLE_DEV_WARNINGS2) {\n      if (route.element) {\n        warning(\n          false,\n          \"You should not include both `Component` and `element` on your route - `Component` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      element: React3.createElement(route.Component),\n      Component: void 0\n    });\n  }\n  if (route.HydrateFallback) {\n    if (ENABLE_DEV_WARNINGS2) {\n      if (route.hydrateFallbackElement) {\n        warning(\n          false,\n          \"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      hydrateFallbackElement: React3.createElement(route.HydrateFallback),\n      HydrateFallback: void 0\n    });\n  }\n  if (route.ErrorBoundary) {\n    if (ENABLE_DEV_WARNINGS2) {\n      if (route.errorElement) {\n        warning(\n          false,\n          \"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used.\"\n        );\n      }\n    }\n    Object.assign(updates, {\n      errorElement: React3.createElement(route.ErrorBoundary),\n      ErrorBoundary: void 0\n    });\n  }\n  return updates;\n}\nfunction createMemoryRouter(routes, opts) {\n  return createRouter({\n    basename: opts?.basename,\n    future: opts?.future,\n    history: createMemoryHistory({\n      initialEntries: opts?.initialEntries,\n      initialIndex: opts?.initialIndex\n    }),\n    hydrationData: opts?.hydrationData,\n    routes,\n    mapRouteProperties,\n    dataStrategy: opts?.dataStrategy,\n    patchRoutesOnNavigation: opts?.patchRoutesOnNavigation\n  }).initialize();\n}\nvar Deferred = class {\n  constructor() {\n    this.status = \"pending\";\n    this.promise = new Promise((resolve, reject) => {\n      this.resolve = (value) => {\n        if (this.status === \"pending\") {\n          this.status = \"resolved\";\n          resolve(value);\n        }\n      };\n      this.reject = (reason) => {\n        if (this.status === \"pending\") {\n          this.status = \"rejected\";\n          reject(reason);\n        }\n      };\n    });\n  }\n};\nfunction RouterProvider({\n  router,\n  flushSync: reactDomFlushSyncImpl\n}) {\n  let [state, setStateImpl] = React3.useState(router.state);\n  let [pendingState, setPendingState] = React3.useState();\n  let [vtContext, setVtContext] = React3.useState({\n    isTransitioning: false\n  });\n  let [renderDfd, setRenderDfd] = React3.useState();\n  let [transition, setTransition] = React3.useState();\n  let [interruption, setInterruption] = React3.useState();\n  let fetcherData = React3.useRef(/* @__PURE__ */ new Map());\n  let setState = React3.useCallback(\n    (newState, { deletedFetchers, flushSync, viewTransitionOpts }) => {\n      newState.fetchers.forEach((fetcher, key) => {\n        if (fetcher.data !== void 0) {\n          fetcherData.current.set(key, fetcher.data);\n        }\n      });\n      deletedFetchers.forEach((key) => fetcherData.current.delete(key));\n      warnOnce(\n        flushSync === false || reactDomFlushSyncImpl != null,\n        'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable.  Please update your app to `import { RouterProvider } from \"react-router/dom\"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.'\n      );\n      let isViewTransitionAvailable = router.window != null && router.window.document != null && typeof router.window.document.startViewTransition === \"function\";\n      warnOnce(\n        viewTransitionOpts == null || isViewTransitionAvailable,\n        \"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available.\"\n      );\n      if (!viewTransitionOpts || !isViewTransitionAvailable) {\n        if (reactDomFlushSyncImpl && flushSync) {\n          reactDomFlushSyncImpl(() => setStateImpl(newState));\n        } else {\n          React3.startTransition(() => setStateImpl(newState));\n        }\n        return;\n      }\n      if (reactDomFlushSyncImpl && flushSync) {\n        reactDomFlushSyncImpl(() => {\n          if (transition) {\n            renderDfd && renderDfd.resolve();\n            transition.skipTransition();\n          }\n          setVtContext({\n            isTransitioning: true,\n            flushSync: true,\n            currentLocation: viewTransitionOpts.currentLocation,\n            nextLocation: viewTransitionOpts.nextLocation\n          });\n        });\n        let t = router.window.document.startViewTransition(() => {\n          reactDomFlushSyncImpl(() => setStateImpl(newState));\n        });\n        t.finished.finally(() => {\n          reactDomFlushSyncImpl(() => {\n            setRenderDfd(void 0);\n            setTransition(void 0);\n            setPendingState(void 0);\n            setVtContext({ isTransitioning: false });\n          });\n        });\n        reactDomFlushSyncImpl(() => setTransition(t));\n        return;\n      }\n      if (transition) {\n        renderDfd && renderDfd.resolve();\n        transition.skipTransition();\n        setInterruption({\n          state: newState,\n          currentLocation: viewTransitionOpts.currentLocation,\n          nextLocation: viewTransitionOpts.nextLocation\n        });\n      } else {\n        setPendingState(newState);\n        setVtContext({\n          isTransitioning: true,\n          flushSync: false,\n          currentLocation: viewTransitionOpts.currentLocation,\n          nextLocation: viewTransitionOpts.nextLocation\n        });\n      }\n    },\n    [router.window, reactDomFlushSyncImpl, transition, renderDfd]\n  );\n  React3.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n  React3.useEffect(() => {\n    if (vtContext.isTransitioning && !vtContext.flushSync) {\n      setRenderDfd(new Deferred());\n    }\n  }, [vtContext]);\n  React3.useEffect(() => {\n    if (renderDfd && pendingState && router.window) {\n      let newState = pendingState;\n      let renderPromise = renderDfd.promise;\n      let transition2 = router.window.document.startViewTransition(async () => {\n        React3.startTransition(() => setStateImpl(newState));\n        await renderPromise;\n      });\n      transition2.finished.finally(() => {\n        setRenderDfd(void 0);\n        setTransition(void 0);\n        setPendingState(void 0);\n        setVtContext({ isTransitioning: false });\n      });\n      setTransition(transition2);\n    }\n  }, [pendingState, renderDfd, router.window]);\n  React3.useEffect(() => {\n    if (renderDfd && pendingState && state.location.key === pendingState.location.key) {\n      renderDfd.resolve();\n    }\n  }, [renderDfd, transition, state.location, pendingState]);\n  React3.useEffect(() => {\n    if (!vtContext.isTransitioning && interruption) {\n      setPendingState(interruption.state);\n      setVtContext({\n        isTransitioning: true,\n        flushSync: false,\n        currentLocation: interruption.currentLocation,\n        nextLocation: interruption.nextLocation\n      });\n      setInterruption(void 0);\n    }\n  }, [vtContext.isTransitioning, interruption]);\n  let navigator2 = React3.useMemo(() => {\n    return {\n      createHref: router.createHref,\n      encodeLocation: router.encodeLocation,\n      go: (n) => router.navigate(n),\n      push: (to, state2, opts) => router.navigate(to, {\n        state: state2,\n        preventScrollReset: opts?.preventScrollReset\n      }),\n      replace: (to, state2, opts) => router.navigate(to, {\n        replace: true,\n        state: state2,\n        preventScrollReset: opts?.preventScrollReset\n      })\n    };\n  }, [router]);\n  let basename = router.basename || \"/\";\n  let dataRouterContext = React3.useMemo(\n    () => ({\n      router,\n      navigator: navigator2,\n      static: false,\n      basename\n    }),\n    [router, navigator2, basename]\n  );\n  return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React3.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React3.createElement(FetchersContext.Provider, { value: fetcherData.current }, /* @__PURE__ */ React3.createElement(ViewTransitionContext.Provider, { value: vtContext }, /* @__PURE__ */ React3.createElement(\n    Router,\n    {\n      basename,\n      location: state.location,\n      navigationType: state.historyAction,\n      navigator: navigator2\n    },\n    /* @__PURE__ */ React3.createElement(\n      MemoizedDataRoutes,\n      {\n        routes: router.routes,\n        future: router.future,\n        state\n      }\n    )\n  ))))), null);\n}\nvar MemoizedDataRoutes = React3.memo(DataRoutes);\nfunction DataRoutes({\n  routes,\n  future,\n  state\n}) {\n  return useRoutesImpl(routes, void 0, state, future);\n}\nfunction MemoryRouter({\n  basename,\n  children,\n  initialEntries,\n  initialIndex\n}) {\n  let historyRef = React3.useRef();\n  if (historyRef.current == null) {\n    historyRef.current = createMemoryHistory({\n      initialEntries,\n      initialIndex,\n      v5Compat: true\n    });\n  }\n  let history = historyRef.current;\n  let [state, setStateImpl] = React3.useState({\n    action: history.action,\n    location: history.location\n  });\n  let setState = React3.useCallback(\n    (newState) => {\n      React3.startTransition(() => setStateImpl(newState));\n    },\n    [setStateImpl]\n  );\n  React3.useLayoutEffect(() => history.listen(setState), [history, setState]);\n  return /* @__PURE__ */ React3.createElement(\n    Router,\n    {\n      basename,\n      children,\n      location: state.location,\n      navigationType: state.action,\n      navigator: history\n    }\n  );\n}\nfunction Navigate({\n  to,\n  replace: replace2,\n  state,\n  relative\n}) {\n  invariant(\n    useInRouterContext(),\n    // TODO: This error is probably because they somehow have 2 versions of\n    // the router loaded. We can help them understand how to avoid that.\n    `<Navigate> may be used only in the context of a <Router> component.`\n  );\n  let { static: isStatic } = React3.useContext(NavigationContext);\n  warning(\n    !isStatic,\n    `<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.`\n  );\n  let { matches } = React3.useContext(RouteContext);\n  let { pathname: locationPathname } = useLocation();\n  let navigate = useNavigate();\n  let path = resolveTo(\n    to,\n    getResolveToMatches(matches),\n    locationPathname,\n    relative === \"path\"\n  );\n  let jsonPath = JSON.stringify(path);\n  React3.useEffect(() => {\n    navigate(JSON.parse(jsonPath), { replace: replace2, state, relative });\n  }, [navigate, jsonPath, relative, replace2, state]);\n  return null;\n}\nfunction Outlet(props) {\n  return useOutlet(props.context);\n}\nfunction Route(_props) {\n  invariant(\n    false,\n    `A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.`\n  );\n}\nfunction Router({\n  basename: basenameProp = \"/\",\n  children = null,\n  location: locationProp,\n  navigationType = \"POP\" /* Pop */,\n  navigator: navigator2,\n  static: staticProp = false\n}) {\n  invariant(\n    !useInRouterContext(),\n    `You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`\n  );\n  let basename = basenameProp.replace(/^\\/*/, \"/\");\n  let navigationContext = React3.useMemo(\n    () => ({\n      basename,\n      navigator: navigator2,\n      static: staticProp,\n      future: {}\n    }),\n    [basename, navigator2, staticProp]\n  );\n  if (typeof locationProp === \"string\") {\n    locationProp = parsePath(locationProp);\n  }\n  let {\n    pathname = \"/\",\n    search = \"\",\n    hash = \"\",\n    state = null,\n    key = \"default\"\n  } = locationProp;\n  let locationContext = React3.useMemo(() => {\n    let trailingPathname = stripBasename(pathname, basename);\n    if (trailingPathname == null) {\n      return null;\n    }\n    return {\n      location: {\n        pathname: trailingPathname,\n        search,\n        hash,\n        state,\n        key\n      },\n      navigationType\n    };\n  }, [basename, pathname, search, hash, state, key, navigationType]);\n  warning(\n    locationContext != null,\n    `<Router basename=\"${basename}\"> is not able to match the URL \"${pathname}${search}${hash}\" because it does not start with the basename, so the <Router> won't render anything.`\n  );\n  if (locationContext == null) {\n    return null;\n  }\n  return /* @__PURE__ */ React3.createElement(NavigationContext.Provider, { value: navigationContext }, /* @__PURE__ */ React3.createElement(LocationContext.Provider, { children, value: locationContext }));\n}\nfunction Routes({\n  children,\n  location\n}) {\n  return useRoutes(createRoutesFromChildren(children), location);\n}\nfunction Await({\n  children,\n  errorElement,\n  resolve\n}) {\n  return /* @__PURE__ */ React3.createElement(AwaitErrorBoundary, { resolve, errorElement }, /* @__PURE__ */ React3.createElement(ResolveAwait, null, children));\n}\nvar AwaitErrorBoundary = class extends React3.Component {\n  constructor(props) {\n    super(props);\n    this.state = { error: null };\n  }\n  static getDerivedStateFromError(error) {\n    return { error };\n  }\n  componentDidCatch(error, errorInfo) {\n    console.error(\n      \"<Await> caught the following error during render\",\n      error,\n      errorInfo\n    );\n  }\n  render() {\n    let { children, errorElement, resolve } = this.props;\n    let promise = null;\n    let status = 0 /* pending */;\n    if (!(resolve instanceof Promise)) {\n      status = 1 /* success */;\n      promise = Promise.resolve();\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_data\", { get: () => resolve });\n    } else if (this.state.error) {\n      status = 2 /* error */;\n      let renderError = this.state.error;\n      promise = Promise.reject().catch(() => {\n      });\n      Object.defineProperty(promise, \"_tracked\", { get: () => true });\n      Object.defineProperty(promise, \"_error\", { get: () => renderError });\n    } else if (resolve._tracked) {\n      promise = resolve;\n      status = \"_error\" in promise ? 2 /* error */ : \"_data\" in promise ? 1 /* success */ : 0 /* pending */;\n    } else {\n      status = 0 /* pending */;\n      Object.defineProperty(resolve, \"_tracked\", { get: () => true });\n      promise = resolve.then(\n        (data2) => Object.defineProperty(resolve, \"_data\", { get: () => data2 }),\n        (error) => Object.defineProperty(resolve, \"_error\", { get: () => error })\n      );\n    }\n    if (status === 2 /* error */ && !errorElement) {\n      throw promise._error;\n    }\n    if (status === 2 /* error */) {\n      return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children: errorElement });\n    }\n    if (status === 1 /* success */) {\n      return /* @__PURE__ */ React3.createElement(AwaitContext.Provider, { value: promise, children });\n    }\n    throw promise;\n  }\n};\nfunction ResolveAwait({\n  children\n}) {\n  let data2 = useAsyncValue();\n  let toRender = typeof children === \"function\" ? children(data2) : children;\n  return /* @__PURE__ */ React3.createElement(React3.Fragment, null, toRender);\n}\nfunction createRoutesFromChildren(children, parentPath = []) {\n  let routes = [];\n  React3.Children.forEach(children, (element, index) => {\n    if (!React3.isValidElement(element)) {\n      return;\n    }\n    let treePath = [...parentPath, index];\n    if (element.type === React3.Fragment) {\n      routes.push.apply(\n        routes,\n        createRoutesFromChildren(element.props.children, treePath)\n      );\n      return;\n    }\n    invariant(\n      element.type === Route,\n      `[${typeof element.type === \"string\" ? element.type : element.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`\n    );\n    invariant(\n      !element.props.index || !element.props.children,\n      \"An index route cannot have child routes.\"\n    );\n    let route = {\n      id: element.props.id || treePath.join(\"-\"),\n      caseSensitive: element.props.caseSensitive,\n      element: element.props.element,\n      Component: element.props.Component,\n      index: element.props.index,\n      path: element.props.path,\n      loader: element.props.loader,\n      action: element.props.action,\n      hydrateFallbackElement: element.props.hydrateFallbackElement,\n      HydrateFallback: element.props.HydrateFallback,\n      errorElement: element.props.errorElement,\n      ErrorBoundary: element.props.ErrorBoundary,\n      hasErrorBoundary: element.props.hasErrorBoundary === true || element.props.ErrorBoundary != null || element.props.errorElement != null,\n      shouldRevalidate: element.props.shouldRevalidate,\n      handle: element.props.handle,\n      lazy: element.props.lazy\n    };\n    if (element.props.children) {\n      route.children = createRoutesFromChildren(\n        element.props.children,\n        treePath\n      );\n    }\n    routes.push(route);\n  });\n  return routes;\n}\nvar createRoutesFromElements = createRoutesFromChildren;\nfunction renderMatches(matches) {\n  return _renderMatches(matches);\n}\n\n// lib/dom/lib.tsx\nimport * as React10 from \"react\";\n\n// lib/dom/dom.ts\nvar defaultMethod = \"get\";\nvar defaultEncType = \"application/x-www-form-urlencoded\";\nfunction isHtmlElement(object) {\n  return object != null && typeof object.tagName === \"string\";\n}\nfunction isButtonElement(object) {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\nfunction isFormElement(object) {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\nfunction isInputElement(object) {\n  return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\nfunction isModifiedEvent(event) {\n  return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\nfunction shouldProcessLinkClick(event, target) {\n  return event.button === 0 && // Ignore everything but left clicks\n  (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n  !isModifiedEvent(event);\n}\nfunction createSearchParams(init = \"\") {\n  return new URLSearchParams(\n    typeof init === \"string\" || Array.isArray(init) || init instanceof URLSearchParams ? init : Object.keys(init).reduce((memo2, key) => {\n      let value = init[key];\n      return memo2.concat(\n        Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n      );\n    }, [])\n  );\n}\nfunction getSearchParamsForLocation(locationSearch, defaultSearchParams) {\n  let searchParams = createSearchParams(locationSearch);\n  if (defaultSearchParams) {\n    defaultSearchParams.forEach((_, key) => {\n      if (!searchParams.has(key)) {\n        defaultSearchParams.getAll(key).forEach((value) => {\n          searchParams.append(key, value);\n        });\n      }\n    });\n  }\n  return searchParams;\n}\nvar _formDataSupportsSubmitter = null;\nfunction isFormDataSubmitterSupported() {\n  if (_formDataSupportsSubmitter === null) {\n    try {\n      new FormData(\n        document.createElement(\"form\"),\n        // @ts-expect-error if FormData supports the submitter parameter, this will throw\n        0\n      );\n      _formDataSupportsSubmitter = false;\n    } catch (e) {\n      _formDataSupportsSubmitter = true;\n    }\n  }\n  return _formDataSupportsSubmitter;\n}\nvar supportedFormEncTypes = /* @__PURE__ */ new Set([\n  \"application/x-www-form-urlencoded\",\n  \"multipart/form-data\",\n  \"text/plain\"\n]);\nfunction getFormEncType(encType) {\n  if (encType != null && !supportedFormEncTypes.has(encType)) {\n    warning(\n      false,\n      `\"${encType}\" is not a valid \\`encType\\` for \\`<Form>\\`/\\`<fetcher.Form>\\` and will default to \"${defaultEncType}\"`\n    );\n    return null;\n  }\n  return encType;\n}\nfunction getFormSubmissionInfo(target, basename) {\n  let method;\n  let action;\n  let encType;\n  let formData;\n  let body;\n  if (isFormElement(target)) {\n    let attr = target.getAttribute(\"action\");\n    action = attr ? stripBasename(attr, basename) : null;\n    method = target.getAttribute(\"method\") || defaultMethod;\n    encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n    formData = new FormData(target);\n  } else if (isButtonElement(target) || isInputElement(target) && (target.type === \"submit\" || target.type === \"image\")) {\n    let form = target.form;\n    if (form == null) {\n      throw new Error(\n        `Cannot submit a <button> or <input type=\"submit\"> without a <form>`\n      );\n    }\n    let attr = target.getAttribute(\"formaction\") || form.getAttribute(\"action\");\n    action = attr ? stripBasename(attr, basename) : null;\n    method = target.getAttribute(\"formmethod\") || form.getAttribute(\"method\") || defaultMethod;\n    encType = getFormEncType(target.getAttribute(\"formenctype\")) || getFormEncType(form.getAttribute(\"enctype\")) || defaultEncType;\n    formData = new FormData(form, target);\n    if (!isFormDataSubmitterSupported()) {\n      let { name, type, value } = target;\n      if (type === \"image\") {\n        let prefix = name ? `${name}.` : \"\";\n        formData.append(`${prefix}x`, \"0\");\n        formData.append(`${prefix}y`, \"0\");\n      } else if (name) {\n        formData.append(name, value);\n      }\n    }\n  } else if (isHtmlElement(target)) {\n    throw new Error(\n      `Cannot submit element that is not <form>, <button>, or <input type=\"submit|image\">`\n    );\n  } else {\n    method = defaultMethod;\n    action = null;\n    encType = defaultEncType;\n    body = target;\n  }\n  if (formData && encType === \"text/plain\") {\n    body = formData;\n    formData = void 0;\n  }\n  return { action, method: method.toLowerCase(), encType, formData, body };\n}\n\n// lib/dom/ssr/components.tsx\nimport * as React9 from \"react\";\n\n// lib/dom/ssr/invariant.ts\nfunction invariant2(value, message) {\n  if (value === false || value === null || typeof value === \"undefined\") {\n    throw new Error(message);\n  }\n}\n\n// lib/dom/ssr/routeModules.ts\nasync function loadRouteModule(route, routeModulesCache) {\n  if (route.id in routeModulesCache) {\n    return routeModulesCache[route.id];\n  }\n  try {\n    let routeModule = await import(\n      /* @vite-ignore */\n      /* webpackIgnore: true */\n      route.module\n    );\n    routeModulesCache[route.id] = routeModule;\n    return routeModule;\n  } catch (error) {\n    console.error(\n      `Error loading route module \\`${route.module}\\`, reloading page...`\n    );\n    console.error(error);\n    if (window.__reactRouterContext && window.__reactRouterContext.isSpaMode && // @ts-expect-error\n    import.meta.hot) {\n      throw error;\n    }\n    window.location.reload();\n    return new Promise(() => {\n    });\n  }\n}\n\n// lib/dom/ssr/links.ts\nfunction getKeyedLinksForMatches(matches, routeModules, manifest) {\n  let descriptors = matches.map((match) => {\n    let module = routeModules[match.route.id];\n    let route = manifest.routes[match.route.id];\n    return [\n      route && route.css ? route.css.map((href) => ({ rel: \"stylesheet\", href })) : [],\n      module?.links?.() || []\n    ];\n  }).flat(2);\n  let preloads = getCurrentPageModulePreloadHrefs(matches, manifest);\n  return dedupeLinkDescriptors(descriptors, preloads);\n}\nasync function prefetchStyleLinks(route, routeModule) {\n  if (!route.css && !routeModule.links || !isPreloadSupported()) return;\n  let descriptors = [];\n  if (route.css) {\n    descriptors.push(...route.css.map((href) => ({ rel: \"stylesheet\", href })));\n  }\n  if (routeModule.links) {\n    descriptors.push(...routeModule.links());\n  }\n  if (descriptors.length === 0) return;\n  let styleLinks = [];\n  for (let descriptor of descriptors) {\n    if (!isPageLinkDescriptor(descriptor) && descriptor.rel === \"stylesheet\") {\n      styleLinks.push({\n        ...descriptor,\n        rel: \"preload\",\n        as: \"style\"\n      });\n    }\n  }\n  let matchingLinks = styleLinks.filter(\n    (link) => (!link.media || window.matchMedia(link.media).matches) && !document.querySelector(`link[rel=\"stylesheet\"][href=\"${link.href}\"]`)\n  );\n  await Promise.all(matchingLinks.map(prefetchStyleLink));\n}\nasync function prefetchStyleLink(descriptor) {\n  return new Promise((resolve) => {\n    let link = document.createElement(\"link\");\n    Object.assign(link, descriptor);\n    function removeLink() {\n      if (document.head.contains(link)) {\n        document.head.removeChild(link);\n      }\n    }\n    link.onload = () => {\n      removeLink();\n      resolve();\n    };\n    link.onerror = () => {\n      removeLink();\n      resolve();\n    };\n    document.head.appendChild(link);\n  });\n}\nfunction isPageLinkDescriptor(object) {\n  return object != null && typeof object.page === \"string\";\n}\nfunction isHtmlLinkDescriptor(object) {\n  if (object == null) {\n    return false;\n  }\n  if (object.href == null) {\n    return object.rel === \"preload\" && typeof object.imageSrcSet === \"string\" && typeof object.imageSizes === \"string\";\n  }\n  return typeof object.rel === \"string\" && typeof object.href === \"string\";\n}\nasync function getKeyedPrefetchLinks(matches, manifest, routeModules) {\n  let links = await Promise.all(\n    matches.map(async (match) => {\n      let route = manifest.routes[match.route.id];\n      if (route) {\n        let mod = await loadRouteModule(route, routeModules);\n        return mod.links ? mod.links() : [];\n      }\n      return [];\n    })\n  );\n  return dedupeLinkDescriptors(\n    links.flat(1).filter(isHtmlLinkDescriptor).filter((link) => link.rel === \"stylesheet\" || link.rel === \"preload\").map(\n      (link) => link.rel === \"stylesheet\" ? { ...link, rel: \"prefetch\", as: \"style\" } : { ...link, rel: \"prefetch\" }\n    )\n  );\n}\nfunction getNewMatchesForLinks(page, nextMatches, currentMatches, manifest, location, mode) {\n  let isNew = (match, index) => {\n    if (!currentMatches[index]) return true;\n    return match.route.id !== currentMatches[index].route.id;\n  };\n  let matchPathChanged = (match, index) => {\n    return (\n      // param change, /users/123 -> /users/456\n      currentMatches[index].pathname !== match.pathname || // splat param changed, which is not present in match.path\n      // e.g. /files/images/avatar.jpg -> files/finances.xls\n      currentMatches[index].route.path?.endsWith(\"*\") && currentMatches[index].params[\"*\"] !== match.params[\"*\"]\n    );\n  };\n  if (mode === \"assets\") {\n    return nextMatches.filter(\n      (match, index) => isNew(match, index) || matchPathChanged(match, index)\n    );\n  }\n  if (mode === \"data\") {\n    return nextMatches.filter((match, index) => {\n      let manifestRoute = manifest.routes[match.route.id];\n      if (!manifestRoute || !manifestRoute.hasLoader) {\n        return false;\n      }\n      if (isNew(match, index) || matchPathChanged(match, index)) {\n        return true;\n      }\n      if (match.route.shouldRevalidate) {\n        let routeChoice = match.route.shouldRevalidate({\n          currentUrl: new URL(\n            location.pathname + location.search + location.hash,\n            window.origin\n          ),\n          currentParams: currentMatches[0]?.params || {},\n          nextUrl: new URL(page, window.origin),\n          nextParams: match.params,\n          defaultShouldRevalidate: true\n        });\n        if (typeof routeChoice === \"boolean\") {\n          return routeChoice;\n        }\n      }\n      return true;\n    });\n  }\n  return [];\n}\nfunction getModuleLinkHrefs(matches, manifestPatch) {\n  return dedupeHrefs(\n    matches.map((match) => {\n      let route = manifestPatch.routes[match.route.id];\n      if (!route) return [];\n      let hrefs = [route.module];\n      if (route.imports) {\n        hrefs = hrefs.concat(route.imports);\n      }\n      return hrefs;\n    }).flat(1)\n  );\n}\nfunction getCurrentPageModulePreloadHrefs(matches, manifest) {\n  return dedupeHrefs(\n    matches.map((match) => {\n      let route = manifest.routes[match.route.id];\n      if (!route) return [];\n      let hrefs = [route.module];\n      if (route.imports) {\n        hrefs = hrefs.concat(route.imports);\n      }\n      return hrefs;\n    }).flat(1)\n  );\n}\nfunction dedupeHrefs(hrefs) {\n  return [...new Set(hrefs)];\n}\nfunction sortKeys(obj) {\n  let sorted = {};\n  let keys = Object.keys(obj).sort();\n  for (let key of keys) {\n    sorted[key] = obj[key];\n  }\n  return sorted;\n}\nfunction dedupeLinkDescriptors(descriptors, preloads) {\n  let set = /* @__PURE__ */ new Set();\n  let preloadsSet = new Set(preloads);\n  return descriptors.reduce((deduped, descriptor) => {\n    let alreadyModulePreload = preloads && !isPageLinkDescriptor(descriptor) && descriptor.as === \"script\" && descriptor.href && preloadsSet.has(descriptor.href);\n    if (alreadyModulePreload) {\n      return deduped;\n    }\n    let key = JSON.stringify(sortKeys(descriptor));\n    if (!set.has(key)) {\n      set.add(key);\n      deduped.push({ key, link: descriptor });\n    }\n    return deduped;\n  }, []);\n}\nvar _isPreloadSupported;\nfunction isPreloadSupported() {\n  if (_isPreloadSupported !== void 0) {\n    return _isPreloadSupported;\n  }\n  let el = document.createElement(\"link\");\n  _isPreloadSupported = el.relList.supports(\"preload\");\n  el = null;\n  return _isPreloadSupported;\n}\n\n// lib/dom/ssr/markup.ts\nvar ESCAPE_LOOKUP = {\n  \"&\": \"\\\\u0026\",\n  \">\": \"\\\\u003e\",\n  \"<\": \"\\\\u003c\",\n  \"\\u2028\": \"\\\\u2028\",\n  \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml(html) {\n  return html.replace(ESCAPE_REGEX, (match) => ESCAPE_LOOKUP[match]);\n}\nfunction createHtml(html) {\n  return { __html: html };\n}\n\n// lib/dom/ssr/single-fetch.tsx\nimport * as React4 from \"react\";\nimport { decode } from \"turbo-stream\";\n\n// lib/dom/ssr/data.ts\nasync function createRequestInit(request) {\n  let init = { signal: request.signal };\n  if (request.method !== \"GET\") {\n    init.method = request.method;\n    let contentType = request.headers.get(\"Content-Type\");\n    if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n      init.headers = { \"Content-Type\": contentType };\n      init.body = JSON.stringify(await request.json());\n    } else if (contentType && /\\btext\\/plain\\b/.test(contentType)) {\n      init.headers = { \"Content-Type\": contentType };\n      init.body = await request.text();\n    } else if (contentType && /\\bapplication\\/x-www-form-urlencoded\\b/.test(contentType)) {\n      init.body = new URLSearchParams(await request.text());\n    } else {\n      init.body = await request.formData();\n    }\n  }\n  return init;\n}\n\n// lib/dom/ssr/single-fetch.tsx\nvar SingleFetchRedirectSymbol = Symbol(\"SingleFetchRedirect\");\nfunction StreamTransfer({\n  context,\n  identifier,\n  reader,\n  textDecoder,\n  nonce\n}) {\n  if (!context.renderMeta || !context.renderMeta.didRenderScripts) {\n    return null;\n  }\n  if (!context.renderMeta.streamCache) {\n    context.renderMeta.streamCache = {};\n  }\n  let { streamCache } = context.renderMeta;\n  let promise = streamCache[identifier];\n  if (!promise) {\n    promise = streamCache[identifier] = reader.read().then((result) => {\n      streamCache[identifier].result = {\n        done: result.done,\n        value: textDecoder.decode(result.value, { stream: true })\n      };\n    }).catch((e) => {\n      streamCache[identifier].error = e;\n    });\n  }\n  if (promise.error) {\n    throw promise.error;\n  }\n  if (promise.result === void 0) {\n    throw promise;\n  }\n  let { done, value } = promise.result;\n  let scriptTag = value ? /* @__PURE__ */ React4.createElement(\n    \"script\",\n    {\n      nonce,\n      dangerouslySetInnerHTML: {\n        __html: `window.__reactRouterContext.streamController.enqueue(${escapeHtml(\n          JSON.stringify(value)\n        )});`\n      }\n    }\n  ) : null;\n  if (done) {\n    return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(\n      \"script\",\n      {\n        nonce,\n        dangerouslySetInnerHTML: {\n          __html: `window.__reactRouterContext.streamController.close();`\n        }\n      }\n    ));\n  } else {\n    return /* @__PURE__ */ React4.createElement(React4.Fragment, null, scriptTag, /* @__PURE__ */ React4.createElement(React4.Suspense, null, /* @__PURE__ */ React4.createElement(\n      StreamTransfer,\n      {\n        context,\n        identifier: identifier + 1,\n        reader,\n        textDecoder,\n        nonce\n      }\n    )));\n  }\n}\nfunction getSingleFetchDataStrategy(manifest, routeModules, getRouter) {\n  return async ({ request, matches, fetcherKey }) => {\n    if (request.method !== \"GET\") {\n      return singleFetchActionStrategy(request, matches);\n    }\n    if (fetcherKey) {\n      return singleFetchLoaderFetcherStrategy(request, matches);\n    }\n    return singleFetchLoaderNavigationStrategy(\n      manifest,\n      routeModules,\n      getRouter(),\n      request,\n      matches\n    );\n  };\n}\nasync function singleFetchActionStrategy(request, matches) {\n  let actionMatch = matches.find((m) => m.shouldLoad);\n  invariant2(actionMatch, \"No action match found\");\n  let actionStatus = void 0;\n  let result = await actionMatch.resolve(async (handler) => {\n    let result2 = await handler(async () => {\n      let url = singleFetchUrl(request.url);\n      let init = await createRequestInit(request);\n      let { data: data2, status } = await fetchAndDecode(url, init);\n      actionStatus = status;\n      return unwrapSingleFetchResult(\n        data2,\n        actionMatch.route.id\n      );\n    });\n    return result2;\n  });\n  if (isResponse(result.result) || isRouteErrorResponse(result.result)) {\n    return { [actionMatch.route.id]: result };\n  }\n  return {\n    [actionMatch.route.id]: {\n      type: result.type,\n      result: data(result.result, actionStatus)\n    }\n  };\n}\nasync function singleFetchLoaderNavigationStrategy(manifest, routeModules, router, request, matches) {\n  let routesParams = /* @__PURE__ */ new Set();\n  let foundOptOutRoute = false;\n  let routeDfds = matches.map(() => createDeferred2());\n  let routesLoadedPromise = Promise.all(routeDfds.map((d) => d.promise));\n  let singleFetchDfd = createDeferred2();\n  let url = stripIndexParam(singleFetchUrl(request.url));\n  let init = await createRequestInit(request);\n  let results = {};\n  let resolvePromise = Promise.all(\n    matches.map(\n      async (m, i) => m.resolve(async (handler) => {\n        routeDfds[i].resolve();\n        let manifestRoute = manifest.routes[m.route.id];\n        if (!m.shouldLoad) {\n          if (!router.state.initialized) {\n            return;\n          }\n          if (m.route.id in router.state.loaderData && manifestRoute && manifestRoute.hasLoader && routeModules[m.route.id]?.shouldRevalidate) {\n            foundOptOutRoute = true;\n            return;\n          }\n        }\n        if (manifestRoute && manifestRoute.hasClientLoader) {\n          if (manifestRoute.hasLoader) {\n            foundOptOutRoute = true;\n          }\n          try {\n            let result = await fetchSingleLoader(\n              handler,\n              url,\n              init,\n              m.route.id\n            );\n            results[m.route.id] = { type: \"data\", result };\n          } catch (e) {\n            results[m.route.id] = { type: \"error\", result: e };\n          }\n          return;\n        }\n        if (manifestRoute && manifestRoute.hasLoader) {\n          routesParams.add(m.route.id);\n        }\n        try {\n          let result = await handler(async () => {\n            let data2 = await singleFetchDfd.promise;\n            return unwrapSingleFetchResults(data2, m.route.id);\n          });\n          results[m.route.id] = {\n            type: \"data\",\n            result\n          };\n        } catch (e) {\n          results[m.route.id] = {\n            type: \"error\",\n            result: e\n          };\n        }\n      })\n    )\n  );\n  await routesLoadedPromise;\n  if ((!router.state.initialized || routesParams.size === 0) && !window.__reactRouterHdrActive) {\n    singleFetchDfd.resolve({});\n  } else {\n    try {\n      if (foundOptOutRoute && routesParams.size > 0) {\n        url.searchParams.set(\n          \"_routes\",\n          matches.filter((m) => routesParams.has(m.route.id)).map((m) => m.route.id).join(\",\")\n        );\n      }\n      let data2 = await fetchAndDecode(url, init);\n      singleFetchDfd.resolve(data2.data);\n    } catch (e) {\n      singleFetchDfd.reject(e);\n    }\n  }\n  await resolvePromise;\n  return results;\n}\nasync function singleFetchLoaderFetcherStrategy(request, matches) {\n  let fetcherMatch = matches.find((m) => m.shouldLoad);\n  invariant2(fetcherMatch, \"No fetcher match found\");\n  let result = await fetcherMatch.resolve(async (handler) => {\n    let url = stripIndexParam(singleFetchUrl(request.url));\n    let init = await createRequestInit(request);\n    return fetchSingleLoader(handler, url, init, fetcherMatch.route.id);\n  });\n  return { [fetcherMatch.route.id]: result };\n}\nfunction fetchSingleLoader(handler, url, init, routeId) {\n  return handler(async () => {\n    let singleLoaderUrl = new URL(url);\n    singleLoaderUrl.searchParams.set(\"_routes\", routeId);\n    let { data: data2 } = await fetchAndDecode(singleLoaderUrl, init);\n    return unwrapSingleFetchResults(data2, routeId);\n  });\n}\nfunction stripIndexParam(url) {\n  let indexValues = url.searchParams.getAll(\"index\");\n  url.searchParams.delete(\"index\");\n  let indexValuesToKeep = [];\n  for (let indexValue of indexValues) {\n    if (indexValue) {\n      indexValuesToKeep.push(indexValue);\n    }\n  }\n  for (let toKeep of indexValuesToKeep) {\n    url.searchParams.append(\"index\", toKeep);\n  }\n  return url;\n}\nfunction singleFetchUrl(reqUrl) {\n  let url = typeof reqUrl === \"string\" ? new URL(\n    reqUrl,\n    // This can be called during the SSR flow via PrefetchPageLinksImpl so\n    // don't assume window is available\n    typeof window === \"undefined\" ? \"server://singlefetch/\" : window.location.origin\n  ) : reqUrl;\n  if (url.pathname === \"/\") {\n    url.pathname = \"_root.data\";\n  } else {\n    url.pathname = `${url.pathname.replace(/\\/$/, \"\")}.data`;\n  }\n  return url;\n}\nasync function fetchAndDecode(url, init) {\n  let res = await fetch(url, init);\n  if (res.status === 404 && !res.headers.has(\"X-Remix-Response\")) {\n    throw new ErrorResponseImpl(404, \"Not Found\", true);\n  }\n  invariant2(res.body, \"No response body to decode\");\n  try {\n    let decoded = await decodeViaTurboStream(res.body, window);\n    return { status: res.status, data: decoded.value };\n  } catch (e) {\n    throw new Error(\"Unable to decode turbo-stream response\");\n  }\n}\nfunction decodeViaTurboStream(body, global2) {\n  return decode(body, {\n    plugins: [\n      (type, ...rest) => {\n        if (type === \"SanitizedError\") {\n          let [name, message, stack] = rest;\n          let Constructor = Error;\n          if (name && name in global2 && typeof global2[name] === \"function\") {\n            Constructor = global2[name];\n          }\n          let error = new Constructor(message);\n          error.stack = stack;\n          return { value: error };\n        }\n        if (type === \"ErrorResponse\") {\n          let [data2, status, statusText] = rest;\n          return {\n            value: new ErrorResponseImpl(status, statusText, data2)\n          };\n        }\n        if (type === \"SingleFetchRedirect\") {\n          return { value: { [SingleFetchRedirectSymbol]: rest[0] } };\n        }\n        if (type === \"SingleFetchClassInstance\") {\n          return { value: rest[0] };\n        }\n        if (type === \"SingleFetchFallback\") {\n          return { value: void 0 };\n        }\n      }\n    ]\n  });\n}\nfunction unwrapSingleFetchResults(results, routeId) {\n  let redirect2 = results[SingleFetchRedirectSymbol];\n  if (redirect2) {\n    return unwrapSingleFetchResult(redirect2, routeId);\n  }\n  return results[routeId] !== void 0 ? unwrapSingleFetchResult(results[routeId], routeId) : null;\n}\nfunction unwrapSingleFetchResult(result, routeId) {\n  if (\"error\" in result) {\n    throw result.error;\n  } else if (\"redirect\" in result) {\n    let headers = {};\n    if (result.revalidate) {\n      headers[\"X-Remix-Revalidate\"] = \"yes\";\n    }\n    if (result.reload) {\n      headers[\"X-Remix-Reload-Document\"] = \"yes\";\n    }\n    if (result.replace) {\n      headers[\"X-Remix-Replace\"] = \"yes\";\n    }\n    throw redirect(result.redirect, { status: result.status, headers });\n  } else if (\"data\" in result) {\n    return result.data;\n  } else {\n    throw new Error(`No response found for routeId \"${routeId}\"`);\n  }\n}\nfunction createDeferred2() {\n  let resolve;\n  let reject;\n  let promise = new Promise((res, rej) => {\n    resolve = async (val) => {\n      res(val);\n      try {\n        await promise;\n      } catch (e) {\n      }\n    };\n    reject = async (error) => {\n      rej(error);\n      try {\n        await promise;\n      } catch (e) {\n      }\n    };\n  });\n  return {\n    promise,\n    //@ts-ignore\n    resolve,\n    //@ts-ignore\n    reject\n  };\n}\n\n// lib/dom/ssr/fog-of-war.ts\nimport * as React8 from \"react\";\n\n// lib/dom/ssr/routes.tsx\nimport * as React7 from \"react\";\n\n// lib/dom/ssr/errorBoundaries.tsx\nimport * as React5 from \"react\";\nvar RemixErrorBoundary = class extends React5.Component {\n  constructor(props) {\n    super(props);\n    this.state = { error: props.error || null, location: props.location };\n  }\n  static getDerivedStateFromError(error) {\n    return { error };\n  }\n  static getDerivedStateFromProps(props, state) {\n    if (state.location !== props.location) {\n      return { error: props.error || null, location: props.location };\n    }\n    return { error: props.error || state.error, location: state.location };\n  }\n  render() {\n    if (this.state.error) {\n      return /* @__PURE__ */ React5.createElement(\n        RemixRootDefaultErrorBoundary,\n        {\n          error: this.state.error,\n          isOutsideRemixApp: true\n        }\n      );\n    } else {\n      return this.props.children;\n    }\n  }\n};\nfunction RemixRootDefaultErrorBoundary({\n  error,\n  isOutsideRemixApp\n}) {\n  console.error(error);\n  let heyDeveloper = /* @__PURE__ */ React5.createElement(\n    \"script\",\n    {\n      dangerouslySetInnerHTML: {\n        __html: `\n        console.log(\n          \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information.\"\n        );\n      `\n      }\n    }\n  );\n  if (isRouteErrorResponse(error)) {\n    return /* @__PURE__ */ React5.createElement(BoundaryShell, { title: \"Unhandled Thrown Response!\" }, /* @__PURE__ */ React5.createElement(\"h1\", { style: { fontSize: \"24px\" } }, error.status, \" \", error.statusText), heyDeveloper);\n  }\n  let errorInstance;\n  if (error instanceof Error) {\n    errorInstance = error;\n  } else {\n    let errorString = error == null ? \"Unknown Error\" : typeof error === \"object\" && \"toString\" in error ? error.toString() : JSON.stringify(error);\n    errorInstance = new Error(errorString);\n  }\n  return /* @__PURE__ */ React5.createElement(\n    BoundaryShell,\n    {\n      title: \"Application Error!\",\n      isOutsideRemixApp\n    },\n    /* @__PURE__ */ React5.createElement(\"h1\", { style: { fontSize: \"24px\" } }, \"Application Error\"),\n    /* @__PURE__ */ React5.createElement(\n      \"pre\",\n      {\n        style: {\n          padding: \"2rem\",\n          background: \"hsla(10, 50%, 50%, 0.1)\",\n          color: \"red\",\n          overflow: \"auto\"\n        }\n      },\n      errorInstance.stack\n    ),\n    heyDeveloper\n  );\n}\nfunction BoundaryShell({\n  title,\n  renderScripts,\n  isOutsideRemixApp,\n  children\n}) {\n  let { routeModules } = useFrameworkContext();\n  if (routeModules.root?.Layout && !isOutsideRemixApp) {\n    return children;\n  }\n  return /* @__PURE__ */ React5.createElement(\"html\", { lang: \"en\" }, /* @__PURE__ */ React5.createElement(\"head\", null, /* @__PURE__ */ React5.createElement(\"meta\", { charSet: \"utf-8\" }), /* @__PURE__ */ React5.createElement(\n    \"meta\",\n    {\n      name: \"viewport\",\n      content: \"width=device-width,initial-scale=1,viewport-fit=cover\"\n    }\n  ), /* @__PURE__ */ React5.createElement(\"title\", null, title)), /* @__PURE__ */ React5.createElement(\"body\", null, /* @__PURE__ */ React5.createElement(\"main\", { style: { fontFamily: \"system-ui, sans-serif\", padding: \"2rem\" } }, children, renderScripts ? /* @__PURE__ */ React5.createElement(Scripts, null) : null)));\n}\n\n// lib/dom/ssr/fallback.tsx\nimport * as React6 from \"react\";\nfunction RemixRootDefaultHydrateFallback() {\n  return /* @__PURE__ */ React6.createElement(BoundaryShell, { title: \"Loading...\", renderScripts: true }, /* @__PURE__ */ React6.createElement(\n    \"script\",\n    {\n      dangerouslySetInnerHTML: {\n        __html: `\n              console.log(\n                \"\\u{1F4BF} Hey developer \\u{1F44B}. You can provide a way better UX than this \" +\n                \"when your app is loading JS modules and/or running \\`clientLoader\\` \" +\n                \"functions. Check out https://remix.run/route/hydrate-fallback \" +\n                \"for more information.\"\n              );\n            `\n      }\n    }\n  ));\n}\n\n// lib/dom/ssr/routes.tsx\nfunction groupRoutesByParentId(manifest) {\n  let routes = {};\n  Object.values(manifest).forEach((route) => {\n    if (route) {\n      let parentId = route.parentId || \"\";\n      if (!routes[parentId]) {\n        routes[parentId] = [];\n      }\n      routes[parentId].push(route);\n    }\n  });\n  return routes;\n}\nfunction getRouteComponents(route, routeModule, isSpaMode) {\n  let Component4 = getRouteModuleComponent(routeModule);\n  let HydrateFallback = routeModule.HydrateFallback && (!isSpaMode || route.id === \"root\") ? routeModule.HydrateFallback : route.id === \"root\" ? RemixRootDefaultHydrateFallback : void 0;\n  let ErrorBoundary = routeModule.ErrorBoundary ? routeModule.ErrorBoundary : route.id === \"root\" ? () => /* @__PURE__ */ React7.createElement(RemixRootDefaultErrorBoundary, { error: useRouteError() }) : void 0;\n  if (route.id === \"root\" && routeModule.Layout) {\n    return {\n      ...Component4 ? {\n        element: /* @__PURE__ */ React7.createElement(routeModule.Layout, null, /* @__PURE__ */ React7.createElement(Component4, null))\n      } : { Component: Component4 },\n      ...ErrorBoundary ? {\n        errorElement: /* @__PURE__ */ React7.createElement(routeModule.Layout, null, /* @__PURE__ */ React7.createElement(ErrorBoundary, null))\n      } : { ErrorBoundary },\n      ...HydrateFallback ? {\n        hydrateFallbackElement: /* @__PURE__ */ React7.createElement(routeModule.Layout, null, /* @__PURE__ */ React7.createElement(HydrateFallback, null))\n      } : { HydrateFallback }\n    };\n  }\n  return { Component: Component4, ErrorBoundary, HydrateFallback };\n}\nfunction createServerRoutes(manifest, routeModules, future, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), spaModeLazyPromise = Promise.resolve({ Component: () => null })) {\n  return (routesByParentId[parentId] || []).map((route) => {\n    let routeModule = routeModules[route.id];\n    invariant2(\n      routeModule,\n      \"No `routeModule` available to create server routes\"\n    );\n    let dataRoute = {\n      ...getRouteComponents(route, routeModule, isSpaMode),\n      caseSensitive: route.caseSensitive,\n      id: route.id,\n      index: route.index,\n      path: route.path,\n      handle: routeModule.handle,\n      // For SPA Mode, all routes are lazy except root.  However we tell the\n      // router root is also lazy here too since we don't need a full\n      // implementation - we just need a `lazy` prop to tell the RR rendering\n      // where to stop which is always at the root route in SPA mode\n      lazy: isSpaMode ? () => spaModeLazyPromise : void 0,\n      // For partial hydration rendering, we need to indicate when the route\n      // has a loader/clientLoader, but it won't ever be called during the static\n      // render, so just give it a no-op function so we can render down to the\n      // proper fallback\n      loader: route.hasLoader || route.hasClientLoader ? () => null : void 0\n      // We don't need action/shouldRevalidate on these routes since they're\n      // for a static render\n    };\n    let children = createServerRoutes(\n      manifest,\n      routeModules,\n      future,\n      isSpaMode,\n      route.id,\n      routesByParentId,\n      spaModeLazyPromise\n    );\n    if (children.length > 0) dataRoute.children = children;\n    return dataRoute;\n  });\n}\nfunction createClientRoutesWithHMRRevalidationOptOut(needsRevalidation, manifest, routeModulesCache, initialState, future, isSpaMode) {\n  return createClientRoutes(\n    manifest,\n    routeModulesCache,\n    initialState,\n    isSpaMode,\n    \"\",\n    groupRoutesByParentId(manifest),\n    needsRevalidation\n  );\n}\nfunction preventInvalidServerHandlerCall(type, route, isSpaMode) {\n  if (isSpaMode) {\n    let fn2 = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n    let msg2 = `You cannot call ${fn2} in SPA Mode (routeId: \"${route.id}\")`;\n    console.error(msg2);\n    throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg2), true);\n  }\n  let fn = type === \"action\" ? \"serverAction()\" : \"serverLoader()\";\n  let msg = `You are trying to call ${fn} on a route that does not have a server ${type} (routeId: \"${route.id}\")`;\n  if (type === \"loader\" && !route.hasLoader || type === \"action\" && !route.hasAction) {\n    console.error(msg);\n    throw new ErrorResponseImpl(400, \"Bad Request\", new Error(msg), true);\n  }\n}\nfunction noActionDefinedError(type, routeId) {\n  let article = type === \"clientAction\" ? \"a\" : \"an\";\n  let msg = `Route \"${routeId}\" does not have ${article} ${type}, but you are trying to submit to it. To fix this, please add ${article} \\`${type}\\` function to the route`;\n  console.error(msg);\n  throw new ErrorResponseImpl(405, \"Method Not Allowed\", new Error(msg), true);\n}\nfunction createClientRoutes(manifest, routeModulesCache, initialState, isSpaMode, parentId = \"\", routesByParentId = groupRoutesByParentId(manifest), needsRevalidation) {\n  return (routesByParentId[parentId] || []).map((route) => {\n    let routeModule = routeModulesCache[route.id];\n    function fetchServerHandler(singleFetch) {\n      invariant2(\n        typeof singleFetch === \"function\",\n        \"No single fetch function available for route handler\"\n      );\n      return singleFetch();\n    }\n    function fetchServerLoader(singleFetch) {\n      if (!route.hasLoader) return Promise.resolve(null);\n      return fetchServerHandler(singleFetch);\n    }\n    function fetchServerAction(singleFetch) {\n      if (!route.hasAction) {\n        throw noActionDefinedError(\"action\", route.id);\n      }\n      return fetchServerHandler(singleFetch);\n    }\n    async function prefetchStylesAndCallHandler(handler) {\n      let cachedModule = routeModulesCache[route.id];\n      let linkPrefetchPromise = cachedModule ? prefetchStyleLinks(route, cachedModule) : Promise.resolve();\n      try {\n        return handler();\n      } finally {\n        await linkPrefetchPromise;\n      }\n    }\n    let dataRoute = {\n      id: route.id,\n      index: route.index,\n      path: route.path\n    };\n    if (routeModule) {\n      Object.assign(dataRoute, {\n        ...dataRoute,\n        ...getRouteComponents(route, routeModule, isSpaMode),\n        handle: routeModule.handle,\n        shouldRevalidate: getShouldRevalidateFunction(\n          routeModule,\n          route.id,\n          needsRevalidation\n        )\n      });\n      let hasInitialData = initialState && initialState.loaderData && route.id in initialState.loaderData;\n      let initialData = hasInitialData ? initialState?.loaderData?.[route.id] : void 0;\n      let hasInitialError = initialState && initialState.errors && route.id in initialState.errors;\n      let initialError = hasInitialError ? initialState?.errors?.[route.id] : void 0;\n      let isHydrationRequest = needsRevalidation == null && (routeModule.clientLoader?.hydrate === true || !route.hasLoader);\n      dataRoute.loader = async ({ request, params }, singleFetch) => {\n        try {\n          let result = await prefetchStylesAndCallHandler(async () => {\n            invariant2(\n              routeModule,\n              \"No `routeModule` available for critical-route loader\"\n            );\n            if (!routeModule.clientLoader) {\n              if (isSpaMode) return null;\n              return fetchServerLoader(singleFetch);\n            }\n            return routeModule.clientLoader({\n              request,\n              params,\n              async serverLoader() {\n                preventInvalidServerHandlerCall(\"loader\", route, isSpaMode);\n                if (isHydrationRequest) {\n                  if (hasInitialData) {\n                    return initialData;\n                  }\n                  if (hasInitialError) {\n                    throw initialError;\n                  }\n                }\n                return fetchServerLoader(singleFetch);\n              }\n            });\n          });\n          return result;\n        } finally {\n          isHydrationRequest = false;\n        }\n      };\n      dataRoute.loader.hydrate = shouldHydrateRouteLoader(\n        route,\n        routeModule,\n        isSpaMode\n      );\n      dataRoute.action = ({ request, params }, singleFetch) => {\n        return prefetchStylesAndCallHandler(async () => {\n          invariant2(\n            routeModule,\n            \"No `routeModule` available for critical-route action\"\n          );\n          if (!routeModule.clientAction) {\n            if (isSpaMode) {\n              throw noActionDefinedError(\"clientAction\", route.id);\n            }\n            return fetchServerAction(singleFetch);\n          }\n          return routeModule.clientAction({\n            request,\n            params,\n            async serverAction() {\n              preventInvalidServerHandlerCall(\"action\", route, isSpaMode);\n              return fetchServerAction(singleFetch);\n            }\n          });\n        });\n      };\n    } else {\n      if (!route.hasClientLoader) {\n        dataRoute.loader = ({ request }, singleFetch) => prefetchStylesAndCallHandler(() => {\n          if (isSpaMode) return Promise.resolve(null);\n          return fetchServerLoader(singleFetch);\n        });\n      }\n      if (!route.hasClientAction) {\n        dataRoute.action = ({ request }, singleFetch) => prefetchStylesAndCallHandler(() => {\n          if (isSpaMode) {\n            throw noActionDefinedError(\"clientAction\", route.id);\n          }\n          return fetchServerAction(singleFetch);\n        });\n      }\n      dataRoute.lazy = async () => {\n        let mod = await loadRouteModuleWithBlockingLinks(\n          route,\n          routeModulesCache\n        );\n        let lazyRoute = { ...mod };\n        if (mod.clientLoader) {\n          let clientLoader = mod.clientLoader;\n          lazyRoute.loader = (args, singleFetch) => clientLoader({\n            ...args,\n            async serverLoader() {\n              preventInvalidServerHandlerCall(\"loader\", route, isSpaMode);\n              return fetchServerLoader(singleFetch);\n            }\n          });\n        }\n        if (mod.clientAction) {\n          let clientAction = mod.clientAction;\n          lazyRoute.action = (args, singleFetch) => clientAction({\n            ...args,\n            async serverAction() {\n              preventInvalidServerHandlerCall(\"action\", route, isSpaMode);\n              return fetchServerAction(singleFetch);\n            }\n          });\n        }\n        return {\n          ...lazyRoute.loader ? { loader: lazyRoute.loader } : {},\n          ...lazyRoute.action ? { action: lazyRoute.action } : {},\n          hasErrorBoundary: lazyRoute.hasErrorBoundary,\n          shouldRevalidate: getShouldRevalidateFunction(\n            lazyRoute,\n            route.id,\n            needsRevalidation\n          ),\n          handle: lazyRoute.handle,\n          // No need to wrap these in layout since the root route is never\n          // loaded via route.lazy()\n          Component: lazyRoute.Component,\n          ErrorBoundary: lazyRoute.ErrorBoundary\n        };\n      };\n    }\n    let children = createClientRoutes(\n      manifest,\n      routeModulesCache,\n      initialState,\n      isSpaMode,\n      route.id,\n      routesByParentId,\n      needsRevalidation\n    );\n    if (children.length > 0) dataRoute.children = children;\n    return dataRoute;\n  });\n}\nfunction getShouldRevalidateFunction(route, routeId, needsRevalidation) {\n  if (needsRevalidation) {\n    return wrapShouldRevalidateForHdr(\n      routeId,\n      route.shouldRevalidate,\n      needsRevalidation\n    );\n  }\n  if (route.shouldRevalidate) {\n    let fn = route.shouldRevalidate;\n    return (opts) => fn({ ...opts, defaultShouldRevalidate: true });\n  }\n  return route.shouldRevalidate;\n}\nfunction wrapShouldRevalidateForHdr(routeId, routeShouldRevalidate, needsRevalidation) {\n  let handledRevalidation = false;\n  return (arg) => {\n    if (!handledRevalidation) {\n      handledRevalidation = true;\n      return needsRevalidation.has(routeId);\n    }\n    return routeShouldRevalidate ? routeShouldRevalidate(arg) : arg.defaultShouldRevalidate;\n  };\n}\nasync function loadRouteModuleWithBlockingLinks(route, routeModules) {\n  let routeModule = await loadRouteModule(route, routeModules);\n  await prefetchStyleLinks(route, routeModule);\n  return {\n    Component: getRouteModuleComponent(routeModule),\n    ErrorBoundary: routeModule.ErrorBoundary,\n    clientAction: routeModule.clientAction,\n    clientLoader: routeModule.clientLoader,\n    handle: routeModule.handle,\n    links: routeModule.links,\n    meta: routeModule.meta,\n    shouldRevalidate: routeModule.shouldRevalidate\n  };\n}\nfunction getRouteModuleComponent(routeModule) {\n  if (routeModule.default == null) return void 0;\n  let isEmptyObject = typeof routeModule.default === \"object\" && Object.keys(routeModule.default).length === 0;\n  if (!isEmptyObject) {\n    return routeModule.default;\n  }\n}\nfunction shouldHydrateRouteLoader(route, routeModule, isSpaMode) {\n  return isSpaMode && route.id !== \"root\" || routeModule.clientLoader != null && (routeModule.clientLoader.hydrate === true || route.hasLoader !== true);\n}\n\n// lib/dom/ssr/fog-of-war.ts\nvar nextPaths = /* @__PURE__ */ new Set();\nvar discoveredPathsMaxSize = 1e3;\nvar discoveredPaths = /* @__PURE__ */ new Set();\nvar URL_LIMIT = 7680;\nfunction isFogOfWarEnabled(isSpaMode) {\n  return !isSpaMode;\n}\nfunction getPartialManifest(manifest, router) {\n  let routeIds = new Set(router.state.matches.map((m) => m.route.id));\n  let segments = router.state.location.pathname.split(\"/\").filter(Boolean);\n  let paths = [\"/\"];\n  segments.pop();\n  while (segments.length > 0) {\n    paths.push(`/${segments.join(\"/\")}`);\n    segments.pop();\n  }\n  paths.forEach((path) => {\n    let matches = matchRoutes(router.routes, path, router.basename);\n    if (matches) {\n      matches.forEach((m) => routeIds.add(m.route.id));\n    }\n  });\n  let initialRoutes = [...routeIds].reduce(\n    (acc, id) => Object.assign(acc, { [id]: manifest.routes[id] }),\n    {}\n  );\n  return {\n    ...manifest,\n    routes: initialRoutes\n  };\n}\nfunction getPatchRoutesOnNavigationFunction(manifest, routeModules, isSpaMode, basename) {\n  if (!isFogOfWarEnabled(isSpaMode)) {\n    return void 0;\n  }\n  return async ({ path, patch }) => {\n    if (discoveredPaths.has(path)) {\n      return;\n    }\n    await fetchAndApplyManifestPatches(\n      [path],\n      manifest,\n      routeModules,\n      isSpaMode,\n      basename,\n      patch\n    );\n  };\n}\nfunction useFogOFWarDiscovery(router, manifest, routeModules, isSpaMode) {\n  React8.useEffect(() => {\n    if (!isFogOfWarEnabled(isSpaMode) || navigator.connection?.saveData === true) {\n      return;\n    }\n    function registerElement(el) {\n      let path = el.tagName === \"FORM\" ? el.getAttribute(\"action\") : el.getAttribute(\"href\");\n      if (!path) {\n        return;\n      }\n      let url = new URL(path, window.location.origin);\n      if (!discoveredPaths.has(url.pathname)) {\n        nextPaths.add(url.pathname);\n      }\n    }\n    async function fetchPatches() {\n      let lazyPaths = Array.from(nextPaths.keys()).filter((path) => {\n        if (discoveredPaths.has(path)) {\n          nextPaths.delete(path);\n          return false;\n        }\n        return true;\n      });\n      if (lazyPaths.length === 0) {\n        return;\n      }\n      try {\n        await fetchAndApplyManifestPatches(\n          lazyPaths,\n          manifest,\n          routeModules,\n          isSpaMode,\n          router.basename,\n          router.patchRoutes\n        );\n      } catch (e) {\n        console.error(\"Failed to fetch manifest patches\", e);\n      }\n    }\n    document.body.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach((el) => registerElement(el));\n    fetchPatches();\n    let debouncedFetchPatches = debounce(fetchPatches, 100);\n    function isElement(node) {\n      return node.nodeType === Node.ELEMENT_NODE;\n    }\n    let observer = new MutationObserver((records) => {\n      let elements = /* @__PURE__ */ new Set();\n      records.forEach((r) => {\n        [r.target, ...r.addedNodes].forEach((node) => {\n          if (!isElement(node)) return;\n          if (node.tagName === \"A\" && node.getAttribute(\"data-discover\")) {\n            elements.add(node);\n          } else if (node.tagName === \"FORM\" && node.getAttribute(\"data-discover\")) {\n            elements.add(node);\n          }\n          if (node.tagName !== \"A\") {\n            node.querySelectorAll(\"a[data-discover], form[data-discover]\").forEach((el) => elements.add(el));\n          }\n        });\n      });\n      elements.forEach((el) => registerElement(el));\n      debouncedFetchPatches();\n    });\n    observer.observe(document.documentElement, {\n      subtree: true,\n      childList: true,\n      attributes: true,\n      attributeFilter: [\"data-discover\", \"href\", \"action\"]\n    });\n    return () => observer.disconnect();\n  }, [isSpaMode, manifest, routeModules, router]);\n}\nasync function fetchAndApplyManifestPatches(paths, manifest, routeModules, isSpaMode, basename, patchRoutes) {\n  let manifestPath = `${basename != null ? basename : \"/\"}/__manifest`.replace(\n    /\\/+/g,\n    \"/\"\n  );\n  let url = new URL(manifestPath, window.location.origin);\n  paths.sort().forEach((path) => url.searchParams.append(\"p\", path));\n  url.searchParams.set(\"version\", manifest.version);\n  if (url.toString().length > URL_LIMIT) {\n    nextPaths.clear();\n    return;\n  }\n  let res = await fetch(url);\n  if (!res.ok) {\n    throw new Error(`${res.status} ${res.statusText}`);\n  } else if (res.status >= 400) {\n    throw new Error(await res.text());\n  }\n  let serverPatches = await res.json();\n  let knownRoutes = new Set(Object.keys(manifest.routes));\n  let patches = Object.values(serverPatches).reduce((acc, route) => {\n    if (route && !knownRoutes.has(route.id)) {\n      acc[route.id] = route;\n    }\n    return acc;\n  }, {});\n  Object.assign(manifest.routes, patches);\n  paths.forEach((p) => addToFifoQueue(p, discoveredPaths));\n  let parentIds = /* @__PURE__ */ new Set();\n  Object.values(patches).forEach((patch) => {\n    if (patch && (!patch.parentId || !patches[patch.parentId])) {\n      parentIds.add(patch.parentId);\n    }\n  });\n  parentIds.forEach(\n    (parentId) => patchRoutes(\n      parentId || null,\n      createClientRoutes(patches, routeModules, null, isSpaMode, parentId)\n    )\n  );\n}\nfunction addToFifoQueue(path, queue) {\n  if (queue.size >= discoveredPathsMaxSize) {\n    let first = queue.values().next().value;\n    queue.delete(first);\n  }\n  queue.add(path);\n}\nfunction debounce(callback, wait) {\n  let timeoutId;\n  return (...args) => {\n    window.clearTimeout(timeoutId);\n    timeoutId = window.setTimeout(() => callback(...args), wait);\n  };\n}\n\n// lib/dom/ssr/components.tsx\nfunction useDataRouterContext2() {\n  let context = React9.useContext(DataRouterContext);\n  invariant2(\n    context,\n    \"You must render this element inside a <DataRouterContext.Provider> element\"\n  );\n  return context;\n}\nfunction useDataRouterStateContext() {\n  let context = React9.useContext(DataRouterStateContext);\n  invariant2(\n    context,\n    \"You must render this element inside a <DataRouterStateContext.Provider> element\"\n  );\n  return context;\n}\nvar FrameworkContext = React9.createContext(void 0);\nFrameworkContext.displayName = \"FrameworkContext\";\nfunction useFrameworkContext() {\n  let context = React9.useContext(FrameworkContext);\n  invariant2(\n    context,\n    \"You must render this element inside a <HydratedRouter> element\"\n  );\n  return context;\n}\nfunction usePrefetchBehavior(prefetch, theirElementProps) {\n  let frameworkContext = React9.useContext(FrameworkContext);\n  let [maybePrefetch, setMaybePrefetch] = React9.useState(false);\n  let [shouldPrefetch, setShouldPrefetch] = React9.useState(false);\n  let { onFocus, onBlur, onMouseEnter, onMouseLeave, onTouchStart } = theirElementProps;\n  let ref = React9.useRef(null);\n  React9.useEffect(() => {\n    if (prefetch === \"render\") {\n      setShouldPrefetch(true);\n    }\n    if (prefetch === \"viewport\") {\n      let callback = (entries) => {\n        entries.forEach((entry) => {\n          setShouldPrefetch(entry.isIntersecting);\n        });\n      };\n      let observer = new IntersectionObserver(callback, { threshold: 0.5 });\n      if (ref.current) observer.observe(ref.current);\n      return () => {\n        observer.disconnect();\n      };\n    }\n  }, [prefetch]);\n  React9.useEffect(() => {\n    if (maybePrefetch) {\n      let id = setTimeout(() => {\n        setShouldPrefetch(true);\n      }, 100);\n      return () => {\n        clearTimeout(id);\n      };\n    }\n  }, [maybePrefetch]);\n  let setIntent = () => {\n    setMaybePrefetch(true);\n  };\n  let cancelIntent = () => {\n    setMaybePrefetch(false);\n    setShouldPrefetch(false);\n  };\n  if (!frameworkContext) {\n    return [false, ref, {}];\n  }\n  if (prefetch !== \"intent\") {\n    return [shouldPrefetch, ref, {}];\n  }\n  return [\n    shouldPrefetch,\n    ref,\n    {\n      onFocus: composeEventHandlers(onFocus, setIntent),\n      onBlur: composeEventHandlers(onBlur, cancelIntent),\n      onMouseEnter: composeEventHandlers(onMouseEnter, setIntent),\n      onMouseLeave: composeEventHandlers(onMouseLeave, cancelIntent),\n      onTouchStart: composeEventHandlers(onTouchStart, setIntent)\n    }\n  ];\n}\nfunction composeEventHandlers(theirHandler, ourHandler) {\n  return (event) => {\n    theirHandler && theirHandler(event);\n    if (!event.defaultPrevented) {\n      ourHandler(event);\n    }\n  };\n}\nfunction getActiveMatches(matches, errors, isSpaMode) {\n  if (isSpaMode && !isHydrated) {\n    return [matches[0]];\n  }\n  if (errors) {\n    let errorIdx = matches.findIndex((m) => errors[m.route.id] !== void 0);\n    return matches.slice(0, errorIdx + 1);\n  }\n  return matches;\n}\nfunction Links() {\n  let { isSpaMode, manifest, routeModules, criticalCss } = useFrameworkContext();\n  let { errors, matches: routerMatches } = useDataRouterStateContext();\n  let matches = getActiveMatches(routerMatches, errors, isSpaMode);\n  let keyedLinks = React9.useMemo(\n    () => getKeyedLinksForMatches(matches, routeModules, manifest),\n    [matches, routeModules, manifest]\n  );\n  return /* @__PURE__ */ React9.createElement(React9.Fragment, null, criticalCss ? /* @__PURE__ */ React9.createElement(\"style\", { dangerouslySetInnerHTML: { __html: criticalCss } }) : null, keyedLinks.map(\n    ({ key, link }) => isPageLinkDescriptor(link) ? /* @__PURE__ */ React9.createElement(PrefetchPageLinks, { key, ...link }) : /* @__PURE__ */ React9.createElement(\"link\", { key, ...link })\n  ));\n}\nfunction PrefetchPageLinks({\n  page,\n  ...dataLinkProps\n}) {\n  let { router } = useDataRouterContext2();\n  let matches = React9.useMemo(\n    () => matchRoutes(router.routes, page, router.basename),\n    [router.routes, page, router.basename]\n  );\n  if (!matches) {\n    return null;\n  }\n  return /* @__PURE__ */ React9.createElement(PrefetchPageLinksImpl, { page, matches, ...dataLinkProps });\n}\nfunction useKeyedPrefetchLinks(matches) {\n  let { manifest, routeModules } = useFrameworkContext();\n  let [keyedPrefetchLinks, setKeyedPrefetchLinks] = React9.useState([]);\n  React9.useEffect(() => {\n    let interrupted = false;\n    void getKeyedPrefetchLinks(matches, manifest, routeModules).then(\n      (links) => {\n        if (!interrupted) {\n          setKeyedPrefetchLinks(links);\n        }\n      }\n    );\n    return () => {\n      interrupted = true;\n    };\n  }, [matches, manifest, routeModules]);\n  return keyedPrefetchLinks;\n}\nfunction PrefetchPageLinksImpl({\n  page,\n  matches: nextMatches,\n  ...linkProps\n}) {\n  let location = useLocation();\n  let { manifest, routeModules } = useFrameworkContext();\n  let { loaderData, matches } = useDataRouterStateContext();\n  let newMatchesForData = React9.useMemo(\n    () => getNewMatchesForLinks(\n      page,\n      nextMatches,\n      matches,\n      manifest,\n      location,\n      \"data\"\n    ),\n    [page, nextMatches, matches, manifest, location]\n  );\n  let newMatchesForAssets = React9.useMemo(\n    () => getNewMatchesForLinks(\n      page,\n      nextMatches,\n      matches,\n      manifest,\n      location,\n      \"assets\"\n    ),\n    [page, nextMatches, matches, manifest, location]\n  );\n  let dataHrefs = React9.useMemo(() => {\n    if (page === location.pathname + location.search + location.hash) {\n      return [];\n    }\n    let routesParams = /* @__PURE__ */ new Set();\n    let foundOptOutRoute = false;\n    nextMatches.forEach((m) => {\n      let manifestRoute = manifest.routes[m.route.id];\n      if (!manifestRoute || !manifestRoute.hasLoader) {\n        return;\n      }\n      if (!newMatchesForData.some((m2) => m2.route.id === m.route.id) && m.route.id in loaderData && routeModules[m.route.id]?.shouldRevalidate) {\n        foundOptOutRoute = true;\n      } else if (manifestRoute.hasClientLoader) {\n        foundOptOutRoute = true;\n      } else {\n        routesParams.add(m.route.id);\n      }\n    });\n    if (routesParams.size === 0) {\n      return [];\n    }\n    let url = singleFetchUrl(page);\n    if (foundOptOutRoute && routesParams.size > 0) {\n      url.searchParams.set(\n        \"_routes\",\n        nextMatches.filter((m) => routesParams.has(m.route.id)).map((m) => m.route.id).join(\",\")\n      );\n    }\n    return [url.pathname + url.search];\n  }, [\n    loaderData,\n    location,\n    manifest,\n    newMatchesForData,\n    nextMatches,\n    page,\n    routeModules\n  ]);\n  let moduleHrefs = React9.useMemo(\n    () => getModuleLinkHrefs(newMatchesForAssets, manifest),\n    [newMatchesForAssets, manifest]\n  );\n  let keyedPrefetchLinks = useKeyedPrefetchLinks(newMatchesForAssets);\n  return /* @__PURE__ */ React9.createElement(React9.Fragment, null, dataHrefs.map((href) => /* @__PURE__ */ React9.createElement(\"link\", { key: href, rel: \"prefetch\", as: \"fetch\", href, ...linkProps })), moduleHrefs.map((href) => /* @__PURE__ */ React9.createElement(\"link\", { key: href, rel: \"modulepreload\", href, ...linkProps })), keyedPrefetchLinks.map(({ key, link }) => (\n    // these don't spread `linkProps` because they are full link descriptors\n    // already with their own props\n    /* @__PURE__ */ React9.createElement(\"link\", { key, ...link })\n  )));\n}\nfunction Meta() {\n  let { isSpaMode, routeModules } = useFrameworkContext();\n  let {\n    errors,\n    matches: routerMatches,\n    loaderData\n  } = useDataRouterStateContext();\n  let location = useLocation();\n  let _matches = getActiveMatches(routerMatches, errors, isSpaMode);\n  let error = null;\n  if (errors) {\n    error = errors[_matches[_matches.length - 1].route.id];\n  }\n  let meta = [];\n  let leafMeta = null;\n  let matches = [];\n  for (let i = 0; i < _matches.length; i++) {\n    let _match = _matches[i];\n    let routeId = _match.route.id;\n    let data2 = loaderData[routeId];\n    let params = _match.params;\n    let routeModule = routeModules[routeId];\n    let routeMeta = [];\n    let match = {\n      id: routeId,\n      data: data2,\n      meta: [],\n      params: _match.params,\n      pathname: _match.pathname,\n      handle: _match.route.handle,\n      error\n    };\n    matches[i] = match;\n    if (routeModule?.meta) {\n      routeMeta = typeof routeModule.meta === \"function\" ? routeModule.meta({\n        data: data2,\n        params,\n        location,\n        matches,\n        error\n      }) : Array.isArray(routeModule.meta) ? [...routeModule.meta] : routeModule.meta;\n    } else if (leafMeta) {\n      routeMeta = [...leafMeta];\n    }\n    routeMeta = routeMeta || [];\n    if (!Array.isArray(routeMeta)) {\n      throw new Error(\n        \"The route at \" + _match.route.path + \" returns an invalid value. All route meta functions must return an array of meta objects.\\n\\nTo reference the meta function API, see https://remix.run/route/meta\"\n      );\n    }\n    match.meta = routeMeta;\n    matches[i] = match;\n    meta = [...routeMeta];\n    leafMeta = meta;\n  }\n  return /* @__PURE__ */ React9.createElement(React9.Fragment, null, meta.flat().map((metaProps) => {\n    if (!metaProps) {\n      return null;\n    }\n    if (\"tagName\" in metaProps) {\n      let { tagName, ...rest } = metaProps;\n      if (!isValidMetaTag(tagName)) {\n        console.warn(\n          `A meta object uses an invalid tagName: ${tagName}. Expected either 'link' or 'meta'`\n        );\n        return null;\n      }\n      let Comp = tagName;\n      return /* @__PURE__ */ React9.createElement(Comp, { key: JSON.stringify(rest), ...rest });\n    }\n    if (\"title\" in metaProps) {\n      return /* @__PURE__ */ React9.createElement(\"title\", { key: \"title\" }, String(metaProps.title));\n    }\n    if (\"charset\" in metaProps) {\n      metaProps.charSet ?? (metaProps.charSet = metaProps.charset);\n      delete metaProps.charset;\n    }\n    if (\"charSet\" in metaProps && metaProps.charSet != null) {\n      return typeof metaProps.charSet === \"string\" ? /* @__PURE__ */ React9.createElement(\"meta\", { key: \"charSet\", charSet: metaProps.charSet }) : null;\n    }\n    if (\"script:ld+json\" in metaProps) {\n      try {\n        let json = JSON.stringify(metaProps[\"script:ld+json\"]);\n        return /* @__PURE__ */ React9.createElement(\n          \"script\",\n          {\n            key: `script:ld+json:${json}`,\n            type: \"application/ld+json\",\n            dangerouslySetInnerHTML: { __html: json }\n          }\n        );\n      } catch (err) {\n        return null;\n      }\n    }\n    return /* @__PURE__ */ React9.createElement(\"meta\", { key: JSON.stringify(metaProps), ...metaProps });\n  }));\n}\nfunction isValidMetaTag(tagName) {\n  return typeof tagName === \"string\" && /^(meta|link)$/.test(tagName);\n}\nvar isHydrated = false;\nfunction Scripts(props) {\n  let { manifest, serverHandoffString, isSpaMode, renderMeta } = useFrameworkContext();\n  let { router, static: isStatic, staticContext } = useDataRouterContext2();\n  let { matches: routerMatches } = useDataRouterStateContext();\n  let enableFogOfWar = isFogOfWarEnabled(isSpaMode);\n  if (renderMeta) {\n    renderMeta.didRenderScripts = true;\n  }\n  let matches = getActiveMatches(routerMatches, null, isSpaMode);\n  React9.useEffect(() => {\n    isHydrated = true;\n  }, []);\n  let initialScripts = React9.useMemo(() => {\n    let streamScript = \"window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());\";\n    let contextScript = staticContext ? `window.__reactRouterContext = ${serverHandoffString};${streamScript}` : \" \";\n    let routeModulesScript = !isStatic ? \" \" : `${manifest.hmr?.runtime ? `import ${JSON.stringify(manifest.hmr.runtime)};` : \"\"}${!enableFogOfWar ? `import ${JSON.stringify(manifest.url)}` : \"\"};\n${matches.map(\n      (match, index) => `import * as route${index} from ${JSON.stringify(\n        manifest.routes[match.route.id].module\n      )};`\n    ).join(\"\\n\")}\n  ${enableFogOfWar ? (\n      // Inline a minimal manifest with the SSR matches\n      `window.__reactRouterManifest = ${JSON.stringify(\n        getPartialManifest(manifest, router),\n        null,\n        2\n      )};`\n    ) : \"\"}\n  window.__reactRouterRouteModules = {${matches.map((match, index) => `${JSON.stringify(match.route.id)}:route${index}`).join(\",\")}};\n\nimport(${JSON.stringify(manifest.entry.module)});`;\n    return /* @__PURE__ */ React9.createElement(React9.Fragment, null, /* @__PURE__ */ React9.createElement(\n      \"script\",\n      {\n        ...props,\n        suppressHydrationWarning: true,\n        dangerouslySetInnerHTML: createHtml(contextScript),\n        type: void 0\n      }\n    ), /* @__PURE__ */ React9.createElement(\n      \"script\",\n      {\n        ...props,\n        suppressHydrationWarning: true,\n        dangerouslySetInnerHTML: createHtml(routeModulesScript),\n        type: \"module\",\n        async: true\n      }\n    ));\n  }, []);\n  let routePreloads = matches.map((match) => {\n    let route = manifest.routes[match.route.id];\n    return route ? (route.imports || []).concat([route.module]) : [];\n  }).flat(1);\n  let preloads = isHydrated ? [] : manifest.entry.imports.concat(routePreloads);\n  return isHydrated ? null : /* @__PURE__ */ React9.createElement(React9.Fragment, null, !enableFogOfWar ? /* @__PURE__ */ React9.createElement(\n    \"link\",\n    {\n      rel: \"modulepreload\",\n      href: manifest.url,\n      crossOrigin: props.crossOrigin\n    }\n  ) : null, /* @__PURE__ */ React9.createElement(\n    \"link\",\n    {\n      rel: \"modulepreload\",\n      href: manifest.entry.module,\n      crossOrigin: props.crossOrigin\n    }\n  ), dedupe(preloads).map((path) => /* @__PURE__ */ React9.createElement(\n    \"link\",\n    {\n      key: path,\n      rel: \"modulepreload\",\n      href: path,\n      crossOrigin: props.crossOrigin\n    }\n  )), initialScripts);\n}\nfunction dedupe(array) {\n  return [...new Set(array)];\n}\nfunction mergeRefs(...refs) {\n  return (value) => {\n    refs.forEach((ref) => {\n      if (typeof ref === \"function\") {\n        ref(value);\n      } else if (ref != null) {\n        ref.current = value;\n      }\n    });\n  };\n}\n\n// lib/dom/lib.tsx\nvar isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\ntry {\n  if (isBrowser) {\n    window.__reactRouterVersion = \"7.1.3\";\n  }\n} catch (e) {\n}\nfunction createBrowserRouter(routes, opts) {\n  return createRouter({\n    basename: opts?.basename,\n    future: opts?.future,\n    history: createBrowserHistory({ window: opts?.window }),\n    hydrationData: opts?.hydrationData || parseHydrationData(),\n    routes,\n    mapRouteProperties,\n    dataStrategy: opts?.dataStrategy,\n    patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n    window: opts?.window\n  }).initialize();\n}\nfunction createHashRouter(routes, opts) {\n  return createRouter({\n    basename: opts?.basename,\n    future: opts?.future,\n    history: createHashHistory({ window: opts?.window }),\n    hydrationData: opts?.hydrationData || parseHydrationData(),\n    routes,\n    mapRouteProperties,\n    dataStrategy: opts?.dataStrategy,\n    patchRoutesOnNavigation: opts?.patchRoutesOnNavigation,\n    window: opts?.window\n  }).initialize();\n}\nfunction parseHydrationData() {\n  let state = window?.__staticRouterHydrationData;\n  if (state && state.errors) {\n    state = {\n      ...state,\n      errors: deserializeErrors(state.errors)\n    };\n  }\n  return state;\n}\nfunction deserializeErrors(errors) {\n  if (!errors) return null;\n  let entries = Object.entries(errors);\n  let serialized = {};\n  for (let [key, val] of entries) {\n    if (val && val.__type === \"RouteErrorResponse\") {\n      serialized[key] = new ErrorResponseImpl(\n        val.status,\n        val.statusText,\n        val.data,\n        val.internal === true\n      );\n    } else if (val && val.__type === \"Error\") {\n      if (val.__subType) {\n        let ErrorConstructor = window[val.__subType];\n        if (typeof ErrorConstructor === \"function\") {\n          try {\n            let error = new ErrorConstructor(val.message);\n            error.stack = \"\";\n            serialized[key] = error;\n          } catch (e) {\n          }\n        }\n      }\n      if (serialized[key] == null) {\n        let error = new Error(val.message);\n        error.stack = \"\";\n        serialized[key] = error;\n      }\n    } else {\n      serialized[key] = val;\n    }\n  }\n  return serialized;\n}\nfunction BrowserRouter({\n  basename,\n  children,\n  window: window2\n}) {\n  let historyRef = React10.useRef();\n  if (historyRef.current == null) {\n    historyRef.current = createBrowserHistory({ window: window2, v5Compat: true });\n  }\n  let history = historyRef.current;\n  let [state, setStateImpl] = React10.useState({\n    action: history.action,\n    location: history.location\n  });\n  let setState = React10.useCallback(\n    (newState) => {\n      React10.startTransition(() => setStateImpl(newState));\n    },\n    [setStateImpl]\n  );\n  React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n  return /* @__PURE__ */ React10.createElement(\n    Router,\n    {\n      basename,\n      children,\n      location: state.location,\n      navigationType: state.action,\n      navigator: history\n    }\n  );\n}\nfunction HashRouter({ basename, children, window: window2 }) {\n  let historyRef = React10.useRef();\n  if (historyRef.current == null) {\n    historyRef.current = createHashHistory({ window: window2, v5Compat: true });\n  }\n  let history = historyRef.current;\n  let [state, setStateImpl] = React10.useState({\n    action: history.action,\n    location: history.location\n  });\n  let setState = React10.useCallback(\n    (newState) => {\n      React10.startTransition(() => setStateImpl(newState));\n    },\n    [setStateImpl]\n  );\n  React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n  return /* @__PURE__ */ React10.createElement(\n    Router,\n    {\n      basename,\n      children,\n      location: state.location,\n      navigationType: state.action,\n      navigator: history\n    }\n  );\n}\nfunction HistoryRouter({\n  basename,\n  children,\n  history\n}) {\n  let [state, setStateImpl] = React10.useState({\n    action: history.action,\n    location: history.location\n  });\n  let setState = React10.useCallback(\n    (newState) => {\n      React10.startTransition(() => setStateImpl(newState));\n    },\n    [setStateImpl]\n  );\n  React10.useLayoutEffect(() => history.listen(setState), [history, setState]);\n  return /* @__PURE__ */ React10.createElement(\n    Router,\n    {\n      basename,\n      children,\n      location: state.location,\n      navigationType: state.action,\n      navigator: history\n    }\n  );\n}\nHistoryRouter.displayName = \"unstable_HistoryRouter\";\nvar ABSOLUTE_URL_REGEX2 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar Link = React10.forwardRef(\n  function LinkWithRef({\n    onClick,\n    discover = \"render\",\n    prefetch = \"none\",\n    relative,\n    reloadDocument,\n    replace: replace2,\n    state,\n    target,\n    to,\n    preventScrollReset,\n    viewTransition,\n    ...rest\n  }, forwardedRef) {\n    let { basename } = React10.useContext(NavigationContext);\n    let isAbsolute = typeof to === \"string\" && ABSOLUTE_URL_REGEX2.test(to);\n    let absoluteHref;\n    let isExternal = false;\n    if (typeof to === \"string\" && isAbsolute) {\n      absoluteHref = to;\n      if (isBrowser) {\n        try {\n          let currentUrl = new URL(window.location.href);\n          let targetUrl = to.startsWith(\"//\") ? new URL(currentUrl.protocol + to) : new URL(to);\n          let path = stripBasename(targetUrl.pathname, basename);\n          if (targetUrl.origin === currentUrl.origin && path != null) {\n            to = path + targetUrl.search + targetUrl.hash;\n          } else {\n            isExternal = true;\n          }\n        } catch (e) {\n          warning(\n            false,\n            `<Link to=\"${to}\"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`\n          );\n        }\n      }\n    }\n    let href = useHref(to, { relative });\n    let [shouldPrefetch, prefetchRef, prefetchHandlers] = usePrefetchBehavior(\n      prefetch,\n      rest\n    );\n    let internalOnClick = useLinkClickHandler(to, {\n      replace: replace2,\n      state,\n      target,\n      preventScrollReset,\n      relative,\n      viewTransition\n    });\n    function handleClick(event) {\n      if (onClick) onClick(event);\n      if (!event.defaultPrevented) {\n        internalOnClick(event);\n      }\n    }\n    let link = (\n      // eslint-disable-next-line jsx-a11y/anchor-has-content\n      /* @__PURE__ */ React10.createElement(\n        \"a\",\n        {\n          ...rest,\n          ...prefetchHandlers,\n          href: absoluteHref || href,\n          onClick: isExternal || reloadDocument ? onClick : handleClick,\n          ref: mergeRefs(forwardedRef, prefetchRef),\n          target,\n          \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n        }\n      )\n    );\n    return shouldPrefetch && !isAbsolute ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, link, /* @__PURE__ */ React10.createElement(PrefetchPageLinks, { page: href })) : link;\n  }\n);\nLink.displayName = \"Link\";\nvar NavLink = React10.forwardRef(\n  function NavLinkWithRef({\n    \"aria-current\": ariaCurrentProp = \"page\",\n    caseSensitive = false,\n    className: classNameProp = \"\",\n    end = false,\n    style: styleProp,\n    to,\n    viewTransition,\n    children,\n    ...rest\n  }, ref) {\n    let path = useResolvedPath(to, { relative: rest.relative });\n    let location = useLocation();\n    let routerState = React10.useContext(DataRouterStateContext);\n    let { navigator: navigator2, basename } = React10.useContext(NavigationContext);\n    let isTransitioning = routerState != null && // Conditional usage is OK here because the usage of a data router is static\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    useViewTransitionState(path) && viewTransition === true;\n    let toPathname = navigator2.encodeLocation ? navigator2.encodeLocation(path).pathname : path.pathname;\n    let locationPathname = location.pathname;\n    let nextLocationPathname = routerState && routerState.navigation && routerState.navigation.location ? routerState.navigation.location.pathname : null;\n    if (!caseSensitive) {\n      locationPathname = locationPathname.toLowerCase();\n      nextLocationPathname = nextLocationPathname ? nextLocationPathname.toLowerCase() : null;\n      toPathname = toPathname.toLowerCase();\n    }\n    if (nextLocationPathname && basename) {\n      nextLocationPathname = stripBasename(nextLocationPathname, basename) || nextLocationPathname;\n    }\n    const endSlashPosition = toPathname !== \"/\" && toPathname.endsWith(\"/\") ? toPathname.length - 1 : toPathname.length;\n    let isActive = locationPathname === toPathname || !end && locationPathname.startsWith(toPathname) && locationPathname.charAt(endSlashPosition) === \"/\";\n    let isPending = nextLocationPathname != null && (nextLocationPathname === toPathname || !end && nextLocationPathname.startsWith(toPathname) && nextLocationPathname.charAt(toPathname.length) === \"/\");\n    let renderProps = {\n      isActive,\n      isPending,\n      isTransitioning\n    };\n    let ariaCurrent = isActive ? ariaCurrentProp : void 0;\n    let className;\n    if (typeof classNameProp === \"function\") {\n      className = classNameProp(renderProps);\n    } else {\n      className = [\n        classNameProp,\n        isActive ? \"active\" : null,\n        isPending ? \"pending\" : null,\n        isTransitioning ? \"transitioning\" : null\n      ].filter(Boolean).join(\" \");\n    }\n    let style = typeof styleProp === \"function\" ? styleProp(renderProps) : styleProp;\n    return /* @__PURE__ */ React10.createElement(\n      Link,\n      {\n        ...rest,\n        \"aria-current\": ariaCurrent,\n        className,\n        ref,\n        style,\n        to,\n        viewTransition\n      },\n      typeof children === \"function\" ? children(renderProps) : children\n    );\n  }\n);\nNavLink.displayName = \"NavLink\";\nvar Form = React10.forwardRef(\n  ({\n    discover = \"render\",\n    fetcherKey,\n    navigate,\n    reloadDocument,\n    replace: replace2,\n    state,\n    method = defaultMethod,\n    action,\n    onSubmit,\n    relative,\n    preventScrollReset,\n    viewTransition,\n    ...props\n  }, forwardedRef) => {\n    let submit = useSubmit();\n    let formAction = useFormAction(action, { relative });\n    let formMethod = method.toLowerCase() === \"get\" ? \"get\" : \"post\";\n    let isAbsolute = typeof action === \"string\" && ABSOLUTE_URL_REGEX2.test(action);\n    let submitHandler = (event) => {\n      onSubmit && onSubmit(event);\n      if (event.defaultPrevented) return;\n      event.preventDefault();\n      let submitter = event.nativeEvent.submitter;\n      let submitMethod = submitter?.getAttribute(\"formmethod\") || method;\n      submit(submitter || event.currentTarget, {\n        fetcherKey,\n        method: submitMethod,\n        navigate,\n        replace: replace2,\n        state,\n        relative,\n        preventScrollReset,\n        viewTransition\n      });\n    };\n    return /* @__PURE__ */ React10.createElement(\n      \"form\",\n      {\n        ref: forwardedRef,\n        method: formMethod,\n        action: formAction,\n        onSubmit: reloadDocument ? onSubmit : submitHandler,\n        ...props,\n        \"data-discover\": !isAbsolute && discover === \"render\" ? \"true\" : void 0\n      }\n    );\n  }\n);\nForm.displayName = \"Form\";\nfunction ScrollRestoration({\n  getKey,\n  storageKey,\n  ...props\n}) {\n  let remixContext = React10.useContext(FrameworkContext);\n  let { basename } = React10.useContext(NavigationContext);\n  let location = useLocation();\n  let matches = useMatches();\n  useScrollRestoration({ getKey, storageKey });\n  let ssrKey = React10.useMemo(\n    () => {\n      if (!remixContext || !getKey) return null;\n      let userKey = getScrollRestorationKey(\n        location,\n        matches,\n        basename,\n        getKey\n      );\n      return userKey !== location.key ? userKey : null;\n    },\n    // Nah, we only need this the first time for the SSR render\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    []\n  );\n  if (!remixContext || remixContext.isSpaMode) {\n    return null;\n  }\n  let restoreScroll = ((storageKey2, restoreKey) => {\n    if (!window.history.state || !window.history.state.key) {\n      let key = Math.random().toString(32).slice(2);\n      window.history.replaceState({ key }, \"\");\n    }\n    try {\n      let positions = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n      let storedY = positions[restoreKey || window.history.state.key];\n      if (typeof storedY === \"number\") {\n        window.scrollTo(0, storedY);\n      }\n    } catch (error) {\n      console.error(error);\n      sessionStorage.removeItem(storageKey2);\n    }\n  }).toString();\n  return /* @__PURE__ */ React10.createElement(\n    \"script\",\n    {\n      ...props,\n      suppressHydrationWarning: true,\n      dangerouslySetInnerHTML: {\n        __html: `(${restoreScroll})(${JSON.stringify(\n          storageKey || SCROLL_RESTORATION_STORAGE_KEY\n        )}, ${JSON.stringify(ssrKey)})`\n      }\n    }\n  );\n}\nScrollRestoration.displayName = \"ScrollRestoration\";\nfunction getDataRouterConsoleError2(hookName) {\n  return `${hookName} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`;\n}\nfunction useDataRouterContext3(hookName) {\n  let ctx = React10.useContext(DataRouterContext);\n  invariant(ctx, getDataRouterConsoleError2(hookName));\n  return ctx;\n}\nfunction useDataRouterState2(hookName) {\n  let state = React10.useContext(DataRouterStateContext);\n  invariant(state, getDataRouterConsoleError2(hookName));\n  return state;\n}\nfunction useLinkClickHandler(to, {\n  target,\n  replace: replaceProp,\n  state,\n  preventScrollReset,\n  relative,\n  viewTransition\n} = {}) {\n  let navigate = useNavigate();\n  let location = useLocation();\n  let path = useResolvedPath(to, { relative });\n  return React10.useCallback(\n    (event) => {\n      if (shouldProcessLinkClick(event, target)) {\n        event.preventDefault();\n        let replace2 = replaceProp !== void 0 ? replaceProp : createPath(location) === createPath(path);\n        navigate(to, {\n          replace: replace2,\n          state,\n          preventScrollReset,\n          relative,\n          viewTransition\n        });\n      }\n    },\n    [\n      location,\n      navigate,\n      path,\n      replaceProp,\n      state,\n      target,\n      to,\n      preventScrollReset,\n      relative,\n      viewTransition\n    ]\n  );\n}\nfunction useSearchParams(defaultInit) {\n  warning(\n    typeof URLSearchParams !== \"undefined\",\n    `You cannot use the \\`useSearchParams\\` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.`\n  );\n  let defaultSearchParamsRef = React10.useRef(createSearchParams(defaultInit));\n  let hasSetSearchParamsRef = React10.useRef(false);\n  let location = useLocation();\n  let searchParams = React10.useMemo(\n    () => (\n      // Only merge in the defaults if we haven't yet called setSearchParams.\n      // Once we call that we want those to take precedence, otherwise you can't\n      // remove a param with setSearchParams({}) if it has an initial value\n      getSearchParamsForLocation(\n        location.search,\n        hasSetSearchParamsRef.current ? null : defaultSearchParamsRef.current\n      )\n    ),\n    [location.search]\n  );\n  let navigate = useNavigate();\n  let setSearchParams = React10.useCallback(\n    (nextInit, navigateOptions) => {\n      const newSearchParams = createSearchParams(\n        typeof nextInit === \"function\" ? nextInit(searchParams) : nextInit\n      );\n      hasSetSearchParamsRef.current = true;\n      navigate(\"?\" + newSearchParams, navigateOptions);\n    },\n    [navigate, searchParams]\n  );\n  return [searchParams, setSearchParams];\n}\nvar fetcherId = 0;\nvar getUniqueFetcherId = () => `__${String(++fetcherId)}__`;\nfunction useSubmit() {\n  let { router } = useDataRouterContext3(\"useSubmit\" /* UseSubmit */);\n  let { basename } = React10.useContext(NavigationContext);\n  let currentRouteId = useRouteId();\n  return React10.useCallback(\n    async (target, options = {}) => {\n      let { action, method, encType, formData, body } = getFormSubmissionInfo(\n        target,\n        basename\n      );\n      if (options.navigate === false) {\n        let key = options.fetcherKey || getUniqueFetcherId();\n        await router.fetch(key, currentRouteId, options.action || action, {\n          preventScrollReset: options.preventScrollReset,\n          formData,\n          body,\n          formMethod: options.method || method,\n          formEncType: options.encType || encType,\n          flushSync: options.flushSync\n        });\n      } else {\n        await router.navigate(options.action || action, {\n          preventScrollReset: options.preventScrollReset,\n          formData,\n          body,\n          formMethod: options.method || method,\n          formEncType: options.encType || encType,\n          replace: options.replace,\n          state: options.state,\n          fromRouteId: currentRouteId,\n          flushSync: options.flushSync,\n          viewTransition: options.viewTransition\n        });\n      }\n    },\n    [router, basename, currentRouteId]\n  );\n}\nfunction useFormAction(action, { relative } = {}) {\n  let { basename } = React10.useContext(NavigationContext);\n  let routeContext = React10.useContext(RouteContext);\n  invariant(routeContext, \"useFormAction must be used inside a RouteContext\");\n  let [match] = routeContext.matches.slice(-1);\n  let path = { ...useResolvedPath(action ? action : \".\", { relative }) };\n  let location = useLocation();\n  if (action == null) {\n    path.search = location.search;\n    let params = new URLSearchParams(path.search);\n    let indexValues = params.getAll(\"index\");\n    let hasNakedIndexParam = indexValues.some((v) => v === \"\");\n    if (hasNakedIndexParam) {\n      params.delete(\"index\");\n      indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n      let qs = params.toString();\n      path.search = qs ? `?${qs}` : \"\";\n    }\n  }\n  if ((!action || action === \".\") && match.route.index) {\n    path.search = path.search ? path.search.replace(/^\\?/, \"?index&\") : \"?index\";\n  }\n  if (basename !== \"/\") {\n    path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n  }\n  return createPath(path);\n}\nfunction useFetcher({\n  key\n} = {}) {\n  let { router } = useDataRouterContext3(\"useFetcher\" /* UseFetcher */);\n  let state = useDataRouterState2(\"useFetcher\" /* UseFetcher */);\n  let fetcherData = React10.useContext(FetchersContext);\n  let route = React10.useContext(RouteContext);\n  let routeId = route.matches[route.matches.length - 1]?.route.id;\n  invariant(fetcherData, `useFetcher must be used inside a FetchersContext`);\n  invariant(route, `useFetcher must be used inside a RouteContext`);\n  invariant(\n    routeId != null,\n    `useFetcher can only be used on routes that contain a unique \"id\"`\n  );\n  let defaultKey = React10.useId();\n  let [fetcherKey, setFetcherKey] = React10.useState(key || defaultKey);\n  if (key && key !== fetcherKey) {\n    setFetcherKey(key);\n  }\n  React10.useEffect(() => {\n    router.getFetcher(fetcherKey);\n    return () => router.deleteFetcher(fetcherKey);\n  }, [router, fetcherKey]);\n  let load = React10.useCallback(\n    async (href, opts) => {\n      invariant(routeId, \"No routeId available for fetcher.load()\");\n      await router.fetch(fetcherKey, routeId, href, opts);\n    },\n    [fetcherKey, routeId, router]\n  );\n  let submitImpl = useSubmit();\n  let submit = React10.useCallback(\n    async (target, opts) => {\n      await submitImpl(target, {\n        ...opts,\n        navigate: false,\n        fetcherKey\n      });\n    },\n    [fetcherKey, submitImpl]\n  );\n  let FetcherForm = React10.useMemo(() => {\n    let FetcherForm2 = React10.forwardRef(\n      (props, ref) => {\n        return /* @__PURE__ */ React10.createElement(Form, { ...props, navigate: false, fetcherKey, ref });\n      }\n    );\n    FetcherForm2.displayName = \"fetcher.Form\";\n    return FetcherForm2;\n  }, [fetcherKey]);\n  let fetcher = state.fetchers.get(fetcherKey) || IDLE_FETCHER;\n  let data2 = fetcherData.get(fetcherKey);\n  let fetcherWithComponents = React10.useMemo(\n    () => ({\n      Form: FetcherForm,\n      submit,\n      load,\n      ...fetcher,\n      data: data2\n    }),\n    [FetcherForm, submit, load, fetcher, data2]\n  );\n  return fetcherWithComponents;\n}\nfunction useFetchers() {\n  let state = useDataRouterState2(\"useFetchers\" /* UseFetchers */);\n  return Array.from(state.fetchers.entries()).map(([key, fetcher]) => ({\n    ...fetcher,\n    key\n  }));\n}\nvar SCROLL_RESTORATION_STORAGE_KEY = \"react-router-scroll-positions\";\nvar savedScrollPositions = {};\nfunction getScrollRestorationKey(location, matches, basename, getKey) {\n  let key = null;\n  if (getKey) {\n    if (basename !== \"/\") {\n      key = getKey(\n        {\n          ...location,\n          pathname: stripBasename(location.pathname, basename) || location.pathname\n        },\n        matches\n      );\n    } else {\n      key = getKey(location, matches);\n    }\n  }\n  if (key == null) {\n    key = location.key;\n  }\n  return key;\n}\nfunction useScrollRestoration({\n  getKey,\n  storageKey\n} = {}) {\n  let { router } = useDataRouterContext3(\"useScrollRestoration\" /* UseScrollRestoration */);\n  let { restoreScrollPosition, preventScrollReset } = useDataRouterState2(\n    \"useScrollRestoration\" /* UseScrollRestoration */\n  );\n  let { basename } = React10.useContext(NavigationContext);\n  let location = useLocation();\n  let matches = useMatches();\n  let navigation = useNavigation();\n  React10.useEffect(() => {\n    window.history.scrollRestoration = \"manual\";\n    return () => {\n      window.history.scrollRestoration = \"auto\";\n    };\n  }, []);\n  usePageHide(\n    React10.useCallback(() => {\n      if (navigation.state === \"idle\") {\n        let key = getScrollRestorationKey(location, matches, basename, getKey);\n        savedScrollPositions[key] = window.scrollY;\n      }\n      try {\n        sessionStorage.setItem(\n          storageKey || SCROLL_RESTORATION_STORAGE_KEY,\n          JSON.stringify(savedScrollPositions)\n        );\n      } catch (error) {\n        warning(\n          false,\n          `Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${error}).`\n        );\n      }\n      window.history.scrollRestoration = \"auto\";\n    }, [navigation.state, getKey, basename, location, matches, storageKey])\n  );\n  if (typeof document !== \"undefined\") {\n    React10.useLayoutEffect(() => {\n      try {\n        let sessionPositions = sessionStorage.getItem(\n          storageKey || SCROLL_RESTORATION_STORAGE_KEY\n        );\n        if (sessionPositions) {\n          savedScrollPositions = JSON.parse(sessionPositions);\n        }\n      } catch (e) {\n      }\n    }, [storageKey]);\n    React10.useLayoutEffect(() => {\n      let disableScrollRestoration = router?.enableScrollRestoration(\n        savedScrollPositions,\n        () => window.scrollY,\n        getKey ? (location2, matches2) => getScrollRestorationKey(location2, matches2, basename, getKey) : void 0\n      );\n      return () => disableScrollRestoration && disableScrollRestoration();\n    }, [router, basename, getKey]);\n    React10.useLayoutEffect(() => {\n      if (restoreScrollPosition === false) {\n        return;\n      }\n      if (typeof restoreScrollPosition === \"number\") {\n        window.scrollTo(0, restoreScrollPosition);\n        return;\n      }\n      if (location.hash) {\n        let el = document.getElementById(\n          decodeURIComponent(location.hash.slice(1))\n        );\n        if (el) {\n          el.scrollIntoView();\n          return;\n        }\n      }\n      if (preventScrollReset === true) {\n        return;\n      }\n      window.scrollTo(0, 0);\n    }, [location, restoreScrollPosition, preventScrollReset]);\n  }\n}\nfunction useBeforeUnload(callback, options) {\n  let { capture } = options || {};\n  React10.useEffect(() => {\n    let opts = capture != null ? { capture } : void 0;\n    window.addEventListener(\"beforeunload\", callback, opts);\n    return () => {\n      window.removeEventListener(\"beforeunload\", callback, opts);\n    };\n  }, [callback, capture]);\n}\nfunction usePageHide(callback, options) {\n  let { capture } = options || {};\n  React10.useEffect(() => {\n    let opts = capture != null ? { capture } : void 0;\n    window.addEventListener(\"pagehide\", callback, opts);\n    return () => {\n      window.removeEventListener(\"pagehide\", callback, opts);\n    };\n  }, [callback, capture]);\n}\nfunction usePrompt({\n  when,\n  message\n}) {\n  let blocker = useBlocker(when);\n  React10.useEffect(() => {\n    if (blocker.state === \"blocked\") {\n      let proceed = window.confirm(message);\n      if (proceed) {\n        setTimeout(blocker.proceed, 0);\n      } else {\n        blocker.reset();\n      }\n    }\n  }, [blocker, message]);\n  React10.useEffect(() => {\n    if (blocker.state === \"blocked\" && !when) {\n      blocker.reset();\n    }\n  }, [blocker, when]);\n}\nfunction useViewTransitionState(to, opts = {}) {\n  let vtContext = React10.useContext(ViewTransitionContext);\n  invariant(\n    vtContext != null,\n    \"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?\"\n  );\n  let { basename } = useDataRouterContext3(\n    \"useViewTransitionState\" /* useViewTransitionState */\n  );\n  let path = useResolvedPath(to, { relative: opts.relative });\n  if (!vtContext.isTransitioning) {\n    return false;\n  }\n  let currentPath = stripBasename(vtContext.currentLocation.pathname, basename) || vtContext.currentLocation.pathname;\n  let nextPath = stripBasename(vtContext.nextLocation.pathname, basename) || vtContext.nextLocation.pathname;\n  return matchPath(path.pathname, nextPath) != null || matchPath(path.pathname, currentPath) != null;\n}\n\n// lib/dom/server.tsx\nimport * as React11 from \"react\";\nfunction StaticRouter({\n  basename,\n  children,\n  location: locationProp = \"/\"\n}) {\n  if (typeof locationProp === \"string\") {\n    locationProp = parsePath(locationProp);\n  }\n  let action = \"POP\" /* Pop */;\n  let location = {\n    pathname: locationProp.pathname || \"/\",\n    search: locationProp.search || \"\",\n    hash: locationProp.hash || \"\",\n    state: locationProp.state != null ? locationProp.state : null,\n    key: locationProp.key || \"default\"\n  };\n  let staticNavigator = getStatelessNavigator();\n  return /* @__PURE__ */ React11.createElement(\n    Router,\n    {\n      basename,\n      children,\n      location,\n      navigationType: action,\n      navigator: staticNavigator,\n      static: true\n    }\n  );\n}\nfunction StaticRouterProvider({\n  context,\n  router,\n  hydrate = true,\n  nonce\n}) {\n  invariant(\n    router && context,\n    \"You must provide `router` and `context` to <StaticRouterProvider>\"\n  );\n  let dataRouterContext = {\n    router,\n    navigator: getStatelessNavigator(),\n    static: true,\n    staticContext: context,\n    basename: context.basename || \"/\"\n  };\n  let fetchersContext = /* @__PURE__ */ new Map();\n  let hydrateScript = \"\";\n  if (hydrate !== false) {\n    let data2 = {\n      loaderData: context.loaderData,\n      actionData: context.actionData,\n      errors: serializeErrors(context.errors)\n    };\n    let json = htmlEscape(JSON.stringify(JSON.stringify(data2)));\n    hydrateScript = `window.__staticRouterHydrationData = JSON.parse(${json});`;\n  }\n  let { state } = dataRouterContext.router;\n  return /* @__PURE__ */ React11.createElement(React11.Fragment, null, /* @__PURE__ */ React11.createElement(DataRouterContext.Provider, { value: dataRouterContext }, /* @__PURE__ */ React11.createElement(DataRouterStateContext.Provider, { value: state }, /* @__PURE__ */ React11.createElement(FetchersContext.Provider, { value: fetchersContext }, /* @__PURE__ */ React11.createElement(ViewTransitionContext.Provider, { value: { isTransitioning: false } }, /* @__PURE__ */ React11.createElement(\n    Router,\n    {\n      basename: dataRouterContext.basename,\n      location: state.location,\n      navigationType: state.historyAction,\n      navigator: dataRouterContext.navigator,\n      static: dataRouterContext.static\n    },\n    /* @__PURE__ */ React11.createElement(\n      DataRoutes2,\n      {\n        routes: router.routes,\n        future: router.future,\n        state\n      }\n    )\n  ))))), hydrateScript ? /* @__PURE__ */ React11.createElement(\n    \"script\",\n    {\n      suppressHydrationWarning: true,\n      nonce,\n      dangerouslySetInnerHTML: { __html: hydrateScript }\n    }\n  ) : null);\n}\nfunction DataRoutes2({\n  routes,\n  future,\n  state\n}) {\n  return useRoutesImpl(routes, void 0, state, future);\n}\nfunction serializeErrors(errors) {\n  if (!errors) return null;\n  let entries = Object.entries(errors);\n  let serialized = {};\n  for (let [key, val] of entries) {\n    if (isRouteErrorResponse(val)) {\n      serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n    } else if (val instanceof Error) {\n      serialized[key] = {\n        message: val.message,\n        __type: \"Error\",\n        // If this is a subclass (i.e., ReferenceError), send up the type so we\n        // can re-create the same type during hydration.\n        ...val.name !== \"Error\" ? {\n          __subType: val.name\n        } : {}\n      };\n    } else {\n      serialized[key] = val;\n    }\n  }\n  return serialized;\n}\nfunction getStatelessNavigator() {\n  return {\n    createHref,\n    encodeLocation,\n    push(to) {\n      throw new Error(\n        `You cannot use navigator.push() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)})\\` somewhere in your app.`\n      );\n    },\n    replace(to) {\n      throw new Error(\n        `You cannot use navigator.replace() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${JSON.stringify(to)}, { replace: true })\\` somewhere in your app.`\n      );\n    },\n    go(delta) {\n      throw new Error(\n        `You cannot use navigator.go() on the server because it is a stateless environment. This error was probably triggered when you did a \\`navigate(${delta})\\` somewhere in your app.`\n      );\n    },\n    back() {\n      throw new Error(\n        `You cannot use navigator.back() on the server because it is a stateless environment.`\n      );\n    },\n    forward() {\n      throw new Error(\n        `You cannot use navigator.forward() on the server because it is a stateless environment.`\n      );\n    }\n  };\n}\nfunction createStaticHandler2(routes, opts) {\n  return createStaticHandler(routes, {\n    ...opts,\n    mapRouteProperties\n  });\n}\nfunction createStaticRouter(routes, context, opts = {}) {\n  let manifest = {};\n  let dataRoutes = convertRoutesToDataRoutes(\n    routes,\n    mapRouteProperties,\n    void 0,\n    manifest\n  );\n  let matches = context.matches.map((match) => {\n    let route = manifest[match.route.id] || match.route;\n    return {\n      ...match,\n      route\n    };\n  });\n  let msg = (method) => `You cannot use router.${method}() on the server because it is a stateless environment`;\n  return {\n    get basename() {\n      return context.basename;\n    },\n    get future() {\n      return {\n        ...opts?.future\n      };\n    },\n    get state() {\n      return {\n        historyAction: \"POP\" /* Pop */,\n        location: context.location,\n        matches,\n        loaderData: context.loaderData,\n        actionData: context.actionData,\n        errors: context.errors,\n        initialized: true,\n        navigation: IDLE_NAVIGATION,\n        restoreScrollPosition: null,\n        preventScrollReset: false,\n        revalidation: \"idle\",\n        fetchers: /* @__PURE__ */ new Map(),\n        blockers: /* @__PURE__ */ new Map()\n      };\n    },\n    get routes() {\n      return dataRoutes;\n    },\n    get window() {\n      return void 0;\n    },\n    initialize() {\n      throw msg(\"initialize\");\n    },\n    subscribe() {\n      throw msg(\"subscribe\");\n    },\n    enableScrollRestoration() {\n      throw msg(\"enableScrollRestoration\");\n    },\n    navigate() {\n      throw msg(\"navigate\");\n    },\n    fetch() {\n      throw msg(\"fetch\");\n    },\n    revalidate() {\n      throw msg(\"revalidate\");\n    },\n    createHref,\n    encodeLocation,\n    getFetcher() {\n      return IDLE_FETCHER;\n    },\n    deleteFetcher() {\n      throw msg(\"deleteFetcher\");\n    },\n    dispose() {\n      throw msg(\"dispose\");\n    },\n    getBlocker() {\n      return IDLE_BLOCKER;\n    },\n    deleteBlocker() {\n      throw msg(\"deleteBlocker\");\n    },\n    patchRoutes() {\n      throw msg(\"patchRoutes\");\n    },\n    _internalFetchControllers: /* @__PURE__ */ new Map(),\n    _internalSetRoutes() {\n      throw msg(\"_internalSetRoutes\");\n    }\n  };\n}\nfunction createHref(to) {\n  return typeof to === \"string\" ? to : createPath(to);\n}\nfunction encodeLocation(to) {\n  let href = typeof to === \"string\" ? to : createPath(to);\n  href = href.replace(/ $/, \"%20\");\n  let encoded = ABSOLUTE_URL_REGEX3.test(href) ? new URL(href) : new URL(href, \"http://localhost\");\n  return {\n    pathname: encoded.pathname,\n    search: encoded.search,\n    hash: encoded.hash\n  };\n}\nvar ABSOLUTE_URL_REGEX3 = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\nvar ESCAPE_LOOKUP2 = {\n  \"&\": \"\\\\u0026\",\n  \">\": \"\\\\u003e\",\n  \"<\": \"\\\\u003c\",\n  \"\\u2028\": \"\\\\u2028\",\n  \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX2 = /[&><\\u2028\\u2029]/g;\nfunction htmlEscape(str) {\n  return str.replace(ESCAPE_REGEX2, (match) => ESCAPE_LOOKUP2[match]);\n}\n\n// lib/dom/ssr/server.tsx\nimport * as React12 from \"react\";\nfunction ServerRouter({\n  context,\n  url,\n  nonce\n}) {\n  if (typeof url === \"string\") {\n    url = new URL(url);\n  }\n  let { manifest, routeModules, criticalCss, serverHandoffString } = context;\n  let routes = createServerRoutes(\n    manifest.routes,\n    routeModules,\n    context.future,\n    context.isSpaMode\n  );\n  context.staticHandlerContext.loaderData = {\n    ...context.staticHandlerContext.loaderData\n  };\n  for (let match of context.staticHandlerContext.matches) {\n    let routeId = match.route.id;\n    let route = routeModules[routeId];\n    let manifestRoute = context.manifest.routes[routeId];\n    if (route && manifestRoute && shouldHydrateRouteLoader(manifestRoute, route, context.isSpaMode) && (route.HydrateFallback || !manifestRoute.hasLoader)) {\n      delete context.staticHandlerContext.loaderData[routeId];\n    }\n  }\n  let router = createStaticRouter(routes, context.staticHandlerContext);\n  return /* @__PURE__ */ React12.createElement(React12.Fragment, null, /* @__PURE__ */ React12.createElement(\n    FrameworkContext.Provider,\n    {\n      value: {\n        manifest,\n        routeModules,\n        criticalCss,\n        serverHandoffString,\n        future: context.future,\n        isSpaMode: context.isSpaMode,\n        serializeError: context.serializeError,\n        renderMeta: context.renderMeta\n      }\n    },\n    /* @__PURE__ */ React12.createElement(RemixErrorBoundary, { location: router.state.location }, /* @__PURE__ */ React12.createElement(\n      StaticRouterProvider,\n      {\n        router,\n        context: context.staticHandlerContext,\n        hydrate: false\n      }\n    ))\n  ), context.serverHandoffStream ? /* @__PURE__ */ React12.createElement(React12.Suspense, null, /* @__PURE__ */ React12.createElement(\n    StreamTransfer,\n    {\n      context,\n      identifier: 0,\n      reader: context.serverHandoffStream.getReader(),\n      textDecoder: new TextDecoder(),\n      nonce\n    }\n  )) : null);\n}\n\n// lib/dom/ssr/routes-test-stub.tsx\nimport * as React13 from \"react\";\nfunction createRoutesStub(routes, context = {}) {\n  return function RoutesTestStub({\n    initialEntries,\n    initialIndex,\n    hydrationData,\n    future\n  }) {\n    let routerRef = React13.useRef();\n    let remixContextRef = React13.useRef();\n    if (routerRef.current == null) {\n      remixContextRef.current = {\n        future: {},\n        manifest: {\n          routes: {},\n          entry: { imports: [], module: \"\" },\n          url: \"\",\n          version: \"\"\n        },\n        routeModules: {},\n        isSpaMode: false\n      };\n      let patched = processRoutes(\n        // @ts-expect-error loader/action context types don't match :/\n        convertRoutesToDataRoutes(routes, (r) => r),\n        context,\n        remixContextRef.current.manifest,\n        remixContextRef.current.routeModules\n      );\n      routerRef.current = createMemoryRouter(patched, {\n        initialEntries,\n        initialIndex,\n        hydrationData\n      });\n    }\n    return /* @__PURE__ */ React13.createElement(FrameworkContext.Provider, { value: remixContextRef.current }, /* @__PURE__ */ React13.createElement(RouterProvider, { router: routerRef.current }));\n  };\n}\nfunction processRoutes(routes, context, manifest, routeModules, parentId) {\n  return routes.map((route) => {\n    if (!route.id) {\n      throw new Error(\n        \"Expected a route.id in @remix-run/testing processRoutes() function\"\n      );\n    }\n    let { loader, action } = route;\n    let newRoute = {\n      id: route.id,\n      path: route.path,\n      index: route.index,\n      Component: route.Component,\n      HydrateFallback: route.HydrateFallback,\n      ErrorBoundary: route.ErrorBoundary,\n      action: action ? (args) => action({ ...args, context }) : void 0,\n      loader: loader ? (args) => loader({ ...args, context }) : void 0,\n      handle: route.handle,\n      shouldRevalidate: route.shouldRevalidate\n    };\n    let entryRoute = {\n      id: route.id,\n      path: route.path,\n      index: route.index,\n      parentId,\n      hasAction: route.action != null,\n      hasLoader: route.loader != null,\n      // When testing routes, you should just be stubbing loader/action, not\n      // trying to re-implement the full loader/clientLoader/SSR/hydration flow.\n      // That is better tested via E2E tests.\n      hasClientAction: false,\n      hasClientLoader: false,\n      hasErrorBoundary: route.ErrorBoundary != null,\n      module: \"build/stub-path-to-module.js\"\n      // any need for this?\n    };\n    manifest.routes[newRoute.id] = entryRoute;\n    routeModules[route.id] = {\n      default: route.Component || Outlet,\n      ErrorBoundary: route.ErrorBoundary || void 0,\n      handle: route.handle,\n      links: route.links,\n      meta: route.meta,\n      shouldRevalidate: route.shouldRevalidate\n    };\n    if (route.children) {\n      newRoute.children = processRoutes(\n        route.children,\n        context,\n        manifest,\n        routeModules,\n        newRoute.id\n      );\n    }\n    return newRoute;\n  });\n}\n\n// lib/server-runtime/cookies.ts\nimport { parse, serialize } from \"cookie\";\n\n// lib/server-runtime/crypto.ts\nvar encoder = new TextEncoder();\nvar sign = async (value, secret) => {\n  let data2 = encoder.encode(value);\n  let key = await createKey2(secret, [\"sign\"]);\n  let signature = await crypto.subtle.sign(\"HMAC\", key, data2);\n  let hash = btoa(String.fromCharCode(...new Uint8Array(signature))).replace(\n    /=+$/,\n    \"\"\n  );\n  return value + \".\" + hash;\n};\nvar unsign = async (cookie, secret) => {\n  let index = cookie.lastIndexOf(\".\");\n  let value = cookie.slice(0, index);\n  let hash = cookie.slice(index + 1);\n  let data2 = encoder.encode(value);\n  let key = await createKey2(secret, [\"verify\"]);\n  let signature = byteStringToUint8Array(atob(hash));\n  let valid = await crypto.subtle.verify(\"HMAC\", key, signature, data2);\n  return valid ? value : false;\n};\nvar createKey2 = async (secret, usages) => crypto.subtle.importKey(\n  \"raw\",\n  encoder.encode(secret),\n  { name: \"HMAC\", hash: \"SHA-256\" },\n  false,\n  usages\n);\nfunction byteStringToUint8Array(byteString) {\n  let array = new Uint8Array(byteString.length);\n  for (let i = 0; i < byteString.length; i++) {\n    array[i] = byteString.charCodeAt(i);\n  }\n  return array;\n}\n\n// lib/server-runtime/cookies.ts\nvar createCookie = (name, cookieOptions = {}) => {\n  let { secrets = [], ...options } = {\n    path: \"/\",\n    sameSite: \"lax\",\n    ...cookieOptions\n  };\n  warnOnceAboutExpiresCookie(name, options.expires);\n  return {\n    get name() {\n      return name;\n    },\n    get isSigned() {\n      return secrets.length > 0;\n    },\n    get expires() {\n      return typeof options.maxAge !== \"undefined\" ? new Date(Date.now() + options.maxAge * 1e3) : options.expires;\n    },\n    async parse(cookieHeader, parseOptions) {\n      if (!cookieHeader) return null;\n      let cookies = parse(cookieHeader, { ...options, ...parseOptions });\n      if (name in cookies) {\n        let value = cookies[name];\n        if (typeof value === \"string\" && value !== \"\") {\n          let decoded = await decodeCookieValue(value, secrets);\n          return decoded;\n        } else {\n          return \"\";\n        }\n      } else {\n        return null;\n      }\n    },\n    async serialize(value, serializeOptions) {\n      return serialize(\n        name,\n        value === \"\" ? \"\" : await encodeCookieValue(value, secrets),\n        {\n          ...options,\n          ...serializeOptions\n        }\n      );\n    }\n  };\n};\nvar isCookie = (object) => {\n  return object != null && typeof object.name === \"string\" && typeof object.isSigned === \"boolean\" && typeof object.parse === \"function\" && typeof object.serialize === \"function\";\n};\nasync function encodeCookieValue(value, secrets) {\n  let encoded = encodeData(value);\n  if (secrets.length > 0) {\n    encoded = await sign(encoded, secrets[0]);\n  }\n  return encoded;\n}\nasync function decodeCookieValue(value, secrets) {\n  if (secrets.length > 0) {\n    for (let secret of secrets) {\n      let unsignedValue = await unsign(value, secret);\n      if (unsignedValue !== false) {\n        return decodeData(unsignedValue);\n      }\n    }\n    return null;\n  }\n  return decodeData(value);\n}\nfunction encodeData(value) {\n  return btoa(myUnescape(encodeURIComponent(JSON.stringify(value))));\n}\nfunction decodeData(value) {\n  try {\n    return JSON.parse(decodeURIComponent(myEscape(atob(value))));\n  } catch (error) {\n    return {};\n  }\n}\nfunction myEscape(value) {\n  let str = value.toString();\n  let result = \"\";\n  let index = 0;\n  let chr, code;\n  while (index < str.length) {\n    chr = str.charAt(index++);\n    if (/[\\w*+\\-./@]/.exec(chr)) {\n      result += chr;\n    } else {\n      code = chr.charCodeAt(0);\n      if (code < 256) {\n        result += \"%\" + hex(code, 2);\n      } else {\n        result += \"%u\" + hex(code, 4).toUpperCase();\n      }\n    }\n  }\n  return result;\n}\nfunction hex(code, length) {\n  let result = code.toString(16);\n  while (result.length < length) result = \"0\" + result;\n  return result;\n}\nfunction myUnescape(value) {\n  let str = value.toString();\n  let result = \"\";\n  let index = 0;\n  let chr, part;\n  while (index < str.length) {\n    chr = str.charAt(index++);\n    if (chr === \"%\") {\n      if (str.charAt(index) === \"u\") {\n        part = str.slice(index + 1, index + 5);\n        if (/^[\\da-f]{4}$/i.exec(part)) {\n          result += String.fromCharCode(parseInt(part, 16));\n          index += 5;\n          continue;\n        }\n      } else {\n        part = str.slice(index, index + 2);\n        if (/^[\\da-f]{2}$/i.exec(part)) {\n          result += String.fromCharCode(parseInt(part, 16));\n          index += 2;\n          continue;\n        }\n      }\n    }\n    result += chr;\n  }\n  return result;\n}\nfunction warnOnceAboutExpiresCookie(name, expires) {\n  warnOnce(\n    !expires,\n    `The \"${name}\" cookie has an \"expires\" property set. This will cause the expires value to not be updated when the session is committed. Instead, you should set the expires value when serializing the cookie. You can use \\`commitSession(session, { expires })\\` if using a session storage object, or \\`cookie.serialize(\"value\", { expires })\\` if you're using the cookie directly.`\n  );\n}\n\n// lib/server-runtime/entry.ts\nfunction createEntryRouteModules(manifest) {\n  return Object.keys(manifest).reduce((memo2, routeId) => {\n    let route = manifest[routeId];\n    if (route) {\n      memo2[routeId] = route.module;\n    }\n    return memo2;\n  }, {});\n}\n\n// lib/server-runtime/mode.ts\nvar ServerMode = /* @__PURE__ */ ((ServerMode2) => {\n  ServerMode2[\"Development\"] = \"development\";\n  ServerMode2[\"Production\"] = \"production\";\n  ServerMode2[\"Test\"] = \"test\";\n  return ServerMode2;\n})(ServerMode || {});\nfunction isServerMode(value) {\n  return value === \"development\" /* Development */ || value === \"production\" /* Production */ || value === \"test\" /* Test */;\n}\n\n// lib/server-runtime/errors.ts\nfunction sanitizeError(error, serverMode) {\n  if (error instanceof Error && serverMode !== \"development\" /* Development */) {\n    let sanitized = new Error(\"Unexpected Server Error\");\n    sanitized.stack = void 0;\n    return sanitized;\n  }\n  return error;\n}\nfunction sanitizeErrors(errors, serverMode) {\n  return Object.entries(errors).reduce((acc, [routeId, error]) => {\n    return Object.assign(acc, { [routeId]: sanitizeError(error, serverMode) });\n  }, {});\n}\nfunction serializeError(error, serverMode) {\n  let sanitized = sanitizeError(error, serverMode);\n  return {\n    message: sanitized.message,\n    stack: sanitized.stack\n  };\n}\nfunction serializeErrors2(errors, serverMode) {\n  if (!errors) return null;\n  let entries = Object.entries(errors);\n  let serialized = {};\n  for (let [key, val] of entries) {\n    if (isRouteErrorResponse(val)) {\n      serialized[key] = { ...val, __type: \"RouteErrorResponse\" };\n    } else if (val instanceof Error) {\n      let sanitized = sanitizeError(val, serverMode);\n      serialized[key] = {\n        message: sanitized.message,\n        stack: sanitized.stack,\n        __type: \"Error\",\n        // If this is a subclass (i.e., ReferenceError), send up the type so we\n        // can re-create the same type during hydration.  This will only apply\n        // in dev mode since all production errors are sanitized to normal\n        // Error instances\n        ...sanitized.name !== \"Error\" ? {\n          __subType: sanitized.name\n        } : {}\n      };\n    } else {\n      serialized[key] = val;\n    }\n  }\n  return serialized;\n}\n\n// lib/server-runtime/routeMatching.ts\nfunction matchServerRoutes(routes, pathname, basename) {\n  let matches = matchRoutes(\n    routes,\n    pathname,\n    basename\n  );\n  if (!matches) return null;\n  return matches.map((match) => ({\n    params: match.params,\n    pathname: match.pathname,\n    route: match.route\n  }));\n}\n\n// lib/server-runtime/data.ts\nasync function callRouteHandler(handler, args) {\n  let result = await handler({\n    request: stripRoutesParam(stripIndexParam2(args.request)),\n    params: args.params,\n    context: args.context\n  });\n  if (isDataWithResponseInit(result) && result.init && result.init.status && isRedirectStatusCode(result.init.status)) {\n    throw new Response(null, result.init);\n  }\n  return result;\n}\nfunction stripIndexParam2(request) {\n  let url = new URL(request.url);\n  let indexValues = url.searchParams.getAll(\"index\");\n  url.searchParams.delete(\"index\");\n  let indexValuesToKeep = [];\n  for (let indexValue of indexValues) {\n    if (indexValue) {\n      indexValuesToKeep.push(indexValue);\n    }\n  }\n  for (let toKeep of indexValuesToKeep) {\n    url.searchParams.append(\"index\", toKeep);\n  }\n  let init = {\n    method: request.method,\n    body: request.body,\n    headers: request.headers,\n    signal: request.signal\n  };\n  if (init.body) {\n    init.duplex = \"half\";\n  }\n  return new Request(url.href, init);\n}\nfunction stripRoutesParam(request) {\n  let url = new URL(request.url);\n  url.searchParams.delete(\"_routes\");\n  let init = {\n    method: request.method,\n    body: request.body,\n    headers: request.headers,\n    signal: request.signal\n  };\n  if (init.body) {\n    init.duplex = \"half\";\n  }\n  return new Request(url.href, init);\n}\n\n// lib/server-runtime/invariant.ts\nfunction invariant3(value, message) {\n  if (value === false || value === null || typeof value === \"undefined\") {\n    console.error(\n      \"The following error is a bug in React Router; please open an issue! https://github.com/remix-run/react-router/issues/new/choose\"\n    );\n    throw new Error(message);\n  }\n}\n\n// lib/server-runtime/routes.ts\nfunction groupRoutesByParentId2(manifest) {\n  let routes = {};\n  Object.values(manifest).forEach((route) => {\n    if (route) {\n      let parentId = route.parentId || \"\";\n      if (!routes[parentId]) {\n        routes[parentId] = [];\n      }\n      routes[parentId].push(route);\n    }\n  });\n  return routes;\n}\nfunction createRoutes(manifest, parentId = \"\", routesByParentId = groupRoutesByParentId2(manifest)) {\n  return (routesByParentId[parentId] || []).map((route) => ({\n    ...route,\n    children: createRoutes(manifest, route.id, routesByParentId)\n  }));\n}\nfunction createStaticHandlerDataRoutes(manifest, future, parentId = \"\", routesByParentId = groupRoutesByParentId2(manifest)) {\n  return (routesByParentId[parentId] || []).map((route) => {\n    let commonRoute = {\n      // Always include root due to default boundaries\n      hasErrorBoundary: route.id === \"root\" || route.module.ErrorBoundary != null,\n      id: route.id,\n      path: route.path,\n      // Need to use RR's version in the param typed here to permit the optional\n      // context even though we know it'll always be provided in remix\n      loader: route.module.loader ? async (args) => {\n        if (args.request.headers.has(\"X-React-Router-Prerender-Data\")) {\n          const preRenderedData = args.request.headers.get(\n            \"X-React-Router-Prerender-Data\"\n          );\n          let encoded = preRenderedData ? decodeURI(preRenderedData) : preRenderedData;\n          invariant3(encoded, \"Missing prerendered data for route\");\n          let uint8array = new TextEncoder().encode(encoded);\n          let stream = new ReadableStream({\n            start(controller) {\n              controller.enqueue(uint8array);\n              controller.close();\n            }\n          });\n          let decoded = await decodeViaTurboStream(stream, global);\n          let data2 = decoded.value;\n          invariant3(\n            data2 && route.id in data2,\n            \"Unable to decode prerendered data\"\n          );\n          let result = data2[route.id];\n          invariant3(\"data\" in result, \"Unable to process prerendered data\");\n          return result.data;\n        }\n        let val = await callRouteHandler(route.module.loader, args);\n        return val;\n      } : void 0,\n      action: route.module.action ? (args) => callRouteHandler(route.module.action, args) : void 0,\n      handle: route.module.handle\n    };\n    return route.index ? {\n      index: true,\n      ...commonRoute\n    } : {\n      caseSensitive: route.caseSensitive,\n      children: createStaticHandlerDataRoutes(\n        manifest,\n        future,\n        route.id,\n        routesByParentId\n      ),\n      ...commonRoute\n    };\n  });\n}\n\n// lib/server-runtime/markup.ts\nvar ESCAPE_LOOKUP3 = {\n  \"&\": \"\\\\u0026\",\n  \">\": \"\\\\u003e\",\n  \"<\": \"\\\\u003c\",\n  \"\\u2028\": \"\\\\u2028\",\n  \"\\u2029\": \"\\\\u2029\"\n};\nvar ESCAPE_REGEX3 = /[&><\\u2028\\u2029]/g;\nfunction escapeHtml2(html) {\n  return html.replace(ESCAPE_REGEX3, (match) => ESCAPE_LOOKUP3[match]);\n}\n\n// lib/server-runtime/serverHandoff.ts\nfunction createServerHandoffString(serverHandoff) {\n  return escapeHtml2(JSON.stringify(serverHandoff));\n}\n\n// lib/server-runtime/dev.ts\nvar globalDevServerHooksKey = \"__reactRouterDevServerHooks\";\nfunction setDevServerHooks(devServerHooks) {\n  globalThis[globalDevServerHooksKey] = devServerHooks;\n}\nfunction getDevServerHooks() {\n  return globalThis[globalDevServerHooksKey];\n}\n\n// lib/server-runtime/single-fetch.ts\nimport { encode } from \"turbo-stream\";\n\n// lib/server-runtime/headers.ts\nimport { splitCookiesString } from \"set-cookie-parser\";\nfunction getDocumentHeaders(build, context) {\n  let boundaryIdx = context.errors ? context.matches.findIndex((m) => context.errors[m.route.id]) : -1;\n  let matches = boundaryIdx >= 0 ? context.matches.slice(0, boundaryIdx + 1) : context.matches;\n  let errorHeaders;\n  if (boundaryIdx >= 0) {\n    let { actionHeaders, actionData, loaderHeaders, loaderData } = context;\n    context.matches.slice(boundaryIdx).some((match) => {\n      let id = match.route.id;\n      if (actionHeaders[id] && (!actionData || !actionData.hasOwnProperty(id))) {\n        errorHeaders = actionHeaders[id];\n      } else if (loaderHeaders[id] && !loaderData.hasOwnProperty(id)) {\n        errorHeaders = loaderHeaders[id];\n      }\n      return errorHeaders != null;\n    });\n  }\n  return matches.reduce((parentHeaders, match, idx) => {\n    let { id } = match.route;\n    let route = build.routes[id];\n    invariant3(route, `Route with id \"${id}\" not found in build`);\n    let routeModule = route.module;\n    let loaderHeaders = context.loaderHeaders[id] || new Headers();\n    let actionHeaders = context.actionHeaders[id] || new Headers();\n    let includeErrorHeaders = errorHeaders != null && idx === matches.length - 1;\n    let includeErrorCookies = includeErrorHeaders && errorHeaders !== loaderHeaders && errorHeaders !== actionHeaders;\n    if (routeModule.headers == null) {\n      let headers2 = new Headers(parentHeaders);\n      if (includeErrorCookies) {\n        prependCookies(errorHeaders, headers2);\n      }\n      prependCookies(actionHeaders, headers2);\n      prependCookies(loaderHeaders, headers2);\n      return headers2;\n    }\n    let headers = new Headers(\n      routeModule.headers ? typeof routeModule.headers === \"function\" ? routeModule.headers({\n        loaderHeaders,\n        parentHeaders,\n        actionHeaders,\n        errorHeaders: includeErrorHeaders ? errorHeaders : void 0\n      }) : routeModule.headers : void 0\n    );\n    if (includeErrorCookies) {\n      prependCookies(errorHeaders, headers);\n    }\n    prependCookies(actionHeaders, headers);\n    prependCookies(loaderHeaders, headers);\n    prependCookies(parentHeaders, headers);\n    return headers;\n  }, new Headers());\n}\nfunction prependCookies(parentHeaders, childHeaders) {\n  let parentSetCookieString = parentHeaders.get(\"Set-Cookie\");\n  if (parentSetCookieString) {\n    let cookies = splitCookiesString(parentSetCookieString);\n    cookies.forEach((cookie) => {\n      childHeaders.append(\"Set-Cookie\", cookie);\n    });\n  }\n}\n\n// lib/server-runtime/single-fetch.ts\nvar SINGLE_FETCH_REDIRECT_STATUS = 202;\nfunction getSingleFetchDataStrategy2({\n  isActionDataRequest,\n  loadRouteIds\n} = {}) {\n  return async ({ request, matches }) => {\n    if (isActionDataRequest && request.method === \"GET\") {\n      return {};\n    }\n    let matchesToLoad = loadRouteIds ? matches.filter((m) => loadRouteIds.includes(m.route.id)) : matches;\n    let results = await Promise.all(\n      matchesToLoad.map((match) => match.resolve())\n    );\n    return results.reduce(\n      (acc, result, i) => Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n      {}\n    );\n  };\n}\nasync function singleFetchAction(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n  try {\n    let handlerRequest = new Request(handlerUrl, {\n      method: request.method,\n      body: request.body,\n      headers: request.headers,\n      signal: request.signal,\n      ...request.body ? { duplex: \"half\" } : void 0\n    });\n    let result = await staticHandler.query(handlerRequest, {\n      requestContext: loadContext,\n      skipLoaderErrorBubbling: true,\n      dataStrategy: getSingleFetchDataStrategy2({\n        isActionDataRequest: true\n      })\n    });\n    if (isResponse(result)) {\n      return {\n        result: getSingleFetchRedirect(\n          result.status,\n          result.headers,\n          build.basename\n        ),\n        headers: result.headers,\n        status: SINGLE_FETCH_REDIRECT_STATUS\n      };\n    }\n    let context = result;\n    let headers = getDocumentHeaders(build, context);\n    if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n      return {\n        result: getSingleFetchRedirect(\n          context.statusCode,\n          headers,\n          build.basename\n        ),\n        headers,\n        status: SINGLE_FETCH_REDIRECT_STATUS\n      };\n    }\n    if (context.errors) {\n      Object.values(context.errors).forEach((err) => {\n        if (!isRouteErrorResponse(err) || err.error) {\n          handleError(err);\n        }\n      });\n      context.errors = sanitizeErrors(context.errors, serverMode);\n    }\n    let singleFetchResult;\n    if (context.errors) {\n      singleFetchResult = { error: Object.values(context.errors)[0] };\n    } else {\n      singleFetchResult = { data: Object.values(context.actionData || {})[0] };\n    }\n    return {\n      result: singleFetchResult,\n      headers,\n      status: context.statusCode\n    };\n  } catch (error) {\n    handleError(error);\n    return {\n      result: { error },\n      headers: new Headers(),\n      status: 500\n    };\n  }\n}\nasync function singleFetchLoaders(build, serverMode, staticHandler, request, handlerUrl, loadContext, handleError) {\n  try {\n    let handlerRequest = new Request(handlerUrl, {\n      headers: request.headers,\n      signal: request.signal\n    });\n    let loadRouteIds = new URL(request.url).searchParams.get(\"_routes\")?.split(\",\") || void 0;\n    let result = await staticHandler.query(handlerRequest, {\n      requestContext: loadContext,\n      skipLoaderErrorBubbling: true,\n      dataStrategy: getSingleFetchDataStrategy2({\n        loadRouteIds\n      })\n    });\n    if (isResponse(result)) {\n      return {\n        result: {\n          [SingleFetchRedirectSymbol]: getSingleFetchRedirect(\n            result.status,\n            result.headers,\n            build.basename\n          )\n        },\n        headers: result.headers,\n        status: SINGLE_FETCH_REDIRECT_STATUS\n      };\n    }\n    let context = result;\n    let headers = getDocumentHeaders(build, context);\n    if (isRedirectStatusCode(context.statusCode) && headers.has(\"Location\")) {\n      return {\n        result: {\n          [SingleFetchRedirectSymbol]: getSingleFetchRedirect(\n            context.statusCode,\n            headers,\n            build.basename\n          )\n        },\n        headers,\n        status: SINGLE_FETCH_REDIRECT_STATUS\n      };\n    }\n    if (context.errors) {\n      Object.values(context.errors).forEach((err) => {\n        if (!isRouteErrorResponse(err) || err.error) {\n          handleError(err);\n        }\n      });\n      context.errors = sanitizeErrors(context.errors, serverMode);\n    }\n    let results = {};\n    let loadedMatches = loadRouteIds ? context.matches.filter(\n      (m) => m.route.loader && loadRouteIds.includes(m.route.id)\n    ) : context.matches;\n    loadedMatches.forEach((m) => {\n      let { id } = m.route;\n      if (context.errors && context.errors.hasOwnProperty(id)) {\n        results[id] = { error: context.errors[id] };\n      } else if (context.loaderData.hasOwnProperty(id)) {\n        results[id] = { data: context.loaderData[id] };\n      }\n    });\n    return {\n      result: results,\n      headers,\n      status: context.statusCode\n    };\n  } catch (error) {\n    handleError(error);\n    return {\n      result: { root: { error } },\n      headers: new Headers(),\n      status: 500\n    };\n  }\n}\nfunction getSingleFetchRedirect(status, headers, basename) {\n  let redirect2 = headers.get(\"Location\");\n  if (basename) {\n    redirect2 = stripBasename(redirect2, basename) || redirect2;\n  }\n  return {\n    redirect: redirect2,\n    status,\n    revalidate: (\n      // Technically X-Remix-Revalidate isn't needed here - that was an implementation\n      // detail of ?_data requests as our way to tell the front end to revalidate when\n      // we didn't have a response body to include that information in.\n      // With single fetch, we tell the front end via this revalidate boolean field.\n      // However, we're respecting it for now because it may be something folks have\n      // used in their own responses\n      // TODO(v3): Consider removing or making this official public API\n      headers.has(\"X-Remix-Revalidate\") || headers.has(\"Set-Cookie\")\n    ),\n    reload: headers.has(\"X-Remix-Reload-Document\"),\n    replace: headers.has(\"X-Remix-Replace\")\n  };\n}\nfunction encodeViaTurboStream(data2, requestSignal, streamTimeout, serverMode) {\n  let controller = new AbortController();\n  let timeoutId = setTimeout(\n    () => controller.abort(new Error(\"Server Timeout\")),\n    typeof streamTimeout === \"number\" ? streamTimeout : 4950\n  );\n  requestSignal.addEventListener(\"abort\", () => clearTimeout(timeoutId));\n  return encode(data2, {\n    signal: controller.signal,\n    plugins: [\n      (value) => {\n        if (value instanceof Error) {\n          let { name, message, stack } = serverMode === \"production\" /* Production */ ? sanitizeError(value, serverMode) : value;\n          return [\"SanitizedError\", name, message, stack];\n        }\n        if (value instanceof ErrorResponseImpl) {\n          let { data: data3, status, statusText } = value;\n          return [\"ErrorResponse\", data3, status, statusText];\n        }\n        if (value && typeof value === \"object\" && SingleFetchRedirectSymbol in value) {\n          return [\"SingleFetchRedirect\", value[SingleFetchRedirectSymbol]];\n        }\n      }\n    ],\n    postPlugins: [\n      (value) => {\n        if (!value) return;\n        if (typeof value !== \"object\") return;\n        return [\n          \"SingleFetchClassInstance\",\n          Object.fromEntries(Object.entries(value))\n        ];\n      },\n      () => [\"SingleFetchFallback\"]\n    ]\n  });\n}\n\n// lib/server-runtime/server.ts\nfunction derive(build, mode) {\n  let routes = createRoutes(build.routes);\n  let dataRoutes = createStaticHandlerDataRoutes(build.routes, build.future);\n  let serverMode = isServerMode(mode) ? mode : \"production\" /* Production */;\n  let staticHandler = createStaticHandler(dataRoutes, {\n    basename: build.basename\n  });\n  let errorHandler = build.entry.module.handleError || ((error, { request }) => {\n    if (serverMode !== \"test\" /* Test */ && !request.signal.aborted) {\n      console.error(\n        // @ts-expect-error This is \"private\" from users but intended for internal use\n        isRouteErrorResponse(error) && error.error ? error.error : error\n      );\n    }\n  });\n  return {\n    routes,\n    dataRoutes,\n    serverMode,\n    staticHandler,\n    errorHandler\n  };\n}\nvar createRequestHandler = (build, mode) => {\n  let _build;\n  let routes;\n  let serverMode;\n  let staticHandler;\n  let errorHandler;\n  return async function requestHandler(request, loadContext = {}) {\n    _build = typeof build === \"function\" ? await build() : build;\n    if (typeof build === \"function\") {\n      let derived = derive(_build, mode);\n      routes = derived.routes;\n      serverMode = derived.serverMode;\n      staticHandler = derived.staticHandler;\n      errorHandler = derived.errorHandler;\n    } else if (!routes || !serverMode || !staticHandler || !errorHandler) {\n      let derived = derive(_build, mode);\n      routes = derived.routes;\n      serverMode = derived.serverMode;\n      staticHandler = derived.staticHandler;\n      errorHandler = derived.errorHandler;\n    }\n    let url = new URL(request.url);\n    let params = {};\n    let handleError = (error) => {\n      if (mode === \"development\" /* Development */) {\n        getDevServerHooks()?.processRequestError?.(error);\n      }\n      errorHandler(error, {\n        context: loadContext,\n        params,\n        request\n      });\n    };\n    let manifestUrl = `${_build.basename ?? \"/\"}/__manifest`.replace(\n      /\\/+/g,\n      \"/\"\n    );\n    if (url.pathname === manifestUrl) {\n      try {\n        let res = await handleManifestRequest(_build, routes, url);\n        return res;\n      } catch (e) {\n        handleError(e);\n        return new Response(\"Unknown Server Error\", { status: 500 });\n      }\n    }\n    let matches = matchServerRoutes(routes, url.pathname, _build.basename);\n    if (matches && matches.length > 0) {\n      Object.assign(params, matches[0].params);\n    }\n    let response;\n    if (url.pathname.endsWith(\".data\")) {\n      let handlerUrl = new URL(request.url);\n      handlerUrl.pathname = handlerUrl.pathname.replace(/\\.data$/, \"\").replace(/^\\/_root$/, \"/\");\n      let singleFetchMatches = matchServerRoutes(\n        routes,\n        handlerUrl.pathname,\n        _build.basename\n      );\n      response = await handleSingleFetchRequest(\n        serverMode,\n        _build,\n        staticHandler,\n        request,\n        handlerUrl,\n        loadContext,\n        handleError\n      );\n      if (_build.entry.module.handleDataRequest) {\n        response = await _build.entry.module.handleDataRequest(response, {\n          context: loadContext,\n          params: singleFetchMatches ? singleFetchMatches[0].params : {},\n          request\n        });\n        if (isRedirectResponse(response)) {\n          let result = getSingleFetchRedirect(\n            response.status,\n            response.headers,\n            _build.basename\n          );\n          if (request.method === \"GET\") {\n            result = {\n              [SingleFetchRedirectSymbol]: result\n            };\n          }\n          let headers = new Headers(response.headers);\n          headers.set(\"Content-Type\", \"text/x-script\");\n          return new Response(\n            encodeViaTurboStream(\n              result,\n              request.signal,\n              _build.entry.module.streamTimeout,\n              serverMode\n            ),\n            {\n              status: SINGLE_FETCH_REDIRECT_STATUS,\n              headers\n            }\n          );\n        }\n      }\n    } else if (matches && matches[matches.length - 1].route.module.default == null && matches[matches.length - 1].route.module.ErrorBoundary == null) {\n      response = await handleResourceRequest(\n        serverMode,\n        staticHandler,\n        matches.slice(-1)[0].route.id,\n        request,\n        loadContext,\n        handleError\n      );\n    } else {\n      let criticalCss = mode === \"development\" /* Development */ ? await getDevServerHooks()?.getCriticalCss?.(_build, url.pathname) : void 0;\n      response = await handleDocumentRequest(\n        serverMode,\n        _build,\n        staticHandler,\n        request,\n        loadContext,\n        handleError,\n        criticalCss\n      );\n    }\n    if (request.method === \"HEAD\") {\n      return new Response(null, {\n        headers: response.headers,\n        status: response.status,\n        statusText: response.statusText\n      });\n    }\n    return response;\n  };\n};\nasync function handleManifestRequest(build, routes, url) {\n  let patches = {};\n  if (url.searchParams.has(\"p\")) {\n    for (let path of url.searchParams.getAll(\"p\")) {\n      let matches = matchServerRoutes(routes, path, build.basename);\n      if (matches) {\n        for (let match of matches) {\n          let routeId = match.route.id;\n          let route = build.assets.routes[routeId];\n          if (route) {\n            patches[routeId] = route;\n          }\n        }\n      }\n    }\n    return Response.json(patches, {\n      headers: {\n        \"Cache-Control\": \"public, max-age=31536000, immutable\"\n      }\n    });\n  }\n  return new Response(\"Invalid Request\", { status: 400 });\n}\nasync function handleSingleFetchRequest(serverMode, build, staticHandler, request, handlerUrl, loadContext, handleError) {\n  let { result, headers, status } = request.method !== \"GET\" ? await singleFetchAction(\n    build,\n    serverMode,\n    staticHandler,\n    request,\n    handlerUrl,\n    loadContext,\n    handleError\n  ) : await singleFetchLoaders(\n    build,\n    serverMode,\n    staticHandler,\n    request,\n    handlerUrl,\n    loadContext,\n    handleError\n  );\n  let resultHeaders = new Headers(headers);\n  resultHeaders.set(\"X-Remix-Response\", \"yes\");\n  if (status === 304) {\n    return new Response(null, { status: 304, headers: resultHeaders });\n  }\n  resultHeaders.set(\"Content-Type\", \"text/x-script\");\n  return new Response(\n    encodeViaTurboStream(\n      result,\n      request.signal,\n      build.entry.module.streamTimeout,\n      serverMode\n    ),\n    {\n      status: status || 200,\n      headers: resultHeaders\n    }\n  );\n}\nasync function handleDocumentRequest(serverMode, build, staticHandler, request, loadContext, handleError, criticalCss) {\n  let context;\n  try {\n    context = await staticHandler.query(request, {\n      requestContext: loadContext\n    });\n  } catch (error) {\n    handleError(error);\n    return new Response(null, { status: 500 });\n  }\n  if (isResponse(context)) {\n    return context;\n  }\n  let headers = getDocumentHeaders(build, context);\n  if (context.statusCode === 304) {\n    return new Response(null, { status: 304, headers });\n  }\n  if (context.errors) {\n    Object.values(context.errors).forEach((err) => {\n      if (!isRouteErrorResponse(err) || err.error) {\n        handleError(err);\n      }\n    });\n    context.errors = sanitizeErrors(context.errors, serverMode);\n  }\n  let state = {\n    loaderData: context.loaderData,\n    actionData: context.actionData,\n    errors: serializeErrors2(context.errors, serverMode)\n  };\n  let entryContext = {\n    manifest: build.assets,\n    routeModules: createEntryRouteModules(build.routes),\n    staticHandlerContext: context,\n    criticalCss,\n    serverHandoffString: createServerHandoffString({\n      basename: build.basename,\n      criticalCss,\n      future: build.future,\n      isSpaMode: build.isSpaMode\n    }),\n    serverHandoffStream: encodeViaTurboStream(\n      state,\n      request.signal,\n      build.entry.module.streamTimeout,\n      serverMode\n    ),\n    renderMeta: {},\n    future: build.future,\n    isSpaMode: build.isSpaMode,\n    serializeError: (err) => serializeError(err, serverMode)\n  };\n  let handleDocumentRequestFunction = build.entry.module.default;\n  try {\n    return await handleDocumentRequestFunction(\n      request,\n      context.statusCode,\n      headers,\n      entryContext,\n      loadContext\n    );\n  } catch (error) {\n    handleError(error);\n    let errorForSecondRender = error;\n    if (isResponse(error)) {\n      try {\n        let data2 = await unwrapResponse(error);\n        errorForSecondRender = new ErrorResponseImpl(\n          error.status,\n          error.statusText,\n          data2\n        );\n      } catch (e) {\n      }\n    }\n    context = getStaticContextFromError(\n      staticHandler.dataRoutes,\n      context,\n      errorForSecondRender\n    );\n    if (context.errors) {\n      context.errors = sanitizeErrors(context.errors, serverMode);\n    }\n    let state2 = {\n      loaderData: context.loaderData,\n      actionData: context.actionData,\n      errors: serializeErrors2(context.errors, serverMode)\n    };\n    entryContext = {\n      ...entryContext,\n      staticHandlerContext: context,\n      serverHandoffString: createServerHandoffString({\n        basename: build.basename,\n        future: build.future,\n        isSpaMode: build.isSpaMode\n      }),\n      serverHandoffStream: encodeViaTurboStream(\n        state2,\n        request.signal,\n        build.entry.module.streamTimeout,\n        serverMode\n      ),\n      renderMeta: {}\n    };\n    try {\n      return await handleDocumentRequestFunction(\n        request,\n        context.statusCode,\n        headers,\n        entryContext,\n        loadContext\n      );\n    } catch (error2) {\n      handleError(error2);\n      return returnLastResortErrorResponse(error2, serverMode);\n    }\n  }\n}\nasync function handleResourceRequest(serverMode, staticHandler, routeId, request, loadContext, handleError) {\n  try {\n    let response = await staticHandler.queryRoute(request, {\n      routeId,\n      requestContext: loadContext\n    });\n    invariant3(\n      isResponse(response),\n      \"Expected a Response to be returned from resource route handler\"\n    );\n    return response;\n  } catch (error) {\n    if (isResponse(error)) {\n      error.headers.set(\"X-Remix-Catch\", \"yes\");\n      return error;\n    }\n    if (isRouteErrorResponse(error)) {\n      if (error) {\n        handleError(error);\n      }\n      return errorResponseToJson(error, serverMode);\n    }\n    handleError(error);\n    return returnLastResortErrorResponse(error, serverMode);\n  }\n}\nfunction errorResponseToJson(errorResponse, serverMode) {\n  return Response.json(\n    serializeError(\n      // @ts-expect-error This is \"private\" from users but intended for internal use\n      errorResponse.error || new Error(\"Unexpected Server Error\"),\n      serverMode\n    ),\n    {\n      status: errorResponse.status,\n      statusText: errorResponse.statusText,\n      headers: {\n        \"X-Remix-Error\": \"yes\"\n      }\n    }\n  );\n}\nfunction returnLastResortErrorResponse(error, serverMode) {\n  let message = \"Unexpected Server Error\";\n  if (serverMode !== \"production\" /* Production */) {\n    message += `\n\n${String(error)}`;\n  }\n  return new Response(message, {\n    status: 500,\n    headers: {\n      \"Content-Type\": \"text/plain\"\n    }\n  });\n}\nfunction unwrapResponse(response) {\n  let contentType = response.headers.get(\"Content-Type\");\n  return contentType && /\\bapplication\\/json\\b/.test(contentType) ? response.body == null ? null : response.json() : response.text();\n}\n\n// lib/server-runtime/sessions.ts\nfunction flash(name) {\n  return `__flash_${name}__`;\n}\nvar createSession = (initialData = {}, id = \"\") => {\n  let map = new Map(Object.entries(initialData));\n  return {\n    get id() {\n      return id;\n    },\n    get data() {\n      return Object.fromEntries(map);\n    },\n    has(name) {\n      return map.has(name) || map.has(flash(name));\n    },\n    get(name) {\n      if (map.has(name)) return map.get(name);\n      let flashName = flash(name);\n      if (map.has(flashName)) {\n        let value = map.get(flashName);\n        map.delete(flashName);\n        return value;\n      }\n      return void 0;\n    },\n    set(name, value) {\n      map.set(name, value);\n    },\n    flash(name, value) {\n      map.set(flash(name), value);\n    },\n    unset(name) {\n      map.delete(name);\n    }\n  };\n};\nvar isSession = (object) => {\n  return object != null && typeof object.id === \"string\" && typeof object.data !== \"undefined\" && typeof object.has === \"function\" && typeof object.get === \"function\" && typeof object.set === \"function\" && typeof object.flash === \"function\" && typeof object.unset === \"function\";\n};\nfunction createSessionStorage({\n  cookie: cookieArg,\n  createData,\n  readData,\n  updateData,\n  deleteData\n}) {\n  let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n  warnOnceAboutSigningSessionCookie(cookie);\n  return {\n    async getSession(cookieHeader, options) {\n      let id = cookieHeader && await cookie.parse(cookieHeader, options);\n      let data2 = id && await readData(id);\n      return createSession(data2 || {}, id || \"\");\n    },\n    async commitSession(session, options) {\n      let { id, data: data2 } = session;\n      let expires = options?.maxAge != null ? new Date(Date.now() + options.maxAge * 1e3) : options?.expires != null ? options.expires : cookie.expires;\n      if (id) {\n        await updateData(id, data2, expires);\n      } else {\n        id = await createData(data2, expires);\n      }\n      return cookie.serialize(id, options);\n    },\n    async destroySession(session, options) {\n      await deleteData(session.id);\n      return cookie.serialize(\"\", {\n        ...options,\n        maxAge: void 0,\n        expires: /* @__PURE__ */ new Date(0)\n      });\n    }\n  };\n}\nfunction warnOnceAboutSigningSessionCookie(cookie) {\n  warnOnce(\n    cookie.isSigned,\n    `The \"${cookie.name}\" cookie is not signed, but session cookies should be signed to prevent tampering on the client before they are sent back to the server. See https://remix.run/utils/cookies#signing-cookies for more information.`\n  );\n}\n\n// lib/server-runtime/sessions/cookieStorage.ts\nfunction createCookieSessionStorage({ cookie: cookieArg } = {}) {\n  let cookie = isCookie(cookieArg) ? cookieArg : createCookie(cookieArg?.name || \"__session\", cookieArg);\n  warnOnceAboutSigningSessionCookie(cookie);\n  return {\n    async getSession(cookieHeader, options) {\n      return createSession(\n        cookieHeader && await cookie.parse(cookieHeader, options) || {}\n      );\n    },\n    async commitSession(session, options) {\n      let serializedCookie = await cookie.serialize(session.data, options);\n      if (serializedCookie.length > 4096) {\n        throw new Error(\n          \"Cookie length will exceed browser maximum. Length: \" + serializedCookie.length\n        );\n      }\n      return serializedCookie;\n    },\n    async destroySession(_session, options) {\n      return cookie.serialize(\"\", {\n        ...options,\n        maxAge: void 0,\n        expires: /* @__PURE__ */ new Date(0)\n      });\n    }\n  };\n}\n\n// lib/server-runtime/sessions/memoryStorage.ts\nfunction createMemorySessionStorage({ cookie } = {}) {\n  let map = /* @__PURE__ */ new Map();\n  return createSessionStorage({\n    cookie,\n    async createData(data2, expires) {\n      let id = Math.random().toString(36).substring(2, 10);\n      map.set(id, { data: data2, expires });\n      return id;\n    },\n    async readData(id) {\n      if (map.has(id)) {\n        let { data: data2, expires } = map.get(id);\n        if (!expires || expires > /* @__PURE__ */ new Date()) {\n          return data2;\n        }\n        if (expires) map.delete(id);\n      }\n      return null;\n    },\n    async updateData(id, data2, expires) {\n      map.set(id, { data: data2, expires });\n    },\n    async deleteData(id) {\n      map.delete(id);\n    }\n  });\n}\n\n// lib/dom/ssr/errors.ts\nfunction deserializeErrors2(errors) {\n  if (!errors) return null;\n  let entries = Object.entries(errors);\n  let serialized = {};\n  for (let [key, val] of entries) {\n    if (val && val.__type === \"RouteErrorResponse\") {\n      serialized[key] = new ErrorResponseImpl(\n        val.status,\n        val.statusText,\n        val.data,\n        val.internal === true\n      );\n    } else if (val && val.__type === \"Error\") {\n      if (val.__subType) {\n        let ErrorConstructor = window[val.__subType];\n        if (typeof ErrorConstructor === \"function\") {\n          try {\n            let error = new ErrorConstructor(val.message);\n            error.stack = val.stack;\n            serialized[key] = error;\n          } catch (e) {\n          }\n        }\n      }\n      if (serialized[key] == null) {\n        let error = new Error(val.message);\n        error.stack = val.stack;\n        serialized[key] = error;\n      }\n    } else {\n      serialized[key] = val;\n    }\n  }\n  return serialized;\n}\n\nexport {\n  Action,\n  createBrowserHistory,\n  invariant,\n  createPath,\n  parsePath,\n  matchRoutes,\n  generatePath,\n  matchPath,\n  resolvePath,\n  data,\n  redirect,\n  redirectDocument,\n  replace,\n  ErrorResponseImpl,\n  isRouteErrorResponse,\n  IDLE_NAVIGATION,\n  IDLE_FETCHER,\n  IDLE_BLOCKER,\n  createRouter,\n  DataRouterContext,\n  DataRouterStateContext,\n  ViewTransitionContext,\n  FetchersContext,\n  NavigationContext,\n  LocationContext,\n  RouteContext,\n  useHref,\n  useInRouterContext,\n  useLocation,\n  useNavigationType,\n  useMatch,\n  useNavigate,\n  useOutletContext,\n  useOutlet,\n  useParams,\n  useResolvedPath,\n  useRoutes,\n  useNavigation,\n  useRevalidator,\n  useMatches,\n  useLoaderData,\n  useRouteLoaderData,\n  useActionData,\n  useRouteError,\n  useAsyncValue,\n  useAsyncError,\n  useBlocker,\n  mapRouteProperties,\n  createMemoryRouter,\n  RouterProvider,\n  MemoryRouter,\n  Navigate,\n  Outlet,\n  Route,\n  Router,\n  Routes,\n  Await,\n  createRoutesFromChildren,\n  createRoutesFromElements,\n  renderMatches,\n  createSearchParams,\n  SingleFetchRedirectSymbol,\n  getSingleFetchDataStrategy,\n  decodeViaTurboStream,\n  RemixErrorBoundary,\n  createClientRoutesWithHMRRevalidationOptOut,\n  createClientRoutes,\n  shouldHydrateRouteLoader,\n  getPatchRoutesOnNavigationFunction,\n  useFogOFWarDiscovery,\n  FrameworkContext,\n  Links,\n  PrefetchPageLinks,\n  Meta,\n  Scripts,\n  createBrowserRouter,\n  createHashRouter,\n  BrowserRouter,\n  HashRouter,\n  HistoryRouter,\n  Link,\n  NavLink,\n  Form,\n  ScrollRestoration,\n  useLinkClickHandler,\n  useSearchParams,\n  useSubmit,\n  useFormAction,\n  useFetcher,\n  useFetchers,\n  useScrollRestoration,\n  useBeforeUnload,\n  usePrompt,\n  useViewTransitionState,\n  StaticRouter,\n  StaticRouterProvider,\n  createStaticHandler2 as createStaticHandler,\n  createStaticRouter,\n  ServerRouter,\n  createRoutesStub,\n  createCookie,\n  isCookie,\n  ServerMode,\n  setDevServerHooks,\n  createRequestHandler,\n  createSession,\n  isSession,\n  createSessionStorage,\n  createCookieSessionStorage,\n  createMemorySessionStorage,\n  deserializeErrors2 as deserializeErrors\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\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    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\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 *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\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 (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    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\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 *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && 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 *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\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 *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n  DIGIT,\n  ALPHA,\n  ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n  let str = '';\n  const {length} = alphabet;\n  while (size--) {\n    str += alphabet[Math.random() * length|0]\n  }\n\n  return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n\n  return postMessageSupported ? ((token, callbacks) => {\n    _global.addEventListener(\"message\", ({source, data}) => {\n      if (source === _global && data === token) {\n        callbacks.length && callbacks.shift()();\n      }\n    }, false);\n\n    return (cb) => {\n      callbacks.push(cb);\n      _global.postMessage(token, \"*\");\n    }\n  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n  typeof setImmediate === 'function',\n  isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  ALPHABET,\n  generateString,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  if (response) {\n    this.response = response;\n    this.status = response.status ? response.status : null;\n  }\n}\n\nutils.inherits(AxiosError, Error, {\n  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: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (PlatformFormData || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\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 * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || encode;\n\n  if (utils.isFunction(options)) {\n    options = {\n      serialize: options\n    };\n  } \n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n  constructor() {\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   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\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   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\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   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n  isBrowser: true,\n  classes: {\n    URLSearchParams,\n    FormData,\n    Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\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 *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n  hasBrowserEnv,\n  hasStandardBrowserWebWorkerEnv,\n  hasStandardBrowserEnv,\n  _navigator as navigator,\n  origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n  ...utils,\n  ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: transitionalDefaults,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\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  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n  return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\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} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n  const config = this || defaults;\n  const context = response || config;\n  const headers = AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n  __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\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 *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new AxiosError(\n      'Request failed with status code ' + response.status,\n      [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn.apply(null, args);\n  }\n\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if ( passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs)\n        }, threshold - passed);\n      }\n    }\n  }\n\n  const flush = () => lastArgs && invoke(lastArgs);\n\n  return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = speedometer(50, 250);\n\n  return throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true\n    };\n\n    listener(data);\n  }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n\n  return [(loaded) => throttled[0]({\n    lengthComputable,\n    total,\n    loaded\n  }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n  url = new URL(url, platform.origin);\n\n  return (\n    origin.protocol === url.protocol &&\n    origin.host === url.host &&\n    (isMSIE || origin.port === url.port)\n  );\n})(\n  new URL(platform.origin),\n  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\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 *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default 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 *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\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 *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, prop, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, 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  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, prop , caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, prop , caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, prop , caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\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\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n    let {responseType, onUploadProgress, onDownloadProgress} = _config;\n    let onCanceled;\n    let uploadThrottled, downloadThrottled;\n    let flushUpload, flushDownload;\n\n    function done() {\n      flushUpload && flushUpload(); // flush events\n      flushDownload && flushDownload(); // flush events\n\n      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n      _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\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        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\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(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, 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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || transitionalDefaults;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n        config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\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 (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (onDownloadProgress) {\n      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n      request.addEventListener('progress', downloadThrottled);\n    }\n\n    // Not all browsers support upload events\n    if (onUploadProgress && request.upload) {\n      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n      request.upload.addEventListener('progress', uploadThrottled);\n\n      request.upload.addEventListener('loadend', flushUpload);\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n  const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n  if (timeout || length) {\n    let controller = new AbortController();\n\n    let aborted;\n\n    const onabort = function (reason) {\n      if (!aborted) {\n        aborted = true;\n        unsubscribe();\n        const err = reason instanceof Error ? reason : this.reason;\n        controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n      }\n    }\n\n    let timer = timeout && setTimeout(() => {\n      timer = null;\n      onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n    }, timeout)\n\n    const unsubscribe = () => {\n      if (signals) {\n        timer && clearTimeout(timer);\n        timer = null;\n        signals.forEach(signal => {\n          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n        });\n        signals = null;\n      }\n    }\n\n    signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n    const {signal} = controller;\n\n    signal.unsubscribe = () => utils.asap(unsubscribe);\n\n    return signal;\n  }\n}\n\nexport default composeSignals;\n","function _OverloadYield(e, d) {\n  this.v = e, this.k = d;\n}\nexport { _OverloadYield as default };","import OverloadYield from \"./OverloadYield.js\";\nfunction _wrapAsyncGenerator(e) {\n  return function () {\n    return new AsyncGenerator(e.apply(this, arguments));\n  };\n}\nfunction AsyncGenerator(e) {\n  var r, t;\n  function resume(r, t) {\n    try {\n      var n = e[r](t),\n        o = n.value,\n        u = o instanceof OverloadYield;\n      Promise.resolve(u ? o.v : o).then(function (t) {\n        if (u) {\n          var i = \"return\" === r ? \"return\" : \"next\";\n          if (!o.k || t.done) return resume(i, t);\n          t = e[i](t).value;\n        }\n        settle(n.done ? \"return\" : \"normal\", t);\n      }, function (e) {\n        resume(\"throw\", e);\n      });\n    } catch (e) {\n      settle(\"throw\", e);\n    }\n  }\n  function settle(e, n) {\n    switch (e) {\n      case \"return\":\n        r.resolve({\n          value: n,\n          done: !0\n        });\n        break;\n      case \"throw\":\n        r.reject(n);\n        break;\n      default:\n        r.resolve({\n          value: n,\n          done: !1\n        });\n    }\n    (r = r.next) ? resume(r.key, r.arg) : t = null;\n  }\n  this._invoke = function (e, n) {\n    return new Promise(function (o, u) {\n      var i = {\n        key: e,\n        arg: n,\n        resolve: o,\n        reject: u,\n        next: null\n      };\n      t ? t = t.next = i : (r = t = i, resume(e, n));\n    });\n  }, \"function\" != typeof e[\"return\"] && (this[\"return\"] = void 0);\n}\nAsyncGenerator.prototype[\"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\"] = function () {\n  return this;\n}, AsyncGenerator.prototype.next = function (e) {\n  return this._invoke(\"next\", e);\n}, AsyncGenerator.prototype[\"throw\"] = function (e) {\n  return this._invoke(\"throw\", e);\n}, AsyncGenerator.prototype[\"return\"] = function (e) {\n  return this._invoke(\"return\", e);\n};\nexport { _wrapAsyncGenerator as default };","import OverloadYield from \"./OverloadYield.js\";\nfunction _awaitAsyncGenerator(e) {\n  return new OverloadYield(e, 0);\n}\nexport { _awaitAsyncGenerator as default };","import OverloadYield from \"./OverloadYield.js\";\nfunction _asyncGeneratorDelegate(t) {\n  var e = {},\n    n = !1;\n  function pump(e, r) {\n    return n = !0, r = new Promise(function (n) {\n      n(t[e](r));\n    }), {\n      done: !1,\n      value: new OverloadYield(r, 1)\n    };\n  }\n  return e[\"undefined\" != typeof Symbol && Symbol.iterator || \"@@iterator\"] = function () {\n    return this;\n  }, e.next = function (t) {\n    return n ? (n = !1, t) : pump(\"next\", t);\n  }, \"function\" == typeof t[\"throw\"] && (e[\"throw\"] = function (t) {\n    if (n) throw n = !1, t;\n    return pump(\"throw\", t);\n  }), \"function\" == typeof t[\"return\"] && (e[\"return\"] = function (t) {\n    return n ? (n = !1, t) : pump(\"return\", t);\n  }), e;\n}\nexport { _asyncGeneratorDelegate as default };","function _asyncIterator(r) {\n  var n,\n    t,\n    o,\n    e = 2;\n  for (\"undefined\" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {\n    if (t && null != (n = r[t])) return n.call(r);\n    if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));\n    t = \"@@asyncIterator\", o = \"@@iterator\";\n  }\n  throw new TypeError(\"Object is not async iterable\");\n}\nfunction AsyncFromSyncIterator(r) {\n  function AsyncFromSyncIteratorContinuation(r) {\n    if (Object(r) !== r) return Promise.reject(new TypeError(r + \" is not an object.\"));\n    var n = r.done;\n    return Promise.resolve(r.value).then(function (r) {\n      return {\n        value: r,\n        done: n\n      };\n    });\n  }\n  return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {\n    this.s = r, this.n = r.next;\n  }, AsyncFromSyncIterator.prototype = {\n    s: null,\n    n: null,\n    next: function next() {\n      return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));\n    },\n    \"return\": function _return(r) {\n      var n = this.s[\"return\"];\n      return void 0 === n ? Promise.resolve({\n        value: r,\n        done: !0\n      }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n    },\n    \"throw\": function _throw(r) {\n      var n = this.s[\"return\"];\n      return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));\n    }\n  }, new AsyncFromSyncIterator(r);\n}\nexport { _asyncIterator as default };","\nexport const streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n}\n\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const {done, value} = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n\n  let bytes = 0;\n  let done;\n  let _onFinish = (e) => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  }\n\n  return new ReadableStream({\n    async pull(controller) {\n      try {\n        const {done, value} = await iterator.next();\n\n        if (done) {\n         _onFinish();\n          controller.close();\n          return;\n        }\n\n        let len = value.byteLength;\n        if (onProgress) {\n          let loadedBytes = bytes += len;\n          onProgress(loadedBytes);\n        }\n        controller.enqueue(new Uint8Array(value));\n      } catch (err) {\n        _onFinish(err);\n        throw err;\n      }\n    },\n    cancel(reason) {\n      _onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false\n  }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n  test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    const _request = new Request(platform.origin, {\n      method: 'POST',\n      body,\n    });\n    return (await _request.arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n  let request;\n\n  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n      composedSignal.unsubscribe();\n  });\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        const [onProgress, flush] = progressEventDecorator(\n          requestContentLength,\n          progressEventReducer(asyncDecorator(onUploadProgress))\n        );\n\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'include' : 'omit';\n    }\n\n    // Cloudflare Workers throws when credentials are defined\n    // see https://github.com/cloudflare/workerd/issues/902\n    const isCredentialsSupported = \"credentials\" in Request.prototype;\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      credentials: isCredentialsSupported ? withCredentials : undefined\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n        responseContentLength,\n        progressEventReducer(asyncDecorator(onDownloadProgress), true)\n      ) || [];\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n          flush && flush();\n          unsubscribe && unsubscribe();\n        }),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && unsubscribe && unsubscribe();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    unsubscribe && unsubscribe();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw AxiosError.from(err, err && err.code, config, request);\n  }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n  http: httpAdapter,\n  xhr: xhrAdapter,\n  fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new CanceledError(null, config);\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 *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(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.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = AxiosHeaders.from(response.headers);\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.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n","export const VERSION = \"1.7.9\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\nexport default {\n  assertOptions,\n  validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(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 {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    validator.assertOptions(config, {\n      baseUrl: validators.spelling('baseURL'),\n      withXsrfToken: validators.spelling('withXSRFToken')\n    }, true);\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\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,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  toAbortSignal() {\n    const controller = new AbortController();\n\n    const abort = (err) => {\n      controller.abort(err);\n    };\n\n    this.subscribe(abort);\n\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new Axios(defaultConfig);\n  const instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\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 *\n * @returns {Function}\n */\nexport default function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","\nfunction injectStyle(css) {\n  if (!css || typeof document === 'undefined') return\n\n  const head = document.head || document.getElementsByTagName('head')[0]\n  const style = document.createElement('style')\n  style.type = 'text/css'\n          \n  if(head.firstChild) {\n    head.insertBefore(style, head.firstChild)\n  } else {\n    head.appendChild(style)\n  }\n\n  if(style.styleSheet) {\n    style.styleSheet.cssText = css\n  } else {\n    style.appendChild(document.createTextNode(css))\n  }\n}\ninjectStyle(\":root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:\\\"\\\";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:\\\"\\\";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\\n\");","import { isValidElement } from 'react';\nimport { Id } from '../types';\n\nexport const isNum = (v: any): v is Number => typeof v === 'number' && !isNaN(v);\n\nexport const isStr = (v: any): v is String => typeof v === 'string';\n\nexport const isFn = (v: any): v is Function => typeof v === 'function';\n\nexport const isId = (v: unknown): v is Id => isStr(v) || isNum(v);\n\nexport const parseClassName = (v: any) => (isStr(v) || isFn(v) ? v : null);\n\nexport const getAutoCloseDelay = (toastAutoClose?: false | number, containerAutoClose?: false | number) =>\n  toastAutoClose === false || (isNum(toastAutoClose) && toastAutoClose > 0) ? toastAutoClose : containerAutoClose;\n\nexport const canBeRendered = <T>(content: T): boolean =>\n  isValidElement(content) || isStr(content) || isFn(content) || isNum(content);\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport { collapseToast } from './collapseToast';\nimport { Default } from './constant';\n\nimport { ToastTransitionProps } from '../types';\n\nexport interface CSSTransitionProps {\n  /**\n   * Css class to apply when toast enter\n   */\n  enter: string;\n\n  /**\n   * Css class to apply when toast leave\n   */\n  exit: string;\n\n  /**\n   * Append current toast position to the classname.\n   * If multiple classes are provided, only the last one will get the position\n   * For instance `myclass--top-center`...\n   * `Default: false`\n   */\n  appendPosition?: boolean;\n\n  /**\n   * Collapse toast smoothly when exit animation end\n   * `Default: true`\n   */\n  collapse?: boolean;\n\n  /**\n   * Collapse transition duration\n   * `Default: 300`\n   */\n  collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n  Enter,\n  Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n *   enter: \"animate__animated animate__bounceIn\",\n *   exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n  enter,\n  exit,\n  appendPosition = false,\n  collapse = true,\n  collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n  return function ToastTransition({\n    children,\n    position,\n    preventExitTransition,\n    done,\n    nodeRef,\n    isIn,\n    playToast\n  }: ToastTransitionProps) {\n    const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n    const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n    const animationStep = useRef(AnimationStep.Enter);\n\n    useLayoutEffect(() => {\n      const node = nodeRef.current!;\n      const classToToken = enterClassName.split(' ');\n\n      const onEntered = (e: AnimationEvent) => {\n        if (e.target !== nodeRef.current) return;\n\n        playToast();\n        node.removeEventListener('animationend', onEntered);\n        node.removeEventListener('animationcancel', onEntered);\n        if (animationStep.current === AnimationStep.Enter && e.type !== 'animationcancel') {\n          node.classList.remove(...classToToken);\n        }\n      };\n\n      const onEnter = () => {\n        node.classList.add(...classToToken);\n        node.addEventListener('animationend', onEntered);\n        node.addEventListener('animationcancel', onEntered);\n      };\n\n      onEnter();\n    }, []);\n\n    useEffect(() => {\n      const node = nodeRef.current!;\n\n      const onExited = () => {\n        node.removeEventListener('animationend', onExited);\n        collapse ? collapseToast(node, done, collapseDuration) : done();\n      };\n\n      const onExit = () => {\n        animationStep.current = AnimationStep.Exit;\n        node.className += ` ${exitClassName}`;\n        node.addEventListener('animationend', onExited);\n      };\n\n      if (!isIn) preventExitTransition ? onExited() : onExit();\n    }, [isIn]);\n\n    return <>{children}</>;\n  };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(node: HTMLElement, done: () => void, duration = Default.COLLAPSE_DURATION) {\n  const { scrollHeight, style } = node;\n\n  requestAnimationFrame(() => {\n    style.minHeight = 'initial';\n    style.height = scrollHeight + 'px';\n    style.transition = `all ${duration}ms`;\n\n    requestAnimationFrame(() => {\n      style.height = '0';\n      style.padding = '0';\n      style.margin = '0';\n      setTimeout(done, duration as number);\n    });\n  });\n}\n","import { Toast, ToastContentProps, ToastItem, ToastItemStatus, ToastProps } from '../types';\nimport { cloneElement, isValidElement, ReactElement } from 'react';\nimport { isFn, isStr } from './propValidator';\n\nexport function toToastItem(toast: Toast, status: ToastItemStatus): ToastItem {\n  return {\n    content: renderContent(toast.content, toast.props),\n    containerId: toast.props.containerId,\n    id: toast.props.toastId,\n    theme: toast.props.theme,\n    type: toast.props.type,\n    data: toast.props.data || {},\n    isLoading: toast.props.isLoading,\n    icon: toast.props.icon,\n    reason: toast.removalReason,\n    status\n  };\n}\n\nexport function renderContent(content: unknown, props: ToastProps, isPaused: boolean = false) {\n  if (isValidElement(content) && !isStr(content.type)) {\n    return cloneElement<ToastContentProps>(content as ReactElement<any>, {\n      closeToast: props.closeToast,\n      toastProps: props,\n      data: props.data,\n      isPaused\n    });\n  } else if (isFn(content)) {\n    return content({\n      closeToast: props.closeToast,\n      toastProps: props,\n      data: props.data,\n      isPaused\n    });\n  }\n\n  return content;\n}\n","import React from 'react';\nimport cx from 'clsx';\n\nimport { Default, isFn, Type } from '../utils';\nimport { Theme, ToastClassName, TypeOptions } from '../types';\n\nexport interface ProgressBarProps {\n  /**\n   * The animation delay which determine when to close the toast\n   */\n  delay: number;\n\n  /**\n   * The animation is running or paused\n   */\n  isRunning: boolean;\n\n  /**\n   * Func to close the current toast\n   */\n  closeToast: () => void;\n\n  /**\n   * Optional type : info, success ...\n   */\n  type?: TypeOptions;\n\n  /**\n   * The theme that is currently used\n   */\n  theme: Theme;\n\n  /**\n   * Hide or not the progress bar\n   */\n  hide?: boolean;\n\n  /**\n   * Optional className\n   */\n  className?: ToastClassName;\n\n  /**\n   * Tell whether a controlled progress bar is used\n   */\n  controlledProgress?: boolean;\n\n  /**\n   * Controlled progress value\n   */\n  progress?: number | string;\n\n  /**\n   * Support rtl content\n   */\n  rtl?: boolean;\n\n  /**\n   * Tell if the component is visible on screen or not\n   */\n  isIn?: boolean;\n}\n\nexport function ProgressBar({\n  delay,\n  isRunning,\n  closeToast,\n  type = Type.DEFAULT,\n  hide,\n  className,\n  controlledProgress,\n  progress,\n  rtl,\n  isIn,\n  theme\n}: ProgressBarProps) {\n  const isHidden = hide || (controlledProgress && progress === 0);\n  const style: React.CSSProperties = {\n    animationDuration: `${delay}ms`,\n    animationPlayState: isRunning ? 'running' : 'paused'\n  };\n\n  if (controlledProgress) style.transform = `scaleX(${progress})`;\n  const defaultClassName = cx(\n    `${Default.CSS_NAMESPACE}__progress-bar`,\n    controlledProgress\n      ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n      : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n    `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n    `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n    {\n      [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n    }\n  );\n  const classNames = isFn(className)\n    ? className({\n        rtl,\n        type,\n        defaultClassName\n      })\n    : cx(defaultClassName, className);\n\n  // 🧐 controlledProgress is derived from progress\n  // so if controlledProgress is set\n  // it means that this is also the case for progress\n  const animationEvent = {\n    [controlledProgress && (progress as number)! >= 1 ? 'onTransitionEnd' : 'onAnimationEnd']:\n      controlledProgress && (progress as number)! < 1\n        ? null\n        : () => {\n            isIn && closeToast();\n          }\n  };\n\n  // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n  return (\n    <div className={`${Default.CSS_NAMESPACE}__progress-bar--wrp`} data-hidden={isHidden}>\n      <div\n        className={`${Default.CSS_NAMESPACE}__progress-bar--bg ${Default.CSS_NAMESPACE}__progress-bar-theme--${theme} ${Default.CSS_NAMESPACE}__progress-bar--${type}`}\n      />\n      <div\n        role=\"progressbar\"\n        aria-hidden={isHidden ? 'true' : 'false'}\n        aria-label=\"notification timer\"\n        className={classNames}\n        style={style}\n        {...animationEvent}\n      />\n    </div>\n  );\n}\n","let TOAST_ID = 1;\n\nexport const genToastId = () => `${TOAST_ID++}`;\n","import {\n  Id,\n  NotValidatedToastProps,\n  OnChangeCallback,\n  Toast,\n  ToastContainerProps,\n  ToastContent,\n  ToastProps\n} from '../types';\nimport { canBeRendered, getAutoCloseDelay, isNum, parseClassName, toToastItem } from '../utils';\n\ntype Notify = () => void;\n\nexport type ContainerObserver = ReturnType<typeof createContainerObserver>;\n\nexport function createContainerObserver(\n  id: Id,\n  containerProps: ToastContainerProps,\n  dispatchChanges: OnChangeCallback\n) {\n  let toastKey = 1;\n  let toastCount = 0;\n  let queue: Toast[] = [];\n  let snapshot: Toast[] = [];\n  let props = containerProps;\n  const toasts = new Map<Id, Toast>();\n  const listeners = new Set<Notify>();\n\n  const observe = (notify: Notify) => {\n    listeners.add(notify);\n    return () => listeners.delete(notify);\n  };\n\n  const notify = () => {\n    snapshot = Array.from(toasts.values());\n    listeners.forEach(cb => cb());\n  };\n\n  const shouldIgnoreToast = ({ containerId, toastId, updateId }: NotValidatedToastProps) => {\n    const containerMismatch = containerId ? containerId !== id : id !== 1;\n    const isDuplicate = toasts.has(toastId) && updateId == null;\n\n    return containerMismatch || isDuplicate;\n  };\n\n  const toggle = (v: boolean, id?: Id) => {\n    toasts.forEach(t => {\n      if (id == null || id === t.props.toastId) t.toggle?.(v);\n    });\n  };\n\n  const markAsRemoved = (v: Toast) => {\n    v.props?.onClose?.(v.removalReason);\n    v.isActive = false;\n  };\n\n  const removeToast = (id?: Id) => {\n    if (id == null) {\n      toasts.forEach(markAsRemoved);\n    } else {\n      const t = toasts.get(id);\n      if (t) markAsRemoved(t);\n    }\n    notify();\n  };\n\n  const clearQueue = () => {\n    toastCount -= queue.length;\n    queue = [];\n  };\n\n  const addActiveToast = (toast: Toast) => {\n    const { toastId, updateId } = toast.props;\n    const isNew = updateId == null;\n\n    if (toast.staleId) toasts.delete(toast.staleId);\n    toast.isActive = true;\n\n    toasts.set(toastId, toast);\n    notify();\n    dispatchChanges(toToastItem(toast, isNew ? 'added' : 'updated'));\n\n    if (isNew) toast.props.onOpen?.();\n  };\n\n  const buildToast = <TData = unknown>(content: ToastContent<TData>, options: NotValidatedToastProps) => {\n    if (shouldIgnoreToast(options)) return;\n\n    const { toastId, updateId, data, staleId, delay } = options;\n\n    const isNotAnUpdate = updateId == null;\n\n    if (isNotAnUpdate) toastCount++;\n\n    const toastProps = {\n      ...props,\n      style: props.toastStyle,\n      key: toastKey++,\n      ...Object.fromEntries(Object.entries(options).filter(([_, v]) => v != null)),\n      toastId,\n      updateId,\n      data,\n      isIn: false,\n      className: parseClassName(options.className || props.toastClassName),\n      progressClassName: parseClassName(options.progressClassName || props.progressClassName),\n      autoClose: options.isLoading ? false : getAutoCloseDelay(options.autoClose, props.autoClose),\n      closeToast(reason?: true) {\n        toasts.get(toastId)!.removalReason = reason;\n        removeToast(toastId);\n      },\n      deleteToast() {\n        const toastToRemove = toasts.get(toastId);\n\n        if (toastToRemove == null) return;\n\n        dispatchChanges(toToastItem(toastToRemove, 'removed'));\n        toasts.delete(toastId);\n\n        toastCount--;\n        if (toastCount < 0) toastCount = 0;\n\n        if (queue.length > 0) {\n          addActiveToast(queue.shift());\n          return;\n        }\n\n        notify();\n      }\n    } as ToastProps;\n\n    toastProps.closeButton = props.closeButton;\n\n    if (options.closeButton === false || canBeRendered(options.closeButton)) {\n      toastProps.closeButton = options.closeButton;\n    } else if (options.closeButton === true) {\n      toastProps.closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n    }\n\n    const activeToast = {\n      content,\n      props: toastProps,\n      staleId\n    } as Toast;\n\n    // not handling limit + delay by design. Waiting for user feedback first\n    if (props.limit && props.limit > 0 && toastCount > props.limit && isNotAnUpdate) {\n      queue.push(activeToast);\n    } else if (isNum(delay)) {\n      setTimeout(() => {\n        addActiveToast(activeToast);\n      }, delay);\n    } else {\n      addActiveToast(activeToast);\n    }\n  };\n\n  return {\n    id,\n    props,\n    observe,\n    toggle,\n    removeToast,\n    toasts,\n    clearQueue,\n    buildToast,\n    setProps(p: ToastContainerProps) {\n      props = p;\n    },\n    setToggle: (id: Id, fn: (v: boolean) => void) => {\n      const t = toasts.get(id);\n      if (t) t.toggle = fn;\n    },\n    isToastActive: (id: Id) => toasts.get(id)?.isActive,\n    getSnapshot: () => snapshot\n  };\n}\n","import {\n  ClearWaitingQueueParams,\n  Id,\n  NotValidatedToastProps,\n  OnChangeCallback,\n  ToastContainerProps,\n  ToastContent,\n  ToastItem,\n  ToastOptions\n} from '../types';\nimport { Default, canBeRendered, isId } from '../utils';\nimport { ContainerObserver, createContainerObserver } from './containerObserver';\n\ninterface EnqueuedToast {\n  content: ToastContent<any>;\n  options: NotValidatedToastProps;\n}\n\ninterface RemoveParams {\n  id?: Id;\n  containerId: Id;\n}\n\nconst containers = new Map<Id, ContainerObserver>();\nlet renderQueue: EnqueuedToast[] = [];\nconst listeners = new Set<OnChangeCallback>();\n\nconst dispatchChanges = (data: ToastItem) => listeners.forEach(cb => cb(data));\n\nconst hasContainers = () => containers.size > 0;\n\nfunction flushRenderQueue() {\n  renderQueue.forEach(v => pushToast(v.content, v.options));\n  renderQueue = [];\n}\n\nexport const getToast = (id: Id, { containerId }: ToastOptions) =>\n  containers.get(containerId || Default.CONTAINER_ID)?.toasts.get(id);\n\nexport function isToastActive(id: Id, containerId?: Id) {\n  if (containerId) return !!containers.get(containerId)?.isToastActive(id);\n\n  let isActive = false;\n  containers.forEach(c => {\n    if (c.isToastActive(id)) isActive = true;\n  });\n\n  return isActive;\n}\n\nexport function removeToast(params?: Id | RemoveParams) {\n  if (!hasContainers()) {\n    renderQueue = renderQueue.filter(v => params != null && v.options.toastId !== params);\n    return;\n  }\n\n  if (params == null || isId(params)) {\n    containers.forEach(c => {\n      c.removeToast(params as Id);\n    });\n  } else if (params && ('containerId' in params || 'id' in params)) {\n    const container = containers.get(params.containerId);\n    container\n      ? container.removeToast(params.id)\n      : containers.forEach(c => {\n          c.removeToast(params.id);\n        });\n  }\n}\n\nexport const clearWaitingQueue = (p: ClearWaitingQueueParams = {}) => {\n  containers.forEach(c => {\n    if (c.props.limit && (!p.containerId || c.id === p.containerId)) {\n      c.clearQueue();\n    }\n  });\n};\n\nexport function pushToast<TData>(content: ToastContent<TData>, options: NotValidatedToastProps) {\n  if (!canBeRendered(content)) return;\n  if (!hasContainers()) renderQueue.push({ content, options });\n\n  containers.forEach(c => {\n    c.buildToast(content, options);\n  });\n}\n\ninterface ToggleToastParams {\n  id?: Id;\n  containerId?: Id;\n}\n\ntype RegisterToggleOpts = {\n  id: Id;\n  containerId?: Id;\n  fn: (v: boolean) => void;\n};\n\nexport function registerToggle(opts: RegisterToggleOpts) {\n  containers.get(opts.containerId || Default.CONTAINER_ID)?.setToggle(opts.id, opts.fn);\n}\n\nexport function toggleToast(v: boolean, opt?: ToggleToastParams) {\n  containers.forEach(c => {\n    if (opt == null || !opt?.containerId) {\n      c.toggle(v, opt?.id);\n    } else if (opt?.containerId === c.id) {\n      c.toggle(v, opt?.id);\n    }\n  });\n}\n\nexport function registerContainer(props: ToastContainerProps) {\n  const id = props.containerId || Default.CONTAINER_ID;\n  return {\n    subscribe(notify: () => void) {\n      const container = createContainerObserver(id, props, dispatchChanges);\n\n      containers.set(id, container);\n      const unobserve = container.observe(notify);\n      flushRenderQueue();\n\n      return () => {\n        unobserve();\n        containers.delete(id);\n      };\n    },\n    setProps(p: ToastContainerProps) {\n      containers.get(id)?.setProps(p);\n    },\n    getSnapshot() {\n      return containers.get(id)?.getSnapshot();\n    }\n  };\n}\n\nexport function onChange(cb: OnChangeCallback) {\n  listeners.add(cb);\n\n  return () => {\n    listeners.delete(cb);\n  };\n}\n","import {\n  ClearWaitingQueueFunc,\n  Id,\n  IdOpts,\n  NotValidatedToastProps,\n  OnChangeCallback,\n  ToastContent,\n  ToastOptions,\n  ToastProps,\n  TypeOptions,\n  UpdateOptions\n} from '../types';\nimport { isFn, isNum, isStr, Type } from '../utils';\nimport { genToastId } from './genToastId';\nimport { clearWaitingQueue, getToast, isToastActive, onChange, pushToast, removeToast, toggleToast } from './store';\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId<TData>(options?: ToastOptions<TData>) {\n  return options && (isStr(options.toastId) || isNum(options.toastId)) ? options.toastId : genToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued\n */\nfunction dispatchToast<TData>(content: ToastContent<TData>, options: NotValidatedToastProps): Id {\n  pushToast(content, options);\n  return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions<TData>(type: string, options?: ToastOptions<TData>) {\n  return {\n    ...options,\n    type: (options && options.type) || type,\n    toastId: getToastId(options)\n  } as NotValidatedToastProps;\n}\n\nfunction createToastByType(type: string) {\n  return <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\n    dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast<TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) {\n  return dispatchToast(content, mergeOptions(Type.DEFAULT, options));\n}\n\ntoast.loading = <TData = unknown>(content: ToastContent<TData>, options?: ToastOptions<TData>) =>\n  dispatchToast(\n    content,\n    mergeOptions(Type.DEFAULT, {\n      isLoading: true,\n      autoClose: false,\n      closeOnClick: false,\n      closeButton: false,\n      draggable: false,\n      ...options\n    })\n  );\n\nexport interface ToastPromiseParams<TData = unknown, TError = unknown, TPending = unknown> {\n  pending?: string | UpdateOptions<TPending>;\n  success?: string | UpdateOptions<TData>;\n  error?: string | UpdateOptions<TError>;\n}\n\nfunction handlePromise<TData = unknown, TError = unknown, TPending = unknown>(\n  promise: Promise<TData> | (() => Promise<TData>),\n  { pending, error, success }: ToastPromiseParams<TData, TError, TPending>,\n  options?: ToastOptions<TData>\n) {\n  let id: Id;\n\n  if (pending) {\n    id = isStr(pending)\n      ? toast.loading(pending, options)\n      : toast.loading(pending.render, {\n          ...options,\n          ...(pending as ToastOptions)\n        } as ToastOptions<TPending>);\n  }\n\n  const resetParams = {\n    isLoading: null,\n    autoClose: null,\n    closeOnClick: null,\n    closeButton: null,\n    draggable: null\n  };\n\n  const resolver = <T>(type: TypeOptions, input: string | UpdateOptions<T> | undefined, result: T) => {\n    // Remove the toast if the input has not been provided. This prevents the toast from hanging\n    // in the pending state if a success/error toast has not been provided.\n    if (input == null) {\n      toast.dismiss(id);\n      return;\n    }\n\n    const baseParams = {\n      type,\n      ...resetParams,\n      ...options,\n      data: result\n    };\n    const params = isStr(input) ? { render: input } : input;\n\n    // if the id is set we know that it's an update\n    if (id) {\n      toast.update(id, {\n        ...baseParams,\n        ...params\n      } as UpdateOptions);\n    } else {\n      // using toast.promise without loading\n      toast(params!.render, {\n        ...baseParams,\n        ...params\n      } as ToastOptions<T>);\n    }\n\n    return result;\n  };\n\n  const p = isFn(promise) ? promise() : promise;\n\n  //call the resolvers only when needed\n  p.then(result => resolver('success', success, result)).catch(err => resolver('error', error, err));\n\n  return p;\n}\n\n/**\n * Supply a promise or a function that return a promise and the notification will be updated if it resolves or fails.\n * When the promise is pending a spinner is displayed by default.\n * `toast.promise` returns the provided promise so you can chain it.\n *\n * Simple example:\n *\n * ```\n * toast.promise(MyPromise,\n *  {\n *    pending: 'Promise is pending',\n *    success: 'Promise resolved 👌',\n *    error: 'Promise rejected 🤯'\n *  }\n * )\n *\n * ```\n *\n * Advanced usage:\n * ```\n * toast.promise<{name: string}, {message: string}, undefined>(\n *    resolveWithSomeData,\n *    {\n *      pending: {\n *        render: () => \"I'm loading\",\n *        icon: false,\n *      },\n *      success: {\n *        render: ({data}) => `Hello ${data.name}`,\n *        icon: \"🟢\",\n *      },\n *      error: {\n *        render({data}){\n *          // When the promise reject, data will contains the error\n *          return <MyErrorComponent message={data.message} />\n *        }\n *      }\n *    }\n * )\n * ```\n */\ntoast.promise = handlePromise;\ntoast.success = createToastByType(Type.SUCCESS);\ntoast.info = createToastByType(Type.INFO);\ntoast.error = createToastByType(Type.ERROR);\ntoast.warning = createToastByType(Type.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n  dispatchToast(\n    content,\n    mergeOptions(Type.DEFAULT, {\n      theme: 'dark',\n      ...options\n    })\n  );\n\ninterface RemoveParams {\n  id?: Id;\n  containerId: Id;\n}\n\nfunction dismiss(params: RemoveParams): void;\nfunction dismiss(params?: Id): void;\nfunction dismiss(params?: Id | RemoveParams) {\n  removeToast(params);\n}\n\n/**\n * Remove toast programmatically\n *\n * - Remove all toasts:\n * ```\n * toast.dismiss()\n * ```\n *\n * - Remove all toasts that belongs to a given container\n * ```\n * toast.dismiss({ container: \"123\" })\n * ```\n *\n * - Remove toast that has a given id regardless the container\n * ```\n * toast.dismiss({ id: \"123\" })\n * ```\n *\n * - Remove toast that has a given id for a specific container\n * ```\n * toast.dismiss({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.dismiss = dismiss;\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = clearWaitingQueue as ClearWaitingQueueFunc;\n\n/**\n * Check if a toast is active\n *\n * - Check regardless the container\n * ```\n * toast.isActive(\"123\")\n * ```\n *\n * - Check in a specific container\n * ```\n * toast.isActive(\"123\", \"containerId\")\n * ```\n */\ntoast.isActive = isToastActive;\n\n/**\n * Update a toast, see https://fkhadra.github.io/react-toastify/update-toast/ for more\n *\n * Example:\n * ```\n * // With a string\n * toast.update(toastId, {\n *    render: \"New content\",\n *    type: \"info\",\n * });\n *\n * // Or with a component\n * toast.update(toastId, {\n *    render: MyComponent\n * });\n *\n * // Or a function\n * toast.update(toastId, {\n *    render: () => <div>New content</div>\n * });\n *\n * // Apply a transition\n * toast.update(toastId, {\n *   render: \"New Content\",\n *   type: toast.TYPE.INFO,\n *   transition: Rotate\n * })\n * ```\n */\ntoast.update = <TData = unknown>(toastId: Id, options: UpdateOptions<TData> = {}) => {\n  const toast = getToast(toastId, options as ToastOptions);\n\n  if (toast) {\n    const { props: oldOptions, content: oldContent } = toast;\n\n    const nextOptions = {\n      delay: 100,\n      ...oldOptions,\n      ...options,\n      toastId: options.toastId || toastId,\n      updateId: genToastId()\n    } as ToastProps & UpdateOptions;\n\n    if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n    const content = nextOptions.render || oldContent;\n    delete nextOptions.render;\n\n    dispatchToast(content, nextOptions);\n  }\n};\n\n/**\n * Used for controlled progress bar. It will automatically close the notification.\n *\n * If you don't want your notification to be clsoed when the timer is done you should use `toast.update` instead as follow instead:\n *\n * ```\n * toast.update(id, {\n *    progress: null, // remove controlled progress bar\n *    render: \"ok\",\n *    type: \"success\",\n *    autoClose: 5000 // set autoClose to the desired value\n *   });\n * ```\n */\ntoast.done = (id: Id) => {\n  toast.update(id, {\n    progress: 1\n  });\n};\n\n/**\n * Subscribe to change when a toast is added, removed and updated\n *\n * Usage:\n * ```\n * const unsubscribe = toast.onChange((payload) => {\n *   switch (payload.status) {\n *   case \"added\":\n *     // new toast added\n *     break;\n *   case \"updated\":\n *     // toast updated\n *     break;\n *   case \"removed\":\n *     // toast has been removed\n *     break;\n *   }\n * })\n * ```\n */\ntoast.onChange = onChange as (cb: OnChangeCallback) => () => void;\n\n/**\n * Play a toast(s) timer progammatically\n *\n * Usage:\n *\n * - Play all toasts\n * ```\n * toast.play()\n * ```\n *\n * - Play all toasts for a given container\n * ```\n * toast.play({ containerId: \"123\" })\n * ```\n *\n * - Play toast that has a given id regardless the container\n * ```\n * toast.play({ id: \"123\" })\n * ```\n *\n * - Play toast that has a given id for a specific container\n * ```\n * toast.play({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.play = (opts?: IdOpts) => toggleToast(true, opts);\n\n/**\n * Pause a toast(s) timer progammatically\n *\n * Usage:\n *\n * - Pause all toasts\n * ```\n * toast.pause()\n * ```\n *\n * - Pause all toasts for a given container\n * ```\n * toast.pause({ containerId: \"123\" })\n * ```\n *\n * - Pause toast that has a given id regardless the container\n * ```\n * toast.pause({ id: \"123\" })\n * ```\n *\n * - Pause toast that has a given id for a specific container\n * ```\n * toast.pause({ id: \"123\", containerId: \"12\" })\n * ```\n */\ntoast.pause = (opts?: IdOpts) => toggleToast(false, opts);\n\nexport { toast };\n","import { DOMAttributes, useEffect, useRef, useState } from 'react';\n\nimport { ToastProps } from '../types';\nimport { Default, Direction } from '../utils';\nimport { registerToggle } from '../core/store';\n\ninterface Draggable {\n  start: number;\n  delta: number;\n  removalDistance: number;\n  canCloseOnClick: boolean;\n  canDrag: boolean;\n  didMove: boolean;\n}\n\nexport function useToast(props: ToastProps) {\n  const [isRunning, setIsRunning] = useState(false);\n  const [preventExitTransition, setPreventExitTransition] = useState(false);\n  const toastRef = useRef<HTMLDivElement>(null);\n  const drag = useRef<Draggable>({\n    start: 0,\n    delta: 0,\n    removalDistance: 0,\n    canCloseOnClick: true,\n    canDrag: false,\n    didMove: false\n  }).current;\n  const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n  registerToggle({\n    id: props.toastId,\n    containerId: props.containerId,\n    fn: setIsRunning\n  });\n\n  useEffect(() => {\n    if (props.pauseOnFocusLoss) {\n      bindFocusEvents();\n\n      return () => {\n        unbindFocusEvents();\n      };\n    }\n  }, [props.pauseOnFocusLoss]);\n\n  function bindFocusEvents() {\n    if (!document.hasFocus()) pauseToast();\n\n    window.addEventListener('focus', playToast);\n    window.addEventListener('blur', pauseToast);\n  }\n\n  function unbindFocusEvents() {\n    window.removeEventListener('focus', playToast);\n    window.removeEventListener('blur', pauseToast);\n  }\n\n  function onDragStart(e: React.PointerEvent<HTMLElement>) {\n    if (props.draggable === true || props.draggable === e.pointerType) {\n      bindDragEvents();\n      const toast = toastRef.current!;\n      drag.canCloseOnClick = true;\n      drag.canDrag = true;\n      toast.style.transition = 'none';\n\n      if (props.draggableDirection === Direction.X) {\n        drag.start = e.clientX;\n        drag.removalDistance = toast.offsetWidth * (props.draggablePercent / 100);\n      } else {\n        drag.start = e.clientY;\n        drag.removalDistance =\n          (toast.offsetHeight *\n            (props.draggablePercent === Default.DRAGGABLE_PERCENT\n              ? props.draggablePercent * 1.5\n              : props.draggablePercent)) /\n          100;\n      }\n    }\n  }\n\n  function onDragTransitionEnd(e: React.PointerEvent<HTMLElement>) {\n    const { top, bottom, left, right } = toastRef.current!.getBoundingClientRect();\n\n    if (\n      e.nativeEvent.type !== 'touchend' &&\n      props.pauseOnHover &&\n      e.clientX >= left &&\n      e.clientX <= right &&\n      e.clientY >= top &&\n      e.clientY <= bottom\n    ) {\n      pauseToast();\n    } else {\n      playToast();\n    }\n  }\n\n  function playToast() {\n    setIsRunning(true);\n  }\n\n  function pauseToast() {\n    setIsRunning(false);\n  }\n\n  function bindDragEvents() {\n    drag.didMove = false;\n    document.addEventListener('pointermove', onDragMove);\n    document.addEventListener('pointerup', onDragEnd);\n  }\n\n  function unbindDragEvents() {\n    document.removeEventListener('pointermove', onDragMove);\n    document.removeEventListener('pointerup', onDragEnd);\n  }\n\n  function onDragMove(e: PointerEvent) {\n    const toast = toastRef.current!;\n    if (drag.canDrag && toast) {\n      drag.didMove = true;\n      if (isRunning) pauseToast();\n      if (props.draggableDirection === Direction.X) {\n        drag.delta = e.clientX - drag.start;\n      } else {\n        drag.delta = e.clientY - drag.start;\n      }\n\n      // prevent false positive during a toast click\n      if (drag.start !== e.clientX) drag.canCloseOnClick = false;\n      const translate =\n        props.draggableDirection === 'x' ? `${drag.delta}px, var(--y)` : `0, calc(${drag.delta}px + var(--y))`;\n      toast.style.transform = `translate3d(${translate},0)`;\n      toast.style.opacity = `${1 - Math.abs(drag.delta / drag.removalDistance)}`;\n    }\n  }\n\n  function onDragEnd() {\n    unbindDragEvents();\n    const toast = toastRef.current!;\n    if (drag.canDrag && drag.didMove && toast) {\n      drag.canDrag = false;\n      if (Math.abs(drag.delta) > drag.removalDistance) {\n        setPreventExitTransition(true);\n        props.closeToast(true);\n        props.collapseAll();\n        return;\n      }\n\n      toast.style.transition = 'transform 0.2s, opacity 0.2s';\n      toast.style.removeProperty('transform');\n      toast.style.removeProperty('opacity');\n    }\n  }\n\n  const eventHandlers: DOMAttributes<HTMLElement> = {\n    onPointerDown: onDragStart,\n    onPointerUp: onDragTransitionEnd\n  };\n\n  if (autoClose && pauseOnHover) {\n    eventHandlers.onMouseEnter = pauseToast;\n\n    // progress control is delegated to the container\n    if (!props.stacked) eventHandlers.onMouseLeave = playToast;\n  }\n\n  // prevent toast from closing when user drags the toast\n  if (closeOnClick) {\n    eventHandlers.onClick = (e: React.MouseEvent) => {\n      onClick && onClick(e);\n      drag.canCloseOnClick && closeToast(true);\n    };\n  }\n\n  return {\n    playToast,\n    pauseToast,\n    isRunning,\n    preventExitTransition,\n    toastRef,\n    eventHandlers\n  };\n}\n","import { useEffect, useLayoutEffect } from 'react';\n\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import React, { cloneElement, isValidElement } from 'react';\n\nimport { Theme, ToastProps, TypeOptions } from '../types';\nimport { Default, isFn } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n  theme: Theme;\n  type: TypeOptions;\n  isLoading?: boolean;\n}\n\nexport type BuiltInIconProps = React.SVGProps<SVGSVGElement> & IconProps;\n\nconst Svg: React.FC<BuiltInIconProps> = ({ theme, type, isLoading, ...rest }) => (\n  <svg\n    viewBox=\"0 0 24 24\"\n    width=\"100%\"\n    height=\"100%\"\n    fill={theme === 'colored' ? 'currentColor' : `var(--toastify-icon-color-${type})`}\n    {...rest}\n  />\n);\n\nfunction Warning(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z\" />\n    </Svg>\n  );\n}\n\nfunction Info(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z\" />\n    </Svg>\n  );\n}\n\nfunction Success(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z\" />\n    </Svg>\n  );\n}\n\nfunction Error(props: BuiltInIconProps) {\n  return (\n    <Svg {...props}>\n      <path d=\"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z\" />\n    </Svg>\n  );\n}\n\nfunction Spinner() {\n  return <div className={`${Default.CSS_NAMESPACE}__spinner`} />;\n}\n\nexport const Icons = {\n  info: Info,\n  warning: Warning,\n  success: Success,\n  error: Error,\n  spinner: Spinner\n};\n\nconst maybeIcon = (type: string): type is keyof typeof Icons => type in Icons;\n\nexport type IconParams = Pick<ToastProps, 'theme' | 'icon' | 'type' | 'isLoading'>;\n\nexport function getIcon({ theme, type, isLoading, icon }: IconParams) {\n  let Icon: React.ReactNode = null;\n  const iconProps = { theme, type };\n\n  if (icon === false) {\n    // hide\n  } else if (isFn(icon)) {\n    Icon = icon({ ...iconProps, isLoading });\n  } else if (isValidElement(icon)) {\n    Icon = cloneElement(icon, iconProps);\n  } else if (isLoading) {\n    Icon = Icons.spinner();\n  } else if (maybeIcon(type)) {\n    Icon = Icons[type](iconProps);\n  }\n\n  return Icon;\n}\n","import cx from 'clsx';\nimport React, { cloneElement, isValidElement } from 'react';\n\nimport { useToast } from '../hooks/useToast';\nimport { ToastProps } from '../types';\nimport { Default, isFn, renderContent } from '../utils';\nimport { CloseButton } from './CloseButton';\nimport { ProgressBar } from './ProgressBar';\nimport { getIcon } from './Icons';\n\nexport const Toast: React.FC<ToastProps> = props => {\n  const { isRunning, preventExitTransition, toastRef, eventHandlers, playToast } = useToast(props);\n  const {\n    closeButton,\n    children,\n    autoClose,\n    onClick,\n    type,\n    hideProgressBar,\n    closeToast,\n    transition: Transition,\n    position,\n    className,\n    style,\n    progressClassName,\n    updateId,\n    role,\n    progress,\n    rtl,\n    toastId,\n    deleteToast,\n    isIn,\n    isLoading,\n    closeOnClick,\n    theme,\n    ariaLabel\n  } = props;\n  const defaultClassName = cx(\n    `${Default.CSS_NAMESPACE}__toast`,\n    `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n    `${Default.CSS_NAMESPACE}__toast--${type}`,\n    {\n      [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n    },\n    {\n      [`${Default.CSS_NAMESPACE}__toast--close-on-click`]: closeOnClick\n    }\n  );\n  const cssClasses = isFn(className)\n    ? className({\n        rtl,\n        position,\n        type,\n        defaultClassName\n      })\n    : cx(defaultClassName, className);\n  const icon = getIcon(props);\n  const isProgressControlled = !!progress || !autoClose;\n\n  const closeButtonProps = { closeToast, type, theme };\n  let Close: React.ReactNode = null;\n\n  if (closeButton === false) {\n    // hide\n  } else if (isFn(closeButton)) {\n    Close = closeButton(closeButtonProps);\n  } else if (isValidElement(closeButton)) {\n    Close = cloneElement(closeButton, closeButtonProps);\n  } else {\n    Close = CloseButton(closeButtonProps);\n  }\n\n  return (\n    <Transition\n      isIn={isIn}\n      done={deleteToast}\n      position={position}\n      preventExitTransition={preventExitTransition}\n      nodeRef={toastRef}\n      playToast={playToast}\n    >\n      <div\n        id={toastId as string}\n        tabIndex={0}\n        onClick={onClick}\n        data-in={isIn}\n        className={cssClasses}\n        {...eventHandlers}\n        style={style}\n        ref={toastRef}\n        {...(isIn && { role: role, 'aria-label': ariaLabel })}\n      >\n        {icon != null && (\n          <div\n            className={cx(`${Default.CSS_NAMESPACE}__toast-icon`, {\n              [`${Default.CSS_NAMESPACE}--animate-icon ${Default.CSS_NAMESPACE}__zoom-enter`]: !isLoading\n            })}\n          >\n            {icon}\n          </div>\n        )}\n        {renderContent(children, props, !isRunning)}\n        {Close}\n        {!props.customProgressBar && (\n          <ProgressBar\n            {...(updateId && !isProgressControlled ? { key: `p-${updateId}` } : {})}\n            rtl={rtl}\n            theme={theme}\n            delay={autoClose as number}\n            isRunning={isRunning}\n            isIn={isIn}\n            closeToast={closeToast}\n            hide={hideProgressBar}\n            type={type}\n            className={progressClassName}\n            controlledProgress={isProgressControlled}\n            progress={progress || 0}\n          />\n        )}\n      </div>\n    </Transition>\n  );\n};\n","import React from 'react';\nimport { Default } from '../utils';\nimport { CloseToastFunc, Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n  closeToast: CloseToastFunc;\n  type: TypeOptions;\n  ariaLabel?: string;\n  theme: Theme;\n}\n\nexport function CloseButton({ closeToast, theme, ariaLabel = 'close' }: CloseButtonProps) {\n  return (\n    <button\n      className={`${Default.CSS_NAMESPACE}__close-button ${Default.CSS_NAMESPACE}__close-button--${theme}`}\n      type=\"button\"\n      onClick={e => {\n        e.stopPropagation();\n        closeToast(true);\n      }}\n      aria-label={ariaLabel}\n    >\n      <svg aria-hidden=\"true\" viewBox=\"0 0 14 16\">\n        <path\n          fillRule=\"evenodd\"\n          d=\"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z\"\n        />\n      </svg>\n    </button>\n  );\n}\n","import { cssTransition, Default } from '../utils';\n\nconst getConfig = (animationName: string, appendPosition = false) => ({\n  enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-enter`,\n  exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__${animationName}-exit`,\n  appendPosition\n});\n\nconst Bounce = cssTransition(getConfig('bounce', true));\n\nconst Slide = cssTransition(getConfig('slide', true));\n\nconst Zoom = cssTransition(getConfig('zoom'));\n\nconst Flip = cssTransition(getConfig('flip'));\n\nexport { Bounce, Slide, Zoom, Flip };\n","import cx from 'clsx';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { toast } from '../core';\nimport { useToastContainer } from '../hooks';\nimport { useIsomorphicLayoutEffect } from '../hooks/useIsomorphicLayoutEffect';\nimport { ToastContainerProps, ToastPosition } from '../types';\nimport { Default, Direction, isFn, parseClassName } from '../utils';\nimport { Toast } from './Toast';\nimport { Bounce } from './Transitions';\n\nexport const defaultProps: ToastContainerProps = {\n  position: 'top-right',\n  transition: Bounce,\n  autoClose: 5000,\n  closeButton: true,\n  pauseOnHover: true,\n  pauseOnFocusLoss: true,\n  draggable: 'touch',\n  draggablePercent: Default.DRAGGABLE_PERCENT as number,\n  draggableDirection: Direction.X,\n  role: 'alert',\n  theme: 'light',\n  'aria-label': 'Notifications Alt+T',\n  hotKeys: e => e.altKey && e.code === 'KeyT'\n};\n\nexport function ToastContainer(props: ToastContainerProps) {\n  let containerProps: ToastContainerProps = {\n    ...defaultProps,\n    ...props\n  };\n  const stacked = props.stacked;\n  const [collapsed, setIsCollapsed] = useState(true);\n  const containerRef = useRef<HTMLDivElement>(null);\n  const { getToastToRender, isToastActive, count } = useToastContainer(containerProps);\n  const { className, style, rtl, containerId, hotKeys } = containerProps;\n\n  function getClassName(position: ToastPosition) {\n    const defaultClassName = cx(\n      `${Default.CSS_NAMESPACE}__toast-container`,\n      `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n      { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n    );\n    return isFn(className)\n      ? className({\n          position,\n          rtl,\n          defaultClassName\n        })\n      : cx(defaultClassName, parseClassName(className));\n  }\n\n  function collapseAll() {\n    if (stacked) {\n      setIsCollapsed(true);\n      toast.play();\n    }\n  }\n\n  useIsomorphicLayoutEffect(() => {\n    if (stacked) {\n      const nodes = containerRef.current!.querySelectorAll('[data-in=\"true\"]');\n      const gap = 12;\n      const isTop = containerProps.position?.includes('top');\n      let usedHeight = 0;\n      let prevS = 0;\n\n      Array.from(nodes)\n        .reverse()\n        .forEach((n, i) => {\n          const node = n as HTMLElement;\n          node.classList.add(`${Default.CSS_NAMESPACE}__toast--stacked`);\n\n          if (i > 0) node.dataset.collapsed = `${collapsed}`;\n\n          if (!node.dataset.pos) node.dataset.pos = isTop ? 'top' : 'bot';\n\n          const y = usedHeight * (collapsed ? 0.2 : 1) + (collapsed ? 0 : gap * i);\n\n          node.style.setProperty('--y', `${isTop ? y : y * -1}px`);\n          node.style.setProperty('--g', `${gap}`);\n          node.style.setProperty('--s', `${1 - (collapsed ? prevS : 0)}`);\n\n          usedHeight += node.offsetHeight;\n          prevS += 0.025;\n        });\n    }\n  }, [collapsed, count, stacked]);\n\n  useEffect(() => {\n    function focusFirst(e: KeyboardEvent) {\n      const node = containerRef.current;\n      if (hotKeys(e)) {\n        (node.querySelector('[tabIndex=\"0\"]') as HTMLElement)?.focus();\n        setIsCollapsed(false);\n        toast.pause();\n      }\n      if (e.key === 'Escape' && (document.activeElement === node || node?.contains(document.activeElement))) {\n        setIsCollapsed(true);\n        toast.play();\n      }\n    }\n\n    document.addEventListener('keydown', focusFirst);\n\n    return () => {\n      document.removeEventListener('keydown', focusFirst);\n    };\n  }, [hotKeys]);\n\n  return (\n    <section\n      ref={containerRef}\n      className={Default.CSS_NAMESPACE as string}\n      id={containerId as string}\n      onMouseEnter={() => {\n        if (stacked) {\n          setIsCollapsed(false);\n          toast.pause();\n        }\n      }}\n      onMouseLeave={collapseAll}\n      aria-live=\"polite\"\n      aria-atomic=\"false\"\n      aria-relevant=\"additions text\"\n      aria-label={containerProps['aria-label']}\n    >\n      {getToastToRender((position, toastList) => {\n        const containerStyle: React.CSSProperties = !toastList.length\n          ? { ...style, pointerEvents: 'none' }\n          : { ...style };\n\n        return (\n          <div\n            tabIndex={-1}\n            className={getClassName(position)}\n            data-stacked={stacked}\n            style={containerStyle}\n            key={`c-${position}`}\n          >\n            {toastList.map(({ content, props: toastProps }) => {\n              return (\n                <Toast\n                  {...toastProps}\n                  stacked={stacked}\n                  collapseAll={collapseAll}\n                  isIn={isToastActive(toastProps.toastId, toastProps.containerId)}\n                  key={`t-${toastProps.key}`}\n                >\n                  {content}\n                </Toast>\n              );\n            })}\n          </div>\n        );\n      })}\n    </section>\n  );\n}\n","import { useRef, useSyncExternalStore } from 'react';\nimport { isToastActive, registerContainer } from '../core/store';\nimport { Toast, ToastContainerProps, ToastPosition } from '../types';\n\nexport function useToastContainer(props: ToastContainerProps) {\n  const { subscribe, getSnapshot, setProps } = useRef(registerContainer(props)).current;\n  setProps(props);\n  const snapshot = useSyncExternalStore(subscribe, getSnapshot, getSnapshot)?.slice();\n\n  function getToastToRender<T>(cb: (position: ToastPosition, toastList: Toast[]) => T) {\n    if (!snapshot) return [];\n\n    const toRender = new Map<ToastPosition, Toast[]>();\n\n    if (props.newestOnTop) snapshot.reverse();\n\n    snapshot.forEach(toast => {\n      const { position } = toast.props;\n      toRender.has(position) || toRender.set(position, []);\n      toRender.get(position)!.push(toast);\n    });\n\n    return Array.from(toRender, p => cb(p[0], p[1]));\n  }\n\n  return {\n    getToastToRender,\n    isToastActive,\n    count: snapshot?.length\n  };\n}\n","// Default to a dummy \"batch\" implementation that just runs the callback\r\nexport function defaultNoopBatch(callback: () => void) {\r\n  callback()\r\n}\r\n","import { defaultNoopBatch as batch } from './batch'\n\n// encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\ntype VoidFunc = () => void\n\ntype Listener = {\n  callback: VoidFunc\n  next: Listener | null\n  prev: Listener | null\n}\n\nfunction createListenerCollection() {\n  let first: Listener | null = null\n  let last: Listener | null = null\n\n  return {\n    clear() {\n      first = null\n      last = null\n    },\n\n    notify() {\n      batch(() => {\n        let listener = first\n        while (listener) {\n          listener.callback()\n          listener = listener.next\n        }\n      })\n    },\n\n    get() {\n      const listeners: Listener[] = []\n      let listener = first\n      while (listener) {\n        listeners.push(listener)\n        listener = listener.next\n      }\n      return listeners\n    },\n\n    subscribe(callback: () => void) {\n      let isSubscribed = true\n\n      const listener: Listener = (last = {\n        callback,\n        next: null,\n        prev: last,\n      })\n\n      if (listener.prev) {\n        listener.prev.next = listener\n      } else {\n        first = listener\n      }\n\n      return function unsubscribe() {\n        if (!isSubscribed || first === null) return\n        isSubscribed = false\n\n        if (listener.next) {\n          listener.next.prev = listener.prev\n        } else {\n          last = listener.prev\n        }\n        if (listener.prev) {\n          listener.prev.next = listener.next\n        } else {\n          first = listener.next\n        }\n      }\n    },\n  }\n}\n\ntype ListenerCollection = ReturnType<typeof createListenerCollection>\n\nexport interface Subscription {\n  addNestedSub: (listener: VoidFunc) => VoidFunc\n  notifyNestedSubs: VoidFunc\n  handleChangeWrapper: VoidFunc\n  isSubscribed: () => boolean\n  onStateChange?: VoidFunc | null\n  trySubscribe: VoidFunc\n  tryUnsubscribe: VoidFunc\n  getListeners: () => ListenerCollection\n}\n\nconst nullListeners = {\n  notify() {},\n  get: () => [],\n} as unknown as ListenerCollection\n\nexport function createSubscription(store: any, parentSub?: Subscription) {\n  let unsubscribe: VoidFunc | undefined\n  let listeners: ListenerCollection = nullListeners\n\n  // Reasons to keep the subscription active\n  let subscriptionsAmount = 0\n\n  // Is this specific subscription subscribed (or only nested ones?)\n  let selfSubscribed = false\n\n  function addNestedSub(listener: () => void) {\n    trySubscribe()\n\n    const cleanupListener = listeners.subscribe(listener)\n\n    // cleanup nested sub\n    let removed = false\n    return () => {\n      if (!removed) {\n        removed = true\n        cleanupListener()\n        tryUnsubscribe()\n      }\n    }\n  }\n\n  function notifyNestedSubs() {\n    listeners.notify()\n  }\n\n  function handleChangeWrapper() {\n    if (subscription.onStateChange) {\n      subscription.onStateChange()\n    }\n  }\n\n  function isSubscribed() {\n    return selfSubscribed\n  }\n\n  function trySubscribe() {\n    subscriptionsAmount++\n    if (!unsubscribe) {\n      unsubscribe = parentSub\n        ? parentSub.addNestedSub(handleChangeWrapper)\n        : store.subscribe(handleChangeWrapper)\n\n      listeners = createListenerCollection()\n    }\n  }\n\n  function tryUnsubscribe() {\n    subscriptionsAmount--\n    if (unsubscribe && subscriptionsAmount === 0) {\n      unsubscribe()\n      unsubscribe = undefined\n      listeners.clear()\n      listeners = nullListeners\n    }\n  }\n\n  function trySubscribeSelf() {\n    if (!selfSubscribed) {\n      selfSubscribed = true\n      trySubscribe()\n    }\n  }\n\n  function tryUnsubscribeSelf() {\n    if (selfSubscribed) {\n      selfSubscribed = false\n      tryUnsubscribe()\n    }\n  }\n\n  const subscription: Subscription = {\n    addNestedSub,\n    notifyNestedSubs,\n    handleChangeWrapper,\n    isSubscribed,\n    trySubscribe: trySubscribeSelf,\n    tryUnsubscribe: tryUnsubscribeSelf,\n    getListeners: () => listeners,\n  }\n\n  return subscription\n}\n","import { React } from '../utils/react'\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = () =>\n  !!(\n    typeof window !== 'undefined' &&\n    typeof window.document !== 'undefined' &&\n    typeof window.document.createElement !== 'undefined'\n  )\n\nconst isDOM = /* @__PURE__ */ canUseDOM()\n\n// Under React Native, we know that we always want to use useLayoutEffect\n\n/**\n * Checks if the code is running in a React Native environment.\n *\n * @returns Whether the code is running in a React Native environment.\n *\n * @see {@link https://github.com/facebook/react-native/issues/1331 Reference}\n */\nconst isRunningInReactNative = () =>\n  typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n\nconst isReactNative = /* @__PURE__ */ isRunningInReactNative()\n\nconst getUseIsomorphicLayoutEffect = () =>\n  isDOM || isReactNative ? React.useLayoutEffect : React.useEffect\n\nexport const useIsomorphicLayoutEffect =\n  /* @__PURE__ */ getUseIsomorphicLayoutEffect()\n","// Copied directly from:\n// https://github.com/mridgway/hoist-non-react-statics/blob/main/src/index.js\n// https://unpkg.com/browse/@types/hoist-non-react-statics@3.3.6/index.d.ts\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nimport type { ForwardRefExoticComponent, MemoExoticComponent } from 'react'\nimport { ForwardRef, Memo, isMemo } from '../utils/react-is'\n\nconst 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} as const\n\nconst KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true,\n} as const\n\nconst FORWARD_REF_STATICS = {\n  $$typeof: true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n} as const\n\nconst MEMO_STATICS = {\n  $$typeof: true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true,\n} as const\n\nconst TYPE_STATICS = {\n  [ForwardRef]: FORWARD_REF_STATICS,\n  [Memo]: MEMO_STATICS,\n} as const\n\nfunction getStatics(component: any) {\n  // React v16.11 and below\n  if (isMemo(component)) {\n    return MEMO_STATICS\n  }\n\n  // React v16.12 and above\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS\n}\n\nexport type NonReactStatics<\n  Source,\n  C extends {\n    [key: string]: true\n  } = {},\n> = {\n  [key in Exclude<\n    keyof Source,\n    Source extends MemoExoticComponent<any>\n      ? keyof typeof MEMO_STATICS | keyof C\n      : Source extends ForwardRefExoticComponent<any>\n        ? keyof typeof FORWARD_REF_STATICS | keyof C\n        : keyof typeof REACT_STATICS | keyof typeof KNOWN_STATICS | keyof C\n  >]: Source[key]\n}\n\nconst defineProperty = Object.defineProperty\nconst getOwnPropertyNames = Object.getOwnPropertyNames\nconst getOwnPropertySymbols = Object.getOwnPropertySymbols\nconst getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor\nconst getPrototypeOf = Object.getPrototypeOf\nconst objectPrototype = Object.prototype\n\nexport default function hoistNonReactStatics<\n  Target,\n  Source,\n  CustomStatic extends {\n    [key: string]: true\n  } = {},\n>(\n  targetComponent: Target,\n  sourceComponent: Source,\n): Target & NonReactStatics<Source, CustomStatic> {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n\n    if (objectPrototype) {\n      const inheritedComponent = getPrototypeOf(sourceComponent)\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent)\n      }\n    }\n\n    let keys: (string | symbol)[] = getOwnPropertyNames(sourceComponent)\n\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent))\n    }\n\n    const targetStatics = getStatics(targetComponent)\n    const sourceStatics = getStatics(sourceComponent)\n\n    for (let i = 0; i < keys.length; ++i) {\n      const key = keys[i]\n      if (\n        !KNOWN_STATICS[key as keyof typeof KNOWN_STATICS] &&\n        !(sourceStatics && sourceStatics[key as keyof typeof sourceStatics]) &&\n        !(targetStatics && targetStatics[key as keyof typeof targetStatics])\n      ) {\n        const descriptor = getOwnPropertyDescriptor(sourceComponent, key)\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor!)\n        } catch (e) {\n          // ignore\n        }\n      }\n    }\n  }\n\n  return targetComponent as any\n}\n","import type { Context } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { Subscription } from '../utils/Subscription'\nimport type { ProviderProps } from './Provider'\n\nexport interface ReactReduxContextValue<\n  SS = any,\n  A extends Action<string> = UnknownAction,\n> extends Pick<ProviderProps, 'stabilityCheck' | 'identityFunctionCheck'> {\n  store: Store<SS, A>\n  subscription: Subscription\n  getServerState?: () => SS\n}\n\nconst ContextKey = /* @__PURE__ */ Symbol.for(`react-redux-context`)\nconst gT: {\n  [ContextKey]?: Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >\n} = (\n  typeof globalThis !== 'undefined'\n    ? globalThis\n    : /* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */ {}\n) as any\n\nfunction getContext(): Context<ReactReduxContextValue | null> {\n  if (!React.createContext) return {} as any\n\n  const contextMap = (gT[ContextKey] ??= new Map<\n    typeof React.createContext,\n    Context<ReactReduxContextValue | null>\n  >())\n  let realContext = contextMap.get(React.createContext)\n  if (!realContext) {\n    realContext = React.createContext<ReactReduxContextValue | null>(\n      null as any,\n    )\n    if (process.env.NODE_ENV !== 'production') {\n      realContext.displayName = 'ReactRedux'\n    }\n    contextMap.set(React.createContext, realContext)\n  }\n  return realContext\n}\n\nexport const ReactReduxContext = /*#__PURE__*/ getContext()\n\nexport type ReactReduxContextInstance = typeof ReactReduxContext\n","import type { Context, ReactNode } from 'react'\nimport { React } from '../utils/react'\nimport type { Action, Store, UnknownAction } from 'redux'\nimport type { DevModeCheckFrequency } from '../hooks/useSelector'\nimport { createSubscription } from '../utils/Subscription'\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'\nimport type { ReactReduxContextValue } from './Context'\nimport { ReactReduxContext } from './Context'\n\nexport interface ProviderProps<\n  A extends Action<string> = UnknownAction,\n  S = unknown,\n> {\n  /**\n   * The single Redux store in your application.\n   */\n  store: Store<S, A>\n\n  /**\n   * An optional server state snapshot. Will be used during initial hydration render if available, to ensure that the UI output is consistent with the HTML generated on the server.\n   */\n  serverState?: S\n\n  /**\n   * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used.\n   * If this is used, you'll need to customize `connect` by supplying the same context provided to the Provider.\n   * Set the initial value to null, and the hooks will error\n   * if this is not overwritten by Provider.\n   */\n  context?: Context<ReactReduxContextValue<S, A> | null>\n\n  /**\n   * Determines the frequency of stability checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` stability check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck?: DevModeCheckFrequency\n\n  /**\n   * Determines the frequency of identity function checks for all selectors.\n   * This setting overrides the global configuration for\n   * the `useSelector` identity function check, allowing you to specify how often\n   * these checks should occur in development mode.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck?: DevModeCheckFrequency\n\n  children: ReactNode\n}\n\nfunction Provider<A extends Action<string> = UnknownAction, S = unknown>(\n  providerProps: ProviderProps<A, S>,\n) {\n  const { children, context, serverState, store } = providerProps\n\n  const contextValue = React.useMemo(() => {\n    const subscription = createSubscription(store)\n\n    const baseContextValue = {\n      store,\n      subscription,\n      getServerState: serverState ? () => serverState : undefined,\n    }\n\n    if (process.env.NODE_ENV === 'production') {\n      return baseContextValue\n    } else {\n      const { identityFunctionCheck = 'once', stabilityCheck = 'once' } =\n        providerProps\n\n      return /* @__PURE__ */ Object.assign(baseContextValue, {\n        stabilityCheck,\n        identityFunctionCheck,\n      })\n    }\n  }, [store, serverState])\n\n  const previousState = React.useMemo(() => store.getState(), [store])\n\n  useIsomorphicLayoutEffect(() => {\n    const { subscription } = contextValue\n    subscription.onStateChange = subscription.notifyNestedSubs\n    subscription.trySubscribe()\n\n    if (previousState !== store.getState()) {\n      subscription.notifyNestedSubs()\n    }\n    return () => {\n      subscription.tryUnsubscribe()\n      subscription.onStateChange = undefined\n    }\n  }, [contextValue, previousState])\n\n  const Context = context || ReactReduxContext\n\n  return <Context.Provider value={contextValue}>{children}</Context.Provider>\n}\n\nexport default Provider\n","import { React } from '../utils/react'\nimport { ReactReduxContext } from '../components/Context'\nimport type { ReactReduxContextValue } from '../components/Context'\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nexport function createReduxContextHook(context = ReactReduxContext) {\n  return function useReduxContext(): ReactReduxContextValue {\n    const contextValue = React.useContext(context)\n\n    if (process.env.NODE_ENV !== 'production' && !contextValue) {\n      throw new Error(\n        'could not find react-redux context value; please ensure the component is wrapped in a <Provider>',\n      )\n    }\n\n    return contextValue!\n  }\n}\n\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const { store } = useReduxContext()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useReduxContext = /*#__PURE__*/ createReduxContextHook()\n","import type { Context } from 'react'\nimport type { Action, Store } from 'redux'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * Represents a type that extracts the action type from a given Redux store.\n *\n * @template StoreType - The specific type of the Redux store.\n *\n * @since 9.1.0\n * @internal\n */\nexport type ExtractStoreActionType<StoreType extends Store> =\n  StoreType extends Store<any, infer ActionType> ? ActionType : never\n\n/**\n * Represents a custom hook that provides access to the Redux store.\n *\n * @template StoreType - The specific type of the Redux store that gets returned.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseStore<StoreType extends Store> {\n  /**\n   * Returns the Redux store instance.\n   *\n   * @returns The Redux store instance.\n   */\n  (): StoreType\n\n  /**\n   * Returns the Redux store instance with specific state and action types.\n   *\n   * @returns The Redux store with the specified state and action types.\n   *\n   * @template StateType - The specific type of the state used in the store.\n   * @template ActionType - The specific type of the actions used in the store.\n   */\n  <\n    StateType extends ReturnType<StoreType['getState']> = ReturnType<\n      StoreType['getState']\n    >,\n    ActionType extends Action = ExtractStoreActionType<Store>,\n  >(): Store<StateType, ActionType>\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useStore useStore}\n   * where the type of the Redux `store` is predefined.\n   *\n   * This allows you to set the `store` type once, eliminating the need to\n   * specify it with every {@linkcode useStore useStore} call.\n   *\n   * @returns A pre-typed `useStore` with the store type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppStore = useStore.withTypes<AppStore>()\n   * ```\n   *\n   * @template OverrideStoreType - The specific type of the Redux store that gets returned.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStoreType extends StoreType,\n  >() => UseStore<OverrideStoreType>\n}\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nexport function createStoreHook<\n  StateType = unknown,\n  ActionType extends Action = Action,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : // @ts-ignore\n        createReduxContextHook(context)\n  const useStore = () => {\n    const { store } = useReduxContext()\n    return store\n  }\n\n  Object.assign(useStore, {\n    withTypes: () => useStore,\n  })\n\n  return useStore as UseStore<Store<StateType, ActionType>>\n}\n\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n *   const store = useStore()\n *   return <div>{store.getState()}</div>\n * }\n */\nexport const useStore = /*#__PURE__*/ createStoreHook()\n","import type { Context } from 'react'\nimport type { Action, Dispatch, UnknownAction } from 'redux'\n\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport { createStoreHook, useStore as useDefaultStore } from './useStore'\n\n/**\n * Represents a custom hook that provides a dispatch function\n * from the Redux store.\n *\n * @template DispatchType - The specific type of the dispatch function.\n *\n * @since 9.1.0\n * @public\n */\nexport interface UseDispatch<\n  DispatchType extends Dispatch<UnknownAction> = Dispatch<UnknownAction>,\n> {\n  /**\n   * Returns the dispatch function from the Redux store.\n   *\n   * @returns The dispatch function from the Redux store.\n   *\n   * @template AppDispatch - The specific type of the dispatch function.\n   */\n  <AppDispatch extends DispatchType = DispatchType>(): AppDispatch\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useDispatch useDispatch}\n   * where the type of the `dispatch` function is predefined.\n   *\n   * This allows you to set the `dispatch` type once, eliminating the need to\n   * specify it with every {@linkcode useDispatch useDispatch} call.\n   *\n   * @returns A pre-typed `useDispatch` with the dispatch type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppDispatch = useDispatch.withTypes<AppDispatch>()\n   * ```\n   *\n   * @template OverrideDispatchType - The specific type of the dispatch function.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideDispatchType extends DispatchType,\n  >() => UseDispatch<OverrideDispatchType>\n}\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nexport function createDispatchHook<\n  StateType = unknown,\n  ActionType extends Action = UnknownAction,\n>(\n  // @ts-ignore\n  context?: Context<ReactReduxContextValue<\n    StateType,\n    ActionType\n  > | null> = ReactReduxContext,\n) {\n  const useStore =\n    context === ReactReduxContext ? useDefaultStore : createStoreHook(context)\n\n  const useDispatch = () => {\n    const store = useStore()\n    return store.dispatch\n  }\n\n  Object.assign(useDispatch, {\n    withTypes: () => useDispatch,\n  })\n\n  return useDispatch as UseDispatch<Dispatch<ActionType>>\n}\n\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n *   const dispatch = useDispatch()\n *   const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n *   return (\n *     <div>\n *       <span>{value}</span>\n *       <button onClick={increaseCounter}>Increase counter</button>\n *     </div>\n *   )\n * }\n */\nexport const useDispatch = /*#__PURE__*/ createDispatchHook()\n","//import * as React from 'react'\nimport { React } from '../utils/react'\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js'\nimport type { ReactReduxContextValue } from '../components/Context'\nimport { ReactReduxContext } from '../components/Context'\nimport type { EqualityFn, NoInfer } from '../types'\nimport {\n  createReduxContextHook,\n  useReduxContext as useDefaultReduxContext,\n} from './useReduxContext'\n\n/**\n * The frequency of development mode checks.\n *\n * @since 8.1.0\n * @internal\n */\nexport type DevModeCheckFrequency = 'never' | 'once' | 'always'\n\n/**\n * Represents the configuration for development mode checks.\n *\n * @since 9.0.0\n * @internal\n */\nexport interface DevModeChecks {\n  /**\n   * Overrides the global stability check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the stability check.\n   *\n   * @default 'once'\n   *\n   * @since 8.1.0\n   */\n  stabilityCheck: DevModeCheckFrequency\n\n  /**\n   * Overrides the global identity function check for the selector.\n   * - `once` - Run only the first time the selector is called.\n   * - `always` - Run every time the selector is called.\n   * - `never` - Never run the identity function check.\n   *\n   * **Note**: Previously referred to as `noopCheck`.\n   *\n   * @default 'once'\n   *\n   * @since 9.0.0\n   */\n  identityFunctionCheck: DevModeCheckFrequency\n}\n\nexport interface UseSelectorOptions<Selected = unknown> {\n  equalityFn?: EqualityFn<Selected>\n\n  /**\n   * `useSelector` performs additional checks in development mode to help\n   * identify and warn about potential issues in selector behavior. This\n   * option allows you to customize the behavior of these checks per selector.\n   *\n   * @since 9.0.0\n   */\n  devModeChecks?: Partial<DevModeChecks>\n}\n\n/**\n * Represents a custom hook that allows you to extract data from the\n * Redux store state, using a selector function. The selector function\n * takes the current state as an argument and returns a part of the state\n * or some derived data. The hook also supports an optional equality\n * function or options object to customize its behavior.\n *\n * @template StateType - The specific type of state this hook operates on.\n *\n * @public\n */\nexport interface UseSelector<StateType = unknown> {\n  /**\n   * A function that takes a selector function as its first argument.\n   * The selector function is responsible for selecting a part of\n   * the Redux store's state or computing derived data.\n   *\n   * @param selector - A function that receives the current state and returns a part of the state or some derived data.\n   * @param equalityFnOrOptions - An optional equality function or options object for customizing the behavior of the selector.\n   * @returns The selected part of the state or derived data.\n   *\n   * @template TState - The specific type of state this hook operates on.\n   * @template Selected - The type of the value that the selector function will return.\n   */\n  <TState extends StateType = StateType, Selected = unknown>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions?: EqualityFn<Selected> | UseSelectorOptions<Selected>,\n  ): Selected\n\n  /**\n   * Creates a \"pre-typed\" version of {@linkcode useSelector useSelector}\n   * where the `state` type is predefined.\n   *\n   * This allows you to set the `state` type once, eliminating the need to\n   * specify it with every {@linkcode useSelector useSelector} call.\n   *\n   * @returns A pre-typed `useSelector` with the state type already defined.\n   *\n   * @example\n   * ```ts\n   * export const useAppSelector = useSelector.withTypes<RootState>()\n   * ```\n   *\n   * @template OverrideStateType - The specific type of state this hook operates on.\n   *\n   * @since 9.1.0\n   */\n  withTypes: <\n    OverrideStateType extends StateType,\n  >() => UseSelector<OverrideStateType>\n}\n\nconst refEquality: EqualityFn<any> = (a, b) => a === b\n\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\nexport function createSelectorHook(\n  context: React.Context<ReactReduxContextValue<\n    any,\n    any\n  > | null> = ReactReduxContext,\n): UseSelector {\n  const useReduxContext =\n    context === ReactReduxContext\n      ? useDefaultReduxContext\n      : createReduxContextHook(context)\n\n  const useSelector = <TState, Selected>(\n    selector: (state: TState) => Selected,\n    equalityFnOrOptions:\n      | EqualityFn<NoInfer<Selected>>\n      | UseSelectorOptions<NoInfer<Selected>> = {},\n  ): Selected => {\n    const { equalityFn = refEquality } =\n      typeof equalityFnOrOptions === 'function'\n        ? { equalityFn: equalityFnOrOptions }\n        : equalityFnOrOptions\n    if (process.env.NODE_ENV !== 'production') {\n      if (!selector) {\n        throw new Error(`You must pass a selector to useSelector`)\n      }\n      if (typeof selector !== 'function') {\n        throw new Error(`You must pass a function as a selector to useSelector`)\n      }\n      if (typeof equalityFn !== 'function') {\n        throw new Error(\n          `You must pass a function as an equality function to useSelector`,\n        )\n      }\n    }\n\n    const reduxContext = useReduxContext()\n\n    const { store, subscription, getServerState } = reduxContext\n\n    const firstRun = React.useRef(true)\n\n    const wrappedSelector = React.useCallback<typeof selector>(\n      {\n        [selector.name](state: TState) {\n          const selected = selector(state)\n          if (process.env.NODE_ENV !== 'production') {\n            const { devModeChecks = {} } =\n              typeof equalityFnOrOptions === 'function'\n                ? {}\n                : equalityFnOrOptions\n            const { identityFunctionCheck, stabilityCheck } = reduxContext\n            const {\n              identityFunctionCheck: finalIdentityFunctionCheck,\n              stabilityCheck: finalStabilityCheck,\n            } = {\n              stabilityCheck,\n              identityFunctionCheck,\n              ...devModeChecks,\n            }\n            if (\n              finalStabilityCheck === 'always' ||\n              (finalStabilityCheck === 'once' && firstRun.current)\n            ) {\n              const toCompare = selector(state)\n              if (!equalityFn(selected, toCompare)) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization',\n                  {\n                    state,\n                    selected,\n                    selected2: toCompare,\n                    stack,\n                  },\n                )\n              }\n            }\n            if (\n              finalIdentityFunctionCheck === 'always' ||\n              (finalIdentityFunctionCheck === 'once' && firstRun.current)\n            ) {\n              // @ts-ignore\n              if (selected === state) {\n                let stack: string | undefined = undefined\n                try {\n                  throw new Error()\n                } catch (e) {\n                  // eslint-disable-next-line no-extra-semi\n                  ;({ stack } = e as Error)\n                }\n                console.warn(\n                  'Selector ' +\n                    (selector.name || 'unknown') +\n                    ' returned the root state when called. This can lead to unnecessary rerenders.' +\n                    '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.',\n                  { stack },\n                )\n              }\n            }\n            if (firstRun.current) firstRun.current = false\n          }\n          return selected\n        },\n      }[selector.name],\n      [selector],\n    )\n\n    const selectedState = useSyncExternalStoreWithSelector(\n      subscription.addNestedSub,\n      store.getState,\n      getServerState || store.getState,\n      wrappedSelector,\n      equalityFn,\n    )\n\n    React.useDebugValue(selectedState)\n\n    return selectedState\n  }\n\n  Object.assign(useSelector, {\n    withTypes: () => useSelector,\n  })\n\n  return useSelector as UseSelector\n}\n\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n *   const counter = useSelector(state => state.counter)\n *   return <div>{counter}</div>\n * }\n */\nexport const useSelector = /*#__PURE__*/ createSelectorHook()\n","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","declare global {\n  interface SymbolConstructor {\n    readonly observable: symbol;\n  }\n}\nconst $$observable = /* #__PURE__ */(() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\nexport default $$observable;","/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nconst randomString = () => Math.random().toString(36).substring(7).split('').join('.');\nconst ActionTypes = {\n  INIT: `@@redux/INIT${/* #__PURE__ */randomString()}`,\n  REPLACE: `@@redux/REPLACE${/* #__PURE__ */randomString()}`,\n  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nexport default ActionTypes;","/**\n * @param obj The object to inspect.\n * @returns True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj: any): obj is object {\n  if (typeof obj !== 'object' || obj === null) return false;\n  let proto = obj;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}","import { formatProdErrorMessage as _formatProdErrorMessage13 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage12 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage11 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage10 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage9 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage8 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage7 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage6 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage5 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage4 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport $$observable from './utils/symbol-observable';\nimport { Store, StoreEnhancer, Dispatch, Observer, ListenerCallback, UnknownIfNonSpecific } from './types/store';\nimport { Action } from './types/actions';\nimport { Reducer } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport { kindOf } from './utils/kindOf';\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  if (typeof reducer !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n  }\n  if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n    enhancer = (preloadedState as StoreEnhancer<Ext, StateExt>);\n    preloadedState = undefined;\n  }\n  if (typeof enhancer !== 'undefined') {\n    if (typeof enhancer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n    }\n    return enhancer(createStore)(reducer, (preloadedState as PreloadedState | undefined));\n  }\n  let currentReducer = reducer;\n  let currentState: S | PreloadedState | undefined = (preloadedState as PreloadedState | undefined);\n  let currentListeners: Map<number, ListenerCallback> | null = new Map();\n  let nextListeners = currentListeners;\n  let listenerIdCounter = 0;\n  let isDispatching = false;\n\n  /**\n   * This makes a shallow copy of currentListeners so we can use\n   * nextListeners as a temporary list while dispatching.\n   *\n   * This prevents any bugs around consumers calling\n   * subscribe/unsubscribe in the middle of a dispatch.\n   */\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = new Map();\n      currentListeners.forEach((listener, key) => {\n        nextListeners.set(key, listener);\n      });\n    }\n  }\n\n  /**\n   * Reads the state tree managed by the store.\n   *\n   * @returns The current state tree of your application.\n   */\n  function getState(): S {\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n    }\n    return (currentState as S);\n  }\n\n  /**\n   * Adds a change listener. It will be called any time an action is dispatched,\n   * and some part of the state tree may potentially have changed. You may then\n   * call `getState()` to read the current state tree inside the callback.\n   *\n   * You may call `dispatch()` from a change listener, with the following\n   * caveats:\n   *\n   * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n   * If you subscribe or unsubscribe while the listeners are being invoked, this\n   * will not have any effect on the `dispatch()` that is currently in progress.\n   * However, the next `dispatch()` call, whether nested or not, will use a more\n   * recent snapshot of the subscription list.\n   *\n   * 2. The listener should not expect to see all state changes, as the state\n   * might have been updated multiple times during a nested `dispatch()` before\n   * the listener is called. It is, however, guaranteed that all subscribers\n   * registered before the `dispatch()` started will be called with the latest\n   * state by the time it exits.\n   *\n   * @param listener A callback to be invoked on every dispatch.\n   * @returns A function to remove this change listener.\n   */\n  function subscribe(listener: () => void) {\n    if (typeof listener !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n    }\n    let isSubscribed = true;\n    ensureCanMutateNextListeners();\n    const listenerId = listenerIdCounter++;\n    nextListeners.set(listenerId, listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n      if (isDispatching) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n      }\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      nextListeners.delete(listenerId);\n      currentListeners = null;\n    };\n  }\n\n  /**\n   * Dispatches an action. It is the only way to trigger a state change.\n   *\n   * The `reducer` function, used to create the store, will be called with the\n   * current state tree and the given `action`. Its return value will\n   * be considered the **next** state of the tree, and the change listeners\n   * will be notified.\n   *\n   * The base implementation only supports plain object actions. If you want to\n   * dispatch a Promise, an Observable, a thunk, or something else, you need to\n   * wrap your store creating function into the corresponding middleware. For\n   * example, see the documentation for the `redux-thunk` package. Even the\n   * middleware will eventually dispatch plain object actions using this method.\n   *\n   * @param action A plain object representing “what changed”. It is\n   * a good idea to keep actions serializable so you can record and replay user\n   * sessions, or use the time travelling `redux-devtools`. An action must have\n   * a `type` property which may not be `undefined`. It is a good idea to use\n   * string constants for action types.\n   *\n   * @returns For convenience, the same action object you dispatched.\n   *\n   * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n   * return something else (for example, a Promise you can await).\n   */\n  function dispatch(action: A) {\n    if (!isPlainObject(action)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n    }\n    if (typeof action.type === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage9(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n    if (typeof action.type !== 'string') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage10(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n    }\n    if (isDispatching) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage11(9) : 'Reducers may not dispatch actions.');\n    }\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n    const listeners = currentListeners = nextListeners;\n    listeners.forEach(listener => {\n      listener();\n    });\n    return action;\n  }\n\n  /**\n   * Replaces the reducer currently used by the store to calculate the state.\n   *\n   * You might need this if your app implements code splitting and you want to\n   * load some of the reducers dynamically. You might also need this if you\n   * implement a hot reloading mechanism for Redux.\n   *\n   * @param nextReducer The reducer for the store to use instead.\n   */\n  function replaceReducer(nextReducer: Reducer<S, A>): void {\n    if (typeof nextReducer !== 'function') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage12(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n    }\n    currentReducer = ((nextReducer as unknown) as Reducer<S, A, PreloadedState>);\n\n    // This action has a similar effect to ActionTypes.INIT.\n    // Any reducers that existed in both the new and old rootReducer\n    // will receive the previous state. This effectively populates\n    // the new state tree with any relevant data from the old one.\n    dispatch(({\n      type: ActionTypes.REPLACE\n    } as A));\n  }\n\n  /**\n   * Interoperability point for observable/reactive libraries.\n   * @returns A minimal observable of state changes.\n   * For more information, see the observable proposal:\n   * https://github.com/tc39/proposal-observable\n   */\n  function observable() {\n    const outerSubscribe = subscribe;\n    return {\n      /**\n       * The minimal observable subscription method.\n       * @param observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe(observer: unknown) {\n        if (typeof observer !== 'object' || observer === null) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage13(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n        }\n        function observeState() {\n          const observerAsObserver = (observer as Observer<S>);\n          if (observerAsObserver.next) {\n            observerAsObserver.next(getState());\n          }\n        }\n        observeState();\n        const unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe\n        };\n      },\n      [$$observable]() {\n        return this;\n      }\n    };\n  }\n\n  // When a store is created, an \"INIT\" action is dispatched so that every\n  // reducer returns their initial state. This effectively populates\n  // the initial state tree.\n  dispatch(({\n    type: ActionTypes.INIT\n  } as A));\n  const store = (({\n    dispatch: (dispatch as Dispatch<A>),\n    subscribe,\n    getState,\n    replaceReducer,\n    [$$observable]: observable\n  } as unknown) as Store<S, A, StateExt> & Ext);\n  return store;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}>(reducer: Reducer<S, A>, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A, PreloadedState>, preloadedState?: PreloadedState | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext;\nexport function legacy_createStore<S, A extends Action, Ext extends {} = {}, StateExt extends {} = {}, PreloadedState = S>(reducer: Reducer<S, A>, preloadedState?: PreloadedState | StoreEnhancer<Ext, StateExt> | undefined, enhancer?: StoreEnhancer<Ext, StateExt>): Store<S, A, UnknownIfNonSpecific<StateExt>> & Ext {\n  return createStore(reducer, (preloadedState as any), enhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage3 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage2 } from \"src/utils/formatProdErrorMessage\";\nimport { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport { Action } from './types/actions';\nimport { ActionFromReducersMapObject, PreloadedStateShapeFromReducersMapObject, Reducer, StateFromReducersMapObject } from './types/reducers';\nimport ActionTypes from './utils/actionTypes';\nimport isPlainObject from './utils/isPlainObject';\nimport warning from './utils/warning';\nimport { kindOf } from './utils/kindOf';\nfunction getUnexpectedStateShapeWarningMessage(inputState: object, reducers: {\n  [key: string]: Reducer<any, any, any>;\n}, action: Action, unexpectedKeyCache: {\n  [key: string]: true;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n  if (reducerKeys.length === 0) {\n    return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n  }\n  if (!isPlainObject(inputState)) {\n    return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following ` + `keys: \"${reducerKeys.join('\", \"')}\"`;\n  }\n  const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n  unexpectedKeys.forEach(key => {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === ActionTypes.REPLACE) return;\n  if (unexpectedKeys.length > 0) {\n    return `Unexpected ${unexpectedKeys.length > 1 ? 'keys' : 'key'} ` + `\"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. ` + `Expected to find one of the known reducer keys instead: ` + `\"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n  }\n}\nfunction assertReducerShape(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  Object.keys(reducers).forEach(key => {\n    const reducer = reducers[key];\n    const initialState = reducer(undefined, {\n      type: ActionTypes.INIT\n    });\n    if (typeof initialState === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(12) : `The slice reducer for key \"${key}\" returned undefined during initialization. ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n    }\n    if (typeof reducer(undefined, {\n      type: ActionTypes.PROBE_UNKNOWN_ACTION()\n    }) === 'undefined') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. ` + `Don't try to handle '${ActionTypes.INIT}' or other actions in \"redux/*\" ` + `namespace. They are considered private. Instead, you must return the ` + `current state for any unknown actions, unless it is undefined, ` + `in which case you must return the initial state, regardless of the ` + `action type. The initial state may not be undefined, but can be null.`);\n    }\n  });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @template S Combined state object type.\n *\n * @param reducers An object whose values correspond to different reducer\n *   functions that need to be combined into one. One handy way to obtain it\n *   is to use `import * as reducers` syntax. The reducers may never\n *   return undefined for any action. Instead, they should return their\n *   initial state if the state passed to them was undefined, and the current\n *   state for any unrecognized action.\n *\n * @returns A reducer function that invokes every reducer inside the passed\n *   object, and builds a state object with the same shape.\n */\nexport default function combineReducers<M>(reducers: M): M[keyof M] extends Reducer<any, any, any> | undefined ? Reducer<StateFromReducersMapObject<M>, ActionFromReducersMapObject<M>, Partial<PreloadedStateShapeFromReducersMapObject<M>>> : never;\nexport default function combineReducers(reducers: {\n  [key: string]: Reducer<any, any, any>;\n}) {\n  const reducerKeys = Object.keys(reducers);\n  const finalReducers: {\n    [key: string]: Reducer<any, any, any>;\n  } = {};\n  for (let i = 0; i < reducerKeys.length; i++) {\n    const key = reducerKeys[i];\n    if (process.env.NODE_ENV !== 'production') {\n      if (typeof reducers[key] === 'undefined') {\n        warning(`No reducer provided for key \"${key}\"`);\n      }\n    }\n    if (typeof reducers[key] === 'function') {\n      finalReducers[key] = reducers[key];\n    }\n  }\n  const finalReducerKeys = Object.keys(finalReducers);\n\n  // This is used to make sure we don't warn about the same\n  // keys multiple times.\n  let unexpectedKeyCache: {\n    [key: string]: true;\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    unexpectedKeyCache = {};\n  }\n  let shapeAssertionError: unknown;\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n  return function combination(state: StateFromReducersMapObject<typeof reducers> = {}, action: Action) {\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n    if (process.env.NODE_ENV !== 'production') {\n      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n    let hasChanged = false;\n    const nextState: StateFromReducersMapObject<typeof reducers> = {};\n    for (let i = 0; i < finalReducerKeys.length; i++) {\n      const key = finalReducerKeys[i];\n      const reducer = finalReducers[key];\n      const previousStateForKey = state[key];\n      const nextStateForKey = reducer(previousStateForKey, action);\n      if (typeof nextStateForKey === 'undefined') {\n        const actionType = action && action.type;\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : '(unknown type)'}, the slice reducer for key \"${key}\" returned undefined. ` + `To ignore an action, you must explicitly return the previous state. ` + `If you want this reducer to hold no value, you can return null instead of undefined.`);\n      }\n      nextState[key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}","type Func<T extends any[], R> = (...a: T) => R;\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n *   to left. For example, `compose(f, g, h)` is identical to doing\n *   `(...args) => f(g(h(...args)))`.\n */\nexport default function compose(): <R>(a: R) => R;\nexport default function compose<F extends Function>(f: F): F;\n\n/* two functions */\nexport default function compose<A, T extends any[], R>(f1: (a: A) => R, f2: Func<T, A>): Func<T, R>;\n\n/* three functions */\nexport default function compose<A, B, T extends any[], R>(f1: (b: B) => R, f2: (a: A) => B, f3: Func<T, A>): Func<T, R>;\n\n/* four functions */\nexport default function compose<A, B, C, T extends any[], R>(f1: (c: C) => R, f2: (b: B) => C, f3: (a: A) => B, f4: Func<T, A>): Func<T, R>;\n\n/* rest */\nexport default function compose<R>(f1: (a: any) => R, ...funcs: Function[]): (...args: any[]) => R;\nexport default function compose<R>(...funcs: Function[]): (...args: any[]) => R;\nexport default function compose(...funcs: Function[]) {\n  if (funcs.length === 0) {\n    // infer the argument type so it is usable in inference down the line\n    return <T,>(arg: T) => arg;\n  }\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n  return funcs.reduce((a, b) => (...args: any) => a(b(...args)));\n}","// src/index.ts\nfunction createThunkMiddleware(extraArgument) {\n  const middleware = ({ dispatch, getState }) => (next) => (action) => {\n    if (typeof action === \"function\") {\n      return action(dispatch, getState, extraArgument);\n    }\n    return next(action);\n  };\n  return middleware;\n}\nvar thunk = createThunkMiddleware();\nvar withExtraArgument = createThunkMiddleware;\nexport {\n  thunk,\n  withExtraArgument\n};\n","// Should be no imports here!\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: unique symbol = Symbol.for(\"immer-nothing\")\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = Symbol.for(\"immer-draftable\")\n\nexport const DRAFT_STATE: unique symbol = Symbol.for(\"immer-state\")\n","export const errors =\n\tprocess.env.NODE_ENV !== \"production\"\n\t\t? [\n\t\t\t\t// All error codes, starting by 0:\n\t\t\t\tfunction(plugin: string) {\n\t\t\t\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t\t\t\t},\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t\t\t\t},\n\t\t\t\t\"This object has been frozen and should not be mutated\",\n\t\t\t\tfunction(data: any) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\t\t\t\tdata\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t\t\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t\t\t\t\"Immer forbids circular references\",\n\t\t\t\t\"The first or second argument to `produce` must be a function\",\n\t\t\t\t\"The third argument to `produce` must be a function or undefined\",\n\t\t\t\t\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t\t\t\t\"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'current' expects a draft, got: ${thing}`\n\t\t\t\t},\n\t\t\t\t\"Object.defineProperty() cannot be used on an Immer draft\",\n\t\t\t\t\"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t\t\t\t\"Immer only supports deleting array indices\",\n\t\t\t\t\"Immer only supports setting array indices and the 'length' property\",\n\t\t\t\tfunction(thing: string) {\n\t\t\t\t\treturn `'original' expects a draft, got: ${thing}`\n\t\t\t\t}\n\t\t\t\t// Note: if more errors are added, the errorOffset in Patches.ts should be increased\n\t\t\t\t// See Patches.ts for additional errors\n\t\t  ]\n\t\t: []\n\nexport function die(error: number, ...args: any[]): never {\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst e = errors[error]\n\t\tconst msg = typeof e === \"function\" ? e.apply(null, args as any) : e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\tArchType,\n\tdie,\n\tStrictMode\n} from \"../internal\"\n\nexport const getPrototypeOf = Object.getPrototypeOf\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original<T>(value: T): T | undefined\nexport function original(value: Drafted<any>): any {\n\tif (!isDraft(value)) die(15, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/**\n * Each iterates a map, set or array.\n * Or, if any other kind of object, all of its own properties.\n * Regardless whether they are enumerable or symbols\n */\nexport function each<T extends Objectish>(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void\n): void\nexport function each(obj: any, iter: any) {\n\tif (getArchtype(obj) === ArchType.Object) {\n\t\tReflect.ownKeys(obj).forEach(key => {\n\t\t\titer(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): ArchType {\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_\n\t\t: Array.isArray(thing)\n\t\t? ArchType.Array\n\t\t: isMap(thing)\n\t\t? ArchType.Map\n\t\t: isSet(thing)\n\t\t? ArchType.Set\n\t\t: ArchType.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === ArchType.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === ArchType.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === ArchType.Map) thing.set(propOrOldValue, value)\n\telse if (t === ArchType.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any, strict: StrictMode) {\n\tif (isMap(base)) {\n\t\treturn new Map(base)\n\t}\n\tif (isSet(base)) {\n\t\treturn new Set(base)\n\t}\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\n\tconst isPlain = isPlainObject(base)\n\n\tif (strict === true || (strict === \"class_only\" && !isPlain)) {\n\t\t// Perform a strict copy\n\t\tconst descriptors = Object.getOwnPropertyDescriptors(base)\n\t\tdelete descriptors[DRAFT_STATE as any]\n\t\tlet keys = Reflect.ownKeys(descriptors)\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst key: any = keys[i]\n\t\t\tconst desc = descriptors[key]\n\t\t\tif (desc.writable === false) {\n\t\t\t\tdesc.writable = true\n\t\t\t\tdesc.configurable = true\n\t\t\t}\n\t\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t\t// with libraries that trap values, like mobx or vue\n\t\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\t\tif (desc.get || desc.set)\n\t\t\t\tdescriptors[key] = {\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\t\tvalue: base[key]\n\t\t\t\t}\n\t\t}\n\t\treturn Object.create(getPrototypeOf(base), descriptors)\n\t} else {\n\t\t// perform a sloppy copy\n\t\tconst proto = getPrototypeOf(base)\n\t\tif (proto !== null && isPlain) {\n\t\t\treturn {...base} // assumption: better inner class optimization than the assign below\n\t\t}\n\t\tconst obj = Object.create(proto)\n\t\treturn Object.assign(obj, base)\n\t}\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze<T>(obj: T, deep?: boolean): T\nexport function freeze<T>(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep)\n\t\t// See #590, don't recurse into non-enumerable / Symbol properties when freezing\n\t\t// So use Object.entries (only string-like, enumerables) instead of each()\n\t\tObject.entries(obj).forEach(([key, value]) => freeze(value, true))\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tDrafted,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tArchType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_<T>(draft: T, patches: readonly Patch[]): T\n\t}\n\tMapSet?: {\n\t\tproxyMap_<T extends AnyMap>(target: T, parent?: ImmerState): T\n\t\tproxySet_<T extends AnySet>(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin<K extends keyof Plugins>(\n\tpluginKey: K\n): Exclude<Plugins[K], undefined> {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(0, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin<K extends keyof Plugins>(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ArchType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map<any, boolean> | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted<AnyMap, MapState>\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ArchType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map<any, Drafted> // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted<AnySet, SetState>\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tArchType,\n\tgetPlugin\n} from \"../internal\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (state.type_ === ArchType.Object || state.type_ === ArchType.Array)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tArchType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(value, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path)\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result = state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ArchType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n\t\tdie(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ArchType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude<ImmerState, SetState>).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// Immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\t// Per #590, we never freeze symbolic properties. Just to make sure don't accidentally interfere\n\t\t// with other frameworks.\n\t\tif (\n\t\t\t(!parentState || !parentState.scope_.parent_) &&\n\t\t\ttypeof prop !== \"symbol\" &&\n\t\t\tObject.prototype.propertyIsEnumerable.call(targetObject, prop)\n\t\t)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tgetPrototypeOf,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tArchType,\n\tImmerScope\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ArchType.Object\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted<AnyObject, ProxyObjectState>\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ArchType.Array\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted<AnyArray, ProxyArrayState>\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy<T extends Objectish>(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted<T, ProxyState> {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ArchType.Array : (ArchType.Object as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler<object | Array<any>> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler<ProxyState> = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(value, state))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\tif (state.copy_) {\n\t\t\tdelete state.copy_[prop]\n\t\t}\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ArchType.Array || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop as any)))\n\t\tdie(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (\n\t\tprocess.env.NODE_ENV !== \"production\" &&\n\t\tprop !== \"length\" &&\n\t\tisNaN(parseInt(prop as any))\n\t)\n\t\tdie(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t  // prototype, we should invoke it with the draft as context!\n\t\t\t  desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {\n\tbase_: any\n\tcopy_: any\n\tscope_: ImmerScope\n}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(\n\t\t\tstate.base_,\n\t\t\tstate.scope_.immer_.useStrictShallowCopy_\n\t\t)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport type StrictMode = boolean | \"class_only\";\n\nexport class Immer implements ProducersFns {\n\tautoFreeze_: boolean = true\n\tuseStrictShallowCopy_: StrictMode = false\n\n\tconstructor(config?: {\n\t\tautoFreeze?: boolean\n\t\tuseStrictShallowCopy?: StrictMode\n\t}) {\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t\tif (typeof config?.useStrictShallowCopy === \"boolean\")\n\t\t\tthis.setUseStrictShallowCopy(config!.useStrictShallowCopy)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(1, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft<T extends Objectish>(base: T): Draft<T> {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft<D extends Draft<any>>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft<infer T> ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (!state || !state.isManual_) die(9)\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to enable strict shallow copy.\n\t *\n\t * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n\t */\n\tsetUseStrictShallowCopy(value: StrictMode) {\n\t\tthis.useStrictShallowCopy_ = value\n\t}\n\n\tapplyPatches<T extends Objectish>(base: T, patches: readonly Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy<T extends Objectish>(\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted<T, ImmerState> {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: createProxyProxy(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tisFrozen\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current<T>(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(10, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value) || isFrozen(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tif (state) {\n\t\tif (!state.modified_) return state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_)\n\t} else {\n\t\tcopy = shallowCopy(value, true)\n\t}\n\t// recurse\n\teach(copy, (key, childValue) => {\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\tif (state) {\n\t\tstate.finalized_ = false\n\t}\n\treturn copy\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tWritableDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\tProducer,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze,\n\tObjectish,\n\tStrictMode\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\nexport const setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft<T>(value: T): Draft<T> {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable<T>(value: T): Immutable<T> {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\n","import { current, isDraft } from 'immer';\nimport { createSelectorCreator, weakMapMemoize } from 'reselect';\nexport const createDraftSafeSelectorCreator: typeof createSelectorCreator = (...args: unknown[]) => {\n  const createSelector = (createSelectorCreator as any)(...args);\n  const createDraftSafeSelector = Object.assign((...args: unknown[]) => {\n    const selector = createSelector(...args);\n    const wrappedSelector = (value: unknown, ...rest: unknown[]) => selector(isDraft(value) ? current(value) : value, ...rest);\n    Object.assign(wrappedSelector, selector);\n    return wrappedSelector as any;\n  }, {\n    withTypes: () => createDraftSafeSelector\n  });\n  return createDraftSafeSelector;\n};\n\n/**\n * \"Draft-Safe\" version of `reselect`'s `createSelector`:\n * If an `immer`-drafted object is passed into the resulting selector's first argument,\n * the selector will act on the current draft value, instead of returning a cached value\n * that might be possibly outdated if the draft has been modified since.\n * @public\n */\nexport const createDraftSafeSelector = /* @__PURE__ */\ncreateDraftSafeSelectorCreator(weakMapMemoize);","import type { Action, ActionCreator, StoreEnhancer } from 'redux';\nimport { compose } from 'redux';\n\n/**\n * @public\n */\nexport interface DevToolsEnhancerOptions {\n  /**\n   * the instance name to be showed on the monitor page. Default value is `document.title`.\n   * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\n   */\n  name?: string;\n  /**\n   * action creators functions to be available in the Dispatcher.\n   */\n  actionCreators?: ActionCreator<any>[] | {\n    [key: string]: ActionCreator<any>;\n  };\n  /**\n   * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\n   * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\n   * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\n   *\n   * @default 500 ms.\n   */\n  latency?: number;\n  /**\n   * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\n   *\n   * @default 50\n   */\n  maxAge?: number;\n  /**\n   * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\n   * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\n   * functions.\n   */\n  serialize?: boolean | {\n    /**\n     * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\n     * - `false` - will handle also circular references.\n     * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\n     * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\n     *   For each of them you can indicate if to include (by setting as `true`).\n     *   For `function` key you can also specify a custom function which handles serialization.\n     *   See [`jsan`](https://github.com/kolodny/jsan) for more details.\n     */\n    options?: undefined | boolean | {\n      date?: true;\n      regex?: true;\n      undefined?: true;\n      error?: true;\n      symbol?: true;\n      map?: true;\n      set?: true;\n      function?: true | ((fn: (...args: any[]) => any) => string);\n    };\n    /**\n     * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\n     * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\n     * key. So you can deserialize it back while importing or persisting data.\n     * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\n     */\n    replacer?: (key: string, value: unknown) => any;\n    /**\n     * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\n     * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\n     * as an example on how to serialize special data types and get them back.\n     */\n    reviver?: (key: string, value: unknown) => any;\n    /**\n     * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\n     * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\n     * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\n     */\n    immutable?: any;\n    /**\n     * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\n     */\n    refs?: any;\n  };\n  /**\n   * function which takes `action` object and id number as arguments, and should return `action` object back.\n   */\n  actionSanitizer?: <A extends Action>(action: A, id: number) => A;\n  /**\n   * function which takes `state` object and index as arguments, and should return `state` object back.\n   */\n  stateSanitizer?: <S>(state: S, index: number) => S;\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsDenylist?: string | string[];\n  /**\n   * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\n   * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\n   */\n  actionsAllowlist?: string | string[];\n  /**\n   * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\n   * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\n   */\n  predicate?: <S, A extends Action>(state: S, action: A) => boolean;\n  /**\n   * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\n   * Available only for Redux enhancer, for others use `autoPause`.\n   *\n   * @default true\n   */\n  shouldRecordChanges?: boolean;\n  /**\n   * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\n   * If not specified, will commit when paused. Available only for Redux enhancer.\n   *\n   * @default \"@@PAUSED\"\"\n   */\n  pauseActionType?: string;\n  /**\n   * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\n   * Not available for Redux enhancer (as it already does it but storing the data to be sent).\n   *\n   * @default false\n   */\n  autoPause?: boolean;\n  /**\n   * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\n   * Available only for Redux enhancer.\n   *\n   * @default false\n   */\n  shouldStartLocked?: boolean;\n  /**\n   * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\n   *\n   * @default true\n   */\n  shouldHotReload?: boolean;\n  /**\n   * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\n   *\n   * @default false\n   */\n  shouldCatchErrors?: boolean;\n  /**\n   * If you want to restrict the extension, specify the features you allow.\n   * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\n   * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\n   * Otherwise, you'll get/set the data right from the monitor part.\n   */\n  features?: {\n    /**\n     * start/pause recording of dispatched actions\n     */\n    pause?: boolean;\n    /**\n     * lock/unlock dispatching actions and side effects\n     */\n    lock?: boolean;\n    /**\n     * persist states on page reloading\n     */\n    persist?: boolean;\n    /**\n     * export history of actions in a file\n     */\n    export?: boolean | 'custom';\n    /**\n     * import history of actions from a file\n     */\n    import?: boolean | 'custom';\n    /**\n     * jump back and forth (time travelling)\n     */\n    jump?: boolean;\n    /**\n     * skip (cancel) actions\n     */\n    skip?: boolean;\n    /**\n     * drag and drop actions in the history list\n     */\n    reorder?: boolean;\n    /**\n     * dispatch custom actions or action creators\n     */\n    dispatch?: boolean;\n    /**\n     * generate tests for the selected actions\n     */\n    test?: boolean;\n  };\n  /**\n   * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\n   * Defaults to false.\n   */\n  trace?: boolean | (<A extends Action>(action: A) => string);\n  /**\n   * The maximum number of stack trace entries to record per action. Defaults to 10.\n   */\n  traceLimit?: number;\n}\ntype Compose = typeof compose;\ninterface ComposeWithDevTools {\n  (options: DevToolsEnhancerOptions): Compose;\n  <StoreExt extends {}>(...funcs: StoreEnhancer<StoreExt>[]): StoreEnhancer<StoreExt>;\n}\n\n/**\n * @public\n */\nexport const composeWithDevTools: ComposeWithDevTools = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\n  if (arguments.length === 0) return undefined;\n  if (typeof arguments[0] === 'object') return compose;\n  return compose.apply(null, arguments as any as Function[]);\n};\n\n/**\n * @public\n */\nexport const devToolsEnhancer: {\n  (options: DevToolsEnhancerOptions): StoreEnhancer<any>;\n} = typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__ ? (window as any).__REDUX_DEVTOOLS_EXTENSION__ : function () {\n  return function (noop) {\n    return noop;\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport { isAction } from 'redux';\nimport type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, IsAny } from './tsHelpers';\nimport { hasMatchFunction } from './tsHelpers';\n\n/**\n * An action with a string type and an associated payload. This is the\n * type of action returned by `createAction()` action creators.\n *\n * @template P The type of the action's payload.\n * @template T the type used for the action type.\n * @template M The type of the action's meta (optional)\n * @template E The type of the action's error (optional)\n *\n * @public\n */\nexport type PayloadAction<P = void, T extends string = string, M = never, E = never> = {\n  payload: P;\n  type: T;\n} & ([M] extends [never] ? {} : {\n  meta: M;\n}) & ([E] extends [never] ? {} : {\n  error: E;\n});\n\n/**\n * A \"prepare\" method to be used as the second parameter of `createAction`.\n * Takes any number of arguments and returns a Flux Standard Action without\n * type (will be added later) that *must* contain a payload (might be undefined).\n *\n * @public\n */\nexport type PrepareAction<P> = ((...args: any[]) => {\n  payload: P;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  error: any;\n}) | ((...args: any[]) => {\n  payload: P;\n  meta: any;\n  error: any;\n});\n\n/**\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\n *\n * @internal\n */\nexport type _ActionCreatorWithPreparedPayload<PA extends PrepareAction<any> | void, T extends string = string> = PA extends PrepareAction<infer P> ? ActionCreatorWithPreparedPayload<Parameters<PA>, P, T, ReturnType<PA> extends {\n  error: infer E;\n} ? E : never, ReturnType<PA> extends {\n  meta: infer M;\n} ? M : never> : void;\n\n/**\n * Basic type for all action creators.\n *\n * @inheritdoc {redux#ActionCreator}\n */\nexport type BaseActionCreator<P, T extends string, M = never, E = never> = {\n  type: T;\n  match: (action: unknown) => action is PayloadAction<P, T, M, E>;\n};\n\n/**\n * An action creator that takes multiple arguments that are passed\n * to a `PrepareAction` method to create the final Action.\n * @typeParam Args arguments for the action creator function\n * @typeParam P `payload` type\n * @typeParam T `type` name\n * @typeParam E optional `error` type\n * @typeParam M optional `meta` type\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPreparedPayload<Args extends unknown[], P, T extends string = string, E = never, M = never> extends BaseActionCreator<P, T, M, E> {\n  /**\n   * Calling this {@link redux#ActionCreator} with `Args` will return\n   * an Action with a payload of type `P` and (depending on the `PrepareAction`\n   * method used) a `meta`- and `error` property of types `M` and `E` respectively.\n   */\n  (...args: Args): PayloadAction<P, T, M, E>;\n}\n\n/**\n * An action creator of type `T` that takes an optional payload of type `P`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithOptionalPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`.\n   * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\n   */\n  (payload?: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` that takes no payload.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithoutPayload<T extends string = string> extends BaseActionCreator<undefined, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} will\n   * return a {@link PayloadAction} of type `T` with a payload of `undefined`\n   */\n  (noArgument: void): PayloadAction<undefined, T>;\n}\n\n/**\n * An action creator of type `T` that requires a payload of type P.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithPayload<P, T extends string = string> extends BaseActionCreator<P, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload of `P`\n   */\n  (payload: P): PayloadAction<P, T>;\n}\n\n/**\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\n *\n * @inheritdoc {redux#ActionCreator}\n *\n * @public\n */\nexport interface ActionCreatorWithNonInferrablePayload<T extends string = string> extends BaseActionCreator<unknown, T> {\n  /**\n   * Calling this {@link redux#ActionCreator} with an argument will\n   * return a {@link PayloadAction} of type `T` with a payload\n   * of exactly the type of the argument.\n   */\n  <PT extends unknown>(payload: PT): PayloadAction<PT, T>;\n}\n\n/**\n * An action creator that produces actions with a `payload` attribute.\n *\n * @typeParam P the `payload` type\n * @typeParam T the `type` of the resulting action\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\n *\n * @public\n */\nexport type PayloadActionCreator<P = void, T extends string = string, PA extends PrepareAction<P> | void = void> = IfPrepareActionMethodProvided<PA, _ActionCreatorWithPreparedPayload<PA, T>,\n// else\nIsAny<P, ActionCreatorWithPayload<any, T>, IsUnknownOrNonInferrable<P, ActionCreatorWithNonInferrablePayload<T>,\n// else\nIfVoid<P, ActionCreatorWithoutPayload<T>,\n// else\nIfMaybeUndefined<P, ActionCreatorWithOptionalPayload<P, T>,\n// else\nActionCreatorWithPayload<P, T>>>>>>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<P = void, T extends string = string>(type: T): PayloadActionCreator<P, T>;\n\n/**\n * A utility function to create an action creator for the given action type\n * string. The action creator accepts a single argument, which will be included\n * in the action object as a field called payload. The action creator function\n * will also have its toString() overridden so that it returns the action type.\n *\n * @param type The action type to use for created actions.\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\n *                If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\n *\n * @public\n */\nexport function createAction<PA extends PrepareAction<any>, T extends string = string>(type: T, prepareAction: PA): PayloadActionCreator<ReturnType<PA>['payload'], T, PA>;\nexport function createAction(type: string, prepareAction?: Function): any {\n  function actionCreator(...args: any[]) {\n    if (prepareAction) {\n      let prepared = prepareAction(...args);\n      if (!prepared) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(0) : 'prepareAction did not return an object');\n      }\n      return {\n        type,\n        payload: prepared.payload,\n        ...('meta' in prepared && {\n          meta: prepared.meta\n        }),\n        ...('error' in prepared && {\n          error: prepared.error\n        })\n      };\n    }\n    return {\n      type,\n      payload: args[0]\n    };\n  }\n  actionCreator.toString = () => `${type}`;\n  actionCreator.type = type;\n  actionCreator.match = (action: unknown): action is PayloadAction => isAction(action) && action.type === type;\n  return actionCreator;\n}\n\n/**\n * Returns true if value is an RTK-like action creator, with a static type property and match method.\n */\nexport function isActionCreator(action: unknown): action is BaseActionCreator<unknown, string> & Function {\n  return typeof action === 'function' && 'type' in action &&\n  // hasMatchFunction only wants Matchers but I don't see the point in rewriting it\n  hasMatchFunction(action as any);\n}\n\n/**\n * Returns true if value is an action with a string type and valid Flux Standard Action keys.\n */\nexport function isFSA(action: unknown): action is {\n  type: string;\n  payload?: unknown;\n  error?: unknown;\n  meta?: unknown;\n} {\n  return isAction(action) && Object.keys(action).every(isValidKey);\n}\nfunction isValidKey(key: string) {\n  return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1;\n}\n\n// helper types for more readable typings\n\ntype IfPrepareActionMethodProvided<PA extends PrepareAction<any> | void, True, False> = PA extends (...args: any[]) => any ? True : False;","import { Action } from '../types/actions';\nimport isPlainObject from './isPlainObject';\nexport default function isAction(action: unknown): action is Action<string> {\n  return isPlainObject(action) && 'type' in action && typeof (action as Record<'type', unknown>).type === 'string';\n}","import { produce as createNextState, isDraftable } from 'immer';\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\n  let elapsed = 0;\n  return {\n    measureTime<T>(fn: () => T): T {\n      const started = Date.now();\n      try {\n        return fn();\n      } finally {\n        const finished = Date.now();\n        elapsed += finished - started;\n      }\n    },\n    warnIfExceeded() {\n      if (elapsed > maxDelay) {\n        console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\nIt is disabled in production builds, so you don't need to worry about that.`);\n      }\n    }\n  };\n}\nexport function delay(ms: number) {\n  return new Promise(resolve => setTimeout(resolve, ms));\n}\nexport class Tuple<Items extends ReadonlyArray<unknown> = []> extends Array<Items[number]> {\n  constructor(length: number);\n  constructor(...items: Items);\n  constructor(...items: any[]) {\n    super(...items);\n    Object.setPrototypeOf(this, Tuple.prototype);\n  }\n  static override get [Symbol.species]() {\n    return Tuple as any;\n  }\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...Items, ...AdditionalItems]>;\n  override concat(...arr: any[]) {\n    return super.concat.apply(this, arr);\n  }\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: Tuple<AdditionalItems>): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend<AdditionalItems extends ReadonlyArray<unknown>>(...items: AdditionalItems): Tuple<[...AdditionalItems, ...Items]>;\n  prepend(...arr: any[]) {\n    if (arr.length === 1 && Array.isArray(arr[0])) {\n      return new Tuple(...arr[0].concat(this));\n    }\n    return new Tuple(...arr.concat(this));\n  }\n}\nexport function freezeDraftable<T>(val: T) {\n  return isDraftable(val) ? createNextState(val, () => {}) : val;\n}\nexport function getOrInsert<K extends object, V>(map: WeakMap<K, V>, key: K, value: V): V;\nexport function getOrInsert<K, V>(map: Map<K, V>, key: K, value: V): V;\nexport function getOrInsert<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, value: V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, value).get(key) as V;\n}\nexport function getOrInsertComputed<K extends object, V>(map: WeakMap<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K, V>(map: Map<K, V>, key: K, compute: (key: K) => V): V;\nexport function getOrInsertComputed<K extends object, V>(map: Map<K, V> | WeakMap<K, V>, key: K, compute: (key: K) => V): V {\n  if (map.has(key)) return map.get(key) as V;\n  return map.set(key, compute(key)).get(key) as V;\n}","import type { Middleware, UnknownAction } from 'redux';\nimport type { ThunkMiddleware } from 'redux-thunk';\nimport { thunk as thunkMiddleware, withExtraArgument } from 'redux-thunk';\nimport type { ActionCreatorInvariantMiddlewareOptions } from './actionCreatorInvariantMiddleware';\nimport { createActionCreatorInvariantMiddleware } from './actionCreatorInvariantMiddleware';\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware';\n/* PROD_START_REMOVE_UMD */\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware';\n/* PROD_STOP_REMOVE_UMD */\n\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware';\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware';\nimport type { ExcludeFromTuple } from './tsHelpers';\nimport { Tuple } from './utils';\nfunction isBoolean(x: any): x is boolean {\n  return typeof x === 'boolean';\n}\ninterface ThunkOptions<E = any> {\n  extraArgument: E;\n}\ninterface GetDefaultMiddlewareOptions {\n  thunk?: boolean | ThunkOptions;\n  immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions;\n  serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions;\n  actionCreatorCheck?: boolean | ActionCreatorInvariantMiddlewareOptions;\n}\nexport type ThunkMiddlewareFor<S, O extends GetDefaultMiddlewareOptions = {}> = O extends {\n  thunk: false;\n} ? never : O extends {\n  thunk: {\n    extraArgument: infer E;\n  };\n} ? ThunkMiddleware<S, UnknownAction, E> : ThunkMiddleware<S, UnknownAction>;\nexport type GetDefaultMiddleware<S = any> = <O extends GetDefaultMiddlewareOptions = {\n  thunk: true;\n  immutableCheck: true;\n  serializableCheck: true;\n  actionCreatorCheck: true;\n}>(options?: O) => Tuple<ExcludeFromTuple<[ThunkMiddlewareFor<S, O>], never>>;\nexport const buildGetDefaultMiddleware = <S = any,>(): GetDefaultMiddleware<S> => function getDefaultMiddleware(options) {\n  const {\n    thunk = true,\n    immutableCheck = true,\n    serializableCheck = true,\n    actionCreatorCheck = true\n  } = options ?? {};\n  let middlewareArray = new Tuple<Middleware[]>();\n  if (thunk) {\n    if (isBoolean(thunk)) {\n      middlewareArray.push(thunkMiddleware);\n    } else {\n      middlewareArray.push(withExtraArgument(thunk.extraArgument));\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (immutableCheck) {\n      /* PROD_START_REMOVE_UMD */\n      let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(immutableCheck)) {\n        immutableOptions = immutableCheck;\n      }\n      middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\n      /* PROD_STOP_REMOVE_UMD */\n    }\n    if (serializableCheck) {\n      let serializableOptions: SerializableStateInvariantMiddlewareOptions = {};\n      if (!isBoolean(serializableCheck)) {\n        serializableOptions = serializableCheck;\n      }\n      middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\n    }\n    if (actionCreatorCheck) {\n      let actionCreatorOptions: ActionCreatorInvariantMiddlewareOptions = {};\n      if (!isBoolean(actionCreatorCheck)) {\n        actionCreatorOptions = actionCreatorCheck;\n      }\n      middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\n    }\n  }\n  return middlewareArray as any;\n};","import type { StoreEnhancer } from 'redux';\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch';\nexport const prepareAutoBatched = <T,>() => (payload: T): {\n  payload: T;\n  meta: unknown;\n} => ({\n  payload,\n  meta: {\n    [SHOULD_AUTOBATCH]: true\n  }\n});\nconst createQueueWithTimer = (timeout: number) => {\n  return (notify: () => void) => {\n    setTimeout(notify, timeout);\n  };\n};\nexport type AutoBatchOptions = {\n  type: 'tick';\n} | {\n  type: 'timer';\n  timeout: number;\n} | {\n  type: 'raf';\n} | {\n  type: 'callback';\n  queueNotification: (notify: () => void) => void;\n};\n\n/**\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\n * notifying subscribers until either the queued callback executes or the\n * next \"standard-priority\" action is dispatched.\n *\n * This allows dispatching multiple \"low-priority\" actions in a row with only\n * a single subscriber notification to the UI after the sequence of actions\n * is finished, thus improving UI re-render performance.\n *\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\n * This can be added to `action.meta` manually, or by using the\n * `prepareAutoBatched` helper.\n *\n * By default, it will queue a notification for the end of the event loop tick.\n * However, you can pass several other options to configure the behavior:\n * - `{type: 'tick'}`: queues using `queueMicrotask`\n * - `{type: 'timer', timeout: number}`: queues using `setTimeout`\n * - `{type: 'raf'}`: queues using `requestAnimationFrame` (default)\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}`: lets you provide your own callback\n *\n *\n */\nexport const autoBatchEnhancer = (options: AutoBatchOptions = {\n  type: 'raf'\n}): StoreEnhancer => next => (...args) => {\n  const store = next(...args);\n  let notifying = true;\n  let shouldNotifyAtEndOfTick = false;\n  let notificationQueued = false;\n  const listeners = new Set<() => void>();\n  const queueCallback = options.type === 'tick' ? queueMicrotask : options.type === 'raf' ?\n  // requestAnimationFrame won't exist in SSR environments. Fall back to a vague approximation just to keep from erroring.\n  typeof window !== 'undefined' && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10) : options.type === 'callback' ? options.queueNotification : createQueueWithTimer(options.timeout);\n  const notifyListeners = () => {\n    // We're running at the end of the event loop tick.\n    // Run the real listener callbacks to actually update the UI.\n    notificationQueued = false;\n    if (shouldNotifyAtEndOfTick) {\n      shouldNotifyAtEndOfTick = false;\n      listeners.forEach(l => l());\n    }\n  };\n  return Object.assign({}, store, {\n    // Override the base `store.subscribe` method to keep original listeners\n    // from running if we're delaying notifications\n    subscribe(listener: () => void) {\n      // Each wrapped listener will only call the real listener if\n      // the `notifying` flag is currently active when it's called.\n      // This lets the base store work as normal, while the actual UI\n      // update becomes controlled by this enhancer.\n      const wrappedListener: typeof listener = () => notifying && listener();\n      const unsubscribe = store.subscribe(wrappedListener);\n      listeners.add(listener);\n      return () => {\n        unsubscribe();\n        listeners.delete(listener);\n      };\n    },\n    // Override the base `store.dispatch` method so that we can check actions\n    // for the `shouldAutoBatch` flag and determine if batching is active\n    dispatch(action: any) {\n      try {\n        // If the action does _not_ have the `shouldAutoBatch` flag,\n        // we resume/continue normal notify-after-each-dispatch behavior\n        notifying = !action?.meta?.[SHOULD_AUTOBATCH];\n        // If a `notifyListeners` microtask was queued, you can't cancel it.\n        // Instead, we set a flag so that it's a no-op when it does run\n        shouldNotifyAtEndOfTick = !notifying;\n        if (shouldNotifyAtEndOfTick) {\n          // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\n          // a microtask to notify listeners at the end of the event loop tick.\n          // Make sure we only enqueue this _once_ per tick.\n          if (!notificationQueued) {\n            notificationQueued = true;\n            queueCallback(notifyListeners);\n          }\n        }\n        // Go ahead and process the action as usual, including reducers.\n        // If normal notification behavior is enabled, the store will notify\n        // all of its own listeners, and the wrapper callbacks above will\n        // see `notifying` is true and pass on to the real listener callbacks.\n        // If we're \"batching\" behavior, then the wrapped callbacks will\n        // bail out, causing the base store notification behavior to be no-ops.\n        return store.dispatch(action);\n      } finally {\n        // Assume we're back to normal behavior after each action\n        notifying = true;\n      }\n    }\n  });\n};","import type { StoreEnhancer } from 'redux';\nimport type { AutoBatchOptions } from './autoBatchEnhancer';\nimport { autoBatchEnhancer } from './autoBatchEnhancer';\nimport { Tuple } from './utils';\nimport type { Middlewares } from './configureStore';\nimport type { ExtractDispatchExtensions } from './tsHelpers';\ntype GetDefaultEnhancersOptions = {\n  autoBatch?: boolean | AutoBatchOptions;\n};\nexport type GetDefaultEnhancers<M extends Middlewares<any>> = (options?: GetDefaultEnhancersOptions) => Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>]>;\nexport const buildGetDefaultEnhancers = <M extends Middlewares<any>,>(middlewareEnhancer: StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>): GetDefaultEnhancers<M> => function getDefaultEnhancers(options) {\n  const {\n    autoBatch = true\n  } = options ?? {};\n  let enhancerArray = new Tuple<StoreEnhancer[]>(middlewareEnhancer);\n  if (autoBatch) {\n    enhancerArray.push(autoBatchEnhancer(typeof autoBatch === 'object' ? autoBatch : undefined));\n  }\n  return enhancerArray as any;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6 } from \"@reduxjs/toolkit\";\nimport type { Action } from 'redux';\nimport type { CaseReducer, CaseReducers, ActionMatcherDescriptionCollection } from './createReducer';\nimport type { TypeGuard } from './tsHelpers';\nexport type TypedActionCreator<Type extends string> = {\n  (...args: any[]): Action<Type>;\n  type: Type;\n};\n\n/**\n * A builder for an action <-> reducer map.\n *\n * @public\n */\nexport interface ActionReducerMapBuilder<State> {\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ActionReducerMapBuilder<State>;\n  /**\n   * Adds a case reducer to handle a single exact action type.\n   * @remarks\n   * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ActionReducerMapBuilder<State>;\n\n  /**\n   * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   * @example\n  ```ts\n  import {\n  createAction,\n  createReducer,\n  AsyncThunk,\n  UnknownAction,\n  } from \"@reduxjs/toolkit\";\n  type GenericAsyncThunk = AsyncThunk<unknown, unknown, any>;\n  type PendingAction = ReturnType<GenericAsyncThunk[\"pending\"]>;\n  type RejectedAction = ReturnType<GenericAsyncThunk[\"rejected\"]>;\n  type FulfilledAction = ReturnType<GenericAsyncThunk[\"fulfilled\"]>;\n  const initialState: Record<string, string> = {};\n  const resetAction = createAction(\"reset-tracked-loading-state\");\n  function isPendingAction(action: UnknownAction): action is PendingAction {\n  return typeof action.type === \"string\" && action.type.endsWith(\"/pending\");\n  }\n  const reducer = createReducer(initialState, (builder) => {\n  builder\n    .addCase(resetAction, () => initialState)\n    // matcher can be defined outside as a type predicate function\n    .addMatcher(isPendingAction, (state, action) => {\n      state[action.meta.requestId] = \"pending\";\n    })\n    .addMatcher(\n      // matcher can be defined inline as a type predicate function\n      (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"rejected\";\n      }\n    )\n    // matcher can just return boolean and the matcher can receive a generic argument\n    .addMatcher<FulfilledAction>(\n      (action) => action.type.endsWith(\"/fulfilled\"),\n      (state, action) => {\n        state[action.meta.requestId] = \"fulfilled\";\n      }\n    );\n  });\n  ```\n   */\n  addMatcher<A>(matcher: TypeGuard<A> | ((action: any) => boolean), reducer: CaseReducer<State, A extends Action ? A : A & Action>): Omit<ActionReducerMapBuilder<State>, 'addCase'>;\n\n  /**\n   * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\n   * reducer was executed for this action.\n   * @param reducer - The fallback \"default case\" reducer function.\n   *\n   * @example\n  ```ts\n  import { createReducer } from '@reduxjs/toolkit'\n  const initialState = { otherActions: 0 }\n  const reducer = createReducer(initialState, builder => {\n  builder\n    // .addCase(...)\n    // .addMatcher(...)\n    .addDefaultCase((state, action) => {\n      state.otherActions++\n    })\n  })\n  ```\n   */\n  addDefaultCase(reducer: CaseReducer<State, Action>): {};\n}\nexport function executeReducerBuilderCallback<S>(builderCallback: (builder: ActionReducerMapBuilder<S>) => void): [CaseReducers<S, any>, ActionMatcherDescriptionCollection<S>, CaseReducer<S, Action> | undefined] {\n  const actionsMap: CaseReducers<S, any> = {};\n  const actionMatchers: ActionMatcherDescriptionCollection<S> = [];\n  let defaultCaseReducer: CaseReducer<S, Action> | undefined;\n  const builder = {\n    addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<S>) {\n      if (process.env.NODE_ENV !== 'production') {\n        /*\n         to keep the definition by the user in line with actual behavior,\n         we enforce `addCase` to always be called before calling `addMatcher`\n         as matching cases take precedence over matchers\n         */\n        if (actionMatchers.length > 0) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(26) : '`builder.addCase` should only be called before calling `builder.addMatcher`');\n        }\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(27) : '`builder.addCase` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n      if (!type) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(28) : '`builder.addCase` cannot be called with an empty action type');\n      }\n      if (type in actionsMap) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(29) : '`builder.addCase` cannot be called with two reducers for the same action type ' + `'${type}'`);\n      }\n      actionsMap[type] = reducer;\n      return builder;\n    },\n    addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<S, A extends Action ? A : A & Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(30) : '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`');\n        }\n      }\n      actionMatchers.push({\n        matcher,\n        reducer\n      });\n      return builder;\n    },\n    addDefaultCase(reducer: CaseReducer<S, Action>) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (defaultCaseReducer) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(31) : '`builder.addDefaultCase` can only be called once');\n        }\n      }\n      defaultCaseReducer = reducer;\n      return builder;\n    }\n  };\n  builderCallback(builder);\n  return [actionsMap, actionMatchers, defaultCaseReducer];\n}","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7, formatProdErrorMessage as _formatProdErrorMessage8 } from \"@reduxjs/toolkit\";\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { Selector } from 'reselect';\nimport type { InjectConfig } from './combineSlices';\nimport type { ActionCreatorWithoutPayload, PayloadAction, PayloadActionCreator, PrepareAction, _ActionCreatorWithPreparedPayload } from './createAction';\nimport { createAction } from './createAction';\nimport type { AsyncThunk, AsyncThunkConfig, AsyncThunkOptions, AsyncThunkPayloadCreator, OverrideThunkApiConfigs } from './createAsyncThunk';\nimport { createAsyncThunk as _createAsyncThunk } from './createAsyncThunk';\nimport type { ActionMatcherDescriptionCollection, CaseReducer, ReducerWithInitialState } from './createReducer';\nimport { createReducer } from './createReducer';\nimport type { ActionReducerMapBuilder, TypedActionCreator } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { Id, TypeGuard } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\nconst asyncThunkSymbol = /* @__PURE__ */Symbol.for('rtk-slice-createasyncthunk');\n// type is annotated because it's too long to infer\nexport const asyncThunkCreator: {\n  [asyncThunkSymbol]: typeof _createAsyncThunk;\n} = {\n  [asyncThunkSymbol]: _createAsyncThunk\n};\ntype InjectIntoConfig<NewReducerPath extends string> = InjectConfig & {\n  reducerPath?: NewReducerPath;\n};\n\n/**\n * The return value of `createSlice`\n *\n * @public\n */\nexport interface Slice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice name.\n   */\n  name: Name;\n\n  /**\n   *  The slice reducer path.\n   */\n  reducerPath: ReducerPath;\n\n  /**\n   * The slice's reducer.\n   */\n  reducer: Reducer<State>;\n\n  /**\n   * Action creators for the types of actions that are handled by the slice\n   * reducer.\n   */\n  actions: CaseReducerActions<CaseReducers, Name>;\n\n  /**\n   * The individual case reducer functions that were passed in the `reducers` parameter.\n   * This enables reuse and testing if they were defined inline when calling `createSlice`.\n   */\n  caseReducers: SliceDefinedCaseReducers<CaseReducers>;\n\n  /**\n   * Provides access to the initial state value given to the slice.\n   * If a lazy state initializer was provided, it will be called and a fresh value returned.\n   */\n  getInitialState: () => State;\n\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.reducerPath]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.reducerPath])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]: State }>>;\n\n  /**\n   * Inject slice into provided reducer (return value from `combineSlices`), and return injected slice.\n   */\n  injectInto<NewReducerPath extends string = ReducerPath>(this: this, injectable: {\n    inject: (slice: {\n      reducerPath: string;\n      reducer: Reducer;\n    }, config?: InjectConfig) => void;\n  }, config?: InjectIntoConfig<NewReducerPath>): InjectedSlice<State, CaseReducers, Name, NewReducerPath, Selectors>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Will throw an error if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]: State }): State;\n}\n\n/**\n * A slice after being called with `injectInto(reducer)`.\n *\n * Selectors can now be called with an `undefined` value, in which case they use the slice's initial state.\n */\ntype InjectedSlice<State = any, CaseReducers extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> = Omit<Slice<State, CaseReducers, Name, ReducerPath, Selectors>, 'getSelectors' | 'selectors'> & {\n  /**\n   * Get localised slice selectors (expects to be called with *just* the slice's state as the first parameter)\n   */\n  getSelectors(): Id<SliceDefinedSelectors<State, Selectors, State | undefined>>;\n\n  /**\n   * Get globalised slice selectors (`selectState` callback is expected to receive first parameter and return slice state)\n   */\n  getSelectors<RootState>(selectState: (rootState: RootState) => State | undefined): Id<SliceDefinedSelectors<State, Selectors, RootState>>;\n\n  /**\n   * Selectors that assume the slice's state is `rootState[slice.name]` (which is usually the case)\n   *\n   * Equivalent to `slice.getSelectors((state: RootState) => state[slice.name])`.\n   */\n  get selectors(): Id<SliceDefinedSelectors<State, Selectors, { [K in ReducerPath]?: State | undefined }>>;\n\n  /**\n   * Select the slice state, using the slice's current reducerPath.\n   *\n   * Returns initial state if slice is not found.\n   */\n  selectSlice(state: { [K in ReducerPath]?: State | undefined }): State;\n};\n\n/**\n * Options for `createSlice()`.\n *\n * @public\n */\nexport interface CreateSliceOptions<State = any, CR extends SliceCaseReducers<State> = SliceCaseReducers<State>, Name extends string = string, ReducerPath extends string = Name, Selectors extends SliceSelectors<State> = SliceSelectors<State>> {\n  /**\n   * The slice's name. Used to namespace the generated action types.\n   */\n  name: Name;\n\n  /**\n   * The slice's reducer path. Used when injecting into a combined slice reducer.\n   */\n  reducerPath?: ReducerPath;\n\n  /**\n   * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n   */\n  initialState: State | (() => State);\n\n  /**\n   * A mapping from action types to action-type-specific *case reducer*\n   * functions. For every action type, a matching action creator will be\n   * generated using `createAction()`.\n   */\n  reducers: ValidateSliceCaseReducers<State, CR> | ((creators: ReducerCreators<State>) => CR);\n\n  /**\n   * A callback that receives a *builder* object to define\n   * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n   *\n   *\n   * @example\n  ```ts\n  import { createAction, createSlice, Action } from '@reduxjs/toolkit'\n  const incrementBy = createAction<number>('incrementBy')\n  const decrement = createAction('decrement')\n  interface RejectedAction extends Action {\n  error: Error\n  }\n  function isRejectedAction(action: Action): action is RejectedAction {\n  return action.type.endsWith('rejected')\n  }\n  createSlice({\n  name: 'counter',\n  initialState: 0,\n  reducers: {},\n  extraReducers: builder => {\n    builder\n      .addCase(incrementBy, (state, action) => {\n        // action is inferred correctly here if using TS\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {})\n      // You can match a range of action types\n      .addMatcher(\n        isRejectedAction,\n        // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\n        (state, action) => {}\n      )\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {})\n    }\n  })\n  ```\n   */\n  extraReducers?: (builder: ActionReducerMapBuilder<State>) => void;\n\n  /**\n   * A map of selectors that receive the slice's state and any additional arguments, and return a result.\n   */\n  selectors?: Selectors;\n}\nexport enum ReducerType {\n  reducer = 'reducer',\n  reducerWithPrepare = 'reducerWithPrepare',\n  asyncThunk = 'asyncThunk',\n}\ntype ReducerDefinition<T extends ReducerType = ReducerType> = {\n  _reducerDefinitionType: T;\n};\nexport type CaseReducerDefinition<S = any, A extends Action = UnknownAction> = CaseReducer<S, A> & ReducerDefinition<ReducerType.reducer>;\n\n/**\n * A CaseReducer with a `prepare` method.\n *\n * @public\n */\nexport type CaseReducerWithPrepare<State, Action extends PayloadAction> = {\n  reducer: CaseReducer<State, Action>;\n  prepare: PrepareAction<Action['payload']>;\n};\nexport interface CaseReducerWithPrepareDefinition<State, Action extends PayloadAction> extends CaseReducerWithPrepare<State, Action>, ReducerDefinition<ReducerType.reducerWithPrepare> {}\ntype AsyncThunkSliceReducerConfig<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = {\n  pending?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['pending']>>;\n  rejected?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected']>>;\n  fulfilled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['fulfilled']>>;\n  settled?: CaseReducer<State, ReturnType<AsyncThunk<Returned, ThunkArg, ThunkApiConfig>['rejected' | 'fulfilled']>>;\n  options?: AsyncThunkOptions<ThunkArg, ThunkApiConfig>;\n};\ntype AsyncThunkSliceReducerDefinition<State, ThunkArg extends any, Returned = unknown, ThunkApiConfig extends AsyncThunkConfig = {}> = AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig> & ReducerDefinition<ReducerType.asyncThunk> & {\n  payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>;\n};\n\n/**\n * Providing these as part of the config would cause circular types, so we disallow passing them\n */\ntype PreventCircular<ThunkApiConfig> = { [K in keyof ThunkApiConfig]: K extends 'state' | 'dispatch' ? never : ThunkApiConfig[K] };\ninterface AsyncThunkCreator<State, CurriedThunkApiConfig extends PreventCircular<AsyncThunkConfig> = PreventCircular<AsyncThunkConfig>> {\n  <Returned, ThunkArg = void>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, CurriedThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, CurriedThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, CurriedThunkApiConfig>;\n  <Returned, ThunkArg, ThunkApiConfig extends PreventCircular<AsyncThunkConfig> = {}>(payloadCreator: AsyncThunkPayloadCreator<Returned, ThunkArg, ThunkApiConfig>, config?: AsyncThunkSliceReducerConfig<State, ThunkArg, Returned, ThunkApiConfig>): AsyncThunkSliceReducerDefinition<State, ThunkArg, Returned, ThunkApiConfig>;\n  withTypes<ThunkApiConfig extends PreventCircular<AsyncThunkConfig>>(): AsyncThunkCreator<State, OverrideThunkApiConfigs<CurriedThunkApiConfig, ThunkApiConfig>>;\n}\nexport interface ReducerCreators<State> {\n  reducer(caseReducer: CaseReducer<State, PayloadAction>): CaseReducerDefinition<State, PayloadAction>;\n  reducer<Payload>(caseReducer: CaseReducer<State, PayloadAction<Payload>>): CaseReducerDefinition<State, PayloadAction<Payload>>;\n  asyncThunk: AsyncThunkCreator<State>;\n  preparedReducer<Prepare extends PrepareAction<any>>(prepare: Prepare, reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>): {\n    _reducerDefinitionType: ReducerType.reducerWithPrepare;\n    prepare: Prepare;\n    reducer: CaseReducer<State, ReturnType<_ActionCreatorWithPreparedPayload<Prepare>>>;\n  };\n}\n\n/**\n * The type describing a slice's `reducers` option.\n *\n * @public\n */\nexport type SliceCaseReducers<State> = Record<string, ReducerDefinition> | Record<string, CaseReducer<State, PayloadAction<any>> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>>;\n\n/**\n * The type describing a slice's `selectors` option.\n */\nexport type SliceSelectors<State> = {\n  [K: string]: (sliceState: State, ...args: any[]) => any;\n};\ntype SliceActionType<SliceName extends string, ActionName extends keyof any> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string;\n\n/**\n * Derives the slice's `actions` property from the `reducers` options\n *\n * @public\n */\nexport type CaseReducerActions<CaseReducers extends SliceCaseReducers<any>, SliceName extends string> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends {\n  prepare: any;\n} ? ActionCreatorForCaseReducerWithPrepare<Definition, SliceActionType<SliceName, Type>> : Definition extends AsyncThunkSliceReducerDefinition<any, infer ThunkArg, infer Returned, infer ThunkApiConfig> ? AsyncThunk<Returned, ThunkArg, ThunkApiConfig> : Definition extends {\n  reducer: any;\n} ? ActionCreatorForCaseReducer<Definition['reducer'], SliceActionType<SliceName, Type>> : ActionCreatorForCaseReducer<Definition, SliceActionType<SliceName, Type>> : never };\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducerWithPrepare<CR extends {\n  prepare: any;\n}, Type extends string> = _ActionCreatorWithPreparedPayload<CR['prepare'], Type>;\n\n/**\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\n *\n * @internal\n */\ntype ActionCreatorForCaseReducer<CR, Type extends string> = CR extends (state: any, action: infer Action) => any ? Action extends {\n  payload: infer P;\n} ? PayloadActionCreator<P, Type> : ActionCreatorWithoutPayload<Type> : ActionCreatorWithoutPayload<Type>;\n\n/**\n * Extracts the CaseReducers out of a `reducers` object, even if they are\n * tested into a `CaseReducerWithPrepare`.\n *\n * @internal\n */\ntype SliceDefinedCaseReducers<CaseReducers extends SliceCaseReducers<any>> = { [Type in keyof CaseReducers]: CaseReducers[Type] extends infer Definition ? Definition extends AsyncThunkSliceReducerDefinition<any, any, any> ? Id<Pick<Required<Definition>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>> : Definition extends {\n  reducer: infer Reducer;\n} ? Reducer : Definition : never };\ntype RemappedSelector<S extends Selector, NewState> = S extends Selector<any, infer R, infer P> ? Selector<NewState, R, P> & {\n  unwrapped: S;\n} : never;\n\n/**\n * Extracts the final selector type from the `selectors` object.\n *\n * Removes the `string` index signature from the default value.\n */\ntype SliceDefinedSelectors<State, Selectors extends SliceSelectors<State>, RootState> = { [K in keyof Selectors as string extends K ? never : K]: RemappedSelector<Selectors[K], RootState> };\n\n/**\n * Used on a SliceCaseReducers object.\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\n * the `reducer` and the `prepare` function use the same type of `payload`.\n *\n * Might do additional such checks in the future.\n *\n * This type is only ever useful if you want to write your own wrapper around\n * `createSlice`. Please don't use it otherwise!\n *\n * @public\n */\nexport type ValidateSliceCaseReducers<S, ACR extends SliceCaseReducers<S>> = ACR & { [T in keyof ACR]: ACR[T] extends {\n  reducer(s: S, action?: infer A): any;\n} ? {\n  prepare(...a: never[]): Omit<A, 'type'>;\n} : {} };\nfunction getType(slice: string, actionKey: string): string {\n  return `${slice}/${actionKey}`;\n}\ninterface BuildCreateSliceConfig {\n  creators?: {\n    asyncThunk?: typeof asyncThunkCreator;\n  };\n}\nexport function buildCreateSlice({\n  creators\n}: BuildCreateSliceConfig = {}) {\n  const cAT = creators?.asyncThunk?.[asyncThunkSymbol];\n  return function createSlice<State, CaseReducers extends SliceCaseReducers<State>, Name extends string, Selectors extends SliceSelectors<State>, ReducerPath extends string = Name>(options: CreateSliceOptions<State, CaseReducers, Name, ReducerPath, Selectors>): Slice<State, CaseReducers, Name, ReducerPath, Selectors> {\n    const {\n      name,\n      reducerPath = name as unknown as ReducerPath\n    } = options;\n    if (!name) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(11) : '`name` is a required option for createSlice');\n    }\n    if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n      if (options.initialState === undefined) {\n        console.error('You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`');\n      }\n    }\n    const reducers = (typeof options.reducers === 'function' ? options.reducers(buildReducerCreators<State>()) : options.reducers) || {};\n    const reducerNames = Object.keys(reducers);\n    const context: ReducerHandlingContext<State> = {\n      sliceCaseReducersByName: {},\n      sliceCaseReducersByType: {},\n      actionCreators: {},\n      sliceMatchers: []\n    };\n    const contextMethods: ReducerHandlingContextMethods<State> = {\n      addCase(typeOrActionCreator: string | TypedActionCreator<any>, reducer: CaseReducer<State>) {\n        const type = typeof typeOrActionCreator === 'string' ? typeOrActionCreator : typeOrActionCreator.type;\n        if (!type) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(12) : '`context.addCase` cannot be called with an empty action type');\n        }\n        if (type in context.sliceCaseReducersByType) {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(13) : '`context.addCase` cannot be called with two reducers for the same action type: ' + type);\n        }\n        context.sliceCaseReducersByType[type] = reducer;\n        return contextMethods;\n      },\n      addMatcher(matcher, reducer) {\n        context.sliceMatchers.push({\n          matcher,\n          reducer\n        });\n        return contextMethods;\n      },\n      exposeAction(name, actionCreator) {\n        context.actionCreators[name] = actionCreator;\n        return contextMethods;\n      },\n      exposeCaseReducer(name, reducer) {\n        context.sliceCaseReducersByName[name] = reducer;\n        return contextMethods;\n      }\n    };\n    reducerNames.forEach(reducerName => {\n      const reducerDefinition = reducers[reducerName];\n      const reducerDetails: ReducerDetails = {\n        reducerName,\n        type: getType(name, reducerName),\n        createNotation: typeof options.reducers === 'function'\n      };\n      if (isAsyncThunkSliceReducerDefinition<State>(reducerDefinition)) {\n        handleThunkCaseReducerDefinition(reducerDetails, reducerDefinition, contextMethods, cAT);\n      } else {\n        handleNormalReducerDefinition<State>(reducerDetails, reducerDefinition as any, contextMethods);\n      }\n    });\n    function buildReducer() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof options.extraReducers === 'object') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(14) : \"The object notation for `createSlice.extraReducers` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\n        }\n      }\n      const [extraReducers = {}, actionMatchers = [], defaultCaseReducer = undefined] = typeof options.extraReducers === 'function' ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers];\n      const finalCaseReducers = {\n        ...extraReducers,\n        ...context.sliceCaseReducersByType\n      };\n      return createReducer(options.initialState, builder => {\n        for (let key in finalCaseReducers) {\n          builder.addCase(key, finalCaseReducers[key] as CaseReducer<any>);\n        }\n        for (let sM of context.sliceMatchers) {\n          builder.addMatcher(sM.matcher, sM.reducer);\n        }\n        for (let m of actionMatchers) {\n          builder.addMatcher(m.matcher, m.reducer);\n        }\n        if (defaultCaseReducer) {\n          builder.addDefaultCase(defaultCaseReducer);\n        }\n      });\n    }\n    const selectSelf = (state: State) => state;\n    const injectedSelectorCache = new Map<boolean, WeakMap<(rootState: any) => State | undefined, Record<string, (rootState: any) => any>>>();\n    let _reducer: ReducerWithInitialState<State>;\n    function reducer(state: State | undefined, action: UnknownAction) {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer(state, action);\n    }\n    function getInitialState() {\n      if (!_reducer) _reducer = buildReducer();\n      return _reducer.getInitialState();\n    }\n    function makeSelectorProps<CurrentReducerPath extends string = ReducerPath>(reducerPath: CurrentReducerPath, injected = false): Pick<Slice<State, CaseReducers, Name, CurrentReducerPath, Selectors>, 'getSelectors' | 'selectors' | 'selectSlice' | 'reducerPath'> {\n      function selectSlice(state: { [K in CurrentReducerPath]: State }) {\n        let sliceState = state[reducerPath];\n        if (typeof sliceState === 'undefined') {\n          if (injected) {\n            sliceState = getInitialState();\n          } else if (process.env.NODE_ENV !== 'production') {\n            throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(15) : 'selectSlice returned undefined for an uninjected slice reducer');\n          }\n        }\n        return sliceState;\n      }\n      function getSelectors(selectState: (rootState: any) => State = selectSelf) {\n        const selectorCache = getOrInsertComputed(injectedSelectorCache, injected, () => new WeakMap());\n        return getOrInsertComputed(selectorCache, selectState, () => {\n          const map: Record<string, Selector<any, any>> = {};\n          for (const [name, selector] of Object.entries(options.selectors ?? {})) {\n            map[name] = wrapSelector(selector, selectState, getInitialState, injected);\n          }\n          return map;\n        }) as any;\n      }\n      return {\n        reducerPath,\n        getSelectors,\n        get selectors() {\n          return getSelectors(selectSlice);\n        },\n        selectSlice\n      };\n    }\n    const slice: Slice<State, CaseReducers, Name, ReducerPath, Selectors> = {\n      name,\n      reducer,\n      actions: context.actionCreators as any,\n      caseReducers: context.sliceCaseReducersByName as any,\n      getInitialState,\n      ...makeSelectorProps(reducerPath),\n      injectInto(injectable, {\n        reducerPath: pathOpt,\n        ...config\n      } = {}) {\n        const newReducerPath = pathOpt ?? reducerPath;\n        injectable.inject({\n          reducerPath: newReducerPath,\n          reducer\n        }, config);\n        return {\n          ...slice,\n          ...makeSelectorProps(newReducerPath, true)\n        } as any;\n      }\n    };\n    return slice;\n  };\n}\nfunction wrapSelector<State, NewState, S extends Selector<State>>(selector: S, selectState: Selector<NewState, State>, getInitialState: () => State, injected?: boolean) {\n  function wrapper(rootState: NewState, ...args: any[]) {\n    let sliceState = selectState(rootState);\n    if (typeof sliceState === 'undefined') {\n      if (injected) {\n        sliceState = getInitialState();\n      } else if (process.env.NODE_ENV !== 'production') {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(16) : 'selectState returned undefined for an uninjected slice reducer');\n      }\n    }\n    return selector(sliceState, ...args);\n  }\n  wrapper.unwrapped = selector;\n  return wrapper as RemappedSelector<S, NewState>;\n}\n\n/**\n * A function that accepts an initial state, an object full of reducer\n * functions, and a \"slice name\", and automatically generates\n * action creators and action types that correspond to the\n * reducers and state.\n *\n * @public\n */\nexport const createSlice = /* @__PURE__ */buildCreateSlice();\ninterface ReducerHandlingContext<State> {\n  sliceCaseReducersByName: Record<string, CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>>;\n  sliceCaseReducersByType: Record<string, CaseReducer<State, any>>;\n  sliceMatchers: ActionMatcherDescriptionCollection<State>;\n  actionCreators: Record<string, Function>;\n}\ninterface ReducerHandlingContextMethods<State> {\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<ActionCreator extends TypedActionCreator<string>>(actionCreator: ActionCreator, reducer: CaseReducer<State, ReturnType<ActionCreator>>): ReducerHandlingContextMethods<State>;\n  /**\n   * Adds a case reducer to handle a single action type.\n   * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\n   * @param reducer - The actual case reducer function.\n   */\n  addCase<Type extends string, A extends Action<Type>>(type: Type, reducer: CaseReducer<State, A>): ReducerHandlingContextMethods<State>;\n\n  /**\n   * Allows you to match incoming actions against your own filter function instead of only the `action.type` property.\n   * @remarks\n   * If multiple matcher reducers match, all of them will be executed in the order\n   * they were defined in - even if a case reducer already matched.\n   * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\n   * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates)\n   *   function\n   * @param reducer - The actual case reducer function.\n   *\n   */\n  addMatcher<A>(matcher: TypeGuard<A>, reducer: CaseReducer<State, A extends Action ? A : A & Action>): ReducerHandlingContextMethods<State>;\n  /**\n   * Add an action to be exposed under the final `slice.actions` key.\n   * @param name The key to be exposed as.\n   * @param actionCreator The action to expose.\n   * @example\n   * context.exposeAction(\"addPost\", createAction<Post>(\"addPost\"));\n   *\n   * export const { addPost } = slice.actions\n   *\n   * dispatch(addPost(post))\n   */\n  exposeAction(name: string, actionCreator: Function): ReducerHandlingContextMethods<State>;\n  /**\n   * Add a case reducer to be exposed under the final `slice.caseReducers` key.\n   * @param name The key to be exposed as.\n   * @param reducer The reducer to expose.\n   * @example\n   * context.exposeCaseReducer(\"addPost\", (state, action: PayloadAction<Post>) => {\n   *   state.push(action.payload)\n   * })\n   *\n   * slice.caseReducers.addPost([], addPost(post))\n   */\n  exposeCaseReducer(name: string, reducer: CaseReducer<State, any> | Pick<AsyncThunkSliceReducerDefinition<State, any, any, any>, 'fulfilled' | 'rejected' | 'pending' | 'settled'>): ReducerHandlingContextMethods<State>;\n}\ninterface ReducerDetails {\n  /** The key the reducer was defined under */\n  reducerName: string;\n  /** The predefined action type, i.e. `${slice.name}/${reducerName}` */\n  type: string;\n  /** Whether create. notation was used when defining reducers */\n  createNotation: boolean;\n}\nfunction buildReducerCreators<State>(): ReducerCreators<State> {\n  function asyncThunk(payloadCreator: AsyncThunkPayloadCreator<any, any>, config: AsyncThunkSliceReducerConfig<State, any>): AsyncThunkSliceReducerDefinition<State, any> {\n    return {\n      _reducerDefinitionType: ReducerType.asyncThunk,\n      payloadCreator,\n      ...config\n    };\n  }\n  asyncThunk.withTypes = () => asyncThunk;\n  return {\n    reducer(caseReducer: CaseReducer<State, any>) {\n      return Object.assign({\n        // hack so the wrapping function has the same name as the original\n        // we need to create a wrapper so the `reducerDefinitionType` is not assigned to the original\n        [caseReducer.name](...args: Parameters<typeof caseReducer>) {\n          return caseReducer(...args);\n        }\n      }[caseReducer.name], {\n        _reducerDefinitionType: ReducerType.reducer\n      } as const);\n    },\n    preparedReducer(prepare, reducer) {\n      return {\n        _reducerDefinitionType: ReducerType.reducerWithPrepare,\n        prepare,\n        reducer\n      };\n    },\n    asyncThunk: asyncThunk as any\n  };\n}\nfunction handleNormalReducerDefinition<State>({\n  type,\n  reducerName,\n  createNotation\n}: ReducerDetails, maybeReducerWithPrepare: CaseReducer<State, {\n  payload: any;\n  type: string;\n}> | CaseReducerWithPrepare<State, PayloadAction<any, string, any, any>>, context: ReducerHandlingContextMethods<State>) {\n  let caseReducer: CaseReducer<State, any>;\n  let prepareCallback: PrepareAction<any> | undefined;\n  if ('reducer' in maybeReducerWithPrepare) {\n    if (createNotation && !isCaseReducerWithPrepareDefinition(maybeReducerWithPrepare)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(17) : 'Please use the `create.preparedReducer` notation for prepared action creators with the `create` notation.');\n    }\n    caseReducer = maybeReducerWithPrepare.reducer;\n    prepareCallback = maybeReducerWithPrepare.prepare;\n  } else {\n    caseReducer = maybeReducerWithPrepare;\n  }\n  context.addCase(type, caseReducer).exposeCaseReducer(reducerName, caseReducer).exposeAction(reducerName, prepareCallback ? createAction(type, prepareCallback) : createAction(type));\n}\nfunction isAsyncThunkSliceReducerDefinition<State>(reducerDefinition: any): reducerDefinition is AsyncThunkSliceReducerDefinition<State, any, any, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.asyncThunk;\n}\nfunction isCaseReducerWithPrepareDefinition<State>(reducerDefinition: any): reducerDefinition is CaseReducerWithPrepareDefinition<State, any> {\n  return reducerDefinition._reducerDefinitionType === ReducerType.reducerWithPrepare;\n}\nfunction handleThunkCaseReducerDefinition<State>({\n  type,\n  reducerName\n}: ReducerDetails, reducerDefinition: AsyncThunkSliceReducerDefinition<State, any, any, any>, context: ReducerHandlingContextMethods<State>, cAT: typeof _createAsyncThunk | undefined) {\n  if (!cAT) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage8(18) : 'Cannot use `create.asyncThunk` in the built-in `createSlice`. ' + 'Use `buildCreateSlice({ creators: { asyncThunk: asyncThunkCreator } })` to create a customised version of `createSlice`.');\n  }\n  const {\n    payloadCreator,\n    fulfilled,\n    pending,\n    rejected,\n    settled,\n    options\n  } = reducerDefinition;\n  const thunk = cAT(type, payloadCreator, options as any);\n  context.exposeAction(reducerName, thunk);\n  if (fulfilled) {\n    context.addCase(thunk.fulfilled, fulfilled);\n  }\n  if (pending) {\n    context.addCase(thunk.pending, pending);\n  }\n  if (rejected) {\n    context.addCase(thunk.rejected, rejected);\n  }\n  if (settled) {\n    context.addMatcher(thunk.settled, settled);\n  }\n  context.exposeCaseReducer(reducerName, {\n    fulfilled: fulfilled || noop,\n    pending: pending || noop,\n    rejected: rejected || noop,\n    settled: settled || noop\n  });\n}\nfunction noop() {}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"@reduxjs/toolkit\";\nimport type { Draft } from 'immer';\nimport { produce as createNextState, isDraft, isDraftable } from 'immer';\nimport type { Action, Reducer, UnknownAction } from 'redux';\nimport type { ActionReducerMapBuilder } from './mapBuilders';\nimport { executeReducerBuilderCallback } from './mapBuilders';\nimport type { NoInfer, TypeGuard } from './tsHelpers';\nimport { freezeDraftable } from './utils';\n\n/**\n * Defines a mapping from action types to corresponding action object shapes.\n *\n * @deprecated This should not be used manually - it is only used for internal\n *             inference purposes and should not have any further value.\n *             It might be removed in the future.\n * @public\n */\nexport type Actions<T extends keyof any = string> = Record<T, Action>;\nexport type ActionMatcherDescription<S, A extends Action> = {\n  matcher: TypeGuard<A>;\n  reducer: CaseReducer<S, NoInfer<A>>;\n};\nexport type ReadonlyActionMatcherDescriptionCollection<S> = ReadonlyArray<ActionMatcherDescription<S, any>>;\nexport type ActionMatcherDescriptionCollection<S> = Array<ActionMatcherDescription<S, any>>;\n\n/**\n * A *case reducer* is a reducer function for a specific action type. Case\n * reducers can be composed to full reducers using `createReducer()`.\n *\n * Unlike a normal Redux reducer, a case reducer is never called with an\n * `undefined` state to determine the initial state. Instead, the initial\n * state is explicitly specified as an argument to `createReducer()`.\n *\n * In addition, a case reducer can choose to mutate the passed-in `state`\n * value directly instead of returning a new state. This does not actually\n * cause the store state to be mutated directly; instead, thanks to\n * [immer](https://github.com/mweststrate/immer), the mutations are\n * translated to copy operations that result in a new state.\n *\n * @public\n */\nexport type CaseReducer<S = any, A extends Action = UnknownAction> = (state: Draft<S>, action: A) => NoInfer<S> | void | Draft<NoInfer<S>>;\n\n/**\n * A mapping from action types to case reducers for `createReducer()`.\n *\n * @deprecated This should not be used manually - it is only used\n *             for internal inference purposes and using it manually\n *             would lead to type erasure.\n *             It might be removed in the future.\n * @public\n */\nexport type CaseReducers<S, AS extends Actions> = { [T in keyof AS]: AS[T] extends Action ? CaseReducer<S, AS[T]> : void };\nexport type NotFunction<T> = T extends Function ? never : T;\nfunction isStateFunction<S>(x: unknown): x is () => S {\n  return typeof x === 'function';\n}\nexport type ReducerWithInitialState<S extends NotFunction<any>> = Reducer<S> & {\n  getInitialState: () => S;\n};\n\n/**\n * A utility function that allows defining a reducer as a mapping from action\n * type to *case reducer* functions that handle these action types. The\n * reducer's initial state is passed as the first argument.\n *\n * @remarks\n * The body of every case reducer is implicitly wrapped with a call to\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\n * This means that rather than returning a new state object, you can also\n * mutate the passed-in state object directly; these mutations will then be\n * automatically and efficiently translated into copies, giving you both\n * convenience and immutability.\n *\n * @overloadSummary\n * This function accepts a callback that receives a `builder` object as its argument.\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\n * called to define what actions this reducer will handle.\n *\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\n *   case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\n * @example\n```ts\nimport {\n  createAction,\n  createReducer,\n  UnknownAction,\n  PayloadAction,\n} from \"@reduxjs/toolkit\";\n\nconst increment = createAction<number>(\"increment\");\nconst decrement = createAction<number>(\"decrement\");\n\nfunction isActionWithNumberPayload(\n  action: UnknownAction\n): action is PayloadAction<number> {\n  return typeof action.payload === \"number\";\n}\n\nconst reducer = createReducer(\n  {\n    counter: 0,\n    sumOfNumberPayloads: 0,\n    unhandledActions: 0,\n  },\n  (builder) => {\n    builder\n      .addCase(increment, (state, action) => {\n        // action is inferred correctly here\n        state.counter += action.payload;\n      })\n      // You can chain calls, or have separate `builder.addCase()` lines each time\n      .addCase(decrement, (state, action) => {\n        state.counter -= action.payload;\n      })\n      // You can apply a \"matcher function\" to incoming actions\n      .addMatcher(isActionWithNumberPayload, (state, action) => {})\n      // and provide a default case if no other handlers matched\n      .addDefaultCase((state, action) => {});\n  }\n);\n```\n * @public\n */\nexport function createReducer<S extends NotFunction<any>>(initialState: S | (() => S), mapOrBuilderCallback: (builder: ActionReducerMapBuilder<S>) => void): ReducerWithInitialState<S> {\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof mapOrBuilderCallback === 'object') {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(8) : \"The object notation for `createReducer` has been removed. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\n    }\n  }\n  let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = executeReducerBuilderCallback(mapOrBuilderCallback);\n\n  // Ensure the initial state gets frozen either way (if draftable)\n  let getInitialState: () => S;\n  if (isStateFunction(initialState)) {\n    getInitialState = () => freezeDraftable(initialState());\n  } else {\n    const frozenInitialState = freezeDraftable(initialState);\n    getInitialState = () => frozenInitialState;\n  }\n  function reducer(state = getInitialState(), action: any): S {\n    let caseReducers = [actionsMap[action.type], ...finalActionMatchers.filter(({\n      matcher\n    }) => matcher(action)).map(({\n      reducer\n    }) => reducer)];\n    if (caseReducers.filter(cr => !!cr).length === 0) {\n      caseReducers = [finalDefaultCaseReducer];\n    }\n    return caseReducers.reduce((previousState, caseReducer): S => {\n      if (caseReducer) {\n        if (isDraft(previousState)) {\n          // If it's already a draft, we must already be inside a `createNextState` call,\n          // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\n          // inside an existing draft. It's safe to just pass the draft to the mutator.\n          const draft = previousState as Draft<S>; // We can assume this is already a draft\n          const result = caseReducer(draft, action);\n          if (result === undefined) {\n            return previousState;\n          }\n          return result as S;\n        } else if (!isDraftable(previousState)) {\n          // If state is not draftable (ex: a primitive, such as 0), we want to directly\n          // return the caseReducer func and not wrap it with produce.\n          const result = caseReducer(previousState as any, action);\n          if (result === undefined) {\n            if (previousState === null) {\n              return previousState;\n            }\n            throw Error('A case reducer on a non-draftable value must not return undefined');\n          }\n          return result as S;\n        } else {\n          // @ts-ignore createNextState() produces an Immutable<Draft<S>> rather\n          // than an Immutable<S>, and TypeScript cannot find out how to reconcile\n          // these two types.\n          return createNextState(previousState, (draft: Draft<S>) => {\n            return caseReducer(draft, action);\n          });\n        }\n      }\n      return previousState;\n    }, state);\n  }\n  reducer.getInitialState = getInitialState;\n  return reducer as ReducerWithInitialState<S>;\n}","import type { SerializedError } from '@reduxjs/toolkit';\nconst task = 'task';\nconst listener = 'listener';\nconst completed = 'completed';\nconst cancelled = 'cancelled';\n\n/* TaskAbortError error codes  */\nexport const taskCancelled = `task-${cancelled}` as const;\nexport const taskCompleted = `task-${completed}` as const;\nexport const listenerCancelled = `${listener}-${cancelled}` as const;\nexport const listenerCompleted = `${listener}-${completed}` as const;\nexport class TaskAbortError implements SerializedError {\n  name = 'TaskAbortError';\n  message: string;\n  constructor(public code: string | undefined) {\n    this.message = `${task} ${cancelled} (reason: ${code})`;\n  }\n}","import { TaskAbortError } from './exceptions';\nimport type { AbortSignalWithReason, TaskResult } from './types';\nimport { addAbortSignalListener, catchRejection, noop } from './utils';\n\n/**\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\n * @param signal\n * @param reason\n * @see {TaskAbortError}\n */\nexport const validateActive = (signal: AbortSignal): void => {\n  if (signal.aborted) {\n    const {\n      reason\n    } = signal as AbortSignalWithReason<string>;\n    throw new TaskAbortError(reason);\n  }\n};\n\n/**\n * Generates a race between the promise(s) and the AbortSignal\n * This avoids `Promise.race()`-related memory leaks:\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\n */\nexport function raceWithSignal<T>(signal: AbortSignalWithReason<string>, promise: Promise<T>): Promise<T> {\n  let cleanup = noop;\n  return new Promise<T>((resolve, reject) => {\n    const notifyRejection = () => reject(new TaskAbortError(signal.reason));\n    if (signal.aborted) {\n      notifyRejection();\n      return;\n    }\n    cleanup = addAbortSignalListener(signal, notifyRejection);\n    promise.finally(() => cleanup()).then(resolve, reject);\n  }).finally(() => {\n    // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\n    cleanup = noop;\n  });\n}\n\n/**\n * Runs a task and returns promise that resolves to {@link TaskResult}.\n * Second argument is an optional `cleanUp` function that always runs after task.\n *\n * **Note:** `runTask` runs the executor in the next microtask.\n * @returns\n */\nexport const runTask = async <T,>(task: () => Promise<T>, cleanUp?: () => void): Promise<TaskResult<T>> => {\n  try {\n    await Promise.resolve();\n    const value = await task();\n    return {\n      status: 'ok',\n      value\n    };\n  } catch (error: any) {\n    return {\n      status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\n      error\n    };\n  } finally {\n    cleanUp?.();\n  }\n};\n\n/**\n * Given an input `AbortSignal` and a promise returns another promise that resolves\n * as soon the input promise is provided or rejects as soon as\n * `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createPause = <T,>(signal: AbortSignal) => {\n  return (promise: Promise<T>): Promise<T> => {\n    return catchRejection(raceWithSignal(signal, promise).then(output => {\n      validateActive(signal);\n      return output;\n    }));\n  };\n};\n\n/**\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\n * @param signal\n * @returns\n */\nexport const createDelay = (signal: AbortSignal) => {\n  const pause = createPause<void>(signal);\n  return (timeoutMs: number): Promise<void> => {\n    return pause(new Promise<void>(resolve => setTimeout(resolve, timeoutMs)));\n  };\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3 } from \"@reduxjs/toolkit\";\nimport type { Action, Dispatch, MiddlewareAPI, UnknownAction } from 'redux';\nimport { isAction } from 'redux';\nimport type { ThunkDispatch } from 'redux-thunk';\nimport { createAction } from '../createAction';\nimport { nanoid } from '../nanoid';\nimport { TaskAbortError, listenerCancelled, listenerCompleted, taskCancelled, taskCompleted } from './exceptions';\nimport { createDelay, createPause, raceWithSignal, runTask, validateActive } from './task';\nimport type { AbortSignalWithReason, AddListenerOverloads, AnyListenerPredicate, CreateListenerMiddlewareOptions, FallbackAddListenerOptions, ForkOptions, ForkedTask, ForkedTaskExecutor, ListenerEntry, ListenerErrorHandler, ListenerErrorInfo, ListenerMiddleware, ListenerMiddlewareInstance, TakePattern, TaskResult, TypedAddListener, TypedCreateListenerEntry, TypedRemoveListener, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\nimport { abortControllerWithReason, addAbortSignalListener, assertFunction, catchRejection, noop } from './utils';\nexport { TaskAbortError } from './exceptions';\nexport type { AsyncTaskExecutor, CreateListenerMiddlewareOptions, ForkedTask, ForkedTaskAPI, ForkedTaskExecutor, ListenerEffect, ListenerEffectAPI, ListenerErrorHandler, ListenerMiddleware, ListenerMiddlewareInstance, SyncTaskExecutor, TaskCancelled, TaskRejected, TaskResolved, TaskResult, TypedAddListener, TypedRemoveListener, TypedStartListening, TypedStopListening, UnsubscribeListener, UnsubscribeListenerOptions } from './types';\n\n//Overly-aggressive byte-shaving\nconst {\n  assign\n} = Object;\n/**\n * @internal\n */\nconst INTERNAL_NIL_TOKEN = {} as const;\nconst alm = 'listenerMiddleware' as const;\nconst createFork = (parentAbortSignal: AbortSignalWithReason<unknown>, parentBlockingPromises: Promise<any>[]) => {\n  const linkControllers = (controller: AbortController) => addAbortSignalListener(parentAbortSignal, () => abortControllerWithReason(controller, parentAbortSignal.reason));\n  return <T,>(taskExecutor: ForkedTaskExecutor<T>, opts?: ForkOptions): ForkedTask<T> => {\n    assertFunction(taskExecutor, 'taskExecutor');\n    const childAbortController = new AbortController();\n    linkControllers(childAbortController);\n    const result = runTask<T>(async (): Promise<T> => {\n      validateActive(parentAbortSignal);\n      validateActive(childAbortController.signal);\n      const result = (await taskExecutor({\n        pause: createPause(childAbortController.signal),\n        delay: createDelay(childAbortController.signal),\n        signal: childAbortController.signal\n      })) as T;\n      validateActive(childAbortController.signal);\n      return result;\n    }, () => abortControllerWithReason(childAbortController, taskCompleted));\n    if (opts?.autoJoin) {\n      parentBlockingPromises.push(result.catch(noop));\n    }\n    return {\n      result: createPause<TaskResult<T>>(parentAbortSignal)(result),\n      cancel() {\n        abortControllerWithReason(childAbortController, taskCancelled);\n      }\n    };\n  };\n};\nconst createTakePattern = <S,>(startListening: AddListenerOverloads<UnsubscribeListener, S, Dispatch>, signal: AbortSignal): TakePattern<S> => {\n  /**\n   * A function that takes a ListenerPredicate and an optional timeout,\n   * and resolves when either the predicate returns `true` based on an action\n   * state combination or when the timeout expires.\n   * If the parent listener is canceled while waiting, this will throw a\n   * TaskAbortError.\n   */\n  const take = async <P extends AnyListenerPredicate<S>,>(predicate: P, timeout: number | undefined) => {\n    validateActive(signal);\n\n    // Placeholder unsubscribe function until the listener is added\n    let unsubscribe: UnsubscribeListener = () => {};\n    const tuplePromise = new Promise<[Action, S, S]>((resolve, reject) => {\n      // Inside the Promise, we synchronously add the listener.\n      let stopListening = startListening({\n        predicate: predicate as any,\n        effect: (action, listenerApi): void => {\n          // One-shot listener that cleans up as soon as the predicate passes\n          listenerApi.unsubscribe();\n          // Resolve the promise with the same arguments the predicate saw\n          resolve([action, listenerApi.getState(), listenerApi.getOriginalState()]);\n        }\n      });\n      unsubscribe = () => {\n        stopListening();\n        reject();\n      };\n    });\n    const promises: (Promise<null> | Promise<[Action, S, S]>)[] = [tuplePromise];\n    if (timeout != null) {\n      promises.push(new Promise<null>(resolve => setTimeout(resolve, timeout, null)));\n    }\n    try {\n      const output = await raceWithSignal(signal, Promise.race(promises));\n      validateActive(signal);\n      return output;\n    } finally {\n      // Always clean up the listener\n      unsubscribe();\n    }\n  };\n  return ((predicate: AnyListenerPredicate<S>, timeout: number | undefined) => catchRejection(take(predicate, timeout))) as TakePattern<S>;\n};\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\n  let {\n    type,\n    actionCreator,\n    matcher,\n    predicate,\n    effect\n  } = options;\n  if (type) {\n    predicate = createAction(type).match;\n  } else if (actionCreator) {\n    type = actionCreator!.type;\n    predicate = actionCreator.match;\n  } else if (matcher) {\n    predicate = matcher;\n  } else if (predicate) {\n    // pass\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(21) : 'Creating or removing a listener requires one of the known fields for matching an action');\n  }\n  assertFunction(effect, 'options.listener');\n  return {\n    predicate,\n    type,\n    effect\n  };\n};\n\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\nexport const createListenerEntry: TypedCreateListenerEntry<unknown> = /* @__PURE__ */assign((options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    predicate,\n    effect\n  } = getListenerEntryPropsFrom(options);\n  const entry: ListenerEntry<unknown> = {\n    id: nanoid(),\n    effect,\n    type,\n    predicate,\n    pending: new Set<AbortController>(),\n    unsubscribe: () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(22) : 'Unsubscribe not initialized');\n    }\n  };\n  return entry;\n}, {\n  withTypes: () => createListenerEntry\n}) as unknown as TypedCreateListenerEntry<unknown>;\nconst findListenerEntry = (listenerMap: Map<string, ListenerEntry>, options: FallbackAddListenerOptions) => {\n  const {\n    type,\n    effect,\n    predicate\n  } = getListenerEntryPropsFrom(options);\n  return Array.from(listenerMap.values()).find(entry => {\n    const matchPredicateOrType = typeof type === 'string' ? entry.type === type : entry.predicate === predicate;\n    return matchPredicateOrType && entry.effect === effect;\n  });\n};\nconst cancelActiveListeners = (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>) => {\n  entry.pending.forEach(controller => {\n    abortControllerWithReason(controller, listenerCancelled);\n  });\n};\nconst createClearListenerMiddleware = (listenerMap: Map<string, ListenerEntry>) => {\n  return () => {\n    listenerMap.forEach(cancelActiveListeners);\n    listenerMap.clear();\n  };\n};\n\n/**\n * Safely reports errors to the `errorHandler` provided.\n * Errors that occur inside `errorHandler` are notified in a new task.\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\n * @param errorHandler\n * @param errorToNotify\n */\nconst safelyNotifyError = (errorHandler: ListenerErrorHandler, errorToNotify: unknown, errorInfo: ListenerErrorInfo): void => {\n  try {\n    errorHandler(errorToNotify, errorInfo);\n  } catch (errorHandlerError) {\n    // We cannot let an error raised here block the listener queue.\n    // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\n    setTimeout(() => {\n      throw errorHandlerError;\n    }, 0);\n  }\n};\n\n/**\n * @public\n */\nexport const addListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/add`), {\n  withTypes: () => addListener\n}) as unknown as TypedAddListener<unknown>;\n\n/**\n * @public\n */\nexport const clearAllListeners = /* @__PURE__ */createAction(`${alm}/removeAll`);\n\n/**\n * @public\n */\nexport const removeListener = /* @__PURE__ */assign(/* @__PURE__ */createAction(`${alm}/remove`), {\n  withTypes: () => removeListener\n}) as unknown as TypedRemoveListener<unknown>;\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\n  console.error(`${alm}/error`, ...args);\n};\n\n/**\n * @public\n */\nexport const createListenerMiddleware = <StateType = unknown, DispatchType extends Dispatch<Action> = ThunkDispatch<StateType, unknown, UnknownAction>, ExtraArgument = unknown>(middlewareOptions: CreateListenerMiddlewareOptions<ExtraArgument> = {}) => {\n  const listenerMap = new Map<string, ListenerEntry>();\n  const {\n    extra,\n    onError = defaultErrorHandler\n  } = middlewareOptions;\n  assertFunction(onError, 'onError');\n  const insertEntry = (entry: ListenerEntry) => {\n    entry.unsubscribe = () => listenerMap.delete(entry.id);\n    listenerMap.set(entry.id, entry);\n    return (cancelOptions?: UnsubscribeListenerOptions) => {\n      entry.unsubscribe();\n      if (cancelOptions?.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    };\n  };\n  const startListening = ((options: FallbackAddListenerOptions) => {\n    const entry = findListenerEntry(listenerMap, options) ?? createListenerEntry(options as any);\n    return insertEntry(entry);\n  }) as AddListenerOverloads<any>;\n  assign(startListening, {\n    withTypes: () => startListening\n  });\n  const stopListening = (options: FallbackAddListenerOptions & UnsubscribeListenerOptions): boolean => {\n    const entry = findListenerEntry(listenerMap, options);\n    if (entry) {\n      entry.unsubscribe();\n      if (options.cancelActive) {\n        cancelActiveListeners(entry);\n      }\n    }\n    return !!entry;\n  };\n  assign(stopListening, {\n    withTypes: () => stopListening\n  });\n  const notifyListener = async (entry: ListenerEntry<unknown, Dispatch<UnknownAction>>, action: unknown, api: MiddlewareAPI, getOriginalState: () => StateType) => {\n    const internalTaskController = new AbortController();\n    const take = createTakePattern(startListening as AddListenerOverloads<any>, internalTaskController.signal);\n    const autoJoinPromises: Promise<any>[] = [];\n    try {\n      entry.pending.add(internalTaskController);\n      await Promise.resolve(entry.effect(action,\n      // Use assign() rather than ... to avoid extra helper functions added to bundle\n      assign({}, api, {\n        getOriginalState,\n        condition: (predicate: AnyListenerPredicate<any>, timeout?: number) => take(predicate, timeout).then(Boolean),\n        take,\n        delay: createDelay(internalTaskController.signal),\n        pause: createPause<any>(internalTaskController.signal),\n        extra,\n        signal: internalTaskController.signal,\n        fork: createFork(internalTaskController.signal, autoJoinPromises),\n        unsubscribe: entry.unsubscribe,\n        subscribe: () => {\n          listenerMap.set(entry.id, entry);\n        },\n        cancelActiveListeners: () => {\n          entry.pending.forEach((controller, _, set) => {\n            if (controller !== internalTaskController) {\n              abortControllerWithReason(controller, listenerCancelled);\n              set.delete(controller);\n            }\n          });\n        },\n        cancel: () => {\n          abortControllerWithReason(internalTaskController, listenerCancelled);\n          entry.pending.delete(internalTaskController);\n        },\n        throwIfCancelled: () => {\n          validateActive(internalTaskController.signal);\n        }\n      })));\n    } catch (listenerError) {\n      if (!(listenerError instanceof TaskAbortError)) {\n        safelyNotifyError(onError, listenerError, {\n          raisedBy: 'effect'\n        });\n      }\n    } finally {\n      await Promise.all(autoJoinPromises);\n      abortControllerWithReason(internalTaskController, listenerCompleted); // Notify that the task has completed\n      entry.pending.delete(internalTaskController);\n    }\n  };\n  const clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\n  const middleware: ListenerMiddleware<StateType, DispatchType, ExtraArgument> = api => next => action => {\n    if (!isAction(action)) {\n      // we only want to notify listeners for action objects\n      return next(action);\n    }\n    if (addListener.match(action)) {\n      return startListening(action.payload as any);\n    }\n    if (clearAllListeners.match(action)) {\n      clearListenerMiddleware();\n      return;\n    }\n    if (removeListener.match(action)) {\n      return stopListening(action.payload);\n    }\n\n    // Need to get this state _before_ the reducer processes the action\n    let originalState: StateType | typeof INTERNAL_NIL_TOKEN = api.getState();\n\n    // `getOriginalState` can only be called synchronously.\n    // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\n    const getOriginalState = (): StateType => {\n      if (originalState === INTERNAL_NIL_TOKEN) {\n        throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(23) : `${alm}: getOriginalState can only be called synchronously`);\n      }\n      return originalState as StateType;\n    };\n    let result: unknown;\n    try {\n      // Actually forward the action to the reducer before we handle listeners\n      result = next(action);\n      if (listenerMap.size > 0) {\n        const currentState = api.getState();\n        // Work around ESBuild+TS transpilation issue\n        const listenerEntries = Array.from(listenerMap.values());\n        for (const entry of listenerEntries) {\n          let runListener = false;\n          try {\n            runListener = entry.predicate(action, currentState, originalState);\n          } catch (predicateError) {\n            runListener = false;\n            safelyNotifyError(onError, predicateError, {\n              raisedBy: 'predicate'\n            });\n          }\n          if (!runListener) {\n            continue;\n          }\n          notifyListener(entry, action, api, getOriginalState);\n        }\n      }\n    } finally {\n      // Remove `originalState` store from this scope.\n      originalState = INTERNAL_NIL_TOKEN;\n    }\n    return result;\n  };\n  return {\n    middleware,\n    startListening,\n    stopListening,\n    clearListeners: clearListenerMiddleware\n  } as ListenerMiddlewareInstance<StateType, DispatchType, ExtraArgument>;\n};","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2 } from \"@reduxjs/toolkit\";\nimport type { Reducer, StateFromReducersMapObject, UnknownAction } from 'redux';\nimport { combineReducers } from 'redux';\nimport { nanoid } from './nanoid';\nimport type { Id, NonUndefined, Tail, UnionToIntersection, WithOptionalProp } from './tsHelpers';\nimport { getOrInsertComputed } from './utils';\ntype SliceLike<ReducerPath extends string, State> = {\n  reducerPath: ReducerPath;\n  reducer: Reducer<State>;\n};\ntype AnySliceLike = SliceLike<string, any>;\ntype SliceLikeReducerPath<A extends AnySliceLike> = A extends SliceLike<infer ReducerPath, any> ? ReducerPath : never;\ntype SliceLikeState<A extends AnySliceLike> = A extends SliceLike<any, infer State> ? State : never;\nexport type WithSlice<A extends AnySliceLike> = { [Path in SliceLikeReducerPath<A>]: SliceLikeState<A> };\ntype ReducerMap = Record<string, Reducer>;\ntype ExistingSliceLike<DeclaredState> = { [ReducerPath in keyof DeclaredState]: SliceLike<ReducerPath & string, NonUndefined<DeclaredState[ReducerPath]>> }[keyof DeclaredState];\nexport type InjectConfig = {\n  /**\n   * Allow replacing reducer with a different reference. Normally, an error will be thrown if a different reducer instance to the one already injected is used.\n   */\n  overrideExisting?: boolean;\n};\n\n/**\n * A reducer that allows for slices/reducers to be injected after initialisation.\n */\nexport interface CombinedSliceReducer<InitialState, DeclaredState = InitialState> extends Reducer<DeclaredState, UnknownAction, Partial<DeclaredState>> {\n  /**\n   * Provide a type for slices that will be injected lazily.\n   *\n   * One way to do this would be with interface merging:\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {}\n   *\n   * export const rootReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * // elsewhere\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBoolean = rootReducer.inject(booleanSlice);\n   *\n   * // elsewhere again\n   *\n   * declare module './reducer' {\n   *   export interface LazyLoadedSlices {\n   *     customName: CustomState\n   *   }\n   * }\n   *\n   * const withCustom = rootReducer.inject({ reducerPath: \"customName\", reducer: customSlice.reducer })\n   * ```\n   */\n  withLazyLoadedSlices<Lazy = {}>(): CombinedSliceReducer<InitialState, Id<DeclaredState & Partial<Lazy>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<Sl extends Id<ExistingSliceLike<DeclaredState>>>(slice: Sl, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<Sl>>>;\n\n  /**\n   * Inject a slice.\n   *\n   * Accepts an individual slice, RTKQ API instance, or a \"slice-like\" { reducerPath, reducer } object.\n   *\n   * ```ts\n   * rootReducer.inject(booleanSlice)\n   * rootReducer.inject(baseApi)\n   * rootReducer.inject({ reducerPath: 'boolean' as const, reducer: newReducer }, { overrideExisting: true })\n   * ```\n   *\n   */\n  inject<ReducerPath extends string, State>(slice: SliceLike<ReducerPath, State & (ReducerPath extends keyof DeclaredState ? never : State)>, config?: InjectConfig): CombinedSliceReducer<InitialState, Id<DeclaredState & WithSlice<SliceLike<ReducerPath, State>>>>;\n\n  /**\n   * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n   *\n   * ```ts\n   * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n   * //                                                                ^? boolean | undefined\n   *\n   * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n   *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n   *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n   *   return state.boolean;\n   *   //           ^? boolean\n   * })\n   * ```\n   *\n   * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n   *\n   * ```ts\n   *\n   * export interface LazyLoadedSlices {};\n   *\n   * export const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n   *\n   * export const rootReducer = combineSlices({ inner: innerReducer });\n   *\n   * export type RootState = ReturnType<typeof rootReducer>;\n   *\n   * // elsewhere\n   *\n   * declare module \"./reducer.ts\" {\n   *  export interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n   * }\n   *\n   * const withBool = innerReducer.inject(booleanSlice);\n   *\n   * const selectBoolean = withBool.selector(\n   *   (state) => state.boolean,\n   *   (rootState: RootState) => state.inner\n   * );\n   * //    now expects to be passed RootState instead of innerReducer state\n   *\n   * ```\n   *\n   * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n   *\n   * ```ts\n   * const injectedReducer = rootReducer.inject(booleanSlice);\n   * const selectBoolean = injectedReducer.selector((state) => {\n   *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n   *   return state.boolean\n   * })\n   * ```\n   */\n  selector: {\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown>(selectorFn: Selector): (state: WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n\n    /**\n     * Create a selector that guarantees that the slices injected will have a defined value when selector is run.\n     *\n     * ```ts\n     * const selectBooleanWithoutInjection = (state: RootState) => state.boolean;\n     * //                                                                ^? boolean | undefined\n     *\n     * const selectBoolean = rootReducer.inject(booleanSlice).selector((state) => {\n     *   // if action hasn't been dispatched since slice was injected, this would usually be undefined\n     *   // however selector() uses a Proxy around the first parameter to ensure that it evaluates to the initial state instead, if undefined\n     *   return state.boolean;\n     *   //           ^? boolean\n     * })\n     * ```\n     *\n     * If the reducer is nested inside the root state, a selectState callback can be passed to retrieve the reducer's state.\n     *\n     * ```ts\n     *\n     * interface LazyLoadedSlices {};\n     *\n     * const innerReducer = combineSlices(stringSlice).withLazyLoadedSlices<LazyLoadedSlices>();\n     *\n     * const rootReducer = combineSlices({ inner: innerReducer });\n     *\n     * type RootState = ReturnType<typeof rootReducer>;\n     *\n     * // elsewhere\n     *\n     * declare module \"./reducer.ts\" {\n     *  interface LazyLoadedSlices extends WithSlice<typeof booleanSlice> {}\n     * }\n     *\n     * const withBool = innerReducer.inject(booleanSlice);\n     *\n     * const selectBoolean = withBool.selector(\n     *   (state) => state.boolean,\n     *   (rootState: RootState) => state.inner\n     * );\n     * //    now expects to be passed RootState instead of innerReducer state\n     *\n     * ```\n     *\n     * Value passed to selectorFn will be a Proxy - use selector.original(proxy) to get original state value (useful for debugging)\n     *\n     * ```ts\n     * const injectedReducer = rootReducer.inject(booleanSlice);\n     * const selectBoolean = injectedReducer.selector((state) => {\n     *   console.log(injectedReducer.selector.original(state).boolean) // possibly undefined\n     *   return state.boolean\n     * })\n     * ```\n     */\n    <Selector extends (state: DeclaredState, ...args: any[]) => unknown, RootState>(selectorFn: Selector, selectState: (rootState: RootState, ...args: Tail<Parameters<Selector>>) => WithOptionalProp<Parameters<Selector>[0], Exclude<keyof DeclaredState, keyof InitialState>>): (state: RootState, ...args: Tail<Parameters<Selector>>) => ReturnType<Selector>;\n    /**\n     * Returns the unproxied state. Useful for debugging.\n     * @param state state Proxy, that ensures injected reducers have value\n     * @returns original, unproxied state\n     * @throws if value passed is not a state Proxy\n     */\n    original: (state: DeclaredState) => InitialState & Partial<DeclaredState>;\n  };\n}\ntype InitialState<Slices extends Array<AnySliceLike | ReducerMap>> = UnionToIntersection<Slices[number] extends infer Slice ? Slice extends AnySliceLike ? WithSlice<Slice> : StateFromReducersMapObject<Slice> : never>;\nconst isSliceLike = (maybeSliceLike: AnySliceLike | ReducerMap): maybeSliceLike is AnySliceLike => 'reducerPath' in maybeSliceLike && typeof maybeSliceLike.reducerPath === 'string';\nconst getReducers = (slices: Array<AnySliceLike | ReducerMap>) => slices.flatMap(sliceOrMap => isSliceLike(sliceOrMap) ? [[sliceOrMap.reducerPath, sliceOrMap.reducer] as const] : Object.entries(sliceOrMap));\nconst ORIGINAL_STATE = Symbol.for('rtk-state-proxy-original');\nconst isStateProxy = (value: any) => !!value && !!value[ORIGINAL_STATE];\nconst stateProxyMap = new WeakMap<object, object>();\nconst createStateProxy = <State extends object,>(state: State, reducerMap: Partial<Record<string, Reducer>>) => getOrInsertComputed(stateProxyMap, state, () => new Proxy(state, {\n  get: (target, prop, receiver) => {\n    if (prop === ORIGINAL_STATE) return target;\n    const result = Reflect.get(target, prop, receiver);\n    if (typeof result === 'undefined') {\n      const reducer = reducerMap[prop.toString()];\n      if (reducer) {\n        // ensure action type is random, to prevent reducer treating it differently\n        const reducerResult = reducer(undefined, {\n          type: nanoid()\n        });\n        if (typeof reducerResult === 'undefined') {\n          throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(24) : `The slice reducer for key \"${prop.toString()}\" returned undefined when called for selector(). ` + `If the state passed to the reducer is undefined, you must ` + `explicitly return the initial state. The initial state may ` + `not be undefined. If you don't want to set a value for this reducer, ` + `you can use null instead of undefined.`);\n        }\n        return reducerResult;\n      }\n    }\n    return result;\n  }\n})) as State;\nconst original = (state: any) => {\n  if (!isStateProxy(state)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(25) : 'original must be used on state Proxy');\n  }\n  return state[ORIGINAL_STATE];\n};\nconst noopReducer: Reducer<Record<string, any>> = (state = {}) => state;\nexport function combineSlices<Slices extends Array<AnySliceLike | ReducerMap>>(...slices: Slices): CombinedSliceReducer<Id<InitialState<Slices>>> {\n  const reducerMap = Object.fromEntries<Reducer>(getReducers(slices));\n  const getReducer = () => Object.keys(reducerMap).length ? combineReducers(reducerMap) : noopReducer;\n  let reducer = getReducer();\n  function combinedReducer(state: Record<string, unknown>, action: UnknownAction) {\n    return reducer(state, action);\n  }\n  combinedReducer.withLazyLoadedSlices = () => combinedReducer;\n  const inject = (slice: AnySliceLike, config: InjectConfig = {}): typeof combinedReducer => {\n    const {\n      reducerPath,\n      reducer: reducerToInject\n    } = slice;\n    const currentReducer = reducerMap[reducerPath];\n    if (!config.overrideExisting && currentReducer && currentReducer !== reducerToInject) {\n      if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development') {\n        console.error(`called \\`inject\\` to override already-existing reducer ${reducerPath} without specifying \\`overrideExisting: true\\``);\n      }\n      return combinedReducer;\n    }\n    reducerMap[reducerPath] = reducerToInject;\n    reducer = getReducer();\n    return combinedReducer;\n  };\n  const selector = Object.assign(function makeSelector<State extends object, RootState, Args extends any[]>(selectorFn: (state: State, ...args: Args) => any, selectState?: (rootState: RootState, ...args: Args) => State) {\n    return function selector(state: State, ...args: Args) {\n      return selectorFn(createStateProxy(selectState ? selectState(state as any, ...args) : state, reducerMap), ...args);\n    };\n  }, {\n    original\n  });\n  return Object.assign(combinedReducer, {\n    inject,\n    selector\n  }) as any;\n}","/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nexport function formatProdErrorMessage(code: number) {\n  return `Minified Redux Toolkit error #${code}; visit https://redux-toolkit.js.org/Errors?code=${code} for the full message or ` + 'use the non-minified dev environment for full errors. ';\n}","import { createSlice } from \"@reduxjs/toolkit\";\n\nconst initialState = {\n  id: null,\n  userEmail: null,\n  isVerified: false,\n  token:null,\n  role:null\n};\n\nconst userSlice = createSlice({\n  name: \"user\",\n  initialState,\n  reducers: {\n    setUser(state, action) {\n      state.id = action.payload.id;\n      state.userEmail = action.payload.userEmail;\n      state.token = action.payload.token;\n      state.role=Number(action.payload.role);\n      localStorage.setItem(\"user\", JSON.stringify(state));\n    },\n    setVerified(state, action) {\n      state.isVerified = action.payload.isVerified;\n    },\n    clearUser(state) {\n      state.id = null;\n      state.userEmail = null;\n      state.isVerified = false;\n      state.role=null;\n      localStorage.removeItem(\"user\");\n\n    },\n  },\n});\n\nexport const { setUser, setVerified, clearUser } = userSlice.actions;\nexport default userSlice.reducer;\n","const baseUrl=`https://ukezhavamatrimony.com`;\nexport default baseUrl;\n    ","import React from \"react\";\nimport \"./loader.css\";\n\nconst Loadertext = () => {\n  return (\n    <div>\n      <svg\n        class=\"pl\"\n        viewBox=\"0 0 200 200\"\n        width=\"200\"\n        height=\"200\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <defs>\n          <linearGradient id=\"pl-grad1\" x1=\"1\" y1=\"0.5\" x2=\"0\" y2=\"0.5\">\n            <stop offset=\"0%\" stop-color=\"hsl(50, 100%, 55%)\" />\n            <stop offset=\"100%\" stop-color=\"hsl(40, 100%, 50%)\" />\n          </linearGradient>\n          <linearGradient id=\"pl-grad2\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n            <stop offset=\"0%\" stop-color=\"hsl(50, 100%, 55%)\" />\n            <stop offset=\"100%\" stop-color=\"hsl(40, 100%, 50%)\" />\n          </linearGradient>\n        </defs>\n        <circle\n          class=\"pl__ring\"\n          cx=\"100\"\n          cy=\"100\"\n          r=\"82\"\n          fill=\"none\"\n          stroke=\"url(#pl-grad1)\"\n          stroke-width=\"36\"\n          stroke-dasharray=\"0 257 1 257\"\n          stroke-dashoffset=\"0.01\"\n          stroke-linecap=\"round\"\n          transform=\"rotate(-90,100,100)\"\n        />\n        <line\n          class=\"pl__ball\"\n          stroke=\"url(#pl-grad2)\"\n          x1=\"100\"\n          y1=\"18\"\n          x2=\"100.01\"\n          y2=\"182\"\n          stroke-width=\"36\"\n          stroke-dasharray=\"1 165\"\n          stroke-linecap=\"round\"\n        />\n      </svg>\n    </div>\n  );\n};\n\nexport default Loadertext;\n","// extracted by mini-css-extract-plugin\nexport default {\"outerMain\":\"footerFront_outerMain__ulQ+P\",\"text\":\"footerFront_text__jRMey\",\"subText\":\"footerFront_subText__hBt+G\"};","import React from 'react';\nimport styles from './footerFront.module.css';\nimport { Link } from 'react-router-dom';\n\nfunction FooterFront() {\n  return (\n    <div className={styles.outerMain}>\n      <p className={styles.text}>© Copyrights owned by UK EZHAVA MATRIMONY</p>\n      <Link className={styles.subText} to=\"https://scipytechnologies.com\" target=\"_blank\" rel=\"noopener noreferrer\">\n        Developed by Scipy Technologies\n      </Link>    </div>\n  );\n}\n\nexport default FooterFront;\n","import React, { useState } from \"react\";\nimport \"../LoginPage/loginpage.css\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useDispatch } from \"react-redux\";\nimport { setUser } from \"../../features/slice\";\nimport baseUrl from \"../../baseUrl\";\nimport Loader from \"../../component/Loader/Loadertext\"\nimport toastNotification from '../../assets/ToastAudio.mp3';\nimport FooterFront from \"../../component/FooterFront/FooterFront\";\n\nfunction LoginPage() {\n  const [form, setForm] = useState({\n    relation: \"\",\n    userEmail: \"\",\n    firstName: \"\",\n  });\n  const dispatch = useDispatch();\n\n  const [errorMessage, setErrorMessage] = useState(\"\");\n  const notifyError = (message) => toast.error(message);\n  const navigate = useNavigate();\n  const [isLoading, setIsLoading] = useState(false);\n    const notificationSound=new Audio(toastNotification);\n  \n  const handleChange = (e) => {\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const handleSignin = async (e) => {\n    e.preventDefault();\n     setIsLoading(true); \n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/register`,\n        form\n      );\n      if (response.status === 201) {\n        // Show success toast\n        const { id, userEmail,role } = response.data.user; \n        const token=response.data.token\n        \n        \n        \n        dispatch(setUser({ id, userEmail,token,role:Number(role)}));\n        toast.success(\"OTP sent to registered mail ID\", {\n          onClose: () => navigate(`/OtpPage`,{ state: { userEmail: form.userEmail } }),\n        });\n      }\n    } catch (error) {\n      notificationSound.play().catch((err) =>\n        console.warn(\"Audio play error:\", err)\n      );\n      //  toast.error(error.response?.data?.message);\n      setErrorMessage(\n        error.response?.data?.message || \"Please try again.\"\n      );\n      notifyError(errorMessage || \"Something went wrong. Please try again.\");\n    }finally {\n      setIsLoading(false); // Stop spinner\n    }\n  };\n\n  return (\n    <div className=\"mainlanding\">\n      <ToastContainer\n          position=\"bottom-right\"\n          autoClose={2000}\n          hideProgressBar={false}\n          newestOnTop={false}\n          closeOnClick\n          rtl={false}\n          pauseOnFocusLoss\n          pauseOnHover\n        />\n      <div className=\"main-container\">\n      \n        \n        {/* Left section text */}\n      \n      \n        <div className=\"text-container\">\n          <h1>Biggest matrimony services for Ezhava</h1>\n          <h2>Your Journey To Forever Starts Here</h2>\n          <p>Find perfect soulmates for your life from 1000+ of profiles</p>\n        </div>\n\n        {/* Right section form */}\n        {isLoading && <div className=\"loader-div\"><Loader  /> </div>}\n        <div className=\"form-container\">\n          <div className=\"form-header\">\n            <h3>Create a Matrimony Profile</h3>\n          </div>\n          <div className=\"form-subheader\">\n            <h4>Find Your Perfect Soulmate</h4>\n          </div>\n          <form onSubmit={handleSignin}>\n            <label>\n              Matrimony Profile for\n              <select name=\"relation\" onChange={handleChange} value={form.relation}>\n                <option>Select</option>\n                <option value=\"Myself\">Myself</option>\n                <option value=\"Friend\">Friend</option>\n                <option value=\"Son\">Son</option>\n                <option value=\"Daughter\">Daughter</option>\n              </select>\n            </label>\n            <label>\n              <input\n                type=\"text\"\n                name=\"firstName\"\n                placeholder=\"Enter Your Name\"\n                required\n                onChange={handleChange}\n                value={form.firstName}\n              />\n            </label>\n            <label>\n              <input\n                type=\"email\"\n                name=\"userEmail\"\n                placeholder=\"Enter Your Email\"\n                required\n                onChange={handleChange}\n                value={form.userEmail}\n              />\n            </label>\n            <button type=\"submit\">Register Now</button>\n          </form>\n        </div>\n      </div>\n      <FooterFront/>\n    </div>\n  );\n}\n\nexport default LoginPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContainer\":\"formpage1_mainContainer__WCwvh\",\"container\":\"formpage1_container__ACf7E\",\"progressDiv\":\"formpage1_progressDiv__D5iyc\",\"progressHeading\":\"formpage1_progressHeading__eqQ23\",\"progressHeading2\":\"formpage1_progressHeading2__p7jp5\",\"contentDiv\":\"formpage1_contentDiv__0A-U-\",\"imageDisplayDiv\":\"formpage1_imageDisplayDiv__bQ1Os\",\"image\":\"formpage1_image__Srrwv\",\"pulsatingDiv\":\"formpage1_pulsatingDiv__wFMSD\",\"heartDiv\":\"formpage1_heartDiv__f5uVR\",\"image2\":\"formpage1_image2__zzu-i\",\"formContainer\":\"formpage1_formContainer__2EFI9\",\"formHeading\":\"formpage1_formHeading__ELZlA\",\"fieldGroup\":\"formpage1_fieldGroup__ECfPS\",\"labelGroup\":\"formpage1_labelGroup__Lawi9\",\"starHead\":\"formpage1_starHead__hky2k\",\"mandatoryField\":\"formpage1_mandatoryField__yHqwv\",\"inputGroup\":\"formpage1_inputGroup__5NMah\",\"inputGroupButtons\":\"formpage1_inputGroupButtons__rwxyj\",\"helperTextDiv\":\"formpage1_helperTextDiv__-zaXi\",\"PasswordEyeIcon\":\"formpage1_PasswordEyeIcon__EwQ8t\",\"label\":\"formpage1_label__HDYMw\",\"input\":\"formpage1_input__ePwbC\",\"helperText\":\"formpage1_helperText__pyQBH\",\"optionalDiv\":\"formpage1_optionalDiv__3+F08\",\"optionalDivText\":\"formpage1_optionalDivText__tQ0ds\",\"optionButtonOuterDiv\":\"formpage1_optionButtonOuterDiv__OYORG\",\"optionSingleButton\":\"formpage1_optionSingleButton__JGizk\",\"selected\":\"formpage1_selected__Qxbae\",\"btnDiv\":\"formpage1_btnDiv__cVcmQ\",\"imageUploadDiv\":\"formpage1_imageUploadDiv__xHP9Y\",\"imageUploadLabel\":\"formpage1_imageUploadLabel__n239L\",\"imageUploadInput\":\"formpage1_imageUploadInput__iH915\",\"imagePreviewDiv\":\"formpage1_imagePreviewDiv__LpOo3\",\"imagePreview\":\"formpage1_imagePreview__a5uc8\",\"submitButton\":\"formpage1_submitButton__zmKMo\",\"textAreaDiv\":\"formpage1_textAreaDiv__Gl0xm\",\"leftLabel\":\"formpage1_leftLabel__Yqepc\",\"rightLabel\":\"formpage1_rightLabel__IJVHT\",\"footer\":\"formpage1_footer__IO0pT\",\"modal\":\"formpage1_modal__vddVQ\",\"fadeIn\":\"formpage1_fadeIn__ZeINt\",\"modalContent\":\"formpage1_modalContent__yyjbI\",\"slideIn\":\"formpage1_slideIn__yutGi\",\"modalButtons\":\"formpage1_modalButtons__DuciN\",\"pulsate\":\"formpage1_pulsate__sxRWN\"};","import { createContext, ComponentPropsWithoutRef } from \"react\";\n\nexport type IconWeight =\n  | \"thin\"\n  | \"light\"\n  | \"regular\"\n  | \"bold\"\n  | \"fill\"\n  | \"duotone\";\n\nexport type PaintFunction = (color: string) => React.ReactNode | null;\n\nexport interface IconProps extends ComponentPropsWithoutRef<\"svg\"> {\n  alt?: string;\n  color?: string;\n  size?: string | number;\n  weight?: IconWeight;\n  mirrored?: boolean;\n}\n\ntype IconComponentProps = IconProps & React.RefAttributes<SVGSVGElement>;\n\nexport type Icon = React.ForwardRefExoticComponent<IconComponentProps>;\n\nexport const IconContext = createContext<IconProps>({\n  color: \"currentColor\",\n  size: \"1em\",\n  weight: \"regular\",\n  mirrored: false,\n});\n\nexport const renderPathForWeight = (\n  weight: IconWeight,\n  color: string,\n  pathsByWeight: Map<IconWeight, PaintFunction>\n): React.ReactNode | null => {\n  const path = pathsByWeight.get(weight);\n  if (!!path) return path(color);\n\n  console.error(\n    'Unsupported icon weight. Choose from \"thin\", \"light\", \"regular\", \"bold\", \"fill\", or \"duotone\".'\n  );\n\n  return null;\n};\n","import React, { forwardRef, useContext } from \"react\";\nimport { IconProps, IconWeight, IconContext } from \"../lib\";\n\nexport type RenderFunction = (\n  weight: IconWeight,\n  color: string\n) => React.ReactNode | null;\n\ninterface IconBaseProps extends IconProps {\n  renderPath: RenderFunction;\n}\n\nconst IconBase = forwardRef<SVGSVGElement, IconBaseProps>((props, ref) => {\n  const {\n    alt,\n    color,\n    size,\n    weight,\n    mirrored,\n    children,\n    renderPath,\n    ...restProps\n  } = props;\n\n  const {\n    color: contextColor = \"currentColor\",\n    size: contextSize,\n    weight: contextWeight = \"regular\",\n    mirrored: contextMirrored = false,\n    ...restContext\n  } = useContext(IconContext);\n\n  return (\n    <svg\n      ref={ref}\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width={size ?? contextSize}\n      height={size ?? contextSize}\n      fill={color ?? contextColor}\n      viewBox=\"0 0 256 256\"\n      transform={mirrored || contextMirrored ? \"scale(-1, 1)\" : undefined}\n      {...restContext}\n      {...restProps}\n    >\n      {!!alt && <title>{alt}</title>}\n      {children}\n      <rect width=\"256\" height=\"256\" fill=\"none\" />\n      {renderPath(weight ?? contextWeight, color ?? contextColor)}\n    </svg>\n  );\n});\n\nIconBase.displayName = \"IconBase\";\n\nexport default IconBase;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <line\n      x1=\"48\"\n      y1=\"40\"\n      x2=\"208\"\n      y2=\"216\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M214.4,163.6C232.1,145.7,240,128,240,128S208,56,128,56c-3.8,0-7.4.2-11,.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Zm0,112a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z\"\n      opacity=\"0.2\"\n    />\n    <line\n      x1=\"48\"\n      y1=\"40\"\n      x2=\"208\"\n      y2=\"216\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M247.3,124.8c-.3-.8-8.8-19.6-27.6-38.5C194.6,61.3,162.9,48,128,48a132.4,132.4,0,0,0-22,1.8,8.1,8.1,0,0,0-4.6,13.3L202.7,174.5a8,8,0,0,0,5.9,2.6,8.6,8.6,0,0,0,5.4-2c22.8-20.5,32.9-42.9,33.3-43.8A8.2,8.2,0,0,0,247.3,124.8Z\" />\n    <path d=\"M53.9,34.6A8,8,0,0,0,42.1,45.4L61.3,66.5C25,88.8,9.4,123.2,8.7,124.8a8.2,8.2,0,0,0,0,6.5c.3.7,8.8,19.5,27.6,38.4C61.4,194.7,93.1,208,128,208a126.9,126.9,0,0,0,52.1-10.8l22,24.2A8,8,0,0,0,208,224a8.2,8.2,0,0,0,5.4-2.1,7.9,7.9,0,0,0,.5-11.3ZM128,164a36,36,0,0,1-29.5-56.6l47.2,51.9A35.4,35.4,0,0,1,128,164Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <line\n      x1=\"48\"\n      y1=\"40\"\n      x2=\"208\"\n      y2=\"216\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <line\n      x1=\"48\"\n      y1=\"40\"\n      x2=\"208\"\n      y2=\"216\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <line\n      x1=\"48\"\n      y1=\"40\"\n      x2=\"208\"\n      y2=\"216\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M154.9,157.6A39.6,39.6,0,0,1,128,168a40,40,0,0,1-26.9-69.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M74,68.6C33.2,89.2,16,128,16,128s32,72,112,72a117.9,117.9,0,0,0,54-12.6\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M208.6,169.1C230.4,149.6,240,128,240,128S208,56,128,56a123.9,123.9,0,0,0-20.7,1.7\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M135.5,88.7a39.9,39.9,0,0,1,32.3,35.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst EyeSlash = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nEyeSlash.displayName = \"EyeSlash\";\n\nexport default EyeSlash;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"32\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Zm0,112a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z\"\n      opacity=\"0.2\"\n    />\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"40\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M247.3,124.8c-.3-.8-8.8-19.6-27.6-38.5C194.6,61.3,162.9,48,128,48S61.4,61.3,36.3,86.3C17.5,105.2,9,124,8.7,124.8a7.9,7.9,0,0,0,0,6.4c.3.8,8.8,19.6,27.6,38.5C61.4,194.7,93.1,208,128,208s66.6-13.3,91.7-38.3c18.8-18.9,27.3-37.7,27.6-38.5A7.9,7.9,0,0,0,247.3,124.8ZM128,92a36,36,0,1,1-36,36A36,36,0,0,1,128,92Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"40\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"40\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <path\n      d=\"M128,56C48,56,16,128,16,128s32,72,112,72,112-72,112-72S208,56,128,56Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"40\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Eye = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nEye.displayName = \"Eye\";\n\nexport default Eye;\n","import React, { useEffect, useState } from \"react\";\nimport styles from \"./formpage1.module.css\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useSelector } from \"react-redux\";\nimport { Eye, EyeSlash } from \"phosphor-react\";\nimport baseUrl from \"../../baseUrl\";\n\nfunction FormPage1() {\n  const [form, setForm] = useState({\n    dateOfBirth: \"\",\n    gender: \"\",\n    motherTongue: \"\",\n    email: \"\",\n    password: \"\",\n  });\n  const [errorMessage, setErrorMessage] = useState(\"\");\n  const [userProfie, setUserProfile] = useState([]);\n  const [showPassword, setShowPassword] = useState(false);\n  const notifyError = (message) => toast.error(message);\n  const notifySuccess = (message) => toast.success(message);\n  const navigate = useNavigate();\n  const { id } = useSelector((state) => state.user);\n\n  const handleChange = (e) => {\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n\n    // Create a copy of the form data\n    const updatedForm = { ...form };\n\n    // If password is \"********\" (placeholder), remove it from the update request\n    if (form.password === \"********\" || !form.password) {\n      delete updatedForm.password;\n    }\n\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        updatedForm\n      );\n\n      if (response.status === 200) {\n        notifySuccess(response.data.data.message || \"Successfully Submitted.\");\n        navigate(`/formpage2`);\n      }\n    } catch (error) {\n      setErrorMessage(error.response?.data?.message || \"Please try again.\");\n      notifyError(\n        errorMessage ||\n          \"Something went wrong. Please try again.\"\n      );\n    }\n  };\n\n  const dataBinding = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserProfile(response.data.data);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  useEffect(() => {\n    dataBinding();\n  }, [id]);\n  useEffect(() => {\n    if (userProfie) {\n      setForm((prevForm) => ({\n        ...prevForm,\n        dateOfBirth: userProfie.dateOfBirth || \"\",\n        gender: userProfie.gender || \"\",\n        motherTongue: userProfie.motherTongue || \"\",\n        email: userProfie.email || \"\",\n        // Don't set password in the form\n      }));\n    }\n  }, [userProfie]);\n\n  const passwordVisibility = () => {\n    setShowPassword((prevState) => !prevState);\n  };\n  return (\n    <div className={styles.mainContainer}>\n      <ToastContainer position=\"bottom-right\" />\n      <div className={styles.progressDiv}>\n        <div className={styles.progressHeading}>You have completed</div>\n        <div className={styles.progressHeading2}>20%</div>\n      </div>\n      <div className={styles.container}>\n        {/* Progress Bar */}\n\n        {/* Main Content */}\n        <div className={styles.contentDiv}>\n          {/* Image Section */}\n\n          {/* <div className={styles.imageDisplayDiv}>\n            <img\n              src={image} // Replace with actual image URL\n              alt=\"Couple\"\n              className={styles.image}\n            />\n          </div> */}\n\n          {/* Form Section */}\n          <div className={styles.formContainer}>\n            <h3 className={styles.formHeading}>\n              {userProfie.relation === \"Myself\"\n                ? \"Tell us about yourself\"\n                : `Tell us about your ${userProfie.relation} basic details`}\n            </h3>\n\n            <form className={styles.form} onSubmit={handleSubmit}>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Date Of Birth</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"date\"\n                      className={styles.input}\n                      placeholder=\"DD / MM / YY\"\n                      style={{ color: \"#666\" }}\n                      required\n                      value={form.dateOfBirth}\n                      onChange={handleChange}\n                      name=\"dateOfBirth\"\n                    />\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <p className={styles.helperText}>\n                      {userProfie.relation === \"Myself\"\n                        ? \"Your date of birth to find a perfect match\"\n                        : `Your ${userProfie.relation}'s date of birth to find a perfect match`}\n                    </p>\n                  </div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Gender</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.gender}\n                      onChange={handleChange}\n                      name=\"gender\"\n                    >\n                      <option value=\"\">Select Gender</option>\n                      <option value=\"Male\">Male</option>\n                      <option value=\"Female\">Female</option>\n\n                      {/* <option>Other</option> */}\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Mother Tongue</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.motherTongue}\n                      onChange={handleChange}\n                      name=\"motherTongue\"\n                    >\n                      <option value=\"\">Select Language</option>\n                      <option value=\"Malayalam\">Malayalam</option>\n                      <option value=\"Others\">Others</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Email ID</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"email\"\n                      className={styles.input}\n                      placeholder=\"Enter email\"\n                      required\n                      value={form.email}\n                      onChange={handleChange}\n                      name=\"email\"\n                    />\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <p className={styles.helperText}>\n                      Check your email for a perfect match\n                    </p>\n                  </div>\n                </div>\n              </div>\n              {!userProfie.password && (\n                <div className={styles.formGroup}>\n                  <div className={styles.fieldGroup}>\n                    <div className={styles.labelGroup}>\n                      <label>Password</label>\n                      <p className={styles.starHead}>*</p>\n                    </div>\n                    <div className={styles.inputGroup}>\n                      <input\n                        type={showPassword ? \"text\" : \"password\"}\n                        className={styles.input}\n                        placeholder=\"Enter password\"\n                        required\n                        value={form.password}\n                        onChange={handleChange}\n                        name=\"password\"\n                      />\n                      {showPassword ? (\n                        <EyeSlash\n                          className={styles.PasswordEyeIcon}\n                          weight=\"duotone\"\n                          onClick={passwordVisibility}\n                        />\n                      ) : (\n                        <Eye\n                          className={styles.PasswordEyeIcon}\n                          weight=\"duotone\"\n                          onClick={passwordVisibility}\n                        />\n                      )}\n                    </div>\n                    <div className={styles.helperTextDiv}>\n                      <p className={styles.helperText}>\n                        Password must have between 6–20 characters\n                      </p>\n                    </div>\n                  </div>\n                </div>\n              )}\n\n              <div className={styles.btnDiv}>\n                <button type=\"submit\" className={styles.submitButton}>\n                  Continue\n                </button>\n              </div>\n              <div className={styles.mandatoryField}>* Mandatory fields</div>\n            </form>\n          </div>\n        </div>\n      </div>\n\n      {/* Footer */}\n      <div className={styles.footer}>\n        <p>Copyright © 2025. All rights reserved</p>\n      </div>\n    </div>\n  );\n}\n\nexport default FormPage1;\n","import React, { useEffect, useState } from \"react\";\nimport \"../LandingPage/landingpage.css\";\nimport axios from \"axios\";\nimport { useNavigate, Link } from \"react-router-dom\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useDispatch } from \"react-redux\";\nimport { setUser } from \"../../features/slice\";\nimport Modal from \"react-modal\";\nimport baseUrl from \"../../baseUrl\";\nimport toastNotification from \"../../assets/ToastAudio.mp3\";\nimport Loader from \"../../component/Loader/Loadertext.jsx\";\nimport FooterFront from \"../../component/FooterFront/FooterFront\";\n\nfunction LandingPage() {\n  let field = {\n    userEmail: \"\",\n    password: \"\",\n  };\n  const [showPassword, setShowPassword] = useState(false);\n  const [form, setForm] = useState(field);\n  const [isModalOpen, setIsModalOpen] = useState(false);\n\n  const [errorMessage, setErrorMessage] = useState(\"\");\n  const [email, setEmail] = useState(\"\");\n  const notificationSound = new Audio(toastNotification);\n\n  const togglePasswordVisibility = () => {\n    setShowPassword((prev) => !prev);\n  };\n\n  const [isLoading, setIsLoading] = useState(false);\n  const [emailResendTimer, setEmailResendTimer] = useState(0);\n  const navigate = useNavigate();\n  const dispatch = useDispatch();\n  const handleEmail = (e) => {\n    setEmail(e.target.value);\n  };\n  const submitEmail = async (e) => {\n    e.preventDefault();\n    setIsLoading(true);\n    setEmailResendTimer(10);\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/forgotpassworduser`,\n        { userEmail: email }\n      );\n      if (response.status === 200) {\n        toast.success(\"Password reset link sent to registered mail ID\", {\n          onClose: () => setIsModalOpen(false),\n        });\n      }\n    } catch (error) {\n      notificationSound\n        .play()\n        .catch((err) => console.warn(\"Audio play error:\", err));\n      toast.error(error.response?.data?.message);\n    } finally {\n      setIsLoading(false);\n    }\n  };\n  useEffect(() => {\n    let interval = null;\n    if (emailResendTimer > 0) {\n      interval = setInterval(() => {\n        setEmailResendTimer((prev) => prev - 1);\n      }, 1000);\n    }\n    return () => clearInterval(interval);\n  }, [emailResendTimer]);\n  const handleSignin = async (e) => {\n    e.preventDefault();\n    try {\n      const response = await axios.post(`${baseUrl}/api/v1/user/login`, form);\n      if (response) {\n        dispatch(\n          setUser({\n            id: response.data.userId,\n            token: response.data.token,\n            role: response.data.role,\n          })\n        ); // Dispatch Redux action\n        localStorage.setItem(\"userId\", response.data.userId);\n        const userId = response.data.userId;\n        navigate(`/dashboard/${userId}`);\n      }\n    } catch (error) {\n      const message =\n        error.response?.data?.message ||\n        \"Invalid email or password. Please try again.\";\n      setErrorMessage(message);\n      notificationSound\n        .play()\n        .catch((err) => console.warn(\"Audio play error:\", err));\n      toast.error(errorMessage || \"Invalid email or password. Please try again.\"); // Show toast\n    }\n  };\n\n  const handleChange = (e) => {\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n\n  return (\n    <div className=\"mainLanding\">\n      <div className=\"landing-main-container\">\n        {isLoading && (\n          <div className=\"loader\">\n            <Loader />{\" \"}\n          </div>\n        )}\n        <div className=\"landing-text-container\">\n          <h1>Ezhava Matrimony</h1>\n          <p>Find Your Perfect Match in the Ezhava Community</p>\n        </div>\n        <div className=\"landing-form-container\">\n          <div className=\"landing-form-header\">\n            <h3>Login to your Profile</h3>\n          </div>\n          <div className=\"landing-form-subheader\">\n            <h4>Find Your Perfect Soulmate</h4>\n          </div>\n          <form onSubmit={handleSignin}>\n            <label>\n              <input\n                type=\"email\"\n                name=\"userEmail\"\n                placeholder=\"Email\"\n                required\n                onChange={handleChange}\n                value={form.userEmail}\n                autoComplete=\"username\"\n              />\n            </label>\n            <label>\n              <div className=\"password-container\">\n                <input\n                  type={showPassword ? \"text\" : \"password\"}\n                  name=\"password\"\n                  placeholder=\"password\"\n                  required\n                  onChange={handleChange}\n                  value={form.password}\n                  autoComplete=\"current-password\"\n                />\n                <span\n                  className=\"password-toggle\"\n                  onClick={togglePasswordVisibility}\n                >\n                  <span className=\"material-icons\">\n                    {showPassword ? \"visibility_off\" : \"visibility\"}\n                  </span>\n                </span>\n              </div>\n            </label>\n            <button type=\"submit\">Sign In</button>\n            <div className=\"fp\">\n              <p className=\"signup-link\" onClick={() => setIsModalOpen(true)}>\n                Forgot Password\n              </p>\n            </div>\n            <Modal\n              isOpen={isModalOpen}\n              onRequestClose={() => setIsModalOpen(false)}\n              className=\"modal-content\"\n              overlayClassName=\"modal-overlay\"\n            >\n              <div style={{ position: \"relative\" }}>\n                {isLoading && (\n                  <div className=\"modal-loader-overlay\">\n                    <div className=\"loader-div\">\n                      <Loader />{\" \"}\n                    </div>\n                  </div>\n                )}\n\n                <h2>Forgot Password</h2>\n                <p>Enter your email to receive a reset link.</p>\n\n                <input\n                  type=\"email\"\n                  placeholder=\"Enter your email\"\n                  required\n                  value={email}\n                  onChange={handleEmail}\n                  disabled={isLoading}\n                />\n\n                <button\n                  onClick={submitEmail}\n                  disabled={isLoading || emailResendTimer > 0}\n                >\n                  {emailResendTimer > 0\n                    ? `Resend available in ${emailResendTimer}s`\n                    : \"Submit\"}\n                </button>\n                <button\n                  onClick={() => setIsModalOpen(false)}\n                  disabled={isLoading}\n                >\n                  Close\n                </button>\n              </div>\n            </Modal>\n            <div className=\"adminLogin\">\n              <Link className=\"signup-link\" to=\"/adminLanding\">\n                Login as Admin\n              </Link>\n            </div>\n            <div className=\"signin\">\n              <p> Create your account</p>\n              <Link className=\"signup-link\" to=\"/register\">\n                Sign up\n              </Link>\n            </div>\n          </form>\n        </div>\n        <link\n          href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n          rel=\"stylesheet\"\n        />\n      </div>\n      <ToastContainer\n        position=\"bottom-right\"\n        autoClose={3000}\n        style={{ zIndex: 9999 }}\n      />\n\n      <FooterFront />\n    </div>\n  );\n}\n\nexport default LandingPage;\n","import React, { useState, useEffect } from \"react\";\nimport styles from \"../FormPage1/formpage1.module.css\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport {  toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport baseUrl from \"../../baseUrl\";\nfunction FormPage2() {\n  const [errorMessage, setErrorMessage] = useState(\"\");\n  const notifyError = (message) => toast.error(message);\n  const navigate = useNavigate();\n  const [selected, setSelected] = useState(\"\");\n  const [selectedJathakam, setSelectedJathakam] = useState(\"\");\n  const [userProfie, setUserProfile] = useState([]);\n  const btnSelected = (button) => {\n    setSelected(button);\n  };\n  const { id } = useSelector((state) => state.user);\n\n  const btnSelectedJathakam = (button) => {\n    setSelectedJathakam(button);\n  };\n\n  const [form, setForm] = useState({});\n  const handleChange = (e) => {\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    const updatedForm = {\n      ...form,\n      suddhaJathakam: selected,\n      dosham: selectedJathakam,\n    };\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        updatedForm\n      );\n      if (response.status === 200) {\n        navigate(`/formpage3`);\n      }\n    } catch (error) {\n      setErrorMessage(error.response?.data?.message || \"Please try again.\");\n      notifyError(\n        errorMessage ||\n          \"Something went wrong. Please try again.\"\n      );\n    }\n  };\n\n  const renderOptionButtons = (options, selectedOption, setSelectedOption) =>\n    options.map((option) => (\n      <button\n        key={option}\n        type=\"button\"\n        className={`${styles.optionSingleButton} ${\n          selectedOption === option ? styles.selected : \"\"\n        }`}\n        onClick={() => setSelectedOption(option)}\n      >\n        {option}\n      </button>\n    ));\n  const dataBinding = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserProfile(response.data.data);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  useEffect(() => {\n    dataBinding();\n  }, [id]);\n  useEffect(() => {\n    if (userProfie) {\n      setForm((prevForm) => ({\n        ...prevForm,\n        religion: userProfie.religion || \"\",\n        caste: userProfie.caste || \"\",\n        subCaste: userProfie.subCaste || \"\",\n        gothram: userProfie.gothram || \"\",\n        suddhaJathakam: userProfie.suddhaJathakam ||\"\",\n        \n        \n      }));\n      setSelected(userProfie.suddhaJathakam || \"\"); \n      setSelectedJathakam(userProfie.dosham || \"\");\n    }\n  }, [userProfie]);\n  return (\n    <div className={styles.mainContainer}>\n      <div className={styles.progressDiv}>\n        <div className={styles.progressHeading}>You have completed</div>\n        <div className={styles.progressHeading2}>40%</div>\n      </div>\n      <div className={styles.container}>\n        {/* Progress Bar */}\n\n        {/* Main Content */}\n        <div className={styles.contentDiv}>\n          {/* Image Section */}\n{/* \n          <div className={styles.imageDisplayDiv}>\n            <img\n              src={image} \n              alt=\"Couple\"\n              className={styles.image}\n            />\n          </div> */}\n\n          {/* Form Section */}\n          <div className={styles.formContainer}>\n            <h3 className={styles.formHeading}>\n              Fill up your religious details for Finding Right Match\n            </h3>\n\n            <form className={styles.form} onSubmit={handleSubmit}>\n              {/* <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Date Of Birth</label>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"date\"\n                      className={styles.input}\n                      placeholder=\"DD / MM / YY\"\n                      style={{ color: \"#666\" }}\n                    />\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <p className={styles.helperText}>\n                      Your friend's date of birth to find a perfect match\n                    </p>\n                  </div>\n                </div>\n              </div> */}\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Religion</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.religion}\n                      onChange={handleChange}\n                      name=\"religion\"\n                    >\n                      <option>Select Religion</option>\n                      <option value=\"Hindu\">Hindu</option>\n\n                      <option value=\"Others\">Others</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Caste</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.caste}\n                      onChange={handleChange}\n                      name=\"caste\"\n                    >\n                      <option >Select your caste</option>\n                      <option value=\"Ezhava\">Ezhava</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>SubCaste</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.subCaste}\n                      onChange={handleChange}\n                      name=\"subCaste\"\n                    >\n                      <option value=\"\">Select SubCaste</option>\n                      <option value=\"Thiyya\">Thiyya</option>\n                      <option value=\"Chekavars\">Chekavars</option>\n                      <option value=\"Vilaakkithala Nairs\">\n                        Vilaakkithala Nairs\n                      </option>\n                      <option value=\"Velar\">Velar</option>\n                      <option value=\"Kalari Panickers\">Kalari Panickers</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Gothram</label>\n                    <p className={styles.starHead}></p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      value={form.gothram}\n                      onChange={handleChange}\n                      name=\"gothram\"\n                    >\n                      <option value=\"\">Gothram</option>\n                      <option value=\"Kashyapa\">Kashyapa</option>\n                      <option value=\"Vishwamitra\">Vishwamitra</option>\n                      <option value=\"Agastya\">Agastya</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <div className={styles.optionalDiv}>\n                      <p className={styles.optionalDivText}>Optional</p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Suddha Jathakam</label>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    {/* <input\n                      type=\"email\"\n                      className={styles.input}\n                      placeholder=\"Enter email\"\n                    /> */}\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\"Yes\", \"No\", \"Don't Know\"],\n                        selected,\n                        setSelected\n                      )}\n                    </div>\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <div className={styles.optionalDiv}>\n                      <p className={styles.optionalDivText}>Optional</p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Dosham</label>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\"Yes\", \"No\", \"Don't Know\"],\n                        selectedJathakam,\n                        setSelectedJathakam\n                      )}\n                    </div>\n                  </div>\n                  <div className={styles.helperTextDiv}>\n                    <div className={styles.optionalDiv}>\n                      <p className={styles.optionalDivText}>Optional</p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className={styles.btnDiv}>\n                <button type=\"submit\" className={styles.submitButton}>\n                  Continue\n                </button>\n              </div>\n              <div className={styles.mandatoryField}>* Mandatory fields</div>\n            </form>\n          </div>\n        </div>\n      </div>\n\n      {/* Footer */}\n      <div className={styles.footer}>\n        <p>Copyright © 2025. All rights reserved</p>\n      </div>\n    </div>\n  );\n}\n\nexport default FormPage2;\n","import React, { useState,useEffect } from \"react\";\nimport styles from \"../FormPage1/formpage1.module.css\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\nimport {  toast } from \"react-toastify\";\nimport baseUrl from \"../../baseUrl\";\nfunction FormPage4() {\n  const [form, setForm] = useState({});\n  const navigate = useNavigate();\n  const [imageFile, setImageFile] = useState(null);\n  const [preview, setPreview] = useState(null);\n  const [showModal, setShowModal] = useState(false);\n  const [userProfie, setUserProfile] = useState([]);\n  const { id } = useSelector((state) => state.user);\n const notifyError = (message) =>\n    toast.error(message, {\n      autoClose: 3000,\n      closeOnClick: true,\n    });\n  const notifySuccess = (message) =>\n    toast.success(message, {\n      autoClose: 3000,\n      closeOnClick: true,\n    });\n  const handleChange = (e) => {\n    const { name, value } = e.target;\n    setForm((prevForm) => ({\n      ...prevForm,\n      [name]: value,\n    }));\n  };\n  const handleImageChange = (e) => {\n    const file = e.target.files[0];\n    if (file) {\n      setImageFile(file);\n      setPreview(URL.createObjectURL(file));\n      setShowModal(true);\n    }\n  };\n  const handleUpload = async () => {\n    if (!imageFile) return;\n    const formData = new FormData();\n    formData.append(\"profilePicture\", imageFile);\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        formData\n      );\n      if (response.status === 200) {\n        notifySuccess(response.data.data.message || \"Successfully Submitted.\");\n        setShowModal(false); // Close modal after successful upload\n      }\n    } catch (error) {\n      console.log(\"Upload error:\", error);\n      notifyError(error.response?.data?.message || \"Image upload failed.\");\n    }\n    // Close modal after upload\n    setShowModal(false);\n    setImageFile(null);\n    setPreview(null);\n  };\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    const formData = new FormData();\n    // if (imageFile) {\n    //   formData.append(\"profilePicture\", imageFile);\n    // }\n    formData.append(\"about\", form.about || \"\");\n    formData.append(\"age\", form.age || \"\");\n    formData.append(\"hobbies\", form.hobbies || \"\");\n    formData.append(\"phoneNumber\", form.phoneNumber || \"\");\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        formData,\n        {\n          headers: {\n            \"Content-Type\": \"multipart/form-data\",\n          },\n        }\n      );\n      if (response.status === 200) {\n          notifySuccess(response.data.data.message || \"Successfully Submitted.\");\n          setShowModal(false); // Close modal after successful upload\n        navigate(`/formpage5`);\n      }\n    } catch (error) {\n      console.error(error);\n     notifyError(error.response?.data?.message || \"Image upload failed.\");\n    }\n    // setShowModal(false);\n    // setImageFile(null);\n    // setPreview(null);\n  };\n  const dataBinding = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserProfile(response.data.data);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  useEffect(() => {\n    dataBinding();\n  }, [id]);\n   useEffect(() => {\n        if (userProfie) {\n          setForm((prevForm) => ({\n            ...prevForm,\n            about: userProfie.about || \"\",\n            age:userProfie.age||\"\",\n            phoneNumber:userProfie.phoneNumber||\"\",\n            hobbies:userProfie.hobbies||\"\"\n          }));\n        }},[userProfie])\n  return (\n    <div className={styles.mainContainer}>\n      <div className={styles.progressDiv}>\n        <div className={styles.progressHeading}>You have completed</div>\n        <div className={styles.progressHeading2}>80%</div>\n      </div>\n      <div className={styles.container}>\n        {/* Main Content */}\n        <div className={styles.contentDiv}>\n          {/* Image Section */}\n          {/* <div className={styles.imageDisplayDiv}>\n            <img src={image} alt=\"Couple\" className={styles.image} />\n          </div> */}\n          <div className={styles.formContainer}>\n            <h3 className={styles.formHeading}>  {userProfie.relation === \"Myself\"\n  ? \"About yourself\"\n  : `About your ${userProfie.relation} `}\n            </h3>\n            <form className={styles.form} onSubmit={handleSubmit}>\n              <div className={styles.textAreaDiv}>\n                <label className={styles.leftLabel}>About</label>\n                <textarea\n                  className={styles.textArea}\n                  placeholder=\"Type here...\"\n                  value={form.about || \"\"}\n                  onChange={handleChange}\n                  name=\"about\"\n                  // required\n                ></textarea>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Age</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"text\"\n                      className={styles.input}\n                      placeholder=\"\"\n                      value={form.age || \"\"}\n                      onChange={handleChange}\n                      name=\"age\"\n                      required\n                    />\n                  </div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Hobbies</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"text\"\n                      className={styles.input}\n                      placeholder=\"\"\n                      value={form.hobbies || \"\"}\n                      onChange={handleChange}\n                      name=\"hobbies\"\n                      required\n                    />\n                  </div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Phone Number</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"text\"\n                      className={styles.input}\n                      placeholder=\"\"\n                      value={form.phoneNumber || \"\"}\n                      onChange={handleChange}\n                      name=\"phoneNumber\"\n                      required\n                    />\n                  </div>\n                </div>\n              </div>\n              <div className={styles.imageUploadDiv}>\n                <label className={styles.imageUploadLabel}>\n                  <span className=\"material-icons\">\n                    Upload Your Profile Image\n                  </span>\n                  <input\n                    type=\"file\"\n                    accept=\"image/*\"\n                    className={styles.imageUploadInput}\n                    onChange={handleImageChange}\n                    // required={!userProfie?.profileImage}\n                  />\n                  <p className={styles.starHead}>*</p>\n                </label>\n              </div>\n              {showModal && (\n                <div className={styles.modal}>\n                  <div className={styles.modalContent}>\n                    <h3>Preview</h3>\n                    <img\n                      src={preview}\n                      alt=\"Selected Preview\"\n                      style={{\n                        objectFit: \"cover\",\n                        borderRadius: \"10px\",\n                        width: \"236px\",\n                        height: \"398px\",\n                        backgroundColor: \" #F0C040\",\n                        cursor: \"pointer\",\n                        overflow: \"hidden\",\n                      }}\n                    />\n                    <div className={styles.modalButtons}>\n                      <button onClick={handleUpload}>Yes</button>\n                      <button onClick={() => setShowModal(false)}>No</button>\n                    </div>\n                  </div>\n                </div>\n              )}\n              <div className={styles.btnDiv}>\n                <button type=\"submit\" className={styles.submitButton}>\n                  Continue\n                </button>\n              </div>\n            </form>\n          </div>\n        </div>\n      </div>\n      {/* Footer */}\n      <div className={styles.footer}>\n        <p>Copyright © 2025. All rights reserved</p>\n      </div>\n    </div>\n  );\n}\nexport default FormPage4;","// extracted by mini-css-extract-plugin\nexport default {\"mainContainer\":\"formpage3_mainContainer__KdLdK\",\"container\":\"formpage3_container__XDYOU\",\"progressDiv\":\"formpage3_progressDiv__WCsKO\",\"progressHeading\":\"formpage3_progressHeading__oYB4t\",\"progressHeading2\":\"formpage3_progressHeading2__ewNu5\",\"contentDiv\":\"formpage3_contentDiv__R0umy\",\"imageDisplayDiv\":\"formpage3_imageDisplayDiv__fDh9y\",\"image\":\"formpage3_image__qUvmC\",\"pulsatingDiv\":\"formpage3_pulsatingDiv__JFqmM\",\"heartDiv\":\"formpage3_heartDiv__dWzTo\",\"image2\":\"formpage3_image2__8lXmH\",\"formContainer\":\"formpage3_formContainer__qPjz9\",\"formHeading\":\"formpage3_formHeading__JgS2u\",\"fieldGroup\":\"formpage3_fieldGroup__rdH6r\",\"labelGroup\":\"formpage3_labelGroup__I9IoF\",\"starHead\":\"formpage3_starHead__2FG6L\",\"mandatoryField\":\"formpage3_mandatoryField__Dhnxp\",\"inputGroup\":\"formpage3_inputGroup__8l1Js\",\"inputGroupButtons\":\"formpage3_inputGroupButtons__odcrQ\",\"helperTextDiv\":\"formpage3_helperTextDiv__QvAO6\",\"label\":\"formpage3_label__I6V6i\",\"input\":\"formpage3_input__NT04H\",\"helperText\":\"formpage3_helperText__Ac99s\",\"optionalDiv\":\"formpage3_optionalDiv__IKth0\",\"optionalDivText\":\"formpage3_optionalDivText__dFcFW\",\"optionButtonOuterDiv\":\"formpage3_optionButtonOuterDiv__BRGek\",\"optionButtonOuterDiv3\":\"formpage3_optionButtonOuterDiv3__y2ThL\",\"optionSingleButton\":\"formpage3_optionSingleButton__y1h+r\",\"selected\":\"formpage3_selected__jOHUT\",\"btnDiv\":\"formpage3_btnDiv__8uOJ4\",\"submitButton\":\"formpage3_submitButton__+r33I\",\"textAreaDiv\":\"formpage3_textAreaDiv__o3kSD\",\"leftLabel\":\"formpage3_leftLabel__NzMPV\",\"rightLabel\":\"formpage3_rightLabel__33vrb\",\"textArea\":\"formpage3_textArea__O5Zpr\",\"footer\":\"formpage3_footer__DLLR6\",\"errorMessage\":\"formpage3_errorMessage__IO7Ms\",\"pulsate\":\"formpage3_pulsate__ovwTf\"};","import React, { useState,useEffect } from \"react\";\nimport styles from \"./formpage3.module.css\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\nimport baseUrl from \"../../baseUrl\";\nfunction FormPage3() {\n  const { id } = useSelector((state) => state.user);\n  const [maritalStatus, setMaritalStatus] = useState(\"\");\n  const [familyStatus, setFamilyStatus] = useState(\"\");\n  const [familyType, setFamilyType] = useState(\"\");\n  const [familyValues, setFamilyValues] = useState(\"\");\n  const [physicallyChallenged, setPhysicallyChallenged] = useState(\"\");\n  const [form, setForm] = useState({});\n  const [userProfie, setUserProfile] = useState([]);\n  const [errors, setErrors] = useState({});\n  const navigate = useNavigate();\n  const handleChange = (e) => {\n    if (e.name=== \"height\") {\n      if (e.value < 100) {\n        setErrors(\"Height must be at least 100 cm.\");\n      } else {\n        setErrors(\"\"); // Clear error when valid\n      }\n    }\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    let newErrors = {};\n    if (!maritalStatus) newErrors.maritalStatus = \"Please select your marital status.\";\n    if (!familyStatus) newErrors.familyStatus = \"Please select your family status.\";\n    if (!familyType) newErrors.familyType = \"Please select your family type.\";\n    if (!familyValues) newErrors.familyValues = \"Please select your family values.\";\n    if (!physicallyChallenged) newErrors.physicallyChallenged = \"Please select an option.\";\n    if (Object.keys(newErrors).length > 0) {\n      setErrors(newErrors);\n      return;\n    }\n    // If no errors, proceed with submission\n    setErrors({});\n    const formData = {\n      ...form,\n      maritalStatus,\n      familyStatus,\n      familyType,\n      familyValues,\n      physicallyChallenged,\n    };\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        formData\n      );\n      if (response.status === 200) {\n        navigate(`/formpage4`);\n      }\n    } catch (error) {\n      console.error(error);\n      alert(\"An error occurred while submitting the form.\");\n    }\n  };\n  const renderOptionButtons = (options, selectedOption, setSelectedOption) =>\n    options.map((option) => (\n      <button\n        key={option}\n        type=\"button\"\n        className={`${styles.optionSingleButton} ${\n          selectedOption === option ? styles.selected : \"\"\n        }`}\n        onClick={() => setSelectedOption(option)}\n      >\n        {option}\n      </button>\n    ));\n    const dataBinding = async () => {\n      try {\n        const response = await axios.get(\n          `${baseUrl}/api/v1/user/usercarddetails/${id}`\n        );\n        setUserProfile(response.data.data);\n      } catch (error) {\n        console.log(\"error\", error);\n      }\n    };\n    useEffect(() => {\n      dataBinding();\n    }, [id]);\n    useEffect(() => {\n      if (userProfie) {\n        setForm((prevForm) => ({\n          ...prevForm,\n          height: userProfie.height || \"\",\n        }));\n        setMaritalStatus(userProfie.maritalStatus || \"\");\n        setFamilyStatus(userProfie.familyStatus||\"\");\n        setFamilyType(userProfie.familyType||\"\");\n        setFamilyValues(userProfie.familyValues||\"\");\n        setPhysicallyChallenged(userProfie.physicallyChallenged||\"\")\n        // setSelectedJathakam(userProfie.dosham || \"\");\n      }\n    }, [userProfie]);\n  return (\n    <div className={styles.mainContainer}>\n      <div className={styles.progressDiv}>\n        <div className={styles.progressHeading}>You have completed</div>\n        <div className={styles.progressHeading2}>60%</div>\n      </div>\n      <div className={styles.container}>\n        {/* Progress Bar */}\n        {/* Main Content */}\n        <div className={styles.contentDiv}>\n          {/* Image Section */}\n          {/* <div className={styles.imageDisplayDiv}>\n            <img\n              src={image}\n              alt=\"Couple\"\n              className={styles.image}\n            />\n          </div> */}\n          {/* Form Section */}\n          <div className={styles.formContainer}>\n            <h3 className={styles.formHeading}>\n            {userProfie.relation === \"Myself\"\n  ? \"Tell us about yourself\"\n  : `Tell us about your ${userProfie.relation} basic details`}\n            </h3>\n            <form className={styles.form} onSubmit={handleSubmit}>\n                <div className={styles.formGroup}>\n                  <div className={styles.fieldGroup}>\n                    <div className={styles.labelGroup}>\n                      <label>Maritial Status</label>\n                      <p className={styles.starHead}>*</p>\n                    </div>\n                    <div className={styles.inputGroupButtons}>\n                      <div className={styles.optionButtonOuterDiv}>\n                        {renderOptionButtons(\n                          [\n                            \"Never Married\",\n                            \"Widowed\",\n                            \"Divorced\",\n                            \"Awaiting Divorce\",\n                          ],\n                          maritalStatus,\n                          setMaritalStatus\n                        )}\n                      </div>\n                    </div>\n                    {errors.maritalStatus && <p className={styles.errorMessage}>{errors.maritalStatus}</p>}\n                    {/* <div className={styles.helperTextDiv}></div> */}\n                  </div>\n                </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Height</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"number\"\n                      className={styles.input}\n                      placeholder=\"Height in centimeters\"\n                      value={form.height || \"\"}\n                      onChange={handleChange}\n                      name=\"height\"\n                      required\n                      min=\"100\"\n                    />\n                  </div>\n                  {/* <div className={styles.helperTextDiv}></div>   */}\n                  {errors.maritalStatus && <p className={styles.errorMessage}>{errors.maritalStatus}</p>}\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Family Status</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroupButtons}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\n                          \"Middle Class\",\n                          \"Upper Middle Class\",\n                          \"High Class\",\n                          \"Rich/Affluent\",\n                        ],\n                        familyStatus,\n                        setFamilyStatus\n                      )}\n                    </div>\n                  </div>\n                  {/* <div className={styles.helperTextDiv}></div> */}\n                  {errors.familyStatus && <p className={styles.errorMessage}>{errors.familyStatus}</p>}\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Family NetWorth</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      name=\"familyIncome\"\n                      value={form.value}\n                      onChange={handleChange}\n                      required\n                    >\n                      <option value=\"less_than_1M\">Less than $1M</option>\n                      <option value=\"1M_to_5M\">$1M to $5M</option>\n                      <option value=\"5M_to_10M\">$5M to $10M</option>\n                      <option value=\"10M_to_50M\">$10M to $50M</option>\n                      <option value=\"above_50M\">Above $50M</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Family Type</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\"Joint\", \"Nuclear\"],\n                        familyType,\n                        setFamilyType\n                      )}\n                    </div>\n                  </div>\n                  {errors.familyType && <p className={styles.errorMessage}>{errors.familyType}</p>}\n                  {/* <div className={styles.helperTextDiv}></div> */}\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Family Values</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroupButtons}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\"Orthodox\", \"Traditional\", \"Moderate\", \"Liberal\"],\n                        familyValues,\n                        setFamilyValues\n                      )}\n                    </div>\n                  </div>\n                  {errors.familyValues && <p className={styles.errorMessage}>{errors.familyValues}</p>}\n                  {/* <div className={styles.helperTextDiv}></div> */}\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Disabled</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\"Nope\", \"Physically Challenged\"],\n                        physicallyChallenged,\n                        setPhysicallyChallenged\n                      )}\n                    </div>\n                  </div>\n                  {errors.physicallyChallenged && <p className={styles.errorMessage}>{errors.physicallyChallenged}</p>}\n                  {/* <div className={styles.helperTextDiv}></div>   */}\n                </div>\n              </div>\n              <div className={styles.btnDiv}>\n                <button type=\"submit\" className={styles.submitButton}>\n                  Continue\n                </button>\n              </div>\n              <div className={styles.mandatoryField}>* Mandatory fields</div>\n            </form>\n          </div>\n        </div>\n      </div>\n      {/* Footer */}\n      <div className={styles.footer}>\n        <p>Copyright © 2025. All rights reserved</p>\n      </div>\n    </div>\n  );\n}\nexport default FormPage3;","import React, { useState, useEffect } from \"react\";\nimport styles from \"../FormPage3/formpage3.module.css\";\nimport { useSelector } from \"react-redux\";\nimport axios from \"axios\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { setUser } from \"../../features/slice\";\nimport baseUrl from \"../../baseUrl.js\";\nimport Loader from \"../../component/Loader/Loadertext.jsx\";\n\nfunction FormPage5() {\n  const { id, token, role } = useSelector((state) => state.user);\n  const [employmentStatus, setEmploymentStatus] = useState(\"\");\n  const [residentStatus, setResidentStatus] = useState(\"\");\n  const [form, setForm] = useState({});\n  const [userProfie, setUserProfile] = useState([]);\n  const [errors, setErrors] = useState({});\n  const [isLoading, setIsLoading] = useState(false);\n\n  const navigate = useNavigate();\n  const dispatch = useDispatch();\n  const handleChange = (e) => {\n    const { name, value } = e.target;\n\n    setForm((prev) => ({\n      ...prev,\n      [name]: value,\n      ...(name === \"country\" ? { city: \"\" } : {}), // Reset city when country change\n    }));\n  };\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    let newErrors = {};\n    if (!employmentStatus)\n      newErrors.employmentStatus = \"Please select the sector Employed In\";\n    if (!residentStatus)\n      newErrors.residentStatus = \"Please select the Resident status\";\n    if (Object.keys(newErrors).length > 0) {\n      setErrors(newErrors);\n      return;\n    }\n    setErrors({});\n    setIsLoading(true);\n    const formData = {\n      ...form,\n      employmentStatus,\n      residentStatus,\n    };\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${id}`,\n        formData\n      );\n      if (response.status === 200) {\n        setTimeout(() => {\n          setIsLoading(false);\n          dispatch(setUser({ id: id, token: token, role: role }));\n          navigate(`/dashboard/${id}`);\n        }, 3000);\n      }\n    } catch (error) {\n      console.error(error);\n      alert(\"An error occurred while submitting the form.\");\n      setIsLoading(false);\n    }\n  };\n\n  const renderOptionButtons = (options, selectedOption, setSelectedOption) =>\n    options.map((option) => (\n      <button\n        key={option}\n        type=\"button\"\n        className={`${styles.optionSingleButton} ${\n          selectedOption === option ? styles.selected : \"\"\n        }`}\n        onClick={() => setSelectedOption(option)}\n      >\n        {option}\n      </button>\n    ));\n  const dataBinding = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserProfile(response.data.data);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  useEffect(() => {\n    dataBinding();\n  }, [id]);\n  useEffect(() => {\n    if (userProfie) {\n      setForm((prevForm) => ({\n        ...prevForm,\n\n        education: userProfie.education || \"\",\n        educationDetails: userProfie.educationDetails || \"\",\n        annualIncome: userProfie.annualIncome || \"\",\n        occupation: userProfie.occupation || \"\",\n        state: userProfie.state || \"\",\n        location: userProfie.location || \"\",\n        citizenship: userProfie.citizenship || \"\",\n      }));\n      setEmploymentStatus(userProfie.employmentStatus || \"\");\n      setResidentStatus(userProfie.residentStatus || \"\");\n    }\n  }, [userProfie]);\n\n  const citizenships = [\n    \"Afghanistan\",\n    \"Albania\",\n    \"Algeria\",\n    \"Andorra\",\n    \"Angola\",\n    \"Antigua and Barbuda\",\n    \"Argentina\",\n    \"Armenia\",\n    \"Australia\",\n    \"Austria\",\n    \"Azerbaijan\",\n    \"Bahamas\",\n    \"Bahrain\",\n    \"Bangladesh\",\n    \"Barbados\",\n    \"Belarus\",\n    \"Belgium\",\n    \"Belize\",\n    \"Benin\",\n    \"Bhutan\",\n    \"Bolivia\",\n    \"Bosnia and Herzegovina\",\n    \"Botswana\",\n    \"Brazil\",\n    \"Brunei\",\n    \"Bulgaria\",\n    \"Burkina Faso\",\n    \"Burundi\",\n    \"Cabo Verde\",\n    \"Cambodia\",\n    \"Cameroon\",\n    \"Canada\",\n    \"Central African Republic\",\n    \"Chad\",\n    \"Chile\",\n    \"China\",\n    \"Colombia\",\n    \"Comoros\",\n    \"Congo (Congo-Brazzaville)\",\n    \"Costa Rica\",\n    \"Croatia\",\n    \"Cuba\",\n    \"Cyprus\",\n    \"Czech Republic\",\n    \"Denmark\",\n    \"Djibouti\",\n    \"Dominica\",\n    \"Dominican Republic\",\n    \"Ecuador\",\n    \"Egypt\",\n    \"El Salvador\",\n    \"Equatorial Guinea\",\n    \"Eritrea\",\n    \"Estonia\",\n    \"Eswatini\",\n    \"Ethiopia\",\n    \"Fiji\",\n    \"Finland\",\n    \"France\",\n    \"Gabon\",\n    \"Gambia\",\n    \"Georgia\",\n    \"Germany\",\n    \"Ghana\",\n    \"Greece\",\n    \"Grenada\",\n    \"Guatemala\",\n    \"Guinea\",\n    \"Guinea-Bissau\",\n    \"Guyana\",\n    \"Haiti\",\n    \"Honduras\",\n    \"Hungary\",\n    \"Iceland\",\n    \"India\",\n    \"Indonesia\",\n    \"Iran\",\n    \"Iraq\",\n    \"Ireland\",\n    \"Israel\",\n    \"Italy\",\n    \"Jamaica\",\n    \"Japan\",\n    \"Jordan\",\n    \"Kazakhstan\",\n    \"Kenya\",\n    \"Kiribati\",\n    \"Kuwait\",\n    \"Kyrgyzstan\",\n    \"Laos\",\n    \"Latvia\",\n    \"Lebanon\",\n    \"Lesotho\",\n    \"Liberia\",\n    \"Libya\",\n    \"Liechtenstein\",\n    \"Lithuania\",\n    \"Luxembourg\",\n    \"Madagascar\",\n    \"Malawi\",\n    \"Malaysia\",\n    \"Maldives\",\n    \"Mali\",\n    \"Malta\",\n    \"Marshall Islands\",\n    \"Mauritania\",\n    \"Mauritius\",\n    \"Mexico\",\n    \"Micronesia\",\n    \"Moldova\",\n    \"Monaco\",\n    \"Mongolia\",\n    \"Montenegro\",\n    \"Morocco\",\n    \"Mozambique\",\n    \"Myanmar (Burma)\",\n    \"Namibia\",\n    \"Nauru\",\n    \"Nepal\",\n    \"Netherlands\",\n    \"New Zealand\",\n    \"Nicaragua\",\n    \"Niger\",\n    \"Nigeria\",\n    \"North Korea\",\n    \"North Macedonia\",\n    \"Norway\",\n    \"Oman\",\n    \"Pakistan\",\n    \"Palau\",\n    \"Panama\",\n    \"Papua New Guinea\",\n    \"Paraguay\",\n    \"Peru\",\n    \"Philippines\",\n    \"Poland\",\n    \"Portugal\",\n    \"Qatar\",\n    \"Romania\",\n    \"Russia\",\n    \"Rwanda\",\n    \"Saint Kitts and Nevis\",\n    \"Saint Lucia\",\n    \"Saint Vincent and the Grenadines\",\n    \"Samoa\",\n    \"San Marino\",\n    \"Sao Tome and Principe\",\n    \"Saudi Arabia\",\n    \"Senegal\",\n    \"Serbia\",\n    \"Seychelles\",\n    \"Sierra Leone\",\n    \"Singapore\",\n    \"Slovakia\",\n    \"Slovenia\",\n    \"Solomon Islands\",\n    \"Somalia\",\n    \"South Africa\",\n    \"South Korea\",\n    \"South Sudan\",\n    \"Spain\",\n    \"Sri Lanka\",\n    \"Sudan\",\n    \"Suriname\",\n    \"Sweden\",\n    \"Switzerland\",\n    \"Syria\",\n    \"Taiwan\",\n    \"Tajikistan\",\n    \"Tanzania\",\n    \"Thailand\",\n    \"Timor-Leste\",\n    \"Togo\",\n    \"Tonga\",\n    \"Trinidad and Tobago\",\n    \"Tunisia\",\n    \"Turkey\",\n    \"Turkmenistan\",\n    \"Tuvalu\",\n    \"Uganda\",\n    \"Ukraine\",\n    \"United Arab Emirates\",\n    \"United Kingdom\",\n    \"United States\",\n    \"Uruguay\",\n    \"Uzbekistan\",\n    \"Vanuatu\",\n    \"Vatican City\",\n    \"Venezuela\",\n    \"Vietnam\",\n    \"Yemen\",\n    \"Zambia\",\n    \"Zimbabwe\",\n    \"Other\",\n  ];\n  const countryCities = {\n    England: [\n      \"London\",\n      \"Manchester\",\n      \"Birmingham\",\n      \"Liverpool\",\n      \"Leeds\",\n      \"Bristol\",\n      \"Sheffield\",\n      \"Newcastle\",\n      \"Nottingham\",\n      \"Leicester\",\n      \"Coventry\",\n      \"Brighton\",\n      \"Cambridge\",\n      \"Oxford\",\n      \"Exeter\",\n      \"Southampton\",\n      \"Portsmouth\",\n      \"Norwich\",\n      \"Plymouth\",\n      \"York\",\n      \"Luton\",\n      \"Blackpool\",\n      \"Bradford\",\n    ],\n    Scotland: [\n      \"Edinburgh\",\n      \"Glasgow\",\n      \"Aberdeen\",\n      \"Dundee\",\n      \"Inverness\",\n      \"Stirling\",\n      \"Perth\",\n      \"Falkirk\",\n      \"Paisley\",\n      \"Livingston\",\n      \"Dunfermline\",\n    ],\n    Wales: [\n      \"Cardiff\",\n      \"Swansea\",\n      \"Newport\",\n      \"Bangor\",\n      \"Wrexham\",\n      \"Barry\",\n      \"Bridgend\",\n      \"Merthyr Tydfil\",\n      \"Caerphilly\",\n      \"Llanelli\",\n    ],\n    \"Northern Ireland\": [\n      \"Belfast\",\n      \"Derry\",\n      \"Lisburn\",\n      \"Newry\",\n      \"Armagh\",\n      \"Bangor\",\n      \"Antrim\",\n      \"Coleraine\",\n      \"Carrickfergus\",\n      \"Ballymena\",\n    ],\n  };\n\n  return (\n    <div className={styles.mainContainer}>\n      {isLoading && (\n        <div className=\"loader-div\">\n          <Loader />{\" \"}\n        </div>\n      )}\n      <div className={styles.progressDiv}>\n        <div className={styles.progressHeading}>You have completed</div>\n        <div className={styles.progressHeading2}>90%</div>\n      </div>\n      <div className={styles.container}>\n        {/* Progress Bar */}\n\n        {/* Main Content */}\n        <div className={styles.contentDiv}>\n          {/* Image Section */}\n\n          {/* <div className={styles.imageDisplayDiv}>\n            <img\n              src={image} \n              alt=\"Couple\"\n              className={styles.image}\n            />\n          </div> */}\n\n          {/* Form Section */}\n\n          <div className={styles.formContainer}>\n            <h3 className={styles.formHeading}>\n              {\" \"}\n              {userProfie.relation === \"Myself\"\n                ? \"Tell Us About yourself\"\n                : `Tell Us About your ${userProfie.relation} `}\n            </h3>\n\n            <form className={styles.form} onSubmit={handleSubmit}>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Highest Education</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.education || \"\"}\n                      onChange={handleChange}\n                      name=\"education\"\n                    >\n                      <option value=\"\">Select Your Highest Education</option>\n                      <option value=\"Below 10\">Below 10th</option>\n                      <option value=\"10th\">10th (SSLC/Matriculation)</option>\n                      <option value=\"12th Science\">12th - Science</option>\n                      <option value=\"12th Humanities\">12th - Humanities</option>\n                      <option value=\"12th Commerce\">12th - Commerce</option>\n                      <option value=\"Diploma\">Diploma</option>\n                      <option value=\"BSc\">BSc (Bachelor of Science)</option>\n                      <option value=\"BA\">BA (Bachelor of Arts)</option>\n                      <option value=\"BCom\">BCom (Bachelor of Commerce)</option>\n                      <option value=\"BTech\">\n                        BTech (Bachelor of Technology)\n                      </option>\n                      <option value=\"BE\">BE (Bachelor of Engineering)</option>\n                      <option value=\"BBA\">\n                        BBA (Bachelor of Business Administration)\n                      </option>\n                      <option value=\"BCA\">\n                        BCA (Bachelor of Computer Applications)\n                      </option>\n                      <option value=\"LLB\">LLB (Bachelor of Law)</option>\n                      <option value=\"MBBS\">\n                        MBBS (Bachelor of Medicine & Surgery)\n                      </option>\n                      <option value=\"BPharm\">\n                        BPharm (Bachelor of Pharmacy)\n                      </option>\n                      <option value=\"BDS\">\n                        BDS (Bachelor of Dental Surgery)\n                      </option>\n                      <option value=\"MSC\">MSc (Master of Science)</option>\n                      <option value=\"MA\">MA (Master of Arts)</option>\n                      <option value=\"MCom\">MCom (Master of Commerce)</option>\n                      <option value=\"MTech\">\n                        MTech (Master of Technology)\n                      </option>\n                      <option value=\"ME\">ME (Master of Engineering)</option>\n                      <option value=\"MBA\">\n                        MBA (Master of Business Administration)\n                      </option>\n                      <option value=\"MCA\">\n                        MCA (Master of Computer Applications)\n                      </option>\n                      <option value=\"LLM\">LLM (Master of Law)</option>\n                      <option value=\"MD\">MD (Doctor of Medicine)</option>\n                      <option value=\"MS\">MS (Master of Surgery)</option>\n                      <option value=\"MPhil\">\n                        MPhil (Master of Philosophy)\n                      </option>\n                      <option value=\"PhD\">PhD (Doctorate)</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Education in Detail</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <input\n                      type=\"text\"\n                      className={styles.input}\n                      placeholder=\"Education in Details\"\n                      name=\"educationDetails\"\n                      onChange={handleChange}\n                      value={form.educationDetails || \"\"}\n                    />\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Employed in</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroupButtons}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\n                          \"Government\",\n                          \"Private\",\n                          \"Business\",\n                          \"Defence\",\n                          \"SelfEmployed\",\n                          \"NotWorking\",\n                        ],\n                        employmentStatus,\n                        setEmploymentStatus\n                      )}\n                    </div>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Annual Income</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.annualIncome || \"\"}\n                      onChange={handleChange}\n                      name=\"annualIncome\"\n                    >\n                      <option value=\"\">Select Your Annual Income</option>\n                      <option value=\"under_15000\">Under £15,000</option>\n                      <option value=\"15000_25000\">£15,000 - £25,000</option>\n                      <option value=\"25000_35000\">£25,000 - £35,000</option>\n                      <option value=\"35000_50000\">£35,000 - £50,000</option>\n                      <option value=\"50000_75000\">£50,000 - £75,000</option>\n                      <option value=\"75000_100000\">£75,000 - £100,000</option>\n                      <option value=\"100000_150000\">£100,000 - £150,000</option>\n                      <option value=\"150000_250000\">£150,000 - £250,000</option>\n                      <option value=\"over_250000\">Over £250,000</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                  {errors.employmentStatus && (\n                    <p className={styles.errorMessage}>\n                      {errors.employmentStatus}\n                    </p>\n                  )}\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Occupation</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.occupation || \"\"}\n                      onChange={handleChange}\n                      name=\"occupation\"\n                    >\n                      <option value=\"\">Select Your Occupation</option>\n\n                      <option value=\"Doctor\">Doctor</option>\n                      <option value=\"Nurse\">Nurse</option>\n                      <option value=\"Pharmacist\">Pharmacist</option>\n                      <option value=\"Dentist\">Dentist</option>\n                      <option value=\"Paramedic\">Paramedic</option>\n                      <option value=\"Physiotherapist\">Physiotherapist</option>\n                      <option value=\"Care Worker\">Care Worker</option>\n\n                      <option value=\"Software Engineer\">\n                        Software Engineer\n                      </option>\n                      <option value=\"Civil Engineer\">Civil Engineer</option>\n                      <option value=\"Mechanical Engineer\">\n                        Mechanical Engineer\n                      </option>\n                      <option value=\"Electrical Engineer\">\n                        Electrical Engineer\n                      </option>\n                      <option value=\"Data Scientist\">Data Scientist</option>\n                      <option value=\"It Consultant\">IT Consultant</option>\n\n                      <option value=\"Teacher\">Teacher</option>\n                      <option value=\"Lecturer\">University Lecturer</option>\n                      <option value=\"Teaching Assistant\">\n                        Teaching Assistant\n                      </option>\n\n                      <option value=\"Accountant\">Accountant</option>\n                      <option value=\"Banker\">Banker</option>\n                      <option value=\"Financial Analyst\">\n                        Financial Analyst\n                      </option>\n                      <option value=\"Solicitor\">Solicitor</option>\n                      <option value=\"Barrister\">Barrister</option>\n\n                      <option value=\"Electrician\">Electrician</option>\n                      <option value=\"Plumber\">Plumber</option>\n                      <option value=\"Carpenter\">Carpenter</option>\n                      <option value=\"Mechanic\">Mechanic</option>\n\n                      <option value=\"Police Officer\">Police Officer</option>\n                      <option value=\"Firefighter\">Firefighter</option>\n                      <option value=\"Armed Forces\">Armed Forces</option>\n                      <option value=\"Social Worker\">Social Worker</option>\n\n                      <option value=\"Chef\">Chef</option>\n                      <option value=\"Hotel Manager\">Hotel Manager</option>\n                      <option value=\"Retail Manager\">Retail Manager</option>\n                      <option value=\"Customer Service\">\n                        Customer Service Representative\n                      </option>\n\n                      <option value=\"Journalist\">Journalist</option>\n                      <option value=\"Graphic Designer\">Graphic Designer</option>\n                      <option value=\"Actor\">Actor</option>\n                      <option value=\"Musician\">Musician</option>\n\n                      <option value=\"Truck Driver\">Truck Driver</option>\n                      <option value=\"Delivery Driver\">Delivery Driver</option>\n                      <option value=\"Airline Pilot\">Airline Pilot</option>\n\n                      <option value=\"Self Employed\">Self-Employed</option>\n                      <option value=\"Unemployed\">Unemployed</option>\n                      <option value=\"Student\">Student</option>\n                      <option value=\"Retired\">Retired</option>\n                      <option value=\"Others\">Others</option>\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Country</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      required\n                      value={form.country}\n                      onChange={handleChange}\n                      name=\"country\"\n                    >\n                      <option value=\"\">Select Your Country</option>\n                      {Object.keys(countryCities).map((country) => (\n                        <option key={country} value={country}>\n                          {country}\n                        </option>\n                      ))}\n                    </select>\n                  </div>\n                </div>\n              </div>\n              {form.country && (\n                <div className={styles.formGroup}>\n                  <div className={styles.fieldGroup}>\n                    <div className={styles.labelGroup}>\n                      <label>City</label>\n                      <p className={styles.starHead}>*</p>\n                    </div>\n                    <div className={styles.inputGroup}>\n                      <select\n                        className={styles.input}\n                        required\n                        value={form.location}\n                        onChange={handleChange}\n                        name=\"location\"\n                      >\n                        <option value=\"\">Select Your City</option>\n                        {countryCities[form.country].map((location) => (\n                          <option key={location} value={location}>\n                            {location}\n                          </option>\n                        ))}\n                      </select>\n                    </div>\n                  </div>\n                </div>\n              )}\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Citizenship</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <select\n                      className={styles.input}\n                      name=\"citizenship\"\n                      value={form.citizenship || \"\"}\n                      onChange={handleChange}\n                    >\n                      <option value=\"\" disabled>\n                        Select Citizenship\n                      </option>\n                      {citizenships.map((country) => (\n                        <option key={country} value={country}>\n                          {country}\n                        </option>\n                      ))}\n                    </select>\n                  </div>\n                  <div className={styles.helperTextDiv}></div>\n                </div>\n              </div>\n\n              <div className={styles.formGroup}>\n                <div className={styles.fieldGroup}>\n                  <div className={styles.labelGroup}>\n                    <label>Resident Status</label>\n                    <p className={styles.starHead}>*</p>\n                  </div>\n                  <div className={styles.inputGroup}>\n                    <div className={styles.optionButtonOuterDiv}>\n                      {renderOptionButtons(\n                        [\n                          \"Permanent Resident\",\n                          \"Work Permit\",\n                          \"Temporary Visa\",\n                          \"Student Visa\",\n                        ],\n                        residentStatus,\n                        setResidentStatus\n                      )}\n                    </div>\n                  </div>\n                  {errors.residentStatus && (\n                    <p className={styles.errorMessage}>\n                      {errors.residentStatusStatus}\n                    </p>\n                  )}\n                </div>\n              </div>\n              <div className={styles.btnDiv}>\n                <button\n                  type=\"submit\"\n                  className={styles.submitButton}\n                  disabled={isLoading}\n                >\n                  Complete\n                </button>\n              </div>\n              <div className={styles.mandatoryField}>* Mandatory fields</div>\n            </form>\n          </div>\n        </div>\n      </div>\n\n      {/* Footer */}\n      <div className={styles.footer}>\n        <p>Copyright © 2025. All rights reserved</p>\n      </div>\n    </div>\n  );\n}\n\nexport default FormPage5;\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContainer\":\"dashboard_mainContainer__f1J16\",\"SubContainer\":\"dashboard_SubContainer__cMPu4\",\"Container\":\"dashboard_Container__+WoPd\",\"OuterBox\":\"dashboard_OuterBox__VIfzv\",\"trHeading\":\"dashboard_trHeading__2DhPx\",\"adContainer\":\"dashboard_adContainer__W0Rvz\",\"SmallBox\":\"dashboard_SmallBox__ivwRB\",\"BigBox\":\"dashboard_BigBox__Fl7SI\",\"ProfileDiv\":\"dashboard_ProfileDiv__CrQSL\",\"ProfileCard\":\"dashboard_ProfileCard__7i-hi\",\"ProfileImage\":\"dashboard_ProfileImage__Cuglf\",\"ProfileDetails\":\"dashboard_ProfileDetails__fflN2\",\"Greeting\":\"dashboard_Greeting__g1FXO\",\"UserName\":\"dashboard_UserName__4L5HK\",\"MemberId\":\"dashboard_MemberId__ZsieV\",\"MembershipStatus\":\"dashboard_MembershipStatus__YJZHl\",\"UpgradeButton\":\"dashboard_UpgradeButton__w9J6z\",\"ProfileCompletion\":\"dashboard_ProfileCompletion__Gl2fe\",\"LinkIcon\":\"dashboard_LinkIcon__pbXun\",\"link\":\"dashboard_link__Y9qN4\",\"Icon\":\"dashboard_Icon__f70iT\",\"SettingsMain\":\"dashboard_SettingsMain__gYWAY\",\"Dropdown\":\"dashboard_Dropdown__4QtWh\",\"TopRecommendation\":\"dashboard_TopRecommendation__3ln48\",\"SeeAll\":\"dashboard_SeeAll__cUEbE\",\"SpanArrow\":\"dashboard_SpanArrow__Z+1dr\",\"trContentDisplay\":\"dashboard_trContentDisplay__3A+wM\",\"TrContent\":\"dashboard_TrContent__1k8dx\",\"seeAllButton\":\"dashboard_seeAllButton__YPywy\",\"seeAllLink\":\"dashboard_seeAllLink__ZGa8P\",\"trCard\":\"dashboard_trCard__vhvTN\",\"trCardImg\":\"dashboard_trCardImg__oFWvZ\",\"cardImage\":\"dashboard_cardImage__FDToM\",\"trCardDetails\":\"dashboard_trCardDetails__7mzqW\",\"trUserName\":\"dashboard_trUserName__+tJ7c\",\"trUserDetails\":\"dashboard_trUserDetails__Qij2-\",\"LikeButton\":\"dashboard_LikeButton__69f1w\",\"likedHeartBefore\":\"dashboard_likedHeartBefore__OwEKo\",\"likedHeart\":\"dashboard_likedHeart__6sfEV\",\"PreferenceDiv\":\"dashboard_PreferenceDiv__YaFjD\",\"preferenceContent\":\"dashboard_preferenceContent__gSARG\",\"preferenceContentCard\":\"dashboard_preferenceContentCard__wU+k3\",\"PreferenceNameDiv\":\"dashboard_PreferenceNameDiv__n2VAF\",\"PreferenceName\":\"dashboard_PreferenceName__lcEGI\",\"ExploreMatrimonyDiv\":\"dashboard_ExploreMatrimonyDiv__WAQNG\",\"ExploreContent\":\"dashboard_ExploreContent__L2cW+\",\"ExploreContentIcons\":\"dashboard_ExploreContentIcons__s4TI3\",\"ExploreIcons\":\"dashboard_ExploreIcons__d-4V1\",\"ExplorePara\":\"dashboard_ExplorePara__ghuna\",\"DropdownSecond\":\"dashboard_DropdownSecond__6SFGi\",\"DropdownMenuSecond\":\"dashboard_DropdownMenuSecond__WoVmT\",\"show\":\"dashboard_show__AuFu6\",\"DropdownItemSecond\":\"dashboard_DropdownItemSecond__Ex5DF\",\"HelpButton\":\"dashboard_HelpButton__jmGyy\",\"HamburgerMain\":\"dashboard_HamburgerMain__4IQTz\",\"Hamburger\":\"dashboard_Hamburger__POq7+\",\"FilterHam\":\"dashboard_FilterHam__4RM2N\",\"ham1\":\"dashboard_ham1__BMrDN\",\"ham2\":\"dashboard_ham2__w+wwD\",\"ham3\":\"dashboard_ham3__cYQeY\",\"open1\":\"dashboard_open1__SwChs\",\"open2\":\"dashboard_open2__KJ5u8\",\"open3\":\"dashboard_open3__RwzKe\",\"drawer\":\"dashboard_drawer__iCKII\",\"drawerOpen\":\"dashboard_drawerOpen__M-vbK\",\"drawerClosed\":\"dashboard_drawerClosed__5RLzk\",\"overlay\":\"dashboard_overlay__omcCl\",\"overlayActive\":\"dashboard_overlayActive__2wsVQ\",\"contentDimmed\":\"dashboard_contentDimmed__IjZ0N\",\"DropdownMenuSecondSmall\":\"dashboard_DropdownMenuSecondSmall__U81zr\",\"show2\":\"dashboard_show2__dMWoh\",\"PageSelection\":\"dashboard_PageSelection__msUlp\",\"heading\":\"dashboard_heading__0nNdl\",\"animateIn\":\"dashboard_animateIn__El+9a\",\"tabSelected\":\"dashboard_tabSelected__fkRvn\",\"FilterDiv\":\"dashboard_FilterDiv__CtkwM\",\"FilterDivMain\":\"dashboard_FilterDivMain__byOHy\",\"FilterProfiles\":\"dashboard_FilterProfiles__KdsMC\",\"FilterProfilesHeading\":\"dashboard_FilterProfilesHeading__wZ3LU\",\"BasicDetailsMainDiv\":\"dashboard_BasicDetailsMainDiv__BQlJ9\",\"ProfessionalDetailsMainDiv\":\"dashboard_ProfessionalDetailsMainDiv__pZ4tC\",\"BasicDetailsHead\":\"dashboard_BasicDetailsHead__KpS8C\",\"ProfessionalDetailsHead\":\"dashboard_ProfessionalDetailsHead__3KVGN\",\"BasicDetailsDiv\":\"dashboard_BasicDetailsDiv__p2eT9\",\"ProfessionalDetailsDiv\":\"dashboard_ProfessionalDetailsDiv__QpV+m\",\"bdSelect\":\"dashboard_bdSelect__jcUN1\",\"pdSelect\":\"dashboard_pdSelect__w5Pyl\",\"textBox\":\"dashboard_textBox__xgTBO\",\"LocationDetailsMainDiv\":\"dashboard_LocationDetailsMainDiv__9LRFj\",\"penIconDiv\":\"dashboard_penIconDiv__4jf4-\",\"textBoxHead\":\"dashboard_textBoxHead__FOCFV\",\"textBoxPara\":\"dashboard_textBoxPara__UYKyR\",\"textBoxSubPara\":\"dashboard_textBoxSubPara__YWxqL\",\"FilterDivButtonsMain\":\"dashboard_FilterDivButtonsMain__NTDXw\",\"FilterDivButtonOne\":\"dashboard_FilterDivButtonOne__TxXu3\",\"modal\":\"dashboard_modal__UskgW\",\"fadeIn\":\"dashboard_fadeIn__O0yTg\",\"modalContent\":\"dashboard_modalContent__ik5GM\",\"slideIn\":\"dashboard_slideIn__QNtJZ\",\"modalButtons\":\"dashboard_modalButtons__Fv0Od\",\"AdOffers\":\"dashboard_AdOffers__eUDbC\",\"AdOffersHead\":\"dashboard_AdOffersHead__V9pjy\",\"AdOffersMain\":\"dashboard_AdOffersMain__bhlY2\",\"AdOffersPrice\":\"dashboard_AdOffersPrice__tHMps\",\"bounce\":\"dashboard_bounce__haQRD\",\"AdOffersPara\":\"dashboard_AdOffersPara__pi43w\",\"paymentButtonAds\":\"dashboard_paymentButtonAds__gqrrH\",\"modal-overlay\":\"dashboard_modal-overlay__7RIqY\",\"modalPop\":\"dashboard_modalPop__QVU0J\",\"PdfModalOverlay\":\"dashboard_PdfModalOverlay__ZNvwF\",\"PdfModalContent\":\"dashboard_PdfModalContent__jmbLa\",\"PdfPreview\":\"dashboard_PdfPreview__2zC3F\",\"PdfModalActions\":\"dashboard_PdfModalActions__0c4Wz\",\"PdfYesButton\":\"dashboard_PdfYesButton__MyXky\",\"PdfNoButton\":\"dashboard_PdfNoButton__itRey\",\"sideBar\":\"dashboard_sideBar__UvMgP\",\"Adsplacement\":\"dashboard_Adsplacement__eMO+I\",\"AdsCarousel\":\"dashboard_AdsCarousel__0yYpg\",\"heart\":\"dashboard_heart__bwu8T\",\"fall\":\"dashboard_fall__WMio5\",\"AdplacementCard\":\"dashboard_AdplacementCard__9s-y7\",\"active\":\"dashboard_active__couXf\",\"fade-in\":\"dashboard_fade-in__oUbKh\",\"AdImgDiv\":\"dashboard_AdImgDiv__SrEBP\",\"AdTitle\":\"dashboard_AdTitle__35kTo\",\"silverHeader\":\"dashboard_silverHeader__3CZxb\",\"goldHeader\":\"dashboard_goldHeader__NMrqA\",\"platinumHeader\":\"dashboard_platinumHeader__tIgwo\",\"comingSoon\":\"dashboard_comingSoon__+EBs0\",\"animate-draw\":\"dashboard_animate-draw__vk-AA\",\"draw\":\"dashboard_draw__U3B8T\",\"Adplacement2\":\"dashboard_Adplacement2__xQMDt\",\"FilterIcon\":\"dashboard_FilterIcon__UmqKF\",\"pop\":\"dashboard_pop__osu39\"};","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <path\n      d=\"M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"136\"\n      y1=\"64\"\n      x2=\"192\"\n      y2=\"120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <polyline\n      points=\"164 200 204 160 192 120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"44\"\n      y1=\"156\"\n      x2=\"100\"\n      y2=\"212\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M192,120,136,64l26.3-26.3a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4Z\"\n      opacity=\"0.2\"\n    />\n    <path\n      d=\"M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"136\"\n      y1=\"64\"\n      x2=\"192\"\n      y2=\"120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <polyline\n      points=\"160 192 200 152 192 120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"40.5\"\n      y1=\"160.5\"\n      x2=\"95.5\"\n      y2=\"215.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M228.7,88A15.9,15.9,0,0,0,224,76.7L179.3,32a16.1,16.1,0,0,0-22.6,0L36.7,152a16,16,0,0,0-3.6,5.4l-.3.8a17,17,0,0,0-.8,5.1V208a16,16,0,0,0,16,16H92.7a14.4,14.4,0,0,0,5.1-.9l.8-.2a16,16,0,0,0,5.4-3.6l83.7-83.7,3.4,13.9-36.8,36.8a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0l40-40a8.5,8.5,0,0,0,2.1-7.6l-6.9-27.6L224,99.3A15.9,15.9,0,0,0,228.7,88ZM192,108.7,147.3,64,168,43.3,212.7,88Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <path\n      d=\"M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"136\"\n      y1=\"64\"\n      x2=\"192\"\n      y2=\"120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <polyline\n      points=\"160 192 200 152 192 120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"40.5\"\n      y1=\"160.5\"\n      x2=\"95.5\"\n      y2=\"215.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <path\n      d=\"M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"136\"\n      y1=\"64\"\n      x2=\"192\"\n      y2=\"120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <polyline\n      points=\"160 192 200 152 192 120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"40.5\"\n      y1=\"160.5\"\n      x2=\"95.5\"\n      y2=\"215.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <path\n      d=\"M92.7,216H48a8,8,0,0,1-8-8V163.3a7.9,7.9,0,0,1,2.3-5.6l120-120a8,8,0,0,1,11.4,0l44.6,44.6a8,8,0,0,1,0,11.4l-120,120A7.9,7.9,0,0,1,92.7,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"136\"\n      y1=\"64\"\n      x2=\"192\"\n      y2=\"120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <polyline\n      points=\"160 192 200 152 192 120\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"40.5\"\n      y1=\"160.5\"\n      x2=\"95.5\"\n      y2=\"215.5\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Pen = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nPen.displayName = \"Pen\";\n\nexport default Pen;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      opacity=\"0.2\"\n    />\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M176,32a60,60,0,0,0-48,24A60,60,0,0,0,20,92c0,71.9,99.9,128.6,104.1,131a7.8,7.8,0,0,0,3.9,1,7.6,7.6,0,0,0,3.9-1,314.3,314.3,0,0,0,51.5-37.6C218.3,154,236,122.6,236,92A60,60,0,0,0,176,32Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <path\n      d=\"M128,216S28,160,28,92A52,52,0,0,1,128,72h0A52,52,0,0,1,228,92C228,160,128,216,128,216Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Heart = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nHeart.displayName = \"Heart\";\n\nexport default Heart;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"96\"\n      r=\"64\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M31,216a112,112,0,0,1,194,0\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <circle cx=\"128\" cy=\"96\" r=\"64\" opacity=\"0.2\" />\n    <circle\n      cx=\"128\"\n      cy=\"96\"\n      r=\"64\"\n      fill=\"none\"\n      stroke={color}\n      strokeMiterlimit=\"10\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M31,216a112,112,0,0,1,194,0\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M231.9,212a120.7,120.7,0,0,0-67.1-54.2,72,72,0,1,0-73.6,0A120.7,120.7,0,0,0,24.1,212a7.7,7.7,0,0,0,0,8,7.8,7.8,0,0,0,6.9,4H225a7.8,7.8,0,0,0,6.9-4A7.7,7.7,0,0,0,231.9,212Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"96\"\n      r=\"64\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M31,216a112,112,0,0,1,194,0\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"96\"\n      r=\"64\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M31,216a112,112,0,0,1,194,0\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"96\"\n      r=\"64\"\n      fill=\"none\"\n      stroke={color}\n      strokeMiterlimit=\"10\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M31,216a112,112,0,0,1,194,0\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst User = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nUser.displayName = \"User\";\n\nexport default User;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"44\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.2-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M211.8,133.1c.3-3.4,0-10.2,0-10.2l16.6-22.1a103.2,103.2,0,0,0-10.2-24.6l-27.3-3.9q-3.5-3.7-7.2-7.2l-3.9-27.3a102.2,102.2,0,0,0-24.6-10.2L133.1,44.2a57.9,57.9,0,0,0-10.2,0L100.8,27.6A103.2,103.2,0,0,0,76.2,37.8L72.3,65.1q-3.7,3.5-7.2,7.2L37.8,76.2a102.2,102.2,0,0,0-10.2,24.6l16.6,22.1c-.2,3.4,0,10.2,0,10.2L27.6,155.2a103.2,103.2,0,0,0,10.2,24.6l27.3,3.9q3.5,3.8,7.2,7.2l3.9,27.3a102.2,102.2,0,0,0,24.6,10.2l22.1-16.6a57.9,57.9,0,0,0,10.2,0l22.1,16.6a103.2,103.2,0,0,0,24.6-10.2l3.9-27.3c2.5-2.3,7.2-7.2,7.2-7.2l27.3-3.9a102.2,102.2,0,0,0,10.2-24.6ZM128,176a48,48,0,1,1,48-48A48,48,0,0,1,128,176Z\"\n      opacity=\"0.2\"\n    />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"48\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.2-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M234.8,150.4l-14.9-19.8c.1-1.8,0-3.7,0-5.1l14.9-19.9a7.8,7.8,0,0,0,1.3-6.9,114.8,114.8,0,0,0-10.9-26.4,8.2,8.2,0,0,0-5.8-4l-24.5-3.5-3.7-3.7-3.5-24.5a8.4,8.4,0,0,0-3.9-5.8,117.5,117.5,0,0,0-26.5-10.9,7.8,7.8,0,0,0-6.9,1.3L130.6,36h-5.2L105.6,21.2a7.8,7.8,0,0,0-6.9-1.3A114.8,114.8,0,0,0,72.3,30.8a8.2,8.2,0,0,0-4,5.8L64.8,61.1l-3.7,3.7L36.6,68.3a8.2,8.2,0,0,0-5.8,4A114.8,114.8,0,0,0,19.9,98.7a7.8,7.8,0,0,0,1.3,6.9l14.9,19.8v5.1L21.2,150.4a7.8,7.8,0,0,0-1.3,6.9,114.8,114.8,0,0,0,10.9,26.4,8.2,8.2,0,0,0,5.8,4l24.5,3.5,3.7,3.7,3.5,24.5a8.2,8.2,0,0,0,4,5.8,114.8,114.8,0,0,0,26.4,10.9,7.6,7.6,0,0,0,2.1.3,7.7,7.7,0,0,0,4.8-1.6L125.4,220h5.2l19.8,14.8a7.8,7.8,0,0,0,6.9,1.3,113,113,0,0,0,26.4-10.9,8.2,8.2,0,0,0,4-5.8l3.5-24.6c1.2-1.2,2.6-2.5,3.6-3.6l24.6-3.5a8.2,8.2,0,0,0,5.8-4,114.8,114.8,0,0,0,10.9-26.4A7.8,7.8,0,0,0,234.8,150.4ZM128,172a44,44,0,1,1,44-44A44,44,0,0,1,128,172Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"48\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"48\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"48\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M183.7,65.1q3.8,3.5,7.2,7.2l27.3,3.9a103.2,103.2,0,0,1,10.2,24.6l-16.6,22.1s.3,6.8,0,10.2l16.6,22.1a102.2,102.2,0,0,1-10.2,24.6l-27.3,3.9s-4.7,4.9-7.2,7.2l-3.9,27.3a103.2,103.2,0,0,1-24.6,10.2l-22.1-16.6a57.9,57.9,0,0,1-10.2,0l-22.1,16.6a102.2,102.2,0,0,1-24.6-10.2l-3.9-27.3q-3.7-3.5-7.2-7.2l-27.3-3.9a103.2,103.2,0,0,1-10.2-24.6l16.6-22.1s-.3-6.8,0-10.2L27.6,100.8A102.2,102.2,0,0,1,37.8,76.2l27.3-3.9q3.5-3.7,7.2-7.2l3.9-27.3a103.2,103.2,0,0,1,24.6-10.2l22.1,16.6a57.9,57.9,0,0,1,10.2,0l22.1-16.6a102.2,102.2,0,0,1,24.6,10.2Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Gear = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nGear.displayName = \"Gear\";\n\nexport default Gear;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"96\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <circle cx=\"128\" cy=\"176\" r=\"16\" />\n    <path\n      d=\"M128,136a28,28,0,1,0-28-28\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <circle cx=\"128\" cy=\"128\" r=\"96\" opacity=\"0.2\" />\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"96\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle cx=\"128\" cy=\"180\" r=\"12\" />\n    <path\n      d=\"M128,144v-8a28,28,0,1,0-28-28\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M128,24A104,104,0,1,0,232,128,104.2,104.2,0,0,0,128,24Zm0,168a12,12,0,1,1,12-12A12,12,0,0,1,128,192Zm8-48.9v.9a8,8,0,0,1-16,0v-8a8,8,0,0,1,8-8,20,20,0,1,0-20-20,8,8,0,0,1-16,0,36,36,0,1,1,44,35.1Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"96\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <circle cx=\"128\" cy=\"180\" r=\"10\" />\n    <path\n      d=\"M128,144v-8a28,28,0,1,0-28-28\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"96\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <circle cx=\"128\" cy=\"180\" r=\"8\" />\n    <path\n      d=\"M128,144v-8a28,28,0,1,0-28-28\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <circle\n      cx=\"128\"\n      cy=\"128\"\n      r=\"96\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle cx=\"128\" cy=\"180\" r=\"12\" />\n    <path\n      d=\"M128,144v-8a28,28,0,1,0-28-28\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Question = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nQuestion.displayName = \"Question\";\n\nexport default Question;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <polyline\n      points=\"172 104 113.3 160 84 132\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      opacity=\"0.2\"\n    />\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <polyline\n      points=\"172 104 113.3 160 84 132\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M208,40H48A16,16,0,0,0,32,56v58.7c0,89.4,75.8,119.1,91,124.1a16,16,0,0,0,10,0c15.2-5,91-34.7,91-124.1V56A16,16,0,0,0,208,40Zm-30.5,69.8-58.6,56a8.1,8.1,0,0,1-5.6,2.2,7.9,7.9,0,0,1-5.5-2.2l-29.3-28a8,8,0,1,1,11-11.6l23.8,22.7,53.2-50.7a8,8,0,0,1,11,11.6Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <polyline\n      points=\"172 104 113.3 160 84 132\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <polyline\n      points=\"172 104 113.3 160 84 132\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <path\n      d=\"M40,114.7V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.7c0,84-71.3,111.8-85.5,116.5a7.2,7.2,0,0,1-5,0C111.3,226.5,40,198.7,40,114.7Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <polyline\n      points=\"172 104 113.3 160 84 132\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst ShieldCheck = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nShieldCheck.displayName = \"ShieldCheck\";\n\nexport default ShieldCheck;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <polyline\n      points=\"174 86 216 128 174 170\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"128\"\n      x2=\"216\"\n      y2=\"128\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <polyline\n      points=\"174 86 216 128 174 170\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"128\"\n      x2=\"216\"\n      y2=\"128\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M221.7,133.7l-42,42A8.3,8.3,0,0,1,174,178a7.7,7.7,0,0,1-3-.6,8,8,0,0,1-5-7.4V136H104a8,8,0,0,1,0-16h62V86a8,8,0,0,1,5-7.4,8.2,8.2,0,0,1,8.7,1.7l42,42A8.1,8.1,0,0,1,221.7,133.7ZM104,208H48V48h56a8,8,0,0,0,0-16H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16h56a8,8,0,0,0,0-16Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <polyline\n      points=\"174 86 216 128 174 170\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"128\"\n      x2=\"216\"\n      y2=\"128\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <polyline\n      points=\"174 86 216 128 174 170\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"128\"\n      x2=\"216\"\n      y2=\"128\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <polyline\n      points=\"174 86 216 128 174 170\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"128\"\n      x2=\"216\"\n      y2=\"128\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M104,216H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst SignOut = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nSignOut.displayName = \"SignOut\";\n\nexport default SignOut;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      opacity=\"0.2\"\n    />\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M224.6,51.9a59.5,59.5,0,0,0-43-19.9,60.5,60.5,0,0,0-44,17.6L128,59.1l-7.5-7.4C97.2,28.3,59.2,26.3,35.9,47.4a59.9,59.9,0,0,0-2.3,87l83.1,83.1a15.9,15.9,0,0,0,22.6,0l81-81C243.7,113.2,245.6,75.2,224.6,51.9Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <path\n      d=\"M133.7,211.9l81-81c19.9-20,22.8-52.7,4-73.6a52,52,0,0,0-75.5-2.1L128,70.5,114.9,57.3c-20-19.9-52.7-22.8-73.6-4a52,52,0,0,0-2.1,75.5l83.1,83.1A8.1,8.1,0,0,0,133.7,211.9Z\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst HeartStraight = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nHeartStraight.displayName = \"HeartStraight\";\n\nexport default HeartStraight;\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach((key) => {\n    PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n    (typeof Blob !== \"undefined\" &&\n        Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = (obj) => {\n    return typeof ArrayBuffer.isView === \"function\"\n        ? ArrayBuffer.isView(obj)\n        : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n    if (withNativeBlob && data instanceof Blob) {\n        if (supportsBinary) {\n            return callback(data);\n        }\n        else {\n            return encodeBlobAsBase64(data, callback);\n        }\n    }\n    else if (withNativeArrayBuffer &&\n        (data instanceof ArrayBuffer || isView(data))) {\n        if (supportsBinary) {\n            return callback(data);\n        }\n        else {\n            return encodeBlobAsBase64(new Blob([data]), callback);\n        }\n    }\n    // plain string\n    return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n    const fileReader = new FileReader();\n    fileReader.onload = function () {\n        const content = fileReader.result.split(\",\")[1];\n        callback(\"b\" + (content || \"\"));\n    };\n    return fileReader.readAsDataURL(data);\n};\nfunction toArray(data) {\n    if (data instanceof Uint8Array) {\n        return data;\n    }\n    else if (data instanceof ArrayBuffer) {\n        return new Uint8Array(data);\n    }\n    else {\n        return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n    }\n}\nlet TEXT_ENCODER;\nexport function encodePacketToBinary(packet, callback) {\n    if (withNativeBlob && packet.data instanceof Blob) {\n        return packet.data.arrayBuffer().then(toArray).then(callback);\n    }\n    else if (withNativeArrayBuffer &&\n        (packet.data instanceof ArrayBuffer || isView(packet.data))) {\n        return callback(toArray(packet.data));\n    }\n    encodePacket(packet, false, (encoded) => {\n        if (!TEXT_ENCODER) {\n            TEXT_ENCODER = new TextEncoder();\n        }\n        callback(TEXT_ENCODER.encode(encoded));\n    });\n}\nexport { encodePacket };\n","// imported from https://github.com/socketio/base64-arraybuffer\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n    let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n    for (i = 0; i < len; i += 3) {\n        base64 += chars[bytes[i] >> 2];\n        base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n        base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n        base64 += chars[bytes[i + 2] & 63];\n    }\n    if (len % 3 === 2) {\n        base64 = base64.substring(0, base64.length - 1) + '=';\n    }\n    else if (len % 3 === 1) {\n        base64 = base64.substring(0, base64.length - 2) + '==';\n    }\n    return base64;\n};\nexport const decode = (base64) => {\n    let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n    if (base64[base64.length - 1] === '=') {\n        bufferLength--;\n        if (base64[base64.length - 2] === '=') {\n            bufferLength--;\n        }\n    }\n    const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n    for (i = 0; i < len; i += 4) {\n        encoded1 = lookup[base64.charCodeAt(i)];\n        encoded2 = lookup[base64.charCodeAt(i + 1)];\n        encoded3 = lookup[base64.charCodeAt(i + 2)];\n        encoded4 = lookup[base64.charCodeAt(i + 3)];\n        bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n        bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n        bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n    return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE, } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nexport const decodePacket = (encodedPacket, binaryType) => {\n    if (typeof encodedPacket !== \"string\") {\n        return {\n            type: \"message\",\n            data: mapBinary(encodedPacket, binaryType),\n        };\n    }\n    const type = encodedPacket.charAt(0);\n    if (type === \"b\") {\n        return {\n            type: \"message\",\n            data: decodeBase64Packet(encodedPacket.substring(1), binaryType),\n        };\n    }\n    const packetType = PACKET_TYPES_REVERSE[type];\n    if (!packetType) {\n        return ERROR_PACKET;\n    }\n    return encodedPacket.length > 1\n        ? {\n            type: PACKET_TYPES_REVERSE[type],\n            data: encodedPacket.substring(1),\n        }\n        : {\n            type: PACKET_TYPES_REVERSE[type],\n        };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n    if (withNativeArrayBuffer) {\n        const decoded = decode(data);\n        return mapBinary(decoded, binaryType);\n    }\n    else {\n        return { base64: true, data }; // fallback for old browsers\n    }\n};\nconst mapBinary = (data, binaryType) => {\n    switch (binaryType) {\n        case \"blob\":\n            if (data instanceof Blob) {\n                // from WebSocket + binaryType \"blob\"\n                return data;\n            }\n            else {\n                // from HTTP long-polling or WebTransport\n                return new Blob([data]);\n            }\n        case \"arraybuffer\":\n        default:\n            if (data instanceof ArrayBuffer) {\n                // from HTTP long-polling (base64) or WebSocket + binaryType \"arraybuffer\"\n                return data;\n            }\n            else {\n                // from WebTransport (Uint8Array)\n                return data.buffer;\n            }\n    }\n};\n","import { encodePacket, encodePacketToBinary } from \"./encodePacket.js\";\nimport { decodePacket } from \"./decodePacket.js\";\nimport { ERROR_PACKET, } from \"./commons.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n    // some packets may be added to the array while encoding, so the initial length must be saved\n    const length = packets.length;\n    const encodedPackets = new Array(length);\n    let count = 0;\n    packets.forEach((packet, i) => {\n        // force base64 encoding for binary packets\n        encodePacket(packet, false, (encodedPacket) => {\n            encodedPackets[i] = encodedPacket;\n            if (++count === length) {\n                callback(encodedPackets.join(SEPARATOR));\n            }\n        });\n    });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n    const encodedPackets = encodedPayload.split(SEPARATOR);\n    const packets = [];\n    for (let i = 0; i < encodedPackets.length; i++) {\n        const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n        packets.push(decodedPacket);\n        if (decodedPacket.type === \"error\") {\n            break;\n        }\n    }\n    return packets;\n};\nexport function createPacketEncoderStream() {\n    return new TransformStream({\n        transform(packet, controller) {\n            encodePacketToBinary(packet, (encodedPacket) => {\n                const payloadLength = encodedPacket.length;\n                let header;\n                // inspired by the WebSocket format: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#decoding_payload_length\n                if (payloadLength < 126) {\n                    header = new Uint8Array(1);\n                    new DataView(header.buffer).setUint8(0, payloadLength);\n                }\n                else if (payloadLength < 65536) {\n                    header = new Uint8Array(3);\n                    const view = new DataView(header.buffer);\n                    view.setUint8(0, 126);\n                    view.setUint16(1, payloadLength);\n                }\n                else {\n                    header = new Uint8Array(9);\n                    const view = new DataView(header.buffer);\n                    view.setUint8(0, 127);\n                    view.setBigUint64(1, BigInt(payloadLength));\n                }\n                // first bit indicates whether the payload is plain text (0) or binary (1)\n                if (packet.data && typeof packet.data !== \"string\") {\n                    header[0] |= 0x80;\n                }\n                controller.enqueue(header);\n                controller.enqueue(encodedPacket);\n            });\n        },\n    });\n}\nlet TEXT_DECODER;\nfunction totalLength(chunks) {\n    return chunks.reduce((acc, chunk) => acc + chunk.length, 0);\n}\nfunction concatChunks(chunks, size) {\n    if (chunks[0].length === size) {\n        return chunks.shift();\n    }\n    const buffer = new Uint8Array(size);\n    let j = 0;\n    for (let i = 0; i < size; i++) {\n        buffer[i] = chunks[0][j++];\n        if (j === chunks[0].length) {\n            chunks.shift();\n            j = 0;\n        }\n    }\n    if (chunks.length && j < chunks[0].length) {\n        chunks[0] = chunks[0].slice(j);\n    }\n    return buffer;\n}\nexport function createPacketDecoderStream(maxPayload, binaryType) {\n    if (!TEXT_DECODER) {\n        TEXT_DECODER = new TextDecoder();\n    }\n    const chunks = [];\n    let state = 0 /* State.READ_HEADER */;\n    let expectedLength = -1;\n    let isBinary = false;\n    return new TransformStream({\n        transform(chunk, controller) {\n            chunks.push(chunk);\n            while (true) {\n                if (state === 0 /* State.READ_HEADER */) {\n                    if (totalLength(chunks) < 1) {\n                        break;\n                    }\n                    const header = concatChunks(chunks, 1);\n                    isBinary = (header[0] & 0x80) === 0x80;\n                    expectedLength = header[0] & 0x7f;\n                    if (expectedLength < 126) {\n                        state = 3 /* State.READ_PAYLOAD */;\n                    }\n                    else if (expectedLength === 126) {\n                        state = 1 /* State.READ_EXTENDED_LENGTH_16 */;\n                    }\n                    else {\n                        state = 2 /* State.READ_EXTENDED_LENGTH_64 */;\n                    }\n                }\n                else if (state === 1 /* State.READ_EXTENDED_LENGTH_16 */) {\n                    if (totalLength(chunks) < 2) {\n                        break;\n                    }\n                    const headerArray = concatChunks(chunks, 2);\n                    expectedLength = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length).getUint16(0);\n                    state = 3 /* State.READ_PAYLOAD */;\n                }\n                else if (state === 2 /* State.READ_EXTENDED_LENGTH_64 */) {\n                    if (totalLength(chunks) < 8) {\n                        break;\n                    }\n                    const headerArray = concatChunks(chunks, 8);\n                    const view = new DataView(headerArray.buffer, headerArray.byteOffset, headerArray.length);\n                    const n = view.getUint32(0);\n                    if (n > Math.pow(2, 53 - 32) - 1) {\n                        // the maximum safe integer in JavaScript is 2^53 - 1\n                        controller.enqueue(ERROR_PACKET);\n                        break;\n                    }\n                    expectedLength = n * Math.pow(2, 32) + view.getUint32(4);\n                    state = 3 /* State.READ_PAYLOAD */;\n                }\n                else {\n                    if (totalLength(chunks) < expectedLength) {\n                        break;\n                    }\n                    const data = concatChunks(chunks, expectedLength);\n                    controller.enqueue(decodePacket(isBinary ? data : TEXT_DECODER.decode(data), binaryType));\n                    state = 0 /* State.READ_HEADER */;\n                }\n                if (expectedLength === 0 || expectedLength > maxPayload) {\n                    controller.enqueue(ERROR_PACKET);\n                    break;\n                }\n            }\n        },\n    });\n}\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload, };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n  if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n  for (var key in Emitter.prototype) {\n    obj[key] = Emitter.prototype[key];\n  }\n  return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n  this._callbacks = this._callbacks || {};\n  (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n    .push(fn);\n  return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n  function on() {\n    this.off(event, on);\n    fn.apply(this, arguments);\n  }\n\n  on.fn = fn;\n  this.on(event, on);\n  return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n  this._callbacks = this._callbacks || {};\n\n  // all\n  if (0 == arguments.length) {\n    this._callbacks = {};\n    return this;\n  }\n\n  // specific event\n  var callbacks = this._callbacks['$' + event];\n  if (!callbacks) return this;\n\n  // remove all handlers\n  if (1 == arguments.length) {\n    delete this._callbacks['$' + event];\n    return this;\n  }\n\n  // remove specific handler\n  var cb;\n  for (var i = 0; i < callbacks.length; i++) {\n    cb = callbacks[i];\n    if (cb === fn || cb.fn === fn) {\n      callbacks.splice(i, 1);\n      break;\n    }\n  }\n\n  // Remove event specific arrays for event types that no\n  // one is subscribed for to avoid memory leak.\n  if (callbacks.length === 0) {\n    delete this._callbacks['$' + event];\n  }\n\n  return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n  this._callbacks = this._callbacks || {};\n\n  var args = new Array(arguments.length - 1)\n    , callbacks = this._callbacks['$' + event];\n\n  for (var i = 1; i < arguments.length; i++) {\n    args[i - 1] = arguments[i];\n  }\n\n  if (callbacks) {\n    callbacks = callbacks.slice(0);\n    for (var i = 0, len = callbacks.length; i < len; ++i) {\n      callbacks[i].apply(this, args);\n    }\n  }\n\n  return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n  this._callbacks = this._callbacks || {};\n  return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n  return !! this.listeners(event).length;\n};\n","export const nextTick = (() => {\n    const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n    if (isPromiseAvailable) {\n        return (cb) => Promise.resolve().then(cb);\n    }\n    else {\n        return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n    }\n})();\nexport const globalThisShim = (() => {\n    if (typeof self !== \"undefined\") {\n        return self;\n    }\n    else if (typeof window !== \"undefined\") {\n        return window;\n    }\n    else {\n        return Function(\"return this\")();\n    }\n})();\nexport const defaultBinaryType = \"arraybuffer\";\nexport function createCookieJar() { }\n","import { globalThisShim as globalThis } from \"./globals.node.js\";\nexport function pick(obj, ...attr) {\n    return attr.reduce((acc, k) => {\n        if (obj.hasOwnProperty(k)) {\n            acc[k] = obj[k];\n        }\n        return acc;\n    }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = globalThis.setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = globalThis.clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n    if (opts.useNativeTimers) {\n        obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n        obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n    }\n    else {\n        obj.setTimeoutFn = globalThis.setTimeout.bind(globalThis);\n        obj.clearTimeoutFn = globalThis.clearTimeout.bind(globalThis);\n    }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n    if (typeof obj === \"string\") {\n        return utf8Length(obj);\n    }\n    // arraybuffer or blob\n    return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n    let c = 0, length = 0;\n    for (let i = 0, l = str.length; i < l; i++) {\n        c = str.charCodeAt(i);\n        if (c < 0x80) {\n            length += 1;\n        }\n        else if (c < 0x800) {\n            length += 2;\n        }\n        else if (c < 0xd800 || c >= 0xe000) {\n            length += 3;\n        }\n        else {\n            i++;\n            length += 4;\n        }\n    }\n    return length;\n}\n/**\n * Generates a random 8-characters string.\n */\nexport function randomString() {\n    return (Date.now().toString(36).substring(3) +\n        Math.random().toString(36).substring(2, 5));\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nimport { encode } from \"./contrib/parseqs.js\";\nexport class TransportError extends Error {\n    constructor(reason, description, context) {\n        super(reason);\n        this.description = description;\n        this.context = context;\n        this.type = \"TransportError\";\n    }\n}\nexport class Transport extends Emitter {\n    /**\n     * Transport abstract constructor.\n     *\n     * @param {Object} opts - options\n     * @protected\n     */\n    constructor(opts) {\n        super();\n        this.writable = false;\n        installTimerFunctions(this, opts);\n        this.opts = opts;\n        this.query = opts.query;\n        this.socket = opts.socket;\n        this.supportsBinary = !opts.forceBase64;\n    }\n    /**\n     * Emits an error.\n     *\n     * @param {String} reason\n     * @param description\n     * @param context - the error context\n     * @return {Transport} for chaining\n     * @protected\n     */\n    onError(reason, description, context) {\n        super.emitReserved(\"error\", new TransportError(reason, description, context));\n        return this;\n    }\n    /**\n     * Opens the transport.\n     */\n    open() {\n        this.readyState = \"opening\";\n        this.doOpen();\n        return this;\n    }\n    /**\n     * Closes the transport.\n     */\n    close() {\n        if (this.readyState === \"opening\" || this.readyState === \"open\") {\n            this.doClose();\n            this.onClose();\n        }\n        return this;\n    }\n    /**\n     * Sends multiple packets.\n     *\n     * @param {Array} packets\n     */\n    send(packets) {\n        if (this.readyState === \"open\") {\n            this.write(packets);\n        }\n        else {\n            // this might happen if the transport was silently closed in the beforeunload event handler\n        }\n    }\n    /**\n     * Called upon open\n     *\n     * @protected\n     */\n    onOpen() {\n        this.readyState = \"open\";\n        this.writable = true;\n        super.emitReserved(\"open\");\n    }\n    /**\n     * Called with data.\n     *\n     * @param {String} data\n     * @protected\n     */\n    onData(data) {\n        const packet = decodePacket(data, this.socket.binaryType);\n        this.onPacket(packet);\n    }\n    /**\n     * Called with a decoded packet.\n     *\n     * @protected\n     */\n    onPacket(packet) {\n        super.emitReserved(\"packet\", packet);\n    }\n    /**\n     * Called upon close.\n     *\n     * @protected\n     */\n    onClose(details) {\n        this.readyState = \"closed\";\n        super.emitReserved(\"close\", details);\n    }\n    /**\n     * Pauses the transport, in order not to lose packets during an upgrade.\n     *\n     * @param onPause\n     */\n    pause(onPause) { }\n    createUri(schema, query = {}) {\n        return (schema +\n            \"://\" +\n            this._hostname() +\n            this._port() +\n            this.opts.path +\n            this._query(query));\n    }\n    _hostname() {\n        const hostname = this.opts.hostname;\n        return hostname.indexOf(\":\") === -1 ? hostname : \"[\" + hostname + \"]\";\n    }\n    _port() {\n        if (this.opts.port &&\n            ((this.opts.secure && Number(this.opts.port !== 443)) ||\n                (!this.opts.secure && Number(this.opts.port) !== 80))) {\n            return \":\" + this.opts.port;\n        }\n        else {\n            return \"\";\n        }\n    }\n    _query(query) {\n        const encodedQuery = encode(query);\n        return encodedQuery.length ? \"?\" + encodedQuery : \"\";\n    }\n}\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n    let str = '';\n    for (let i in obj) {\n        if (obj.hasOwnProperty(i)) {\n            if (str.length)\n                str += '&';\n            str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n        }\n    }\n    return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n    let qry = {};\n    let pairs = qs.split('&');\n    for (let i = 0, l = pairs.length; i < l; i++) {\n        let pair = pairs[i].split('=');\n        qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n    }\n    return qry;\n}\n","import { Transport } from \"../transport.js\";\nimport { randomString } from \"../util.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nexport class Polling extends Transport {\n    constructor() {\n        super(...arguments);\n        this._polling = false;\n    }\n    get name() {\n        return \"polling\";\n    }\n    /**\n     * Opens the socket (triggers polling). We write a PING message to determine\n     * when the transport is open.\n     *\n     * @protected\n     */\n    doOpen() {\n        this._poll();\n    }\n    /**\n     * Pauses polling.\n     *\n     * @param {Function} onPause - callback upon buffers are flushed and transport is paused\n     * @package\n     */\n    pause(onPause) {\n        this.readyState = \"pausing\";\n        const pause = () => {\n            this.readyState = \"paused\";\n            onPause();\n        };\n        if (this._polling || !this.writable) {\n            let total = 0;\n            if (this._polling) {\n                total++;\n                this.once(\"pollComplete\", function () {\n                    --total || pause();\n                });\n            }\n            if (!this.writable) {\n                total++;\n                this.once(\"drain\", function () {\n                    --total || pause();\n                });\n            }\n        }\n        else {\n            pause();\n        }\n    }\n    /**\n     * Starts polling cycle.\n     *\n     * @private\n     */\n    _poll() {\n        this._polling = true;\n        this.doPoll();\n        this.emitReserved(\"poll\");\n    }\n    /**\n     * Overloads onData to detect payloads.\n     *\n     * @protected\n     */\n    onData(data) {\n        const callback = (packet) => {\n            // if its the first message we consider the transport open\n            if (\"opening\" === this.readyState && packet.type === \"open\") {\n                this.onOpen();\n            }\n            // if its a close packet, we close the ongoing requests\n            if (\"close\" === packet.type) {\n                this.onClose({ description: \"transport closed by the server\" });\n                return false;\n            }\n            // otherwise bypass onData and handle the message\n            this.onPacket(packet);\n        };\n        // decode payload\n        decodePayload(data, this.socket.binaryType).forEach(callback);\n        // if an event did not trigger closing\n        if (\"closed\" !== this.readyState) {\n            // if we got data we're not polling\n            this._polling = false;\n            this.emitReserved(\"pollComplete\");\n            if (\"open\" === this.readyState) {\n                this._poll();\n            }\n            else {\n            }\n        }\n    }\n    /**\n     * For polling, send a close packet.\n     *\n     * @protected\n     */\n    doClose() {\n        const close = () => {\n            this.write([{ type: \"close\" }]);\n        };\n        if (\"open\" === this.readyState) {\n            close();\n        }\n        else {\n            // in case we're trying to close while\n            // handshaking is in progress (GH-164)\n            this.once(\"open\", close);\n        }\n    }\n    /**\n     * Writes a packets payload.\n     *\n     * @param {Array} packets - data packets\n     * @protected\n     */\n    write(packets) {\n        this.writable = false;\n        encodePayload(packets, (data) => {\n            this.doWrite(data, () => {\n                this.writable = true;\n                this.emitReserved(\"drain\");\n            });\n        });\n    }\n    /**\n     * Generates uri for connection.\n     *\n     * @private\n     */\n    uri() {\n        const schema = this.opts.secure ? \"https\" : \"http\";\n        const query = this.query || {};\n        // cache busting is forced\n        if (false !== this.opts.timestampRequests) {\n            query[this.opts.timestampParam] = randomString();\n        }\n        if (!this.supportsBinary && !query.sid) {\n            query.b64 = 1;\n        }\n        return this.createUri(schema, query);\n    }\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n    value = typeof XMLHttpRequest !== 'undefined' &&\n        'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n    // if XMLHttp support is disabled in IE then it will throw\n    // when trying to create\n}\nexport const hasCORS = value;\n","import { Polling } from \"./polling.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globals.node.js\";\nimport { hasCORS } from \"../contrib/has-cors.js\";\nfunction empty() { }\nexport class BaseXHR extends Polling {\n    /**\n     * XHR Polling constructor.\n     *\n     * @param {Object} opts\n     * @package\n     */\n    constructor(opts) {\n        super(opts);\n        if (typeof location !== \"undefined\") {\n            const isSSL = \"https:\" === location.protocol;\n            let port = location.port;\n            // some user agents have empty `location.port`\n            if (!port) {\n                port = isSSL ? \"443\" : \"80\";\n            }\n            this.xd =\n                (typeof location !== \"undefined\" &&\n                    opts.hostname !== location.hostname) ||\n                    port !== opts.port;\n        }\n    }\n    /**\n     * Sends data.\n     *\n     * @param {String} data to send.\n     * @param {Function} called upon flush.\n     * @private\n     */\n    doWrite(data, fn) {\n        const req = this.request({\n            method: \"POST\",\n            data: data,\n        });\n        req.on(\"success\", fn);\n        req.on(\"error\", (xhrStatus, context) => {\n            this.onError(\"xhr post error\", xhrStatus, context);\n        });\n    }\n    /**\n     * Starts a poll cycle.\n     *\n     * @private\n     */\n    doPoll() {\n        const req = this.request();\n        req.on(\"data\", this.onData.bind(this));\n        req.on(\"error\", (xhrStatus, context) => {\n            this.onError(\"xhr poll error\", xhrStatus, context);\n        });\n        this.pollXhr = req;\n    }\n}\nexport class Request extends Emitter {\n    /**\n     * Request constructor\n     *\n     * @param {Object} options\n     * @package\n     */\n    constructor(createRequest, uri, opts) {\n        super();\n        this.createRequest = createRequest;\n        installTimerFunctions(this, opts);\n        this._opts = opts;\n        this._method = opts.method || \"GET\";\n        this._uri = uri;\n        this._data = undefined !== opts.data ? opts.data : null;\n        this._create();\n    }\n    /**\n     * Creates the XHR object and sends the request.\n     *\n     * @private\n     */\n    _create() {\n        var _a;\n        const opts = pick(this._opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n        opts.xdomain = !!this._opts.xd;\n        const xhr = (this._xhr = this.createRequest(opts));\n        try {\n            xhr.open(this._method, this._uri, true);\n            try {\n                if (this._opts.extraHeaders) {\n                    // @ts-ignore\n                    xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n                    for (let i in this._opts.extraHeaders) {\n                        if (this._opts.extraHeaders.hasOwnProperty(i)) {\n                            xhr.setRequestHeader(i, this._opts.extraHeaders[i]);\n                        }\n                    }\n                }\n            }\n            catch (e) { }\n            if (\"POST\" === this._method) {\n                try {\n                    xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n                }\n                catch (e) { }\n            }\n            try {\n                xhr.setRequestHeader(\"Accept\", \"*/*\");\n            }\n            catch (e) { }\n            (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.addCookies(xhr);\n            // ie6 check\n            if (\"withCredentials\" in xhr) {\n                xhr.withCredentials = this._opts.withCredentials;\n            }\n            if (this._opts.requestTimeout) {\n                xhr.timeout = this._opts.requestTimeout;\n            }\n            xhr.onreadystatechange = () => {\n                var _a;\n                if (xhr.readyState === 3) {\n                    (_a = this._opts.cookieJar) === null || _a === void 0 ? void 0 : _a.parseCookies(\n                    // @ts-ignore\n                    xhr.getResponseHeader(\"set-cookie\"));\n                }\n                if (4 !== xhr.readyState)\n                    return;\n                if (200 === xhr.status || 1223 === xhr.status) {\n                    this._onLoad();\n                }\n                else {\n                    // make sure the `error` event handler that's user-set\n                    // does not throw in the same tick and gets caught here\n                    this.setTimeoutFn(() => {\n                        this._onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n                    }, 0);\n                }\n            };\n            xhr.send(this._data);\n        }\n        catch (e) {\n            // Need to defer since .create() is called directly from the constructor\n            // and thus the 'error' event can only be only bound *after* this exception\n            // occurs.  Therefore, also, we cannot throw here at all.\n            this.setTimeoutFn(() => {\n                this._onError(e);\n            }, 0);\n            return;\n        }\n        if (typeof document !== \"undefined\") {\n            this._index = Request.requestsCount++;\n            Request.requests[this._index] = this;\n        }\n    }\n    /**\n     * Called upon error.\n     *\n     * @private\n     */\n    _onError(err) {\n        this.emitReserved(\"error\", err, this._xhr);\n        this._cleanup(true);\n    }\n    /**\n     * Cleans up house.\n     *\n     * @private\n     */\n    _cleanup(fromError) {\n        if (\"undefined\" === typeof this._xhr || null === this._xhr) {\n            return;\n        }\n        this._xhr.onreadystatechange = empty;\n        if (fromError) {\n            try {\n                this._xhr.abort();\n            }\n            catch (e) { }\n        }\n        if (typeof document !== \"undefined\") {\n            delete Request.requests[this._index];\n        }\n        this._xhr = null;\n    }\n    /**\n     * Called upon load.\n     *\n     * @private\n     */\n    _onLoad() {\n        const data = this._xhr.responseText;\n        if (data !== null) {\n            this.emitReserved(\"data\", data);\n            this.emitReserved(\"success\");\n            this._cleanup();\n        }\n    }\n    /**\n     * Aborts the request.\n     *\n     * @package\n     */\n    abort() {\n        this._cleanup();\n    }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n    // @ts-ignore\n    if (typeof attachEvent === \"function\") {\n        // @ts-ignore\n        attachEvent(\"onunload\", unloadHandler);\n    }\n    else if (typeof addEventListener === \"function\") {\n        const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n        addEventListener(terminationEvent, unloadHandler, false);\n    }\n}\nfunction unloadHandler() {\n    for (let i in Request.requests) {\n        if (Request.requests.hasOwnProperty(i)) {\n            Request.requests[i].abort();\n        }\n    }\n}\nconst hasXHR2 = (function () {\n    const xhr = newRequest({\n        xdomain: false,\n    });\n    return xhr && xhr.responseType !== null;\n})();\n/**\n * HTTP long-polling based on the built-in `XMLHttpRequest` object.\n *\n * Usage: browser\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest\n */\nexport class XHR extends BaseXHR {\n    constructor(opts) {\n        super(opts);\n        const forceBase64 = opts && opts.forceBase64;\n        this.supportsBinary = hasXHR2 && !forceBase64;\n    }\n    request(opts = {}) {\n        Object.assign(opts, { xd: this.xd }, this.opts);\n        return new Request(newRequest, this.uri(), opts);\n    }\n}\nfunction newRequest(opts) {\n    const xdomain = opts.xdomain;\n    // XMLHttpRequest can be disabled on IE\n    try {\n        if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n            return new XMLHttpRequest();\n        }\n    }\n    catch (e) { }\n    if (!xdomain) {\n        try {\n            return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n        }\n        catch (e) { }\n    }\n}\n","import { Transport } from \"../transport.js\";\nimport { pick, randomString } from \"../util.js\";\nimport { encodePacket } from \"engine.io-parser\";\nimport { globalThisShim as globalThis, nextTick } from \"../globals.node.js\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n    typeof navigator.product === \"string\" &&\n    navigator.product.toLowerCase() === \"reactnative\";\nexport class BaseWS extends Transport {\n    get name() {\n        return \"websocket\";\n    }\n    doOpen() {\n        const uri = this.uri();\n        const protocols = this.opts.protocols;\n        // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n        const opts = isReactNative\n            ? {}\n            : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n        if (this.opts.extraHeaders) {\n            opts.headers = this.opts.extraHeaders;\n        }\n        try {\n            this.ws = this.createSocket(uri, protocols, opts);\n        }\n        catch (err) {\n            return this.emitReserved(\"error\", err);\n        }\n        this.ws.binaryType = this.socket.binaryType;\n        this.addEventListeners();\n    }\n    /**\n     * Adds event listeners to the socket\n     *\n     * @private\n     */\n    addEventListeners() {\n        this.ws.onopen = () => {\n            if (this.opts.autoUnref) {\n                this.ws._socket.unref();\n            }\n            this.onOpen();\n        };\n        this.ws.onclose = (closeEvent) => this.onClose({\n            description: \"websocket connection closed\",\n            context: closeEvent,\n        });\n        this.ws.onmessage = (ev) => this.onData(ev.data);\n        this.ws.onerror = (e) => this.onError(\"websocket error\", e);\n    }\n    write(packets) {\n        this.writable = false;\n        // encodePacket efficient as it uses WS framing\n        // no need for encodePayload\n        for (let i = 0; i < packets.length; i++) {\n            const packet = packets[i];\n            const lastPacket = i === packets.length - 1;\n            encodePacket(packet, this.supportsBinary, (data) => {\n                // Sometimes the websocket has already been closed but the browser didn't\n                // have a chance of informing us about it yet, in that case send will\n                // throw an error\n                try {\n                    this.doWrite(packet, data);\n                }\n                catch (e) {\n                }\n                if (lastPacket) {\n                    // fake drain\n                    // defer to next tick to allow Socket to clear writeBuffer\n                    nextTick(() => {\n                        this.writable = true;\n                        this.emitReserved(\"drain\");\n                    }, this.setTimeoutFn);\n                }\n            });\n        }\n    }\n    doClose() {\n        if (typeof this.ws !== \"undefined\") {\n            this.ws.onerror = () => { };\n            this.ws.close();\n            this.ws = null;\n        }\n    }\n    /**\n     * Generates uri for connection.\n     *\n     * @private\n     */\n    uri() {\n        const schema = this.opts.secure ? \"wss\" : \"ws\";\n        const query = this.query || {};\n        // append timestamp to URI\n        if (this.opts.timestampRequests) {\n            query[this.opts.timestampParam] = randomString();\n        }\n        // communicate binary support capabilities\n        if (!this.supportsBinary) {\n            query.b64 = 1;\n        }\n        return this.createUri(schema, query);\n    }\n}\nconst WebSocketCtor = globalThis.WebSocket || globalThis.MozWebSocket;\n/**\n * WebSocket transport based on the built-in `WebSocket` object.\n *\n * Usage: browser, Node.js (since v21), Deno, Bun\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket\n * @see https://caniuse.com/mdn-api_websocket\n * @see https://nodejs.org/api/globals.html#websocket\n */\nexport class WS extends BaseWS {\n    createSocket(uri, protocols, opts) {\n        return !isReactNative\n            ? protocols\n                ? new WebSocketCtor(uri, protocols)\n                : new WebSocketCtor(uri)\n            : new WebSocketCtor(uri, protocols, opts);\n    }\n    doWrite(_packet, data) {\n        this.ws.send(data);\n    }\n}\n","import { XHR } from \"./polling-xhr.node.js\";\nimport { WS } from \"./websocket.node.js\";\nimport { WT } from \"./webtransport.js\";\nexport const transports = {\n    websocket: WS,\n    webtransport: WT,\n    polling: XHR,\n};\n","import { Transport } from \"../transport.js\";\nimport { nextTick } from \"../globals.node.js\";\nimport { createPacketDecoderStream, createPacketEncoderStream, } from \"engine.io-parser\";\n/**\n * WebTransport transport based on the built-in `WebTransport` object.\n *\n * Usage: browser, Node.js (with the `@fails-components/webtransport` package)\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebTransport\n * @see https://caniuse.com/webtransport\n */\nexport class WT extends Transport {\n    get name() {\n        return \"webtransport\";\n    }\n    doOpen() {\n        try {\n            // @ts-ignore\n            this._transport = new WebTransport(this.createUri(\"https\"), this.opts.transportOptions[this.name]);\n        }\n        catch (err) {\n            return this.emitReserved(\"error\", err);\n        }\n        this._transport.closed\n            .then(() => {\n            this.onClose();\n        })\n            .catch((err) => {\n            this.onError(\"webtransport error\", err);\n        });\n        // note: we could have used async/await, but that would require some additional polyfills\n        this._transport.ready.then(() => {\n            this._transport.createBidirectionalStream().then((stream) => {\n                const decoderStream = createPacketDecoderStream(Number.MAX_SAFE_INTEGER, this.socket.binaryType);\n                const reader = stream.readable.pipeThrough(decoderStream).getReader();\n                const encoderStream = createPacketEncoderStream();\n                encoderStream.readable.pipeTo(stream.writable);\n                this._writer = encoderStream.writable.getWriter();\n                const read = () => {\n                    reader\n                        .read()\n                        .then(({ done, value }) => {\n                        if (done) {\n                            return;\n                        }\n                        this.onPacket(value);\n                        read();\n                    })\n                        .catch((err) => {\n                    });\n                };\n                read();\n                const packet = { type: \"open\" };\n                if (this.query.sid) {\n                    packet.data = `{\"sid\":\"${this.query.sid}\"}`;\n                }\n                this._writer.write(packet).then(() => this.onOpen());\n            });\n        });\n    }\n    write(packets) {\n        this.writable = false;\n        for (let i = 0; i < packets.length; i++) {\n            const packet = packets[i];\n            const lastPacket = i === packets.length - 1;\n            this._writer.write(packet).then(() => {\n                if (lastPacket) {\n                    nextTick(() => {\n                        this.writable = true;\n                        this.emitReserved(\"drain\");\n                    }, this.setTimeoutFn);\n                }\n            });\n        }\n    }\n    doClose() {\n        var _a;\n        (_a = this._transport) === null || _a === void 0 ? void 0 : _a.close();\n    }\n}\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses a URI\n *\n * Note: we could also have used the built-in URL object, but it isn't supported on all platforms.\n *\n * See:\n * - https://developer.mozilla.org/en-US/docs/Web/API/URL\n * - https://caniuse.com/url\n * - https://www.rfc-editor.org/rfc/rfc3986#appendix-B\n *\n * History of the parse() method:\n * - first commit: https://github.com/socketio/socket.io-client/commit/4ee1d5d94b3906a9c052b459f1a818b15f38f91c\n * - export into its own module: https://github.com/socketio/engine.io-client/commit/de2c561e4564efeb78f1bdb1ba39ef81b2822cb3\n * - reimport: https://github.com/socketio/engine.io-client/commit/df32277c3f6d622eec5ed09f493cae3f3391d242\n *\n * @author Steven Levithan <stevenlevithan.com> (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@\\/?#]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@\\/?#]*)(?::([^:@\\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n    'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n    if (str.length > 8000) {\n        throw \"URI too long\";\n    }\n    const src = str, b = str.indexOf('['), e = str.indexOf(']');\n    if (b != -1 && e != -1) {\n        str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n    }\n    let m = re.exec(str || ''), uri = {}, i = 14;\n    while (i--) {\n        uri[parts[i]] = m[i] || '';\n    }\n    if (b != -1 && e != -1) {\n        uri.source = src;\n        uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n        uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n        uri.ipv6uri = true;\n    }\n    uri.pathNames = pathNames(uri, uri['path']);\n    uri.queryKey = queryKey(uri, uri['query']);\n    return uri;\n}\nfunction pathNames(obj, path) {\n    const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n    if (path.slice(0, 1) == '/' || path.length === 0) {\n        names.splice(0, 1);\n    }\n    if (path.slice(-1) == '/') {\n        names.splice(names.length - 1, 1);\n    }\n    return names;\n}\nfunction queryKey(uri, query) {\n    const data = {};\n    query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n        if ($1) {\n            data[$1] = $2;\n        }\n    });\n    return data;\n}\n","import { transports as DEFAULT_TRANSPORTS } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nimport { createCookieJar, defaultBinaryType, nextTick, } from \"./globals.node.js\";\nconst withEventListeners = typeof addEventListener === \"function\" &&\n    typeof removeEventListener === \"function\";\nconst OFFLINE_EVENT_LISTENERS = [];\nif (withEventListeners) {\n    // within a ServiceWorker, any event handler for the 'offline' event must be added on the initial evaluation of the\n    // script, so we create one single event listener here which will forward the event to the socket instances\n    addEventListener(\"offline\", () => {\n        OFFLINE_EVENT_LISTENERS.forEach((listener) => listener());\n    }, false);\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes without upgrade mechanism, which means that it will keep the first low-level transport that\n * successfully establishes the connection.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithoutUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithoutUpgrade({\n *   transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithUpgrade\n * @see Socket\n */\nexport class SocketWithoutUpgrade extends Emitter {\n    /**\n     * Socket constructor.\n     *\n     * @param {String|Object} uri - uri or options\n     * @param {Object} opts - options\n     */\n    constructor(uri, opts) {\n        super();\n        this.binaryType = defaultBinaryType;\n        this.writeBuffer = [];\n        this._prevBufferLen = 0;\n        this._pingInterval = -1;\n        this._pingTimeout = -1;\n        this._maxPayload = -1;\n        /**\n         * The expiration timestamp of the {@link _pingTimeoutTimer} object is tracked, in case the timer is throttled and the\n         * callback is not fired on time. This can happen for example when a laptop is suspended or when a phone is locked.\n         */\n        this._pingTimeoutTime = Infinity;\n        if (uri && \"object\" === typeof uri) {\n            opts = uri;\n            uri = null;\n        }\n        if (uri) {\n            const parsedUri = parse(uri);\n            opts.hostname = parsedUri.host;\n            opts.secure =\n                parsedUri.protocol === \"https\" || parsedUri.protocol === \"wss\";\n            opts.port = parsedUri.port;\n            if (parsedUri.query)\n                opts.query = parsedUri.query;\n        }\n        else if (opts.host) {\n            opts.hostname = parse(opts.host).host;\n        }\n        installTimerFunctions(this, opts);\n        this.secure =\n            null != opts.secure\n                ? opts.secure\n                : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n        if (opts.hostname && !opts.port) {\n            // if no port is specified manually, use the protocol default\n            opts.port = this.secure ? \"443\" : \"80\";\n        }\n        this.hostname =\n            opts.hostname ||\n                (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n        this.port =\n            opts.port ||\n                (typeof location !== \"undefined\" && location.port\n                    ? location.port\n                    : this.secure\n                        ? \"443\"\n                        : \"80\");\n        this.transports = [];\n        this._transportsByName = {};\n        opts.transports.forEach((t) => {\n            const transportName = t.prototype.name;\n            this.transports.push(transportName);\n            this._transportsByName[transportName] = t;\n        });\n        this.opts = Object.assign({\n            path: \"/engine.io\",\n            agent: false,\n            withCredentials: false,\n            upgrade: true,\n            timestampParam: \"t\",\n            rememberUpgrade: false,\n            addTrailingSlash: true,\n            rejectUnauthorized: true,\n            perMessageDeflate: {\n                threshold: 1024,\n            },\n            transportOptions: {},\n            closeOnBeforeunload: false,\n        }, opts);\n        this.opts.path =\n            this.opts.path.replace(/\\/$/, \"\") +\n                (this.opts.addTrailingSlash ? \"/\" : \"\");\n        if (typeof this.opts.query === \"string\") {\n            this.opts.query = decode(this.opts.query);\n        }\n        if (withEventListeners) {\n            if (this.opts.closeOnBeforeunload) {\n                // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n                // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n                // closed/reloaded)\n                this._beforeunloadEventListener = () => {\n                    if (this.transport) {\n                        // silently close the transport\n                        this.transport.removeAllListeners();\n                        this.transport.close();\n                    }\n                };\n                addEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n            }\n            if (this.hostname !== \"localhost\") {\n                this._offlineEventListener = () => {\n                    this._onClose(\"transport close\", {\n                        description: \"network connection lost\",\n                    });\n                };\n                OFFLINE_EVENT_LISTENERS.push(this._offlineEventListener);\n            }\n        }\n        if (this.opts.withCredentials) {\n            this._cookieJar = createCookieJar();\n        }\n        this._open();\n    }\n    /**\n     * Creates transport of the given type.\n     *\n     * @param {String} name - transport name\n     * @return {Transport}\n     * @private\n     */\n    createTransport(name) {\n        const query = Object.assign({}, this.opts.query);\n        // append engine.io protocol identifier\n        query.EIO = protocol;\n        // transport name\n        query.transport = name;\n        // session id if we already have one\n        if (this.id)\n            query.sid = this.id;\n        const opts = Object.assign({}, this.opts, {\n            query,\n            socket: this,\n            hostname: this.hostname,\n            secure: this.secure,\n            port: this.port,\n        }, this.opts.transportOptions[name]);\n        return new this._transportsByName[name](opts);\n    }\n    /**\n     * Initializes transport to use and starts probe.\n     *\n     * @private\n     */\n    _open() {\n        if (this.transports.length === 0) {\n            // Emit error on next tick so it can be listened to\n            this.setTimeoutFn(() => {\n                this.emitReserved(\"error\", \"No transports available\");\n            }, 0);\n            return;\n        }\n        const transportName = this.opts.rememberUpgrade &&\n            SocketWithoutUpgrade.priorWebsocketSuccess &&\n            this.transports.indexOf(\"websocket\") !== -1\n            ? \"websocket\"\n            : this.transports[0];\n        this.readyState = \"opening\";\n        const transport = this.createTransport(transportName);\n        transport.open();\n        this.setTransport(transport);\n    }\n    /**\n     * Sets the current transport. Disables the existing one (if any).\n     *\n     * @private\n     */\n    setTransport(transport) {\n        if (this.transport) {\n            this.transport.removeAllListeners();\n        }\n        // set up transport\n        this.transport = transport;\n        // set up transport listeners\n        transport\n            .on(\"drain\", this._onDrain.bind(this))\n            .on(\"packet\", this._onPacket.bind(this))\n            .on(\"error\", this._onError.bind(this))\n            .on(\"close\", (reason) => this._onClose(\"transport close\", reason));\n    }\n    /**\n     * Called when connection is deemed open.\n     *\n     * @private\n     */\n    onOpen() {\n        this.readyState = \"open\";\n        SocketWithoutUpgrade.priorWebsocketSuccess =\n            \"websocket\" === this.transport.name;\n        this.emitReserved(\"open\");\n        this.flush();\n    }\n    /**\n     * Handles a packet.\n     *\n     * @private\n     */\n    _onPacket(packet) {\n        if (\"opening\" === this.readyState ||\n            \"open\" === this.readyState ||\n            \"closing\" === this.readyState) {\n            this.emitReserved(\"packet\", packet);\n            // Socket is live - any packet counts\n            this.emitReserved(\"heartbeat\");\n            switch (packet.type) {\n                case \"open\":\n                    this.onHandshake(JSON.parse(packet.data));\n                    break;\n                case \"ping\":\n                    this._sendPacket(\"pong\");\n                    this.emitReserved(\"ping\");\n                    this.emitReserved(\"pong\");\n                    this._resetPingTimeout();\n                    break;\n                case \"error\":\n                    const err = new Error(\"server error\");\n                    // @ts-ignore\n                    err.code = packet.data;\n                    this._onError(err);\n                    break;\n                case \"message\":\n                    this.emitReserved(\"data\", packet.data);\n                    this.emitReserved(\"message\", packet.data);\n                    break;\n            }\n        }\n        else {\n        }\n    }\n    /**\n     * Called upon handshake completion.\n     *\n     * @param {Object} data - handshake obj\n     * @private\n     */\n    onHandshake(data) {\n        this.emitReserved(\"handshake\", data);\n        this.id = data.sid;\n        this.transport.query.sid = data.sid;\n        this._pingInterval = data.pingInterval;\n        this._pingTimeout = data.pingTimeout;\n        this._maxPayload = data.maxPayload;\n        this.onOpen();\n        // In case open handler closes socket\n        if (\"closed\" === this.readyState)\n            return;\n        this._resetPingTimeout();\n    }\n    /**\n     * Sets and resets ping timeout timer based on server pings.\n     *\n     * @private\n     */\n    _resetPingTimeout() {\n        this.clearTimeoutFn(this._pingTimeoutTimer);\n        const delay = this._pingInterval + this._pingTimeout;\n        this._pingTimeoutTime = Date.now() + delay;\n        this._pingTimeoutTimer = this.setTimeoutFn(() => {\n            this._onClose(\"ping timeout\");\n        }, delay);\n        if (this.opts.autoUnref) {\n            this._pingTimeoutTimer.unref();\n        }\n    }\n    /**\n     * Called on `drain` event\n     *\n     * @private\n     */\n    _onDrain() {\n        this.writeBuffer.splice(0, this._prevBufferLen);\n        // setting prevBufferLen = 0 is very important\n        // for example, when upgrading, upgrade packet is sent over,\n        // and a nonzero prevBufferLen could cause problems on `drain`\n        this._prevBufferLen = 0;\n        if (0 === this.writeBuffer.length) {\n            this.emitReserved(\"drain\");\n        }\n        else {\n            this.flush();\n        }\n    }\n    /**\n     * Flush write buffers.\n     *\n     * @private\n     */\n    flush() {\n        if (\"closed\" !== this.readyState &&\n            this.transport.writable &&\n            !this.upgrading &&\n            this.writeBuffer.length) {\n            const packets = this._getWritablePackets();\n            this.transport.send(packets);\n            // keep track of current length of writeBuffer\n            // splice writeBuffer and callbackBuffer on `drain`\n            this._prevBufferLen = packets.length;\n            this.emitReserved(\"flush\");\n        }\n    }\n    /**\n     * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n     * long-polling)\n     *\n     * @private\n     */\n    _getWritablePackets() {\n        const shouldCheckPayloadSize = this._maxPayload &&\n            this.transport.name === \"polling\" &&\n            this.writeBuffer.length > 1;\n        if (!shouldCheckPayloadSize) {\n            return this.writeBuffer;\n        }\n        let payloadSize = 1; // first packet type\n        for (let i = 0; i < this.writeBuffer.length; i++) {\n            const data = this.writeBuffer[i].data;\n            if (data) {\n                payloadSize += byteLength(data);\n            }\n            if (i > 0 && payloadSize > this._maxPayload) {\n                return this.writeBuffer.slice(0, i);\n            }\n            payloadSize += 2; // separator + packet type\n        }\n        return this.writeBuffer;\n    }\n    /**\n     * Checks whether the heartbeat timer has expired but the socket has not yet been notified.\n     *\n     * Note: this method is private for now because it does not really fit the WebSocket API, but if we put it in the\n     * `write()` method then the message would not be buffered by the Socket.IO client.\n     *\n     * @return {boolean}\n     * @private\n     */\n    /* private */ _hasPingExpired() {\n        if (!this._pingTimeoutTime)\n            return true;\n        const hasExpired = Date.now() > this._pingTimeoutTime;\n        if (hasExpired) {\n            this._pingTimeoutTime = 0;\n            nextTick(() => {\n                this._onClose(\"ping timeout\");\n            }, this.setTimeoutFn);\n        }\n        return hasExpired;\n    }\n    /**\n     * Sends a message.\n     *\n     * @param {String} msg - message.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @return {Socket} for chaining.\n     */\n    write(msg, options, fn) {\n        this._sendPacket(\"message\", msg, options, fn);\n        return this;\n    }\n    /**\n     * Sends a message. Alias of {@link Socket#write}.\n     *\n     * @param {String} msg - message.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @return {Socket} for chaining.\n     */\n    send(msg, options, fn) {\n        this._sendPacket(\"message\", msg, options, fn);\n        return this;\n    }\n    /**\n     * Sends a packet.\n     *\n     * @param {String} type: packet type.\n     * @param {String} data.\n     * @param {Object} options.\n     * @param {Function} fn - callback function.\n     * @private\n     */\n    _sendPacket(type, data, options, fn) {\n        if (\"function\" === typeof data) {\n            fn = data;\n            data = undefined;\n        }\n        if (\"function\" === typeof options) {\n            fn = options;\n            options = null;\n        }\n        if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n            return;\n        }\n        options = options || {};\n        options.compress = false !== options.compress;\n        const packet = {\n            type: type,\n            data: data,\n            options: options,\n        };\n        this.emitReserved(\"packetCreate\", packet);\n        this.writeBuffer.push(packet);\n        if (fn)\n            this.once(\"flush\", fn);\n        this.flush();\n    }\n    /**\n     * Closes the connection.\n     */\n    close() {\n        const close = () => {\n            this._onClose(\"forced close\");\n            this.transport.close();\n        };\n        const cleanupAndClose = () => {\n            this.off(\"upgrade\", cleanupAndClose);\n            this.off(\"upgradeError\", cleanupAndClose);\n            close();\n        };\n        const waitForUpgrade = () => {\n            // wait for upgrade to finish since we can't send packets while pausing a transport\n            this.once(\"upgrade\", cleanupAndClose);\n            this.once(\"upgradeError\", cleanupAndClose);\n        };\n        if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n            this.readyState = \"closing\";\n            if (this.writeBuffer.length) {\n                this.once(\"drain\", () => {\n                    if (this.upgrading) {\n                        waitForUpgrade();\n                    }\n                    else {\n                        close();\n                    }\n                });\n            }\n            else if (this.upgrading) {\n                waitForUpgrade();\n            }\n            else {\n                close();\n            }\n        }\n        return this;\n    }\n    /**\n     * Called upon transport error\n     *\n     * @private\n     */\n    _onError(err) {\n        SocketWithoutUpgrade.priorWebsocketSuccess = false;\n        if (this.opts.tryAllTransports &&\n            this.transports.length > 1 &&\n            this.readyState === \"opening\") {\n            this.transports.shift();\n            return this._open();\n        }\n        this.emitReserved(\"error\", err);\n        this._onClose(\"transport error\", err);\n    }\n    /**\n     * Called upon transport close.\n     *\n     * @private\n     */\n    _onClose(reason, description) {\n        if (\"opening\" === this.readyState ||\n            \"open\" === this.readyState ||\n            \"closing\" === this.readyState) {\n            // clear timers\n            this.clearTimeoutFn(this._pingTimeoutTimer);\n            // stop event from firing again for transport\n            this.transport.removeAllListeners(\"close\");\n            // ensure transport won't stay open\n            this.transport.close();\n            // ignore further transport communication\n            this.transport.removeAllListeners();\n            if (withEventListeners) {\n                if (this._beforeunloadEventListener) {\n                    removeEventListener(\"beforeunload\", this._beforeunloadEventListener, false);\n                }\n                if (this._offlineEventListener) {\n                    const i = OFFLINE_EVENT_LISTENERS.indexOf(this._offlineEventListener);\n                    if (i !== -1) {\n                        OFFLINE_EVENT_LISTENERS.splice(i, 1);\n                    }\n                }\n            }\n            // set ready state\n            this.readyState = \"closed\";\n            // clear session id\n            this.id = null;\n            // emit close event\n            this.emitReserved(\"close\", reason, description);\n            // clean buffers after, so users can still\n            // grab the buffers on `close` event\n            this.writeBuffer = [];\n            this._prevBufferLen = 0;\n        }\n    }\n}\nSocketWithoutUpgrade.protocol = protocol;\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * In order to allow tree-shaking, there are no transports included, that's why the `transports` option is mandatory.\n *\n * @example\n * import { SocketWithUpgrade, WebSocket } from \"engine.io-client\";\n *\n * const socket = new SocketWithUpgrade({\n *   transports: [WebSocket]\n * });\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see Socket\n */\nexport class SocketWithUpgrade extends SocketWithoutUpgrade {\n    constructor() {\n        super(...arguments);\n        this._upgrades = [];\n    }\n    onOpen() {\n        super.onOpen();\n        if (\"open\" === this.readyState && this.opts.upgrade) {\n            for (let i = 0; i < this._upgrades.length; i++) {\n                this._probe(this._upgrades[i]);\n            }\n        }\n    }\n    /**\n     * Probes a transport.\n     *\n     * @param {String} name - transport name\n     * @private\n     */\n    _probe(name) {\n        let transport = this.createTransport(name);\n        let failed = false;\n        SocketWithoutUpgrade.priorWebsocketSuccess = false;\n        const onTransportOpen = () => {\n            if (failed)\n                return;\n            transport.send([{ type: \"ping\", data: \"probe\" }]);\n            transport.once(\"packet\", (msg) => {\n                if (failed)\n                    return;\n                if (\"pong\" === msg.type && \"probe\" === msg.data) {\n                    this.upgrading = true;\n                    this.emitReserved(\"upgrading\", transport);\n                    if (!transport)\n                        return;\n                    SocketWithoutUpgrade.priorWebsocketSuccess =\n                        \"websocket\" === transport.name;\n                    this.transport.pause(() => {\n                        if (failed)\n                            return;\n                        if (\"closed\" === this.readyState)\n                            return;\n                        cleanup();\n                        this.setTransport(transport);\n                        transport.send([{ type: \"upgrade\" }]);\n                        this.emitReserved(\"upgrade\", transport);\n                        transport = null;\n                        this.upgrading = false;\n                        this.flush();\n                    });\n                }\n                else {\n                    const err = new Error(\"probe error\");\n                    // @ts-ignore\n                    err.transport = transport.name;\n                    this.emitReserved(\"upgradeError\", err);\n                }\n            });\n        };\n        function freezeTransport() {\n            if (failed)\n                return;\n            // Any callback called by transport should be ignored since now\n            failed = true;\n            cleanup();\n            transport.close();\n            transport = null;\n        }\n        // Handle any error that happens while probing\n        const onerror = (err) => {\n            const error = new Error(\"probe error: \" + err);\n            // @ts-ignore\n            error.transport = transport.name;\n            freezeTransport();\n            this.emitReserved(\"upgradeError\", error);\n        };\n        function onTransportClose() {\n            onerror(\"transport closed\");\n        }\n        // When the socket is closed while we're probing\n        function onclose() {\n            onerror(\"socket closed\");\n        }\n        // When the socket is upgraded while we're probing\n        function onupgrade(to) {\n            if (transport && to.name !== transport.name) {\n                freezeTransport();\n            }\n        }\n        // Remove all listeners on the transport and on self\n        const cleanup = () => {\n            transport.removeListener(\"open\", onTransportOpen);\n            transport.removeListener(\"error\", onerror);\n            transport.removeListener(\"close\", onTransportClose);\n            this.off(\"close\", onclose);\n            this.off(\"upgrading\", onupgrade);\n        };\n        transport.once(\"open\", onTransportOpen);\n        transport.once(\"error\", onerror);\n        transport.once(\"close\", onTransportClose);\n        this.once(\"close\", onclose);\n        this.once(\"upgrading\", onupgrade);\n        if (this._upgrades.indexOf(\"webtransport\") !== -1 &&\n            name !== \"webtransport\") {\n            // favor WebTransport\n            this.setTimeoutFn(() => {\n                if (!failed) {\n                    transport.open();\n                }\n            }, 200);\n        }\n        else {\n            transport.open();\n        }\n    }\n    onHandshake(data) {\n        this._upgrades = this._filterUpgrades(data.upgrades);\n        super.onHandshake(data);\n    }\n    /**\n     * Filters upgrades, returning only those matching client transports.\n     *\n     * @param {Array} upgrades - server upgrades\n     * @private\n     */\n    _filterUpgrades(upgrades) {\n        const filteredUpgrades = [];\n        for (let i = 0; i < upgrades.length; i++) {\n            if (~this.transports.indexOf(upgrades[i]))\n                filteredUpgrades.push(upgrades[i]);\n        }\n        return filteredUpgrades;\n    }\n}\n/**\n * This class provides a WebSocket-like interface to connect to an Engine.IO server. The connection will be established\n * with one of the available low-level transports, like HTTP long-polling, WebSocket or WebTransport.\n *\n * This class comes with an upgrade mechanism, which means that once the connection is established with the first\n * low-level transport, it will try to upgrade to a better transport.\n *\n * @example\n * import { Socket } from \"engine.io-client\";\n *\n * const socket = new Socket();\n *\n * socket.on(\"open\", () => {\n *   socket.send(\"hello\");\n * });\n *\n * @see SocketWithoutUpgrade\n * @see SocketWithUpgrade\n */\nexport class Socket extends SocketWithUpgrade {\n    constructor(uri, opts = {}) {\n        const o = typeof uri === \"object\" ? uri : opts;\n        if (!o.transports ||\n            (o.transports && typeof o.transports[0] === \"string\")) {\n            o.transports = (o.transports || [\"polling\", \"websocket\", \"webtransport\"])\n                .map((transportName) => DEFAULT_TRANSPORTS[transportName])\n                .filter((t) => !!t);\n        }\n        super(uri, o);\n    }\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n    return typeof ArrayBuffer.isView === \"function\"\n        ? ArrayBuffer.isView(obj)\n        : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n    (typeof Blob !== \"undefined\" &&\n        toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n    (typeof File !== \"undefined\" &&\n        toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n    return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n        (withNativeBlob && obj instanceof Blob) ||\n        (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n    if (!obj || typeof obj !== \"object\") {\n        return false;\n    }\n    if (Array.isArray(obj)) {\n        for (let i = 0, l = obj.length; i < l; i++) {\n            if (hasBinary(obj[i])) {\n                return true;\n            }\n        }\n        return false;\n    }\n    if (isBinary(obj)) {\n        return true;\n    }\n    if (obj.toJSON &&\n        typeof obj.toJSON === \"function\" &&\n        arguments.length === 1) {\n        return hasBinary(obj.toJSON(), true);\n    }\n    for (const key in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n    const buffers = [];\n    const packetData = packet.data;\n    const pack = packet;\n    pack.data = _deconstructPacket(packetData, buffers);\n    pack.attachments = buffers.length; // number of binary 'attachments'\n    return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (isBinary(data)) {\n        const placeholder = { _placeholder: true, num: buffers.length };\n        buffers.push(data);\n        return placeholder;\n    }\n    else if (Array.isArray(data)) {\n        const newData = new Array(data.length);\n        for (let i = 0; i < data.length; i++) {\n            newData[i] = _deconstructPacket(data[i], buffers);\n        }\n        return newData;\n    }\n    else if (typeof data === \"object\" && !(data instanceof Date)) {\n        const newData = {};\n        for (const key in data) {\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\n                newData[key] = _deconstructPacket(data[key], buffers);\n            }\n        }\n        return newData;\n    }\n    return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n    packet.data = _reconstructPacket(packet.data, buffers);\n    delete packet.attachments; // no longer useful\n    return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n    if (!data)\n        return data;\n    if (data && data._placeholder === true) {\n        const isIndexValid = typeof data.num === \"number\" &&\n            data.num >= 0 &&\n            data.num < buffers.length;\n        if (isIndexValid) {\n            return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n        }\n        else {\n            throw new Error(\"illegal attachments\");\n        }\n    }\n    else if (Array.isArray(data)) {\n        for (let i = 0; i < data.length; i++) {\n            data[i] = _reconstructPacket(data[i], buffers);\n        }\n    }\n    else if (typeof data === \"object\") {\n        for (const key in data) {\n            if (Object.prototype.hasOwnProperty.call(data, key)) {\n                data[key] = _reconstructPacket(data[key], buffers);\n            }\n        }\n    }\n    return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * These strings must not be used as event names, as they have a special meaning.\n */\nconst RESERVED_EVENTS = [\n    \"connect\",\n    \"connect_error\",\n    \"disconnect\",\n    \"disconnecting\",\n    \"newListener\",\n    \"removeListener\", // used by the Node.js EventEmitter\n];\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n    PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n    PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n    PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n    PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n    PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n    PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n    PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n    /**\n     * Encoder constructor\n     *\n     * @param {function} replacer - custom replacer to pass down to JSON.parse\n     */\n    constructor(replacer) {\n        this.replacer = replacer;\n    }\n    /**\n     * Encode a packet as a single string if non-binary, or as a\n     * buffer sequence, depending on packet type.\n     *\n     * @param {Object} obj - packet object\n     */\n    encode(obj) {\n        if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n            if (hasBinary(obj)) {\n                return this.encodeAsBinary({\n                    type: obj.type === PacketType.EVENT\n                        ? PacketType.BINARY_EVENT\n                        : PacketType.BINARY_ACK,\n                    nsp: obj.nsp,\n                    data: obj.data,\n                    id: obj.id,\n                });\n            }\n        }\n        return [this.encodeAsString(obj)];\n    }\n    /**\n     * Encode packet as string.\n     */\n    encodeAsString(obj) {\n        // first is type\n        let str = \"\" + obj.type;\n        // attachments if we have them\n        if (obj.type === PacketType.BINARY_EVENT ||\n            obj.type === PacketType.BINARY_ACK) {\n            str += obj.attachments + \"-\";\n        }\n        // if we have a namespace other than `/`\n        // we append it followed by a comma `,`\n        if (obj.nsp && \"/\" !== obj.nsp) {\n            str += obj.nsp + \",\";\n        }\n        // immediately followed by the id\n        if (null != obj.id) {\n            str += obj.id;\n        }\n        // json data\n        if (null != obj.data) {\n            str += JSON.stringify(obj.data, this.replacer);\n        }\n        return str;\n    }\n    /**\n     * Encode packet as 'buffer sequence' by removing blobs, and\n     * deconstructing packet into object with placeholders and\n     * a list of buffers.\n     */\n    encodeAsBinary(obj) {\n        const deconstruction = deconstructPacket(obj);\n        const pack = this.encodeAsString(deconstruction.packet);\n        const buffers = deconstruction.buffers;\n        buffers.unshift(pack); // add packet info to beginning of data list\n        return buffers; // write all the buffers\n    }\n}\n// see https://stackoverflow.com/questions/8511281/check-if-a-value-is-an-object-in-javascript\nfunction isObject(value) {\n    return Object.prototype.toString.call(value) === \"[object Object]\";\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n    /**\n     * Decoder constructor\n     *\n     * @param {function} reviver - custom reviver to pass down to JSON.stringify\n     */\n    constructor(reviver) {\n        super();\n        this.reviver = reviver;\n    }\n    /**\n     * Decodes an encoded packet string into packet JSON.\n     *\n     * @param {String} obj - encoded packet\n     */\n    add(obj) {\n        let packet;\n        if (typeof obj === \"string\") {\n            if (this.reconstructor) {\n                throw new Error(\"got plaintext data when reconstructing a packet\");\n            }\n            packet = this.decodeString(obj);\n            const isBinaryEvent = packet.type === PacketType.BINARY_EVENT;\n            if (isBinaryEvent || packet.type === PacketType.BINARY_ACK) {\n                packet.type = isBinaryEvent ? PacketType.EVENT : PacketType.ACK;\n                // binary packet's json\n                this.reconstructor = new BinaryReconstructor(packet);\n                // no attachments, labeled binary but no binary data to follow\n                if (packet.attachments === 0) {\n                    super.emitReserved(\"decoded\", packet);\n                }\n            }\n            else {\n                // non-binary full packet\n                super.emitReserved(\"decoded\", packet);\n            }\n        }\n        else if (isBinary(obj) || obj.base64) {\n            // raw binary data\n            if (!this.reconstructor) {\n                throw new Error(\"got binary data when not reconstructing a packet\");\n            }\n            else {\n                packet = this.reconstructor.takeBinaryData(obj);\n                if (packet) {\n                    // received final buffer\n                    this.reconstructor = null;\n                    super.emitReserved(\"decoded\", packet);\n                }\n            }\n        }\n        else {\n            throw new Error(\"Unknown type: \" + obj);\n        }\n    }\n    /**\n     * Decode a packet String (JSON data)\n     *\n     * @param {String} str\n     * @return {Object} packet\n     */\n    decodeString(str) {\n        let i = 0;\n        // look up type\n        const p = {\n            type: Number(str.charAt(0)),\n        };\n        if (PacketType[p.type] === undefined) {\n            throw new Error(\"unknown packet type \" + p.type);\n        }\n        // look up attachments if type binary\n        if (p.type === PacketType.BINARY_EVENT ||\n            p.type === PacketType.BINARY_ACK) {\n            const start = i + 1;\n            while (str.charAt(++i) !== \"-\" && i != str.length) { }\n            const buf = str.substring(start, i);\n            if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n                throw new Error(\"Illegal attachments\");\n            }\n            p.attachments = Number(buf);\n        }\n        // look up namespace (if any)\n        if (\"/\" === str.charAt(i + 1)) {\n            const start = i + 1;\n            while (++i) {\n                const c = str.charAt(i);\n                if (\",\" === c)\n                    break;\n                if (i === str.length)\n                    break;\n            }\n            p.nsp = str.substring(start, i);\n        }\n        else {\n            p.nsp = \"/\";\n        }\n        // look up id\n        const next = str.charAt(i + 1);\n        if (\"\" !== next && Number(next) == next) {\n            const start = i + 1;\n            while (++i) {\n                const c = str.charAt(i);\n                if (null == c || Number(c) != c) {\n                    --i;\n                    break;\n                }\n                if (i === str.length)\n                    break;\n            }\n            p.id = Number(str.substring(start, i + 1));\n        }\n        // look up json data\n        if (str.charAt(++i)) {\n            const payload = this.tryParse(str.substr(i));\n            if (Decoder.isPayloadValid(p.type, payload)) {\n                p.data = payload;\n            }\n            else {\n                throw new Error(\"invalid payload\");\n            }\n        }\n        return p;\n    }\n    tryParse(str) {\n        try {\n            return JSON.parse(str, this.reviver);\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    static isPayloadValid(type, payload) {\n        switch (type) {\n            case PacketType.CONNECT:\n                return isObject(payload);\n            case PacketType.DISCONNECT:\n                return payload === undefined;\n            case PacketType.CONNECT_ERROR:\n                return typeof payload === \"string\" || isObject(payload);\n            case PacketType.EVENT:\n            case PacketType.BINARY_EVENT:\n                return (Array.isArray(payload) &&\n                    (typeof payload[0] === \"number\" ||\n                        (typeof payload[0] === \"string\" &&\n                            RESERVED_EVENTS.indexOf(payload[0]) === -1)));\n            case PacketType.ACK:\n            case PacketType.BINARY_ACK:\n                return Array.isArray(payload);\n        }\n    }\n    /**\n     * Deallocates a parser's resources\n     */\n    destroy() {\n        if (this.reconstructor) {\n            this.reconstructor.finishedReconstruction();\n            this.reconstructor = null;\n        }\n    }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n    constructor(packet) {\n        this.packet = packet;\n        this.buffers = [];\n        this.reconPack = packet;\n    }\n    /**\n     * Method to be called when binary data received from connection\n     * after a BINARY_EVENT packet.\n     *\n     * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n     * @return {null | Object} returns null if more binary data is expected or\n     *   a reconstructed packet object if all buffers have been received.\n     */\n    takeBinaryData(binData) {\n        this.buffers.push(binData);\n        if (this.buffers.length === this.reconPack.attachments) {\n            // done with buffer list\n            const packet = reconstructPacket(this.reconPack, this.buffers);\n            this.finishedReconstruction();\n            return packet;\n        }\n        return null;\n    }\n    /**\n     * Cleans up binary packet reconstruction variables.\n     */\n    finishedReconstruction() {\n        this.reconPack = null;\n        this.buffers = [];\n    }\n}\n","export function on(obj, ev, fn) {\n    obj.on(ev, fn);\n    return function subDestroy() {\n        obj.off(ev, fn);\n    };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n    connect: 1,\n    connect_error: 1,\n    disconnect: 1,\n    disconnecting: 1,\n    // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n    newListener: 1,\n    removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n *   console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n *   // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n *   console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n    /**\n     * `Socket` constructor.\n     */\n    constructor(io, nsp, opts) {\n        super();\n        /**\n         * Whether the socket is currently connected to the server.\n         *\n         * @example\n         * const socket = io();\n         *\n         * socket.on(\"connect\", () => {\n         *   console.log(socket.connected); // true\n         * });\n         *\n         * socket.on(\"disconnect\", () => {\n         *   console.log(socket.connected); // false\n         * });\n         */\n        this.connected = false;\n        /**\n         * Whether the connection state was recovered after a temporary disconnection. In that case, any missed packets will\n         * be transmitted by the server.\n         */\n        this.recovered = false;\n        /**\n         * Buffer for packets received before the CONNECT packet\n         */\n        this.receiveBuffer = [];\n        /**\n         * Buffer for packets that will be sent once the socket is connected\n         */\n        this.sendBuffer = [];\n        /**\n         * The queue of packets to be sent with retry in case of failure.\n         *\n         * Packets are sent one by one, each waiting for the server acknowledgement, in order to guarantee the delivery order.\n         * @private\n         */\n        this._queue = [];\n        /**\n         * A sequence to generate the ID of the {@link QueuedPacket}.\n         * @private\n         */\n        this._queueSeq = 0;\n        this.ids = 0;\n        /**\n         * A map containing acknowledgement handlers.\n         *\n         * The `withError` attribute is used to differentiate handlers that accept an error as first argument:\n         *\n         * - `socket.emit(\"test\", (err, value) => { ... })` with `ackTimeout` option\n         * - `socket.timeout(5000).emit(\"test\", (err, value) => { ... })`\n         * - `const value = await socket.emitWithAck(\"test\")`\n         *\n         * From those that don't:\n         *\n         * - `socket.emit(\"test\", (value) => { ... });`\n         *\n         * In the first case, the handlers will be called with an error when:\n         *\n         * - the timeout is reached\n         * - the socket gets disconnected\n         *\n         * In the second case, the handlers will be simply discarded upon disconnection, since the client will never receive\n         * an acknowledgement from the server.\n         *\n         * @private\n         */\n        this.acks = {};\n        this.flags = {};\n        this.io = io;\n        this.nsp = nsp;\n        if (opts && opts.auth) {\n            this.auth = opts.auth;\n        }\n        this._opts = Object.assign({}, opts);\n        if (this.io._autoConnect)\n            this.open();\n    }\n    /**\n     * Whether the socket is currently disconnected\n     *\n     * @example\n     * const socket = io();\n     *\n     * socket.on(\"connect\", () => {\n     *   console.log(socket.disconnected); // false\n     * });\n     *\n     * socket.on(\"disconnect\", () => {\n     *   console.log(socket.disconnected); // true\n     * });\n     */\n    get disconnected() {\n        return !this.connected;\n    }\n    /**\n     * Subscribe to open, close and packet events\n     *\n     * @private\n     */\n    subEvents() {\n        if (this.subs)\n            return;\n        const io = this.io;\n        this.subs = [\n            on(io, \"open\", this.onopen.bind(this)),\n            on(io, \"packet\", this.onpacket.bind(this)),\n            on(io, \"error\", this.onerror.bind(this)),\n            on(io, \"close\", this.onclose.bind(this)),\n        ];\n    }\n    /**\n     * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n     *\n     * @example\n     * const socket = io();\n     *\n     * console.log(socket.active); // true\n     *\n     * socket.on(\"disconnect\", (reason) => {\n     *   if (reason === \"io server disconnect\") {\n     *     // the disconnection was initiated by the server, you need to manually reconnect\n     *     console.log(socket.active); // false\n     *   }\n     *   // else the socket will automatically try to reconnect\n     *   console.log(socket.active); // true\n     * });\n     */\n    get active() {\n        return !!this.subs;\n    }\n    /**\n     * \"Opens\" the socket.\n     *\n     * @example\n     * const socket = io({\n     *   autoConnect: false\n     * });\n     *\n     * socket.connect();\n     */\n    connect() {\n        if (this.connected)\n            return this;\n        this.subEvents();\n        if (!this.io[\"_reconnecting\"])\n            this.io.open(); // ensure open\n        if (\"open\" === this.io._readyState)\n            this.onopen();\n        return this;\n    }\n    /**\n     * Alias for {@link connect()}.\n     */\n    open() {\n        return this.connect();\n    }\n    /**\n     * Sends a `message` event.\n     *\n     * This method mimics the WebSocket.send() method.\n     *\n     * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n     *\n     * @example\n     * socket.send(\"hello\");\n     *\n     * // this is equivalent to\n     * socket.emit(\"message\", \"hello\");\n     *\n     * @return self\n     */\n    send(...args) {\n        args.unshift(\"message\");\n        this.emit.apply(this, args);\n        return this;\n    }\n    /**\n     * Override `emit`.\n     * If the event is in `events`, it's emitted normally.\n     *\n     * @example\n     * socket.emit(\"hello\", \"world\");\n     *\n     * // all serializable datastructures are supported (no need to call JSON.stringify)\n     * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n     *\n     * // with an acknowledgement from the server\n     * socket.emit(\"hello\", \"world\", (val) => {\n     *   // ...\n     * });\n     *\n     * @return self\n     */\n    emit(ev, ...args) {\n        var _a, _b, _c;\n        if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n            throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n        }\n        args.unshift(ev);\n        if (this._opts.retries && !this.flags.fromQueue && !this.flags.volatile) {\n            this._addToQueue(args);\n            return this;\n        }\n        const packet = {\n            type: PacketType.EVENT,\n            data: args,\n        };\n        packet.options = {};\n        packet.options.compress = this.flags.compress !== false;\n        // event ack callback\n        if (\"function\" === typeof args[args.length - 1]) {\n            const id = this.ids++;\n            const ack = args.pop();\n            this._registerAckCallback(id, ack);\n            packet.id = id;\n        }\n        const isTransportWritable = (_b = (_a = this.io.engine) === null || _a === void 0 ? void 0 : _a.transport) === null || _b === void 0 ? void 0 : _b.writable;\n        const isConnected = this.connected && !((_c = this.io.engine) === null || _c === void 0 ? void 0 : _c._hasPingExpired());\n        const discardPacket = this.flags.volatile && !isTransportWritable;\n        if (discardPacket) {\n        }\n        else if (isConnected) {\n            this.notifyOutgoingListeners(packet);\n            this.packet(packet);\n        }\n        else {\n            this.sendBuffer.push(packet);\n        }\n        this.flags = {};\n        return this;\n    }\n    /**\n     * @private\n     */\n    _registerAckCallback(id, ack) {\n        var _a;\n        const timeout = (_a = this.flags.timeout) !== null && _a !== void 0 ? _a : this._opts.ackTimeout;\n        if (timeout === undefined) {\n            this.acks[id] = ack;\n            return;\n        }\n        // @ts-ignore\n        const timer = this.io.setTimeoutFn(() => {\n            delete this.acks[id];\n            for (let i = 0; i < this.sendBuffer.length; i++) {\n                if (this.sendBuffer[i].id === id) {\n                    this.sendBuffer.splice(i, 1);\n                }\n            }\n            ack.call(this, new Error(\"operation has timed out\"));\n        }, timeout);\n        const fn = (...args) => {\n            // @ts-ignore\n            this.io.clearTimeoutFn(timer);\n            ack.apply(this, args);\n        };\n        fn.withError = true;\n        this.acks[id] = fn;\n    }\n    /**\n     * Emits an event and waits for an acknowledgement\n     *\n     * @example\n     * // without timeout\n     * const response = await socket.emitWithAck(\"hello\", \"world\");\n     *\n     * // with a specific timeout\n     * try {\n     *   const response = await socket.timeout(1000).emitWithAck(\"hello\", \"world\");\n     * } catch (err) {\n     *   // the server did not acknowledge the event in the given delay\n     * }\n     *\n     * @return a Promise that will be fulfilled when the server acknowledges the event\n     */\n    emitWithAck(ev, ...args) {\n        return new Promise((resolve, reject) => {\n            const fn = (arg1, arg2) => {\n                return arg1 ? reject(arg1) : resolve(arg2);\n            };\n            fn.withError = true;\n            args.push(fn);\n            this.emit(ev, ...args);\n        });\n    }\n    /**\n     * Add the packet to the queue.\n     * @param args\n     * @private\n     */\n    _addToQueue(args) {\n        let ack;\n        if (typeof args[args.length - 1] === \"function\") {\n            ack = args.pop();\n        }\n        const packet = {\n            id: this._queueSeq++,\n            tryCount: 0,\n            pending: false,\n            args,\n            flags: Object.assign({ fromQueue: true }, this.flags),\n        };\n        args.push((err, ...responseArgs) => {\n            if (packet !== this._queue[0]) {\n                // the packet has already been acknowledged\n                return;\n            }\n            const hasError = err !== null;\n            if (hasError) {\n                if (packet.tryCount > this._opts.retries) {\n                    this._queue.shift();\n                    if (ack) {\n                        ack(err);\n                    }\n                }\n            }\n            else {\n                this._queue.shift();\n                if (ack) {\n                    ack(null, ...responseArgs);\n                }\n            }\n            packet.pending = false;\n            return this._drainQueue();\n        });\n        this._queue.push(packet);\n        this._drainQueue();\n    }\n    /**\n     * Send the first packet of the queue, and wait for an acknowledgement from the server.\n     * @param force - whether to resend a packet that has not been acknowledged yet\n     *\n     * @private\n     */\n    _drainQueue(force = false) {\n        if (!this.connected || this._queue.length === 0) {\n            return;\n        }\n        const packet = this._queue[0];\n        if (packet.pending && !force) {\n            return;\n        }\n        packet.pending = true;\n        packet.tryCount++;\n        this.flags = packet.flags;\n        this.emit.apply(this, packet.args);\n    }\n    /**\n     * Sends a packet.\n     *\n     * @param packet\n     * @private\n     */\n    packet(packet) {\n        packet.nsp = this.nsp;\n        this.io._packet(packet);\n    }\n    /**\n     * Called upon engine `open`.\n     *\n     * @private\n     */\n    onopen() {\n        if (typeof this.auth == \"function\") {\n            this.auth((data) => {\n                this._sendConnectPacket(data);\n            });\n        }\n        else {\n            this._sendConnectPacket(this.auth);\n        }\n    }\n    /**\n     * Sends a CONNECT packet to initiate the Socket.IO session.\n     *\n     * @param data\n     * @private\n     */\n    _sendConnectPacket(data) {\n        this.packet({\n            type: PacketType.CONNECT,\n            data: this._pid\n                ? Object.assign({ pid: this._pid, offset: this._lastOffset }, data)\n                : data,\n        });\n    }\n    /**\n     * Called upon engine or manager `error`.\n     *\n     * @param err\n     * @private\n     */\n    onerror(err) {\n        if (!this.connected) {\n            this.emitReserved(\"connect_error\", err);\n        }\n    }\n    /**\n     * Called upon engine `close`.\n     *\n     * @param reason\n     * @param description\n     * @private\n     */\n    onclose(reason, description) {\n        this.connected = false;\n        delete this.id;\n        this.emitReserved(\"disconnect\", reason, description);\n        this._clearAcks();\n    }\n    /**\n     * Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from\n     * the server.\n     *\n     * @private\n     */\n    _clearAcks() {\n        Object.keys(this.acks).forEach((id) => {\n            const isBuffered = this.sendBuffer.some((packet) => String(packet.id) === id);\n            if (!isBuffered) {\n                // note: handlers that do not accept an error as first argument are ignored here\n                const ack = this.acks[id];\n                delete this.acks[id];\n                if (ack.withError) {\n                    ack.call(this, new Error(\"socket has been disconnected\"));\n                }\n            }\n        });\n    }\n    /**\n     * Called with socket packet.\n     *\n     * @param packet\n     * @private\n     */\n    onpacket(packet) {\n        const sameNamespace = packet.nsp === this.nsp;\n        if (!sameNamespace)\n            return;\n        switch (packet.type) {\n            case PacketType.CONNECT:\n                if (packet.data && packet.data.sid) {\n                    this.onconnect(packet.data.sid, packet.data.pid);\n                }\n                else {\n                    this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n                }\n                break;\n            case PacketType.EVENT:\n            case PacketType.BINARY_EVENT:\n                this.onevent(packet);\n                break;\n            case PacketType.ACK:\n            case PacketType.BINARY_ACK:\n                this.onack(packet);\n                break;\n            case PacketType.DISCONNECT:\n                this.ondisconnect();\n                break;\n            case PacketType.CONNECT_ERROR:\n                this.destroy();\n                const err = new Error(packet.data.message);\n                // @ts-ignore\n                err.data = packet.data.data;\n                this.emitReserved(\"connect_error\", err);\n                break;\n        }\n    }\n    /**\n     * Called upon a server event.\n     *\n     * @param packet\n     * @private\n     */\n    onevent(packet) {\n        const args = packet.data || [];\n        if (null != packet.id) {\n            args.push(this.ack(packet.id));\n        }\n        if (this.connected) {\n            this.emitEvent(args);\n        }\n        else {\n            this.receiveBuffer.push(Object.freeze(args));\n        }\n    }\n    emitEvent(args) {\n        if (this._anyListeners && this._anyListeners.length) {\n            const listeners = this._anyListeners.slice();\n            for (const listener of listeners) {\n                listener.apply(this, args);\n            }\n        }\n        super.emit.apply(this, args);\n        if (this._pid && args.length && typeof args[args.length - 1] === \"string\") {\n            this._lastOffset = args[args.length - 1];\n        }\n    }\n    /**\n     * Produces an ack callback to emit with an event.\n     *\n     * @private\n     */\n    ack(id) {\n        const self = this;\n        let sent = false;\n        return function (...args) {\n            // prevent double callbacks\n            if (sent)\n                return;\n            sent = true;\n            self.packet({\n                type: PacketType.ACK,\n                id: id,\n                data: args,\n            });\n        };\n    }\n    /**\n     * Called upon a server acknowledgement.\n     *\n     * @param packet\n     * @private\n     */\n    onack(packet) {\n        const ack = this.acks[packet.id];\n        if (typeof ack !== \"function\") {\n            return;\n        }\n        delete this.acks[packet.id];\n        // @ts-ignore FIXME ack is incorrectly inferred as 'never'\n        if (ack.withError) {\n            packet.data.unshift(null);\n        }\n        // @ts-ignore\n        ack.apply(this, packet.data);\n    }\n    /**\n     * Called upon server connect.\n     *\n     * @private\n     */\n    onconnect(id, pid) {\n        this.id = id;\n        this.recovered = pid && this._pid === pid;\n        this._pid = pid; // defined only if connection state recovery is enabled\n        this.connected = true;\n        this.emitBuffered();\n        this.emitReserved(\"connect\");\n        this._drainQueue(true);\n    }\n    /**\n     * Emit buffered events (received and emitted).\n     *\n     * @private\n     */\n    emitBuffered() {\n        this.receiveBuffer.forEach((args) => this.emitEvent(args));\n        this.receiveBuffer = [];\n        this.sendBuffer.forEach((packet) => {\n            this.notifyOutgoingListeners(packet);\n            this.packet(packet);\n        });\n        this.sendBuffer = [];\n    }\n    /**\n     * Called upon server disconnect.\n     *\n     * @private\n     */\n    ondisconnect() {\n        this.destroy();\n        this.onclose(\"io server disconnect\");\n    }\n    /**\n     * Called upon forced client/server side disconnections,\n     * this method ensures the manager stops tracking us and\n     * that reconnections don't get triggered for this.\n     *\n     * @private\n     */\n    destroy() {\n        if (this.subs) {\n            // clean subscriptions to avoid reconnections\n            this.subs.forEach((subDestroy) => subDestroy());\n            this.subs = undefined;\n        }\n        this.io[\"_destroy\"](this);\n    }\n    /**\n     * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n     *\n     * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n     *\n     * @example\n     * const socket = io();\n     *\n     * socket.on(\"disconnect\", (reason) => {\n     *   // console.log(reason); prints \"io client disconnect\"\n     * });\n     *\n     * socket.disconnect();\n     *\n     * @return self\n     */\n    disconnect() {\n        if (this.connected) {\n            this.packet({ type: PacketType.DISCONNECT });\n        }\n        // remove socket from pool\n        this.destroy();\n        if (this.connected) {\n            // fire events\n            this.onclose(\"io client disconnect\");\n        }\n        return this;\n    }\n    /**\n     * Alias for {@link disconnect()}.\n     *\n     * @return self\n     */\n    close() {\n        return this.disconnect();\n    }\n    /**\n     * Sets the compress flag.\n     *\n     * @example\n     * socket.compress(false).emit(\"hello\");\n     *\n     * @param compress - if `true`, compresses the sending data\n     * @return self\n     */\n    compress(compress) {\n        this.flags.compress = compress;\n        return this;\n    }\n    /**\n     * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n     * ready to send messages.\n     *\n     * @example\n     * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n     *\n     * @returns self\n     */\n    get volatile() {\n        this.flags.volatile = true;\n        return this;\n    }\n    /**\n     * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n     * given number of milliseconds have elapsed without an acknowledgement from the server:\n     *\n     * @example\n     * socket.timeout(5000).emit(\"my-event\", (err) => {\n     *   if (err) {\n     *     // the server did not acknowledge the event in the given delay\n     *   }\n     * });\n     *\n     * @returns self\n     */\n    timeout(timeout) {\n        this.flags.timeout = timeout;\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback.\n     *\n     * @example\n     * socket.onAny((event, ...args) => {\n     *   console.log(`got ${event}`);\n     * });\n     *\n     * @param listener\n     */\n    onAny(listener) {\n        this._anyListeners = this._anyListeners || [];\n        this._anyListeners.push(listener);\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback. The listener is added to the beginning of the listeners array.\n     *\n     * @example\n     * socket.prependAny((event, ...args) => {\n     *   console.log(`got event ${event}`);\n     * });\n     *\n     * @param listener\n     */\n    prependAny(listener) {\n        this._anyListeners = this._anyListeners || [];\n        this._anyListeners.unshift(listener);\n        return this;\n    }\n    /**\n     * Removes the listener that will be fired when any event is emitted.\n     *\n     * @example\n     * const catchAllListener = (event, ...args) => {\n     *   console.log(`got event ${event}`);\n     * }\n     *\n     * socket.onAny(catchAllListener);\n     *\n     * // remove a specific listener\n     * socket.offAny(catchAllListener);\n     *\n     * // or remove all listeners\n     * socket.offAny();\n     *\n     * @param listener\n     */\n    offAny(listener) {\n        if (!this._anyListeners) {\n            return this;\n        }\n        if (listener) {\n            const listeners = this._anyListeners;\n            for (let i = 0; i < listeners.length; i++) {\n                if (listener === listeners[i]) {\n                    listeners.splice(i, 1);\n                    return this;\n                }\n            }\n        }\n        else {\n            this._anyListeners = [];\n        }\n        return this;\n    }\n    /**\n     * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n     * e.g. to remove listeners.\n     */\n    listenersAny() {\n        return this._anyListeners || [];\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback.\n     *\n     * Note: acknowledgements sent to the server are not included.\n     *\n     * @example\n     * socket.onAnyOutgoing((event, ...args) => {\n     *   console.log(`sent event ${event}`);\n     * });\n     *\n     * @param listener\n     */\n    onAnyOutgoing(listener) {\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n        this._anyOutgoingListeners.push(listener);\n        return this;\n    }\n    /**\n     * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n     * callback. The listener is added to the beginning of the listeners array.\n     *\n     * Note: acknowledgements sent to the server are not included.\n     *\n     * @example\n     * socket.prependAnyOutgoing((event, ...args) => {\n     *   console.log(`sent event ${event}`);\n     * });\n     *\n     * @param listener\n     */\n    prependAnyOutgoing(listener) {\n        this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n        this._anyOutgoingListeners.unshift(listener);\n        return this;\n    }\n    /**\n     * Removes the listener that will be fired when any event is emitted.\n     *\n     * @example\n     * const catchAllListener = (event, ...args) => {\n     *   console.log(`sent event ${event}`);\n     * }\n     *\n     * socket.onAnyOutgoing(catchAllListener);\n     *\n     * // remove a specific listener\n     * socket.offAnyOutgoing(catchAllListener);\n     *\n     * // or remove all listeners\n     * socket.offAnyOutgoing();\n     *\n     * @param [listener] - the catch-all listener (optional)\n     */\n    offAnyOutgoing(listener) {\n        if (!this._anyOutgoingListeners) {\n            return this;\n        }\n        if (listener) {\n            const listeners = this._anyOutgoingListeners;\n            for (let i = 0; i < listeners.length; i++) {\n                if (listener === listeners[i]) {\n                    listeners.splice(i, 1);\n                    return this;\n                }\n            }\n        }\n        else {\n            this._anyOutgoingListeners = [];\n        }\n        return this;\n    }\n    /**\n     * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n     * e.g. to remove listeners.\n     */\n    listenersAnyOutgoing() {\n        return this._anyOutgoingListeners || [];\n    }\n    /**\n     * Notify the listeners for each packet sent\n     *\n     * @param packet\n     *\n     * @private\n     */\n    notifyOutgoingListeners(packet) {\n        if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n            const listeners = this._anyOutgoingListeners.slice();\n            for (const listener of listeners) {\n                listener.apply(this, packet.data);\n            }\n        }\n    }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n    opts = opts || {};\n    this.ms = opts.min || 100;\n    this.max = opts.max || 10000;\n    this.factor = opts.factor || 2;\n    this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n    this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n    var ms = this.ms * Math.pow(this.factor, this.attempts++);\n    if (this.jitter) {\n        var rand = Math.random();\n        var deviation = Math.floor(rand * this.jitter * ms);\n        ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n    }\n    return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n    this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n    this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n    this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n    this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n    constructor(uri, opts) {\n        var _a;\n        super();\n        this.nsps = {};\n        this.subs = [];\n        if (uri && \"object\" === typeof uri) {\n            opts = uri;\n            uri = undefined;\n        }\n        opts = opts || {};\n        opts.path = opts.path || \"/socket.io\";\n        this.opts = opts;\n        installTimerFunctions(this, opts);\n        this.reconnection(opts.reconnection !== false);\n        this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n        this.reconnectionDelay(opts.reconnectionDelay || 1000);\n        this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n        this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n        this.backoff = new Backoff({\n            min: this.reconnectionDelay(),\n            max: this.reconnectionDelayMax(),\n            jitter: this.randomizationFactor(),\n        });\n        this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n        this._readyState = \"closed\";\n        this.uri = uri;\n        const _parser = opts.parser || parser;\n        this.encoder = new _parser.Encoder();\n        this.decoder = new _parser.Decoder();\n        this._autoConnect = opts.autoConnect !== false;\n        if (this._autoConnect)\n            this.open();\n    }\n    reconnection(v) {\n        if (!arguments.length)\n            return this._reconnection;\n        this._reconnection = !!v;\n        if (!v) {\n            this.skipReconnect = true;\n        }\n        return this;\n    }\n    reconnectionAttempts(v) {\n        if (v === undefined)\n            return this._reconnectionAttempts;\n        this._reconnectionAttempts = v;\n        return this;\n    }\n    reconnectionDelay(v) {\n        var _a;\n        if (v === undefined)\n            return this._reconnectionDelay;\n        this._reconnectionDelay = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n        return this;\n    }\n    randomizationFactor(v) {\n        var _a;\n        if (v === undefined)\n            return this._randomizationFactor;\n        this._randomizationFactor = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n        return this;\n    }\n    reconnectionDelayMax(v) {\n        var _a;\n        if (v === undefined)\n            return this._reconnectionDelayMax;\n        this._reconnectionDelayMax = v;\n        (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n        return this;\n    }\n    timeout(v) {\n        if (!arguments.length)\n            return this._timeout;\n        this._timeout = v;\n        return this;\n    }\n    /**\n     * Starts trying to reconnect if reconnection is enabled and we have not\n     * started reconnecting yet\n     *\n     * @private\n     */\n    maybeReconnectOnOpen() {\n        // Only try to reconnect if it's the first time we're connecting\n        if (!this._reconnecting &&\n            this._reconnection &&\n            this.backoff.attempts === 0) {\n            // keeps reconnection from firing twice for the same reconnection loop\n            this.reconnect();\n        }\n    }\n    /**\n     * Sets the current transport `socket`.\n     *\n     * @param {Function} fn - optional, callback\n     * @return self\n     * @public\n     */\n    open(fn) {\n        if (~this._readyState.indexOf(\"open\"))\n            return this;\n        this.engine = new Engine(this.uri, this.opts);\n        const socket = this.engine;\n        const self = this;\n        this._readyState = \"opening\";\n        this.skipReconnect = false;\n        // emit `open`\n        const openSubDestroy = on(socket, \"open\", function () {\n            self.onopen();\n            fn && fn();\n        });\n        const onError = (err) => {\n            this.cleanup();\n            this._readyState = \"closed\";\n            this.emitReserved(\"error\", err);\n            if (fn) {\n                fn(err);\n            }\n            else {\n                // Only do this if there is no fn to handle the error\n                this.maybeReconnectOnOpen();\n            }\n        };\n        // emit `error`\n        const errorSub = on(socket, \"error\", onError);\n        if (false !== this._timeout) {\n            const timeout = this._timeout;\n            // set timer\n            const timer = this.setTimeoutFn(() => {\n                openSubDestroy();\n                onError(new Error(\"timeout\"));\n                socket.close();\n            }, timeout);\n            if (this.opts.autoUnref) {\n                timer.unref();\n            }\n            this.subs.push(() => {\n                this.clearTimeoutFn(timer);\n            });\n        }\n        this.subs.push(openSubDestroy);\n        this.subs.push(errorSub);\n        return this;\n    }\n    /**\n     * Alias for open()\n     *\n     * @return self\n     * @public\n     */\n    connect(fn) {\n        return this.open(fn);\n    }\n    /**\n     * Called upon transport open.\n     *\n     * @private\n     */\n    onopen() {\n        // clear old subs\n        this.cleanup();\n        // mark as open\n        this._readyState = \"open\";\n        this.emitReserved(\"open\");\n        // add new subs\n        const socket = this.engine;\n        this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), \n        // @ts-ignore\n        on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n    }\n    /**\n     * Called upon a ping.\n     *\n     * @private\n     */\n    onping() {\n        this.emitReserved(\"ping\");\n    }\n    /**\n     * Called with data.\n     *\n     * @private\n     */\n    ondata(data) {\n        try {\n            this.decoder.add(data);\n        }\n        catch (e) {\n            this.onclose(\"parse error\", e);\n        }\n    }\n    /**\n     * Called when parser fully decodes a packet.\n     *\n     * @private\n     */\n    ondecoded(packet) {\n        // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n        nextTick(() => {\n            this.emitReserved(\"packet\", packet);\n        }, this.setTimeoutFn);\n    }\n    /**\n     * Called upon socket error.\n     *\n     * @private\n     */\n    onerror(err) {\n        this.emitReserved(\"error\", err);\n    }\n    /**\n     * Creates a new socket for the given `nsp`.\n     *\n     * @return {Socket}\n     * @public\n     */\n    socket(nsp, opts) {\n        let socket = this.nsps[nsp];\n        if (!socket) {\n            socket = new Socket(this, nsp, opts);\n            this.nsps[nsp] = socket;\n        }\n        else if (this._autoConnect && !socket.active) {\n            socket.connect();\n        }\n        return socket;\n    }\n    /**\n     * Called upon a socket close.\n     *\n     * @param socket\n     * @private\n     */\n    _destroy(socket) {\n        const nsps = Object.keys(this.nsps);\n        for (const nsp of nsps) {\n            const socket = this.nsps[nsp];\n            if (socket.active) {\n                return;\n            }\n        }\n        this._close();\n    }\n    /**\n     * Writes a packet.\n     *\n     * @param packet\n     * @private\n     */\n    _packet(packet) {\n        const encodedPackets = this.encoder.encode(packet);\n        for (let i = 0; i < encodedPackets.length; i++) {\n            this.engine.write(encodedPackets[i], packet.options);\n        }\n    }\n    /**\n     * Clean up transport subscriptions and packet buffer.\n     *\n     * @private\n     */\n    cleanup() {\n        this.subs.forEach((subDestroy) => subDestroy());\n        this.subs.length = 0;\n        this.decoder.destroy();\n    }\n    /**\n     * Close the current socket.\n     *\n     * @private\n     */\n    _close() {\n        this.skipReconnect = true;\n        this._reconnecting = false;\n        this.onclose(\"forced close\");\n    }\n    /**\n     * Alias for close()\n     *\n     * @private\n     */\n    disconnect() {\n        return this._close();\n    }\n    /**\n     * Called when:\n     *\n     * - the low-level engine is closed\n     * - the parser encountered a badly formatted packet\n     * - all sockets are disconnected\n     *\n     * @private\n     */\n    onclose(reason, description) {\n        var _a;\n        this.cleanup();\n        (_a = this.engine) === null || _a === void 0 ? void 0 : _a.close();\n        this.backoff.reset();\n        this._readyState = \"closed\";\n        this.emitReserved(\"close\", reason, description);\n        if (this._reconnection && !this.skipReconnect) {\n            this.reconnect();\n        }\n    }\n    /**\n     * Attempt a reconnection.\n     *\n     * @private\n     */\n    reconnect() {\n        if (this._reconnecting || this.skipReconnect)\n            return this;\n        const self = this;\n        if (this.backoff.attempts >= this._reconnectionAttempts) {\n            this.backoff.reset();\n            this.emitReserved(\"reconnect_failed\");\n            this._reconnecting = false;\n        }\n        else {\n            const delay = this.backoff.duration();\n            this._reconnecting = true;\n            const timer = this.setTimeoutFn(() => {\n                if (self.skipReconnect)\n                    return;\n                this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n                // check again for the case socket closed in above events\n                if (self.skipReconnect)\n                    return;\n                self.open((err) => {\n                    if (err) {\n                        self._reconnecting = false;\n                        self.reconnect();\n                        this.emitReserved(\"reconnect_error\", err);\n                    }\n                    else {\n                        self.onreconnect();\n                    }\n                });\n            }, delay);\n            if (this.opts.autoUnref) {\n                timer.unref();\n            }\n            this.subs.push(() => {\n                this.clearTimeoutFn(timer);\n            });\n        }\n    }\n    /**\n     * Called upon successful reconnect.\n     *\n     * @private\n     */\n    onreconnect() {\n        const attempt = this.backoff.attempts;\n        this._reconnecting = false;\n        this.backoff.reset();\n        this.emitReserved(\"reconnect\", attempt);\n    }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n    if (typeof uri === \"object\") {\n        opts = uri;\n        uri = undefined;\n    }\n    opts = opts || {};\n    const parsed = url(uri, opts.path || \"/socket.io\");\n    const source = parsed.source;\n    const id = parsed.id;\n    const path = parsed.path;\n    const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n    const newConnection = opts.forceNew ||\n        opts[\"force new connection\"] ||\n        false === opts.multiplex ||\n        sameNamespace;\n    let io;\n    if (newConnection) {\n        io = new Manager(source, opts);\n    }\n    else {\n        if (!cache[id]) {\n            cache[id] = new Manager(source, opts);\n        }\n        io = cache[id];\n    }\n    if (parsed.query && !opts.query) {\n        opts.query = parsed.queryKey;\n    }\n    return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n    Manager,\n    Socket,\n    io: lookup,\n    connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\nexport { Fetch, NodeXHR, XHR, NodeWebSocket, WebSocket, WebTransport, } from \"engine.io-client\";\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n *        Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n    let obj = uri;\n    // default to window.location\n    loc = loc || (typeof location !== \"undefined\" && location);\n    if (null == uri)\n        uri = loc.protocol + \"//\" + loc.host;\n    // relative path support\n    if (typeof uri === \"string\") {\n        if (\"/\" === uri.charAt(0)) {\n            if (\"/\" === uri.charAt(1)) {\n                uri = loc.protocol + uri;\n            }\n            else {\n                uri = loc.host + uri;\n            }\n        }\n        if (!/^(https?|wss?):\\/\\//.test(uri)) {\n            if (\"undefined\" !== typeof loc) {\n                uri = loc.protocol + \"//\" + uri;\n            }\n            else {\n                uri = \"https://\" + uri;\n            }\n        }\n        // parse\n        obj = parse(uri);\n    }\n    // make sure we treat `localhost:80` and `localhost` equally\n    if (!obj.port) {\n        if (/^(http|ws)$/.test(obj.protocol)) {\n            obj.port = \"80\";\n        }\n        else if (/^(http|ws)s$/.test(obj.protocol)) {\n            obj.port = \"443\";\n        }\n    }\n    obj.path = obj.path || \"/\";\n    const ipv6 = obj.host.indexOf(\":\") !== -1;\n    const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n    // define unique id\n    obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n    // define href\n    obj.href =\n        obj.protocol +\n            \"://\" +\n            host +\n            (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n    return obj;\n}\n","import React, { useState, useEffect, useRef } from \"react\";\nimport \"./nav.css\";\nimport axios from \"axios\";\nimport { io } from \"socket.io-client\";\nimport { useNavigate } from \"react-router-dom\";\nimport baseUrl from \"../../baseUrl\";\nimport likeNotification from \"../../assets/LikeSound.mp3\";\n\nconst socket = io(`${baseUrl}`, {\n  transports: [\"websocket\", \"polling\"],\n  withCredentials: true,\n});\n\nfunction Nav({ userId }) {\n  const navigate = useNavigate();\n  const [notifications, setNotifications] = useState([]);\n  const [showNotifications, setShowNotifications] = useState(false);\n  const [selectedSenderId, setSelectedSenderId] = useState(null);\n  const notificationAudio = useRef(new Audio(likeNotification));\n\n  useEffect(() => {\n    notificationAudio.current.volume = 1.0;\n    notificationAudio.current.muted = false;\n  \n    const unlockAudio = () => {\n      notificationAudio.current.play().catch(() => {});\n      notificationAudio.current.pause();\n      document.removeEventListener(\"click\", unlockAudio);\n    };\n  \n    document.addEventListener(\"click\", unlockAudio);\n  \n    return () => {\n      document.removeEventListener(\"click\", unlockAudio);\n    };\n  }, []);\n  \n  useEffect(() => {\n    if (!userId) return;\n  \n    socket.emit(\"registerUser\", userId);\n    let timeoutId;\n  \n    const fetchNotifications = async () => {\n      try {\n        const { data } = await axios.get(\n          `${baseUrl}/api/v1/user/unread/${userId}`\n        );\n    \n        const newNotifications = Array.isArray(data?.response) ? data.response : [];\n        setNotifications((prev) => {\n          const prevIds = new Set(prev.map((n) => n._id));\n          const unseen = newNotifications.filter(\n            (n) => !prevIds.has(n._id) && !n.notified\n          );\n    \n          if (unseen.length > 0) {\n            notificationAudio.current\n              .play()\n              .catch((err) => console.error(\"🔇 Audio play error:\", err));\n          }\n    \n          return newNotifications;\n        });\n      } catch (error) {\n        setNotifications([]);\n      } finally {\n        timeoutId = setTimeout(fetchNotifications, 10000); // Poll every 10s\n      }\n    };\n    \n  \n    fetchNotifications();\n  \n    const handleNotification = (newNotification) => {\n      console.log(\"🔔 Notification received:\", newNotification);\n    \n      setNotifications((prev) => {\n        const exists = prev.some((n) => n._id === newNotification._id);\n        if (!exists) {\n          if (!newNotification.notified) {\n            notificationAudio.current.play().catch((err) =>\n              console.error(\"🔇 Audio play error:\", err)\n            );\n          }\n          return [newNotification, ...prev];\n        }\n        return prev;\n      });\n    };\n\n    \n  \n    socket.on(\"receiveNotification\", handleNotification);\n  \n    return () => {\n      socket.off(\"receiveNotification\", handleNotification);\n      clearTimeout(timeoutId);\n    };\n  }, [userId]);\n  \n  const hasUnreadMessages = notifications.some((item) => !item.notified);\n\n  const hideAlert = async (id, senderId) => {\n    try {\n      await axios.patch(`${baseUrl}/api/v1/user/notificationPreview/${id}`);\n      setSelectedSenderId(senderId);\n      navigate(`/mainuser/${senderId}`);\n    } catch (error) {\n      console.error(\"Error handling notification:\", error);\n    }\n  };\n\n  useEffect(() => {\n    if (selectedSenderId) {\n      window.location.reload();\n    }\n  }, [selectedSenderId]);\n\n  return (\n    <div>\n      <header className=\"Prof-header7\">\n        <div className=\"Prof-header-left7\">\n          <button\n            className=\"icon-button7\"\n            onClick={() => navigate(`/dashboard/${userId}`)}\n          >\n            <span className=\"material-symbols-outlined\">home</span>\n            <span className=\"matches-text\">\n              <h4 className=\"NavText\">Home</h4>\n            </span>\n          </button>\n\n          <button\n            className=\"icon-button7\"\n            onClick={() => navigate(`/toprecommendations/${userId}`)}\n          >\n            <span className=\"material-symbols-outlined\">group</span>\n            <span className=\"matches-text\">\n              <h4 className=\"NavText\">Matches</h4>\n            </span>\n          </button>\n\n          <button\n            className=\"icon-button7\"\n            onClick={() => setShowNotifications((prev) => !prev)}\n          >\n            <span className=\"material-symbols-outlined\">notifications</span>\n            <h6 className=\"NavText\">Notification</h6>\n            {hasUnreadMessages && <div className=\"notification-alert\"></div>}\n            {showNotifications && (\n              <div className=\"notification-dropdown\">\n                {notifications.length > 0 ? (\n                  notifications.map((notification) => (\n                    <div\n                      key={notification._id}\n                      className=\"notification-item\"\n                      onClick={() =>\n                        hideAlert(notification._id, notification.senderId)\n                      }\n                    >\n                      <p>{notification.message}</p>\n                    </div>\n                  ))\n                ) : (\n                  <p className=\"no-notifications\">No notifications</p>\n                )}\n              </div>\n            )}\n          </button>\n        </div>\n      </header>\n      <hr className=\"divider7\" />\n\n      <link\n        rel=\"stylesheet\"\n        href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\"\n      />\n    </div>\n  );\n}\n\nexport default Nav;","import React from \"react\";\nimport \"../Footer/footer.css\";\n\nfunction Footer() {\n  return (\n    <div>\n      \n      <footer>\n        <div className=\"footer-main\">\n          <div className=\"container\">\n            <div className=\"part-one\">\n              <div className=\"description\">\n                <div className=\"heading\">\n                  <h4>About Us <div className=\"underline\"><span></span></div></h4>\n                </div>\n                <p>\n                  Welcome to UK Ezhava Matrimony, the premier matchmaking\n                  platform dedicated to helping Ezhava community members living\n                  in the UK find their perfect life partners.\n                </p>\n              </div>\n            </div>\n\n            <div className=\"part-two\">\n              <div className=\"help-support\">\n                <div className=\"heading\">\n                  <h4>Help and Support<div className=\"underline\"><span></span></div></h4>\n                </div>\n                <ul>\n                  <li>\n                    <p>24*7 Live Help</p>\n                  </li>\n                  <li>\n                    <p>Contact Us</p>\n                  </li>\n                  \n                </ul>\n              </div>\n            </div>\n\n            <div className=\"part-three\">\n              <div className=\"office\">\n                <div className=\"heading\">\n                  <h4>Office<div className=\"underline\"><span></span></div></h4>\n                </div>\n                <ul>\n                  <li>\n                    <p>\n                      SNDP Cambridge <br></br>\n                      Cambridge, United Kingdom.\n                    </p>\n                  </li>\n                </ul>\n              </div>\n            </div>\n\n            <div className=\"part-four\">\n              <div className=\"contact-us\">\n                <div className=\"heading\">\n                  <h4>Contact Us<div className=\"underline\"><span></span></div>    </h4>\n                </div>\n                <ul>\n                  <li>\n                    <p>sndpcambridge@hotmail.co.uk</p>\n                  </li>\n                </ul>\n              </div>\n            </div>\n\n          \n          </div>\n          <div class=\"copy-right-footer\">\n            <p>Developed by Scipy Technologies</p>\n          </div>\n        </div>\n      </footer>\n      <link\n        rel=\"stylesheet\"\n        href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css\"\n      />\n    </div>\n  );\n}\n\nexport default Footer;","import React, { useEffect, useState, useRef } from \"react\";\nimport DashStyles from \"./dashboard.module.css\";\nimport {\n  Pen,\n  Heart,\n  Gear,\n  Question,\n  ShieldCheck,\n  HeartStraight,\n  User,\n  SignOut,\n} from \"phosphor-react\";\nimport { Link, useNavigate } from \"react-router-dom\";\n// import image from \"../../assets/free-photo-of-couple-in-green-grass-field.jpeg\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport { clearUser } from \"../../features/slice\";\nimport baseUrl from \"../../baseUrl\";\nimport avatarImg from \"../../assets/avatar.jpg\"\n\n\nfunction Dashboard() {\n  const dispatch = useDispatch();\n  const userId = useSelector((state) => state.user.id);\n  const navigate = useNavigate();\n  const [liked, setLiked] = useState({});\n  const [getLike, setGetLike] = useState([]);\n  const [isOpen, setIsOpen] = useState(false);\n  const [userProfie, setUserProfile] = useState(\"\");\n  const [allMatches, setAllMatches] = useState([]);\n  const [topMatches, setTopMatches] = useState([]);\n  const [greeting, setGreeting] = useState(\"\");\n  const [file, setFile] = useState(null);\n  const [preview, setPreview] = useState(null);\n  const [showModal, setShowModal] = useState(false);\n  const [pdfModal, setPdfModal] = useState(false);\n  const [pdfFile, setPdfFile] = useState(null);\n  const [isModalOpen,setIsModalOpen ]=useState(false)\n  const fileInputRef = useRef(null);\n  const pdfInputRef = useRef(null);\n  const notifyError = (message) =>\n    toast.error(message, {\n      autoClose: 3000,\n      closeOnClick: true,\n    });\n\n  const notifySuccess = (message) =>\n    toast.success(message, {\n      autoClose: 3000,\n      closeOnClick: true,\n    });\n  // const toggleLike = (id) => {\n  //   setLiked((prev) => ({\n  //     ...prev,\n  //     [id]: !prev[id], // Toggle the like state\n  //   }));\n  // };\n\n  // to fetch the liked users\n  const getLikedProfiles = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/likedProfiles/${userId}`\n      );\n\n      // Convert the array into an object for easy lookups\n      const likedProfilesMap = response.data.likedUsers.reduce((acc, user) => {\n        acc[user._id] = true;\n        return acc;\n      }, {});\n\n      setGetLike(response.data.likedUsers); // Keep original array\n      setLiked(likedProfilesMap); // Update liked state\n    } catch (error) {\n      console.log(\"Error fetching liked profiles\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      getLikedProfiles();\n    }\n  }, [userId]);\n  // To like users\n  const likedProfile = async (id) => {\n    if (!userId || !id) {\n      console.error(\"User ID or Profile ID is undefined\");\n      return;\n    }\n\n    // Optimistically update UI\n    setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/likeProfile/${userId}`,\n        { likedId: id }\n      );\n      if(response.status===200){\n        console.log(\"like\")\n      }\n      // If successfully liked, refresh liked profiles\n      getLikedProfiles();\n    } catch (error) {\n      console.error(\"Error liking profile:\", error);\n\n      // Revert state if API fails\n      setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n    }\n  };\n  // opening of the hamburger\n  const toggleMenu = () => {\n    setIsOpen(!isOpen);\n  };\n  // userdetails\n  const userDetails = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${userId}`\n      );\n      setUserProfile(response.data.data);\n      \n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  //top recomendations\n  const TopMatch = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/topmatch/${userId}`\n      );\n      let user = response.data.matches;\n      const shuffledUsers = user.sort(() => 0.5 - Math.random()).slice(0, 5);\n\n      setTopMatches(shuffledUsers);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  \n  // all matches\n  const AllMatches = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/getUserById/${userId}`\n      );\n      let users = response.data.user;\n\n      const shuffledUsers = users.sort(() => 0.5 - Math.random()).slice(0, 5);\n      setAllMatches(shuffledUsers);\n    } catch (error) {\n      console.log(\"Error fetching all matches\", error);\n    }\n  };\n\n  useEffect(() => {\n    userDetails();\n    TopMatch();\n    AllMatches();\n  }, [userId]);\n  // hamburger scrolling control\n  useEffect(() => {\n    const handleScrollHam = () => {\n      const elements = [\n        ...document.getElementsByClassName(DashStyles.ham1),\n        ...document.getElementsByClassName(DashStyles.ham2),\n        ...document.getElementsByClassName(DashStyles.ham3),\n      ];\n\n      elements.forEach((el) => {\n        if (\n          window.scrollY > 38 &&\n          !el.classList.contains(DashStyles.open1) &&\n          !el.classList.contains(DashStyles.open2) &&\n          !el.classList.contains(DashStyles.open3)\n        ) {\n          el.style.display = \"none\";\n        } else {\n          el.style.display = \"block\";\n        }\n      });\n    };\n\n    window.addEventListener(\"scroll\", handleScrollHam);\n    return () => {\n      window.removeEventListener(\"scroll\", handleScrollHam);\n    };\n  }, []);\n  // to view single profiles\n  const profileView = async (id) => {\n    if (!id) {\n      console.log(\"Error fetching id\");\n      return;\n    }\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      navigate(`/mainuser/${id}`);\n    } catch (error) {\n      console.log(\"Error fetching the data\", error);\n    }\n  };\n  // to dynamically render the greetings\n  const getGreeting = () => {\n    const hour = new Date().getHours();\n    if (hour < 12) {\n      return \"Good Morning!\";\n    } else if (hour < 15) {\n      return \"Good Afternoon!\";\n    } else {\n      return \"Good Evening!\";\n    }\n  };\n  useEffect(() => {\n    setGreeting(getGreeting());\n  }, []);\n  // to upload profile image\n  const handleFileChange = (e) => {\n    const selectedFile = e.target.files[0];\n    if (selectedFile) {\n      setFile(selectedFile);\n      setPreview(URL.createObjectURL(selectedFile));\n      setShowModal(true);\n    }\n  };\n\n  const handleUpload = async () => {\n    if (!file) return;\n    const formData = new FormData();\n    formData.append(\"profilePicture\", file);\n\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${userId}`,\n        formData\n      );\n    } catch (error) {\n      console.log(\"Upload error:\", error);\n    } finally {\n      setShowModal(false);\n      setFile(null);\n      setPreview(null);\n    }\n  };\n  const handlePdfChange = (e) => {\n    const selectedPdfFile = e.target.files[0];\n    if (selectedPdfFile) {\n      setPdfFile(selectedPdfFile);\n      setPreview(URL.createObjectURL(selectedPdfFile));\n      setPdfModal(true);\n      pdfInputRef.current.value = null;\n\n      // Close the dropdown menu to force re-render\n      document\n        .querySelector(`.${DashStyles.DropdownMenuSecondSmall}`)\n        .classList.remove(DashStyles.show2);\n    }\n  };\n\n  const handlePdfUpload = async () => {\n    if (!pdfFile) return;\n    const formData = new FormData();\n    formData.append(\"pdfFile\", pdfFile);\n\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/edit/${userId}`,\n        formData\n      );\n\n      // If upload is successful, show success notification\n      if (response.status === 200) {\n        notifySuccess(response.data.data.message || \"Successfully Submitted.\");\n        setPdfModal(false); // Close modal after successful upload\n      }\n      const dropdownMenu = document.querySelector(\n        `.${DashStyles.DropdownMenuSecondSmall}`\n      );\n      if (dropdownMenu && dropdownMenu.classList.contains(DashStyles.show2)) {\n        dropdownMenu.classList.remove(DashStyles.show2);\n      }\n    } catch (error) {\n      console.log(\"Upload error:\", error);\n      notifyError(error.response?.data?.message || \"Please try again.\");\n    } finally {\n      // Clear file input and preview\n      setPdfFile(null);\n      setPreview(null);\n    }\n  };\n\n  useEffect(() => {\n    if (isOpen) {\n      document.body.style.overflow = \"hidden\";\n    } else {\n      document.body.style.overflow = \"\";\n    }\n\n    return () => {\n      document.body.style.overflow = \"\"; // Cleanup when unmounting\n    };\n  }, [isOpen]);\n  const adsData = [\n    {\n      title: \"Silver\",\n      description: \"3 month plan\",\n      price: \"£4,500\",\n      discount: \"10% OFF\",\n      comingSoon: true,\n    },\n    {\n      title: \"Gold\",\n      description: \"3 month plan\",\n      price: \"£4,300\",\n      discount: \"12% OFF\",\n      comingSoon: true,\n    },\n    {\n      title: \"Platinum\",\n      description: \"6 month plan\",\n      price: \"£6,500\",\n      discount: \"\",\n      comingSoon: true,\n    },\n  ];\n\n  const getHeaderClass = (title) => {\n    if (title === \"Silver\") return DashStyles.silverHeader;\n    if (title === \"Gold\") return DashStyles.goldHeader;\n    if (title === \"Platinum\") return DashStyles.platinumHeader;\n    return \"\";\n  };\n  const [currentAdIndex, setCurrentAdIndex] = useState(0);\n\n  useEffect(() => {\n    const interval = setInterval(() => {\n      setCurrentAdIndex((prevIndex) => (prevIndex + 1) % adsData.length);\n    }, 5000);\n\n    return () => clearInterval(interval);\n  }, []);\n\n  const myRef = useRef([]);\n  const observerRef = useRef(null); \n  const headingRef = useRef([]);\n  \n  useEffect(() => {\n    if (!observerRef.current) {\n      observerRef.current = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            entry.target.classList.add(DashStyles.animateIn);\n          }\n        });\n      });\n    }\n\n    // ✅ Ensure only unique elements are observed\n    headingRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    myRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    return () => {\n      if (observerRef.current) {\n        observerRef.current.disconnect();\n      }\n    };\n  }, []);\n\n  const setElementRef = (index) => (el) => {\n    if (el) {\n      myRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n\n  const setHeadingRef = (index) => (el) => {\n    if (el) {\n      headingRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n  const handlePayment = async (userId) => {\n    navigate(`/checkout/${userId}`);\n  };\n  return (\n    <div>\n      <ToastContainer/>\n      <div className={DashStyles.mainContainer}>\n        <div className={DashStyles.mainContainerSub}></div>\n        <Nav userId={userId} />\n        <div className={DashStyles.SubContainer}>\n          <div className={DashStyles.sideBar}>\n            <div className={DashStyles.ProfileDiv}>\n              <div className={DashStyles.ProfileCard}>\n                <div\n                  className={DashStyles.ProfileImage}\n                  onClick={() => fileInputRef.current.click()}\n                  style={{ cursor: \"pointer\" }}\n                >\n                  <div style={{height:'100px',width:\"100px\",borderRadius:\"100%\"}}>\n                      <img style={{height:'100%',width:\"100%\",objectFit:\"cover\"}} src={`${baseUrl}${userProfie.profilePicture}`} alt=\"\" />\n                    </div>\n                </div>\n\n                <input\n                  type=\"file\"\n                  ref={fileInputRef}\n                  style={{ display: \"none\" }}\n                  onChange={handleFileChange}\n                  accept=\"image/*\"\n                />\n                {showModal && (\n                  <div className={DashStyles.modal}>\n                    <div className={DashStyles.modalContent}>\n                      <h3>Preview</h3>\n                      <img\n                        src={preview}\n                        alt=\"Selected Preview\"\n                        style={{\n                          objectFit: \"cover\",\n                          borderRadius: \"10px\",\n                          width: \"236px\",\n                          height: \"398px\",\n                          backgroundColor: \" #f0c040\",\n                          cursor: \"pointer\",\n                          overflow: \"hidden\",\n                        }}\n                      />\n                      <div className={DashStyles.modalButtons}>\n                        <button onClick={handleUpload}>Yes</button>\n                        <button onClick={() => setShowModal(false)}>No</button>\n                      </div>\n                    </div>\n                  </div>\n                )}\n                <div className={DashStyles.ProfileDetails}>\n                  <p className={DashStyles.Greeting}>{greeting}</p>\n                  <h2 className={DashStyles.UserName}>\n                    {userProfie.firstName}\n                  </h2>\n                  {/* <p className={DashStyles.UserId}>Sanju@007</p> */}\n                  <p className={DashStyles.MemberId}>{userProfie.userId}</p>\n                  <p className={DashStyles.MembershipStatus}>\n                    Membership: Free\n                  </p>\n                  <button className={DashStyles.UpgradeButton}>Upgrade</button>\n                </div>\n              </div>\n              <div className={DashStyles.ProfileCompletion}>\n                <p style={{ fontWeight: \"600\", fontSize: \"14px\" }}>\n                  Complete your profile\n                </p>\n                {/* <p style={{ fontSize: \"10px\" }}>Your Profile Strength: 30%</p> */}\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <Pen\n                      size={20}\n                      weight=\"duotone\"\n                      className={DashStyles.penIcon}\n                    />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <Link to=\"/formpage1\">Edit Profile</Link>\n                  </div>\n                </div>\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <Heart size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <Link to={`/likedprofiles/${userId}`}>Liked Profiles</Link>\n                  </div>\n                </div>\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <User size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <div\n                      className={DashStyles.DropdownSecond}\n                      onClick={() =>\n                        document\n                          .querySelector(`.${DashStyles.DropdownMenuSecond}`)\n                          .classList.toggle(DashStyles.show)\n                      }\n                    >\n                      Profile Verification\n                      <div className={DashStyles.DropdownMenuSecond}>\n                        <div\n                          className={DashStyles.DropdownItemSecond}\n                          onClick={() =>\n                            document.getElementById(\"fileUpload\").click()\n                          }\n                        >\n                          Upload document\n                          <input\n                            type=\"file\"\n                            id=\"fileUpload\"\n                            onChange={handlePdfChange}\n                            accept=\"application/pdf\"\n                            style={{ display: \"none\" }}\n                            ref={pdfInputRef}\n                          />\n                        </div>\n\n                        {pdfModal && (\n                          <div className={DashStyles.PdfModalOverlay}>\n                            <div className={DashStyles.PdfModalContent}>\n                              <h3>Document Upload</h3>\n                              {preview ? (\n                                <p className={DashStyles.FileName}>\n                                  Selected File: {pdfFile.name}\n                                </p>\n                              ) : (\n                                <p>No file selected</p>\n                              )}\n\n                              <div className={DashStyles.PdfModalActions}>\n                                <button\n                                  onClick={handlePdfUpload}\n                                  className={DashStyles.PdfYesButton}\n                                >\n                                  Confirm\n                                </button>\n                                <button\n                                  onClick={() => {\n                                    setPdfModal(false);\n                                    setPdfFile(null);\n                                    setPreview(null);\n                                  }}\n                                  className={DashStyles.PdfNoButton}\n                                >\n                                  Cancel\n                                </button>\n                              </div>\n                            </div>\n                          </div>\n                        )}\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className={DashStyles.SettingsMain}>\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <Gear size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <Link to={`/Usettings/${userId}`}>Settings</Link>\n                  </div>\n                </div>\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <Question size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <div\n                      className={DashStyles.HelpButton}\n                      onClick={() =>\n                        window.open(\n                          \"https://mail.google.com/mail/?view=cm&fs=1&to=ukezhavamatrimony@gmail.com&su=Help%20Request\",\n                          \"_blank\"\n                        )\n                      }\n                    >\n                      Help\n                    </div>\n                  </div>\n                </div>\n\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <ShieldCheck size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <Link to={`/myprofile/${userId}`}>My Profile</Link>\n                  </div>\n                </div>\n                <div className={DashStyles.LinkIcon}>\n                  <div className={DashStyles.Icon}>\n                    <SignOut size={20} weight=\"duotone\" />\n                  </div>\n                  <div className={DashStyles.link}>\n                    <Link\n                      to=\"/\"\n                      onClick={() => {\n                        dispatch(clearUser());\n                        navigate(\"/\");\n                      }}\n                    >\n                      Logout\n                    </Link>\n                  </div>\n                </div>\n              </div>\n            </div>\n\n            <div className={DashStyles.Adsplacement}>\n              <div className={DashStyles.AdsCarousel}>\n                {Array.from({ length: 5 }).map((_, index) => (\n                  <div key={index} className={DashStyles.heart}></div>\n                ))}\n                {adsData.map((ad, index) => (\n                  <div\n                    key={index}\n                    className={`${DashStyles.AdplacementCard} ${\n                      currentAdIndex === index ? DashStyles.active : \"\"\n                    }`}\n                  >\n                    <div className={DashStyles.AdImgDiv}>\n                      {ad.comingSoon && (\n                        <div className={DashStyles.comingSoon}>Coming Soon</div>\n                      )}\n                      <div\n                        className={`${DashStyles.AdTitle} ${getHeaderClass(\n                          ad.title\n                        )}`}\n                      >\n                        <h3>{ad.title}</h3>\n                      </div>\n                      <p style={{ fontSize: \"28px\", fontWeight: \"600\" }}>\n                        {ad.description}\n                      </p>\n                      <p style={{ fontSize: \"28px\", fontWeight: \"600\" }}>\n                        {ad.price}\n                      </p>\n                      <p style={{ fontSize: \"30px\", fontWeight: \"600\" }}>\n                        {ad.discount}\n                      </p>\n                    </div>\n                  </div>\n                ))}\n              </div>\n            </div>\n\n            {/* </div> */}\n            <div className={DashStyles.Adplacement2}></div>\n          </div>\n          {/* static details div for larger screens  end*/}\n\n          {/* Profile details div for small screens start */}\n\n          <div\n            className={isOpen ? \"overlay overlayActive\" : \"overlay\"}\n            // onClick={toggleMenu}\n          >\n            <div className={DashStyles.HamburgerMain}>\n              {/* {showHamburger&&( */}\n              <div\n                className={DashStyles.Hamburger}\n                onClick={() => toggleMenu()}\n              >\n                <div\n                  className={`${DashStyles.ham1} ${\n                    isOpen ? DashStyles.open1 : \"\"\n                  }`}\n                ></div>\n                <div\n                  className={`${DashStyles.ham2} ${\n                    isOpen ? DashStyles.open2 : \"\"\n                  }`}\n                ></div>\n                <div\n                  className={`${DashStyles.ham3} ${\n                    isOpen ? DashStyles.open3 : \"\"\n                  }`}\n                ></div>\n              </div>\n              {/* )} */}\n              {/* profile div for smaller screens */}\n              <div\n                className={`${DashStyles.drawer} ${\n                  isOpen ? DashStyles.drawerOpen : DashStyles.drawerClosed\n                }`}\n              >\n                <div className={DashStyles.ProfileCard}>\n                  <div\n                    className={DashStyles.ProfileImage}\n                    onClick={() => fileInputRef.current.click()}\n                    style={{ cursor: \"pointer\" }}\n                  >\n                    <div style={{height:'100px',width:\"100px\",borderRadius:\"100px\"}}>\n                      <img style={{height:'100%',width:\"100%\",objectFit:\"cover\"}} src={`${baseUrl}${userProfie.profilePicture}`} alt=\"\" />\n                    </div>\n                  </div>\n                  <input\n                    type=\"file\"\n                    ref={fileInputRef}\n                    style={{ display: \"none\" }}\n                    onChange={handleFileChange}\n                    accept=\"image/*\"\n                  />\n                  {showModal && (\n                    <div className={DashStyles.modal}>\n                      <div className={DashStyles.modalContent}>\n                        <h3>Preview</h3>\n                        <img\n                          src={preview}\n                          alt=\"Selected Preview\"\n                          style={{\n                            objectFit: \"cover\",\n                            borderRadius: \"10px\",\n                            width: \"236px\",\n                            height: \"398px\",\n                            backgroundColor: \" #f0c040\",\n                            cursor: \"pointer\",\n                            overflow: \"hidden\",\n                          }}\n                        />\n                        <div className={DashStyles.modalButtons}>\n                          <button onClick={handleUpload}>Yes</button>\n                          <button onClick={() => setShowModal(false)}>\n                            No\n                          </button>\n                        </div>\n                      </div>\n                    </div>\n                  )}\n                  <div className={DashStyles.ProfileDetails}>\n                    <p className={DashStyles.Greeting}>{greeting}</p>\n                    <h2 className={DashStyles.UserName}>\n                      {userProfie.firstName}\n                    </h2>\n                    {/* <p className={DashStyles.UserId}>Sanju@007</p> */}\n                    <p className={DashStyles.MemberId}>{userProfie.userId}</p>\n                    <p className={DashStyles.MembershipStatus}>\n                      Membership: Free\n                    </p>\n                    <button className={DashStyles.UpgradeButton}>\n                      Upgrade\n                    </button>\n                  </div>\n                </div>\n                <div className={DashStyles.ProfileCompletion}>\n                  <p style={{ fontWeight: \"600\", fontSize: \"20px\" }}>\n                    Complete your profile\n                  </p>\n                  <p style={{ fontSize: \"10px\" }}></p>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <Pen\n                        size={20}\n                        weight=\"duotone\"\n                        className={DashStyles.penIcon}\n                      />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <Link to=\"/formpage1\">Edit Profile</Link>\n                    </div>\n                  </div>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <Heart size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <Link to={`/likedprofiles/${userId}`}>\n                        Liked Profiles\n                      </Link>\n                    </div>\n                  </div>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <User size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <div\n                        className={DashStyles.DropdownSecond}\n                        onClick={() => {\n                          document\n                            .querySelector(\n                              `.${DashStyles.DropdownMenuSecondSmall}`\n                            )\n                            .classList.toggle(DashStyles.show2);\n                        }}\n                      >\n                        Profile Verification\n                        <div className={DashStyles.DropdownMenuSecondSmall}>\n                          <div\n                            className={DashStyles.DropdownItemSecond}\n                            onClick={() =>\n                              document.getElementById(\"fileUpload\").click()\n                            }\n                          >\n                            Upload document\n                            <input\n                              type=\"file\"\n                              id=\"fileUpload\"\n                              onChange={handlePdfChange}\n                              accept=\"application/pdf\"\n                              style={{ display: \"none\" }}\n                              ref={pdfInputRef}\n                            />\n                          </div>\n                        </div>\n                        {pdfModal && (\n                          <div className={DashStyles.PdfModalOverlay}>\n                            <div className={DashStyles.PdfModalContent}>\n                              <h3>Document Upload</h3>\n                              {preview ? (\n                                <p className={DashStyles.FileName}>\n                                  Selected File: {pdfFile.name}\n                                </p>\n                              ) : (\n                                <p>No file selected</p>\n                              )}\n\n                              <div className={DashStyles.PdfModalActions}>\n                                <button\n                                  onClick={handlePdfUpload}\n                                  className={DashStyles.PdfYesButton}\n                                >\n                                  Confirm\n                                </button>\n                                <button\n                                  onClick={() => {\n                                    setPdfModal(false);\n                                    setPdfFile(null);\n                                    setPreview(null);\n                                  }}\n                                  className={DashStyles.PdfNoButton}\n                                >\n                                  Cancel\n                                </button>\n                              </div>\n                            </div>\n                          </div>\n                        )}\n                      </div>\n                    </div>\n                  </div>\n                </div>\n                <div className={DashStyles.SettingsMain}>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <Gear size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <Link to={`/Usettings/${userId}`}>Settings</Link>\n                    </div>\n                  </div>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <Question size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <div\n                        className={DashStyles.HelpButton}\n                        onClick={() =>\n                          window.open(\n                            \"https://mail.google.com/mail/?view=cm&fs=1&to=support@example.com&su=Help%20Request\",\n                            \"_blank\"\n                          )\n                        }\n                      >\n                        Help\n                      </div>\n                    </div>\n                  </div>\n\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <ShieldCheck size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <Link to={`/myprofile/${userId}`}>My Profile</Link>\n                    </div>\n                  </div>\n                  <div className={DashStyles.LinkIcon}>\n                    <div className={DashStyles.Icon}>\n                      <SignOut size={20} weight=\"duotone\" />\n                    </div>\n                    <div className={DashStyles.link}>\n                      <Link\n                        to=\"/\"\n                        onClick={() => {\n                          dispatch(clearUser());\n                          navigate(\"/\");\n                        }}\n                      >\n                        Logout\n                      </Link>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n\n          <div\n            className={`${DashStyles.Container} ${\n              isOpen ? DashStyles.contentDimmed : \"\"\n            }`}\n          >\n          <div className={DashStyles.AdOffers}>\n              <h1 className={DashStyles.AdOffersHead}>Welcome Offer</h1>\n              <h6 className={DashStyles.AdOffersMain}> £ 100</h6>\n              <h5 className={DashStyles.AdOffersPrice}> £ 25</h5>\n              <p className={DashStyles.AdOffersPara}>\n                Unlock all the profiles with just 25 Pounds\n              </p>\n              <div className={DashStyles.AdOffersBtn}>\n                <button\n                  className={DashStyles.paymentButtonAds}\n                  onClick={() => setIsModalOpen(true)}\n                >\n                  Pay Now\n                </button>\n              </div>\n              {isModalOpen && (\n                <div className=\"modal-overlay\">\n                  <div className=\"modal\" style={{transform:\"0px\"}}>\n                    <h2>Unlock Unlimited Profiles</h2>\n                    <p>25 Pounds as welcome offer</p>\n                    <button onClick={() => handlePayment(userId)}>\n                      Proceed\n                    </button>\n                    <button onClick={() => setIsModalOpen(false)}>\n                      Cancel\n                    </button>\n                  </div>\n                </div>\n              )}</div>\n            {/* Top recommendation start */}\n            <div className={DashStyles.TopRecommendation}>\n              <div className={DashStyles.trHeading} ref={setHeadingRef(0)}>\n                <h2 className={DashStyles.TrHead}>Top Recommendations</h2>\n                <h4 className={DashStyles.TrContent}>\n                  Find Your Perfect Match, Made With Love\n                </h4>\n              </div>\n              <div className={DashStyles.trContentDisplay}>\n                {topMatches && topMatches.length > 0 ? (\n                  topMatches.map((item, index) => (\n                    <div\n                      key={index}\n                      className={DashStyles.trCard}\n                      ref={(el) => setElementRef(-1)(el)}\n                    >\n                      <div\n                        className={DashStyles.trCardImg}\n                        onClick={() => profileView(item.id)}\n                      >\n                        <img\n                          src={\n                            item.profilePicture\n                              ? `${baseUrl}${item.profilePicture}`\n                              : `${avatarImg}`\n                          }\n                          alt=\"\"\n                          className={DashStyles.cardImage}\n                        />\n                      </div>\n                      <div className={DashStyles.trCardDetails}>\n                        <div\n                          className={DashStyles.trCardDetailSub}\n                          onClick={() => profileView(item.id)}\n                        >\n                          <h5 className={DashStyles.trUserName}>{item.name}</h5>\n                          <h6 className={DashStyles.trUserDetails}>\n                            {item.age} Yrs ,{item.height}\n                          </h6>\n                        </div>\n                        <div\n                          className={DashStyles.LikeButton}\n                          onClick={() => likedProfile(item.id)}\n                        >\n                          <HeartStraight\n                            size={30}\n                            weight={liked[item.id] ? \"fill\" : \"light\"}\n                            className={`${DashStyles.likedHeartBefore} ${\n                              liked[item.id] ? DashStyles.likedHeart : \"\"\n                            }`}\n                          />\n                        </div>\n                      </div>\n                    </div>\n                    // <motion.div\n                    //   key={index}\n                    //   initial={{ opacity: 0, y: 20 }}\n                    //   animate={{ opacity: 1, y: 0 }}\n                    //   transition={{ delay: index * 0.2, duration: 0.5 }}\n                    // >\n                    //   <CardComponent profiles={item} profileView={profileView} likedProfile={likedProfile}\n                    //   liked={liked}\n                    //   setLiked={setLiked}\n                    //   toggleLike={toggleLike}\n                    //   />\n                    // </motion.div>\n                  ))\n                ) : (\n                  <p>No Top recommendations found</p>\n                )}\n              </div>\n              <div className={DashStyles.SeeAll}>\n                {/* <h4 className={DashStyles.saHead}>See All</h4> */}\n                <button\n                  className={DashStyles.seeAllButton}\n                  ref={setHeadingRef(1)}\n                >\n                  <Link\n                    onClick={() => {\n                      window.scrollTo({ top: 0, behavior: \"smooth\" });\n                    }}\n                    to={`/toprecommendations/${userId}`}\n                    className={DashStyles.seeAllLink}\n                  >\n                    See All\n                  </Link>\n                </button>\n              </div>\n            </div>\n            {/* Top recommendation end */}\n            {/* All Matches start */}\n            <div className={DashStyles.TopRecommendation}>\n              <div className={DashStyles.trHeading}>\n                <h2 className={DashStyles.TrHead}>All Matches </h2>\n              </div>\n\n              <div className={DashStyles.trContentDisplay}>\n                {allMatches && allMatches.length > 0 ? (\n                  allMatches.map((item, index) => (\n                    <div\n                      key={index}\n                      className={DashStyles.trCard}\n                      ref={(el) => setElementRef(index)(el)}\n                    >\n                      <div\n                        className={DashStyles.trCardImg}\n                        onClick={() => profileView(item._id)}\n                      >\n                        {/* image from backend */}\n                        <img\n                          src={\n                            item.profilePicture\n                              ? `${baseUrl}${item.profilePicture}`\n                              : `${avatarImg}`\n                          }\n                          alt=\"\"\n                          className={DashStyles.cardImage}\n                        />\n                      </div>\n                      <div className={DashStyles.trCardDetails}>\n                        <div\n                          className={DashStyles.trCardDetailSub}\n                          onClick={() => profileView(item._id)}\n                        >\n                          <h5 className={DashStyles.trUserName}>\n                            {item.firstName}\n                          </h5>\n                          <h6 className={DashStyles.trUserDetails}>\n                            {item.age} Yrs, {item.height} cms\n                          </h6>\n                        </div>\n                        <div\n                          className={DashStyles.LikeButton}\n                          onClick={() => likedProfile(item._id)}\n                        >\n                          <HeartStraight\n                            size={30}\n                            weight={\n                              getLike[item._id] || liked[item._id]\n                                ? \"fill\"\n                                : \"light\"\n                            }\n                            className={`${DashStyles.likedHeartBefore} \n    ${liked[item._id] ? DashStyles.likedHeart : \"\"}\n    ${getLike[item._id] ? DashStyles.likedHeart : \"\"}`}\n                          />\n                        </div>\n                      </div>\n                    </div>\n                  ))\n                ) : (\n                  <p>No matches found</p>\n                )}\n              </div>\n              <div className={DashStyles.SeeAll}>\n                {/* <h4 className={DashStyles.saHead}>See All</h4> */}\n                <button\n                  className={DashStyles.seeAllButton}\n                  ref={setHeadingRef(2)}\n                >\n                  <Link\n                    onClick={() => {\n                      window.scrollTo({ top: 0, behavior: \"smooth\" });\n                    }}\n                    to={`/allmatches/${userId}`}\n                    className={DashStyles.seeAllLink}\n                  >\n                    See All\n                  </Link>\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n        <Footer />\n      </div>\n    </div>\n  );\n}\n\nexport default Dashboard;\n","import React, { useState, useEffect } from \"react\";\nimport axios from \"axios\";\nimport \"./otp.css\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setVerified } from \"../../features/slice\";\nimport baseUrl from \"../../baseUrl\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport toastNotification from \"../../assets/ToastAudio.mp3\";\nimport Loader from \"../../component/Loader/Loadertext.jsx\";\n\nconst OtpPage = () => {\n  const navigate = useNavigate();\n  const [form, setForm] = useState({ otp: \"\" });\n  const [message, setMessage] = useState(\"\");\n  const [error, setError] = useState(\"\");\n  const [isLoading, setIsLoading] = useState(false);\n  const [emailResendTimer, setEmailResendTimer] = useState(0);\n  const notificationSound = new Audio(toastNotification);\n\n  const dispatch = useDispatch();\n  const { id, userEmail } = useSelector((state) => state.user);\n\n  const handleChange = (e) => {\n    setForm({ ...form, [e.target.name]: e.target.value });\n  };\n\n  const handleVerifyOtp = async (e) => {\n    e.preventDefault();\n    if (!form.otp) {\n      setError(\"Please enter the OTP.\");\n      toast.error(\"Please enter the OTP.\");\n      return;\n    }\n\n    setIsLoading(true);\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/verifyOtp/${userEmail}`,\n        form\n      );\n      setMessage(response.data.message);\n      setError(\"\");\n      if (response.status === 200) {\n        toast.success(\"OTP Verified!\");\n        dispatch(setVerified({ isVerified: true }));\n        setTimeout(() => {\n          navigate(\"/formpage1\", { state: { id } });\n        }, 2000);\n      }\n    } catch (err) {\n      notificationSound.play().catch((err) => console.warn(\"Audio play error:\", err));\n      toast.error(err.response?.data?.message || \"Failed to verify OTP.\");\n      setError(err.response?.data?.message || \"Failed to verify OTP.\");\n      setMessage(\"\");\n    } finally {\n      setIsLoading(false);\n    }\n  };\n\n  const handleResendOtp = async (e) => {\n    e.preventDefault();\n    if (emailResendTimer > 0) return;\n\n    setIsLoading(true);\n    setEmailResendTimer(10);\n    try {\n      await axios.post(`${baseUrl}/api/v1/user/resendOtp/${userEmail}`);\n      toast.success(\"OTP Sent to your registered email!\");\n      setMessage(\"OTP resent successfully!\");\n      setError(\"\");\n    } catch (err) {\n      notificationSound.play().catch((err) => console.warn(\"Audio play error:\", err));\n      toast.error(\"Failed to resend OTP. Please try again.\");\n      setError(\"Failed to resend OTP. Please try again.\");\n    } finally {\n      setIsLoading(false);\n    }\n  };\n\n  // Countdown logic\n  useEffect(() => {\n    if (emailResendTimer > 0) {\n      const timer = setInterval(() => {\n        setEmailResendTimer((prev) => prev - 1);\n      }, 1000);\n      return () => clearInterval(timer);\n    }\n  }, [emailResendTimer]);\n\n  return (\n    <div className=\"otp-container-main\">\n      <ToastContainer\n        position=\"top-right\"\n        autoClose={3000}\n        hideProgressBar\n        newestOnTop\n        closeOnClick\n        pauseOnHover\n      />\n      <div className=\"container\">\n        {isLoading && (\n          <div className=\"loader-div\">\n            <Loader />\n          </div>\n        )}\n\n        <h2>OTP Verification</h2>\n        <p>Enter the 6-digit code sent to your email</p>\n\n        <form onSubmit={handleVerifyOtp}>\n          <div className=\"otp-container\">\n            <input\n              className=\"otp-input\"\n              maxLength={6}\n              type=\"text\"\n              id=\"otp\"\n              name=\"otp\"\n              value={form.otp}\n              onChange={handleChange}\n              autoFocus\n            />\n          </div>\n\n          <button className=\"verify-btn\" disabled={isLoading}>\n            Verify OTP\n          </button>\n        </form>\n\n        <button\n          className=\"resend\"\n          onClick={handleResendOtp}\n          disabled={isLoading || emailResendTimer > 0}\n        >\n          {emailResendTimer > 0\n            ? `Resend available in ${emailResendTimer}s`\n            : \"Resend OTP\"}\n        </button>\n\n        {error && <p className=\"error-message\">{error}</p>}\n        {message && <p className=\"success-message\">{message}</p>}\n      </div>\n    </div>\n  );\n};\n\nexport default OtpPage;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nfunction SvgCircleCheckRegular(_ref, svgRef) {\n  let {\n      title,\n      titleId\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 512 512\",\n    ref: svgRef,\n    \"aria-labelledby\": titleId\n  }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n    id: titleId\n  }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-111 111-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L369 209z\"\n  })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCircleCheckRegular);\nexport default __webpack_public_path__ + \"static/media/circle-check-regular.32b4538f47a4eee64cd0e5c4a52e5874.svg\";\nexport { ForwardRef as ReactComponent };","export default function omit(obj, fields) {\n  var clone = Object.assign({}, obj);\n  if (Array.isArray(fields)) {\n    fields.forEach(function (key) {\n      delete clone[key];\n    });\n  }\n  return clone;\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n  var cacheRef = React.useRef({});\n  if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n    cacheRef.current.value = getValue();\n    cacheRef.current.condition = condition;\n  }\n  return cacheRef.current.value;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar REACT_ELEMENT_TYPE_18 = Symbol.for('react.element');\nvar REACT_ELEMENT_TYPE_19 = Symbol.for('react.transitional.element');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n\n/**\n * Compatible with React 18 or 19 to check if node is a Fragment.\n */\nexport default function isFragment(object) {\n  return (\n    // Base object type\n    object && _typeof(object) === 'object' && (\n    // React Element type\n    object.$$typeof === REACT_ELEMENT_TYPE_18 || object.$$typeof === REACT_ELEMENT_TYPE_19) &&\n    // React Fragment type\n    object.type === REACT_FRAGMENT_TYPE\n  );\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isValidElement } from 'react';\nimport { ForwardRef, isMemo } from 'react-is';\nimport useMemo from \"./hooks/useMemo\";\nimport isFragment from \"./React/isFragment\";\nexport var fillRef = function fillRef(ref, node) {\n  if (typeof ref === 'function') {\n    ref(node);\n  } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n    ref.current = node;\n  }\n};\n\n/**\n * Merge refs into one ref function to support ref passing.\n */\nexport var composeRef = function composeRef() {\n  for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n    refs[_key] = arguments[_key];\n  }\n  var refList = refs.filter(Boolean);\n  if (refList.length <= 1) {\n    return refList[0];\n  }\n  return function (node) {\n    refs.forEach(function (ref) {\n      fillRef(ref, node);\n    });\n  };\n};\nexport var useComposeRef = function useComposeRef() {\n  for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    refs[_key2] = arguments[_key2];\n  }\n  return useMemo(function () {\n    return composeRef.apply(void 0, refs);\n  }, refs, function (prev, next) {\n    return prev.length !== next.length || prev.every(function (ref, i) {\n      return ref !== next[i];\n    });\n  });\n};\nexport var supportRef = function supportRef(nodeOrComponent) {\n  var _type$prototype, _nodeOrComponent$prot;\n  if (!nodeOrComponent) {\n    return false;\n  }\n\n  // React 19 no need `forwardRef` anymore. So just pass if is a React element.\n  if (isReactElement(nodeOrComponent) && nodeOrComponent.props.propertyIsEnumerable('ref')) {\n    return true;\n  }\n  var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;\n\n  // Function component node\n  if (typeof type === 'function' && !((_type$prototype = type.prototype) !== null && _type$prototype !== void 0 && _type$prototype.render) && type.$$typeof !== ForwardRef) {\n    return false;\n  }\n\n  // Class component\n  if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) !== null && _nodeOrComponent$prot !== void 0 && _nodeOrComponent$prot.render) && nodeOrComponent.$$typeof !== ForwardRef) {\n    return false;\n  }\n  return true;\n};\nfunction isReactElement(node) {\n  return /*#__PURE__*/isValidElement(node) && !isFragment(node);\n}\nexport var supportNodeRef = function supportNodeRef(node) {\n  return isReactElement(node) && supportRef(node);\n};\n\n/**\n * In React 19. `ref` is not a property from node.\n * But a property from `props.ref`.\n * To check if `props.ref` exist or fallback to `ref`.\n */\nexport var getNodeRef = function getNodeRef(node) {\n  if (node && isReactElement(node)) {\n    var ele = node;\n\n    // Source from:\n    // https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/getReactNodeRef/getReactNodeRef.ts\n    return ele.props.propertyIsEnumerable('ref') ? ele.props.ref : ele.ref;\n  }\n  return null;\n};","export default (function (element) {\n  if (!element) {\n    return false;\n  }\n  if (element instanceof Element) {\n    if (element.offsetParent) {\n      return true;\n    }\n    if (element.getBBox) {\n      var _getBBox = element.getBBox(),\n        width = _getBBox.width,\n        height = _getBBox.height;\n      if (width || height) {\n        return true;\n      }\n    }\n    if (element.getBoundingClientRect) {\n      var _element$getBoundingC = element.getBoundingClientRect(),\n        _width = _element$getBoundingC.width,\n        _height = _element$getBoundingC.height;\n      if (_width || _height) {\n        return true;\n      }\n    }\n  }\n  return false;\n});","import * as React from 'react';\nexport const defaultPrefixCls = 'ant';\nexport const defaultIconPrefixCls = 'anticon';\nexport const Variants = ['outlined', 'borderless', 'filled'];\nconst defaultGetPrefixCls = (suffixCls, customizePrefixCls) => {\n  if (customizePrefixCls) {\n    return customizePrefixCls;\n  }\n  return suffixCls ? `${defaultPrefixCls}-${suffixCls}` : defaultPrefixCls;\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will cause circular dependency.\nexport const ConfigContext = /*#__PURE__*/React.createContext({\n  // We provide a default function for Context without provider\n  getPrefixCls: defaultGetPrefixCls,\n  iconPrefixCls: defaultIconPrefixCls\n});\nexport const {\n  Consumer: ConfigConsumer\n} = ConfigContext;","import React from 'react';\nexport function isFragment(child) {\n  return child && /*#__PURE__*/React.isValidElement(child) && child.type === React.Fragment;\n}\nexport const replaceElement = (element, replacement, props) => {\n  if (! /*#__PURE__*/React.isValidElement(element)) {\n    return replacement;\n  }\n  return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);\n};\nexport function cloneElement(element, props) {\n  return replaceElement(element, element, props);\n}","function _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n  }\n}\nexport { _unsupportedIterableToArray as default };","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}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n  return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","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}\nexport { _iterableToArrayLimit as default };","function _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n  return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as 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}\nexport { _nonIterableSpread as default };","/* 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","export default function canUseDom() {\n  return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nvar APPEND_ORDER = 'data-rc-order';\nvar APPEND_PRIORITY = 'data-rc-priority';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\nfunction getMark() {\n  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n    mark = _ref.mark;\n  if (mark) {\n    return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n  }\n  return MARK_KEY;\n}\nfunction getContainer(option) {\n  if (option.attachTo) {\n    return option.attachTo;\n  }\n  var head = document.querySelector('head');\n  return head || document.body;\n}\nfunction getOrder(prepend) {\n  if (prepend === 'queue') {\n    return 'prependQueue';\n  }\n  return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n  return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n    return node.tagName === 'STYLE';\n  });\n}\nexport function injectCSS(css) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (!canUseDom()) {\n    return null;\n  }\n  var csp = option.csp,\n    prepend = option.prepend,\n    _option$priority = option.priority,\n    priority = _option$priority === void 0 ? 0 : _option$priority;\n  var mergedOrder = getOrder(prepend);\n  var isPrependQueue = mergedOrder === 'prependQueue';\n  var styleNode = document.createElement('style');\n  styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n  if (isPrependQueue && priority) {\n    styleNode.setAttribute(APPEND_PRIORITY, \"\".concat(priority));\n  }\n  if (csp !== null && csp !== void 0 && csp.nonce) {\n    styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n  }\n  styleNode.innerHTML = css;\n  var container = getContainer(option);\n  var firstChild = container.firstChild;\n  if (prepend) {\n    // If is queue `prepend`, it will prepend first style and then append rest style\n    if (isPrependQueue) {\n      var existStyle = (option.styles || findStyles(container)).filter(function (node) {\n        // Ignore style which not injected by rc-util with prepend\n        if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n          return false;\n        }\n\n        // Ignore style which priority less then new style\n        var nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n        return priority >= nodePriority;\n      });\n      if (existStyle.length) {\n        container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n        return styleNode;\n      }\n    }\n\n    // Use `insertBefore` as `prepend`\n    container.insertBefore(styleNode, firstChild);\n  } else {\n    container.appendChild(styleNode);\n  }\n  return styleNode;\n}\nfunction findExistNode(key) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var container = getContainer(option);\n  return (option.styles || findStyles(container)).find(function (node) {\n    return node.getAttribute(getMark(option)) === key;\n  });\n}\nexport function removeCSS(key) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var existNode = findExistNode(key, option);\n  if (existNode) {\n    var container = getContainer(option);\n    container.removeChild(existNode);\n  }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n  var cachedRealContainer = containerCache.get(container);\n\n  // Find real container when not cached or cached container removed\n  if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n    var placeholderStyle = injectCSS('', option);\n    var parentNode = placeholderStyle.parentNode;\n    containerCache.set(container, parentNode);\n    container.removeChild(placeholderStyle);\n  }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n  containerCache.clear();\n}\nexport function updateCSS(css, key) {\n  var originOption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var container = getContainer(originOption);\n  var styles = findStyles(container);\n  var option = _objectSpread(_objectSpread({}, originOption), {}, {\n    styles: styles\n  });\n\n  // Sync real parent\n  syncRealContainer(container, option);\n  var existNode = findExistNode(key, option);\n  if (existNode) {\n    var _option$csp, _option$csp2;\n    if ((_option$csp = option.csp) !== null && _option$csp !== void 0 && _option$csp.nonce && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n      var _option$csp3;\n      existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n    }\n    if (existNode.innerHTML !== css) {\n      existNode.innerHTML = css;\n    }\n    return existNode;\n  }\n  var newNode = injectCSS(css, option);\n  newNode.setAttribute(getMark(option), key);\n  return newNode;\n}","export default function contains(root, n) {\n  if (!root) {\n    return false;\n  }\n\n  // Use native if support\n  if (root.contains) {\n    return root.contains(n);\n  }\n\n  // `document.contains` not support with IE11\n  var node = n;\n  while (node) {\n    if (node === root) {\n      return true;\n    }\n    node = node.parentNode;\n  }\n  return false;\n}","/* eslint-disable no-console */\nvar warned = {};\nvar preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport var preMessage = function preMessage(fn) {\n  preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n      return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'warning');\n    }, message);\n    if (finalMessage) {\n      console.error(\"Warning: \".concat(finalMessage));\n    }\n  }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n  if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n    var finalMessage = preWarningFns.reduce(function (msg, preMessageFn) {\n      return preMessageFn(msg !== null && msg !== void 0 ? msg : '', 'note');\n    }, message);\n    if (finalMessage) {\n      console.warn(\"Note: \".concat(finalMessage));\n    }\n  }\n}\nexport function resetWarned() {\n  warned = {};\n}\nexport function call(method, valid, message) {\n  if (!valid && !warned[message]) {\n    method(false, message);\n    warned[message] = true;\n  }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n  call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n  call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"./warning\";\n\n/**\n * Deeply compares two object literals.\n * @param obj1 object 1\n * @param obj2 object 2\n * @param shallow shallow compare\n * @returns\n */\nfunction isEqual(obj1, obj2) {\n  var shallow = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  // https://github.com/mapbox/mapbox-gl-js/pull/5979/files#diff-fde7145050c47cc3a306856efd5f9c3016e86e859de9afbd02c879be5067e58f\n  var refSet = new Set();\n  function deepEqual(a, b) {\n    var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n    var circular = refSet.has(a);\n    warning(!circular, 'Warning: There may be circular references');\n    if (circular) {\n      return false;\n    }\n    if (a === b) {\n      return true;\n    }\n    if (shallow && level > 1) {\n      return false;\n    }\n    refSet.add(a);\n    var newLevel = level + 1;\n    if (Array.isArray(a)) {\n      if (!Array.isArray(b) || a.length !== b.length) {\n        return false;\n      }\n      for (var i = 0; i < a.length; i++) {\n        if (!deepEqual(a[i], b[i], newLevel)) {\n          return false;\n        }\n      }\n      return true;\n    }\n    if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n      var keys = Object.keys(a);\n      if (keys.length !== Object.keys(b).length) {\n        return false;\n      }\n      return keys.every(function (key) {\n        return deepEqual(a[key], b[key], newLevel);\n      });\n    }\n    // other\n    return false;\n  }\n  return deepEqual(obj1, obj2);\n}\nexport default isEqual;","function _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nexport { _createClass as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// [times, realValue]\n\nvar SPLIT = '%';\n\n/** Connect key with `SPLIT` */\nexport function pathKey(keys) {\n  return keys.join(SPLIT);\n}\nvar Entity = /*#__PURE__*/function () {\n  function Entity(instanceId) {\n    _classCallCheck(this, Entity);\n    _defineProperty(this, \"instanceId\", void 0);\n    /** @private Internal cache map. Do not access this directly */\n    _defineProperty(this, \"cache\", new Map());\n    this.instanceId = instanceId;\n  }\n  _createClass(Entity, [{\n    key: \"get\",\n    value: function get(keys) {\n      return this.opGet(pathKey(keys));\n    }\n\n    /** A fast get cache with `get` concat. */\n  }, {\n    key: \"opGet\",\n    value: function opGet(keyPathStr) {\n      return this.cache.get(keyPathStr) || null;\n    }\n  }, {\n    key: \"update\",\n    value: function update(keys, valueFn) {\n      return this.opUpdate(pathKey(keys), valueFn);\n    }\n\n    /** A fast get cache with `get` concat. */\n  }, {\n    key: \"opUpdate\",\n    value: function opUpdate(keyPathStr, valueFn) {\n      var prevValue = this.cache.get(keyPathStr);\n      var nextValue = valueFn(prevValue);\n      if (nextValue === null) {\n        this.cache.delete(keyPathStr);\n      } else {\n        this.cache.set(keyPathStr, nextValue);\n      }\n    }\n  }]);\n  return Entity;\n}();\nexport default Entity;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport CacheEntity from \"./Cache\";\nexport var ATTR_TOKEN = 'data-token-hash';\nexport var ATTR_MARK = 'data-css-hash';\nexport var ATTR_CACHE_PATH = 'data-cache-path';\n\n// Mark css-in-js instance in style element\nexport var CSS_IN_JS_INSTANCE = '__cssinjs_instance__';\nexport function createCache() {\n  var cssinjsInstanceId = Math.random().toString(12).slice(2);\n\n  // Tricky SSR: Move all inline style to the head.\n  // PS: We do not recommend tricky mode.\n  if (typeof document !== 'undefined' && document.head && document.body) {\n    var styles = document.body.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\")) || [];\n    var firstChild = document.head.firstChild;\n    Array.from(styles).forEach(function (style) {\n      style[CSS_IN_JS_INSTANCE] = style[CSS_IN_JS_INSTANCE] || cssinjsInstanceId;\n\n      // Not force move if no head\n      if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n        document.head.insertBefore(style, firstChild);\n      }\n    });\n\n    // Deduplicate of moved styles\n    var styleHash = {};\n    Array.from(document.querySelectorAll(\"style[\".concat(ATTR_MARK, \"]\"))).forEach(function (style) {\n      var hash = style.getAttribute(ATTR_MARK);\n      if (styleHash[hash]) {\n        if (style[CSS_IN_JS_INSTANCE] === cssinjsInstanceId) {\n          var _style$parentNode;\n          (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n        }\n      } else {\n        styleHash[hash] = true;\n      }\n    });\n  }\n  return new CacheEntity(cssinjsInstanceId);\n}\nvar StyleContext = /*#__PURE__*/React.createContext({\n  hashPriority: 'low',\n  cache: createCache(),\n  defaultCache: true\n});\nexport var StyleProvider = function StyleProvider(props) {\n  var children = props.children,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var parentContext = React.useContext(StyleContext);\n  var context = useMemo(function () {\n    var mergedContext = _objectSpread({}, parentContext);\n    Object.keys(restProps).forEach(function (key) {\n      var value = restProps[key];\n      if (restProps[key] !== undefined) {\n        mergedContext[key] = value;\n      }\n    });\n    var cache = restProps.cache;\n    mergedContext.cache = mergedContext.cache || createCache();\n    mergedContext.defaultCache = !cache && parentContext.defaultCache;\n    return mergedContext;\n  }, [parentContext, restProps], function (prev, next) {\n    return !isEqual(prev[0], next[0], true) || !isEqual(prev[1], next[1], true);\n  });\n  return /*#__PURE__*/React.createElement(StyleContext.Provider, {\n    value: context\n  }, children);\n};\nexport default StyleContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n  if (typeof value === 'number') {\n    return \"\".concat(value).concat(CALC_UNIT);\n  }\n  return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(CSSCalculator, _AbstractCalculator);\n  var _super = _createSuper(CSSCalculator);\n  function CSSCalculator(num, unitlessCssVar) {\n    var _this;\n    _classCallCheck(this, CSSCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", '');\n    _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n    var numType = _typeof(num);\n    _this.unitlessCssVar = unitlessCssVar;\n    if (num instanceof CSSCalculator) {\n      _this.result = \"(\".concat(num.result, \")\");\n    } else if (numType === 'number') {\n      _this.result = unit(num);\n    } else if (numType === 'string') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(CSSCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" * \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" / \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"getResult\",\n    value: function getResult(force) {\n      return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal(options) {\n      var _this2 = this;\n      var _ref = options || {},\n        cssUnit = _ref.unit;\n      var mergedUnit = true;\n      if (typeof cssUnit === 'boolean') {\n        mergedUnit = cssUnit;\n      } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n        return _this2.result.includes(cssVar);\n      })) {\n        mergedUnit = false;\n      }\n      this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n      if (typeof this.lowPriority !== 'undefined') {\n        return \"calc(\".concat(this.result, \")\");\n      }\n      return this.result;\n    }\n  }]);\n  return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// ================================== Cache ==================================\n\nexport function sameDerivativeOption(left, right) {\n  if (left.length !== right.length) {\n    return false;\n  }\n  for (var i = 0; i < left.length; i++) {\n    if (left[i] !== right[i]) {\n      return false;\n    }\n  }\n  return true;\n}\nvar ThemeCache = /*#__PURE__*/function () {\n  function ThemeCache() {\n    _classCallCheck(this, ThemeCache);\n    _defineProperty(this, \"cache\", void 0);\n    _defineProperty(this, \"keys\", void 0);\n    _defineProperty(this, \"cacheCallTimes\", void 0);\n    this.cache = new Map();\n    this.keys = [];\n    this.cacheCallTimes = 0;\n  }\n  _createClass(ThemeCache, [{\n    key: \"size\",\n    value: function size() {\n      return this.keys.length;\n    }\n  }, {\n    key: \"internalGet\",\n    value: function internalGet(derivativeOption) {\n      var _cache2, _cache3;\n      var updateCallTimes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var cache = {\n        map: this.cache\n      };\n      derivativeOption.forEach(function (derivative) {\n        if (!cache) {\n          cache = undefined;\n        } else {\n          var _cache;\n          cache = (_cache = cache) === null || _cache === void 0 || (_cache = _cache.map) === null || _cache === void 0 ? void 0 : _cache.get(derivative);\n        }\n      });\n      if ((_cache2 = cache) !== null && _cache2 !== void 0 && _cache2.value && updateCallTimes) {\n        cache.value[1] = this.cacheCallTimes++;\n      }\n      return (_cache3 = cache) === null || _cache3 === void 0 ? void 0 : _cache3.value;\n    }\n  }, {\n    key: \"get\",\n    value: function get(derivativeOption) {\n      var _this$internalGet;\n      return (_this$internalGet = this.internalGet(derivativeOption, true)) === null || _this$internalGet === void 0 ? void 0 : _this$internalGet[0];\n    }\n  }, {\n    key: \"has\",\n    value: function has(derivativeOption) {\n      return !!this.internalGet(derivativeOption);\n    }\n  }, {\n    key: \"set\",\n    value: function set(derivativeOption, value) {\n      var _this = this;\n      // New cache\n      if (!this.has(derivativeOption)) {\n        if (this.size() + 1 > ThemeCache.MAX_CACHE_SIZE + ThemeCache.MAX_CACHE_OFFSET) {\n          var _this$keys$reduce = this.keys.reduce(function (result, key) {\n              var _result = _slicedToArray(result, 2),\n                callTimes = _result[1];\n              if (_this.internalGet(key)[1] < callTimes) {\n                return [key, _this.internalGet(key)[1]];\n              }\n              return result;\n            }, [this.keys[0], this.cacheCallTimes]),\n            _this$keys$reduce2 = _slicedToArray(_this$keys$reduce, 1),\n            targetKey = _this$keys$reduce2[0];\n          this.delete(targetKey);\n        }\n        this.keys.push(derivativeOption);\n      }\n      var cache = this.cache;\n      derivativeOption.forEach(function (derivative, index) {\n        if (index === derivativeOption.length - 1) {\n          cache.set(derivative, {\n            value: [value, _this.cacheCallTimes++]\n          });\n        } else {\n          var cacheValue = cache.get(derivative);\n          if (!cacheValue) {\n            cache.set(derivative, {\n              map: new Map()\n            });\n          } else if (!cacheValue.map) {\n            cacheValue.map = new Map();\n          }\n          cache = cache.get(derivative).map;\n        }\n      });\n    }\n  }, {\n    key: \"deleteByPath\",\n    value: function deleteByPath(currentCache, derivatives) {\n      var cache = currentCache.get(derivatives[0]);\n      if (derivatives.length === 1) {\n        var _cache$value;\n        if (!cache.map) {\n          currentCache.delete(derivatives[0]);\n        } else {\n          currentCache.set(derivatives[0], {\n            map: cache.map\n          });\n        }\n        return (_cache$value = cache.value) === null || _cache$value === void 0 ? void 0 : _cache$value[0];\n      }\n      var result = this.deleteByPath(cache.map, derivatives.slice(1));\n      if ((!cache.map || cache.map.size === 0) && !cache.value) {\n        currentCache.delete(derivatives[0]);\n      }\n      return result;\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(derivativeOption) {\n      // If cache exists\n      if (this.has(derivativeOption)) {\n        this.keys = this.keys.filter(function (item) {\n          return !sameDerivativeOption(item, derivativeOption);\n        });\n        return this.deleteByPath(this.cache, derivativeOption);\n      }\n      return undefined;\n    }\n  }]);\n  return ThemeCache;\n}();\n_defineProperty(ThemeCache, \"MAX_CACHE_SIZE\", 20);\n_defineProperty(ThemeCache, \"MAX_CACHE_OFFSET\", 5);\nexport { ThemeCache as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { warning } from \"rc-util/es/warning\";\nvar uuid = 0;\n\n/**\n * Theme with algorithms to derive tokens from design tokens.\n * Use `createTheme` first which will help to manage the theme instance cache.\n */\nvar Theme = /*#__PURE__*/function () {\n  function Theme(derivatives) {\n    _classCallCheck(this, Theme);\n    _defineProperty(this, \"derivatives\", void 0);\n    _defineProperty(this, \"id\", void 0);\n    this.derivatives = Array.isArray(derivatives) ? derivatives : [derivatives];\n    this.id = uuid;\n    if (derivatives.length === 0) {\n      warning(derivatives.length > 0, '[Ant Design CSS-in-JS] Theme should have at least one derivative function.');\n    }\n    uuid += 1;\n  }\n  _createClass(Theme, [{\n    key: \"getDerivativeToken\",\n    value: function getDerivativeToken(token) {\n      return this.derivatives.reduce(function (result, derivative) {\n        return derivative(token, result);\n      }, undefined);\n    }\n  }]);\n  return Theme;\n}();\nexport { Theme as default };","import ThemeCache from \"./ThemeCache\";\nimport Theme from \"./Theme\";\nvar cacheThemes = new ThemeCache();\n\n/**\n * Same as new Theme, but will always return same one if `derivative` not changed.\n */\nexport default function createTheme(derivatives) {\n  var derivativeArr = Array.isArray(derivatives) ? derivatives : [derivatives];\n  // Create new theme if not exist\n  if (!cacheThemes.has(derivativeArr)) {\n    cacheThemes.set(derivativeArr, new Theme(derivativeArr));\n  }\n\n  // Get theme from cache and return\n  return cacheThemes.get(derivativeArr);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { ATTR_MARK, ATTR_TOKEN } from \"../StyleContext\";\nimport { Theme } from \"../theme\";\n\n// Create a cache for memo concat\n\nvar resultCache = new WeakMap();\nvar RESULT_VALUE = {};\nexport function memoResult(callback, deps) {\n  var current = resultCache;\n  for (var i = 0; i < deps.length; i += 1) {\n    var dep = deps[i];\n    if (!current.has(dep)) {\n      current.set(dep, new WeakMap());\n    }\n    current = current.get(dep);\n  }\n  if (!current.has(RESULT_VALUE)) {\n    current.set(RESULT_VALUE, callback());\n  }\n  return current.get(RESULT_VALUE);\n}\n\n// Create a cache here to avoid always loop generate\nvar flattenTokenCache = new WeakMap();\n\n/**\n * Flatten token to string, this will auto cache the result when token not change\n */\nexport function flattenToken(token) {\n  var str = flattenTokenCache.get(token) || '';\n  if (!str) {\n    Object.keys(token).forEach(function (key) {\n      var value = token[key];\n      str += key;\n      if (value instanceof Theme) {\n        str += value.id;\n      } else if (value && _typeof(value) === 'object') {\n        str += flattenToken(value);\n      } else {\n        str += value;\n      }\n    });\n\n    // https://github.com/ant-design/ant-design/issues/48386\n    // Should hash the string to avoid style tag name too long\n    str = hash(str);\n\n    // Put in cache\n    flattenTokenCache.set(token, str);\n  }\n  return str;\n}\n\n/**\n * Convert derivative token to key string\n */\nexport function token2key(token, salt) {\n  return hash(\"\".concat(salt, \"_\").concat(flattenToken(token)));\n}\nvar randomSelectorKey = \"random-\".concat(Date.now(), \"-\").concat(Math.random()).replace(/\\./g, '');\n\n// Magic `content` for detect selector support\nvar checkContent = '_bAmBoO_';\nfunction supportSelector(styleStr, handleElement, supportCheck) {\n  if (canUseDom()) {\n    var _getComputedStyle$con, _ele$parentNode;\n    updateCSS(styleStr, randomSelectorKey);\n    var _ele = document.createElement('div');\n    _ele.style.position = 'fixed';\n    _ele.style.left = '0';\n    _ele.style.top = '0';\n    handleElement === null || handleElement === void 0 || handleElement(_ele);\n    document.body.appendChild(_ele);\n    if (process.env.NODE_ENV !== 'production') {\n      _ele.innerHTML = 'Test';\n      _ele.style.zIndex = '9999999';\n    }\n    var support = supportCheck ? supportCheck(_ele) : (_getComputedStyle$con = getComputedStyle(_ele).content) === null || _getComputedStyle$con === void 0 ? void 0 : _getComputedStyle$con.includes(checkContent);\n    (_ele$parentNode = _ele.parentNode) === null || _ele$parentNode === void 0 || _ele$parentNode.removeChild(_ele);\n    removeCSS(randomSelectorKey);\n    return support;\n  }\n  return false;\n}\nvar canLayer = undefined;\nexport function supportLayer() {\n  if (canLayer === undefined) {\n    canLayer = supportSelector(\"@layer \".concat(randomSelectorKey, \" { .\").concat(randomSelectorKey, \" { content: \\\"\").concat(checkContent, \"\\\"!important; } }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    });\n  }\n  return canLayer;\n}\nvar canWhere = undefined;\nexport function supportWhere() {\n  if (canWhere === undefined) {\n    canWhere = supportSelector(\":where(.\".concat(randomSelectorKey, \") { content: \\\"\").concat(checkContent, \"\\\"!important; }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    });\n  }\n  return canWhere;\n}\nvar canLogic = undefined;\nexport function supportLogicProps() {\n  if (canLogic === undefined) {\n    canLogic = supportSelector(\".\".concat(randomSelectorKey, \" { inset-block: 93px !important; }\"), function (ele) {\n      ele.className = randomSelectorKey;\n    }, function (ele) {\n      return getComputedStyle(ele).bottom === '93px';\n    });\n  }\n  return canLogic;\n}\nexport var isClientSide = canUseDom();\nexport function unit(num) {\n  if (typeof num === 'number') {\n    return \"\".concat(num, \"px\");\n  }\n  return num;\n}\nexport function toStyleStr(style, tokenKey, styleId) {\n  var _objectSpread2;\n  var customizeAttrs = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n  var plain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n  if (plain) {\n    return style;\n  }\n  var attrs = _objectSpread(_objectSpread({}, customizeAttrs), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, ATTR_TOKEN, tokenKey), _defineProperty(_objectSpread2, ATTR_MARK, styleId), _objectSpread2));\n  var attrStr = Object.keys(attrs).map(function (attr) {\n    var val = attrs[attr];\n    return val ? \"\".concat(attr, \"=\\\"\").concat(val, \"\\\"\") : null;\n  }).filter(function (v) {\n    return v;\n  }).join(' ');\n  return \"<style \".concat(attrStr, \">\").concat(style, \"</style>\");\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nexport var token2CSSVar = function token2CSSVar(token) {\n  var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  return \"--\".concat(prefix ? \"\".concat(prefix, \"-\") : '').concat(token).replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z0-9]+)/g, '$1-$2').replace(/([a-z])([A-Z0-9])/g, '$1-$2').toLowerCase();\n};\nexport var serializeCSSVar = function serializeCSSVar(cssVars, hashId, options) {\n  if (!Object.keys(cssVars).length) {\n    return '';\n  }\n  return \".\".concat(hashId).concat(options !== null && options !== void 0 && options.scope ? \".\".concat(options.scope) : '', \"{\").concat(Object.entries(cssVars).map(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 2),\n      key = _ref2[0],\n      value = _ref2[1];\n    return \"\".concat(key, \":\").concat(value, \";\");\n  }).join(''), \"}\");\n};\nexport var transformToken = function transformToken(token, themeKey, config) {\n  var cssVars = {};\n  var result = {};\n  Object.entries(token).forEach(function (_ref3) {\n    var _config$preserve, _config$ignore;\n    var _ref4 = _slicedToArray(_ref3, 2),\n      key = _ref4[0],\n      value = _ref4[1];\n    if (config !== null && config !== void 0 && (_config$preserve = config.preserve) !== null && _config$preserve !== void 0 && _config$preserve[key]) {\n      result[key] = value;\n    } else if ((typeof value === 'string' || typeof value === 'number') && !(config !== null && config !== void 0 && (_config$ignore = config.ignore) !== null && _config$ignore !== void 0 && _config$ignore[key])) {\n      var _config$unitless;\n      var cssVar = token2CSSVar(key, config === null || config === void 0 ? void 0 : config.prefix);\n      cssVars[cssVar] = typeof value === 'number' && !(config !== null && config !== void 0 && (_config$unitless = config.unitless) !== null && _config$unitless !== void 0 && _config$unitless[key]) ? \"\".concat(value, \"px\") : String(value);\n      result[key] = \"var(\".concat(cssVar, \")\");\n    }\n  });\n  return [result, serializeCSSVar(cssVars, themeKey, {\n    scope: config === null || config === void 0 ? void 0 : config.scope\n  })];\n};","import * as React from 'react';\nimport canUseDom from \"../Dom/canUseDom\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nvar useInternalLayoutEffect = process.env.NODE_ENV !== 'test' && canUseDom() ? React.useLayoutEffect : React.useEffect;\nvar useLayoutEffect = function useLayoutEffect(callback, deps) {\n  var firstMountRef = React.useRef(true);\n  useInternalLayoutEffect(function () {\n    return callback(firstMountRef.current);\n  }, deps);\n\n  // We tell react that first mount has passed\n  useInternalLayoutEffect(function () {\n    firstMountRef.current = false;\n    return function () {\n      firstMountRef.current = true;\n    };\n  }, []);\n};\nexport var useLayoutUpdateEffect = function useLayoutUpdateEffect(callback, deps) {\n  useLayoutEffect(function (firstMount) {\n    if (!firstMount) {\n      return callback();\n    }\n  }, deps);\n};\nexport default useLayoutEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// import canUseDom from 'rc-util/lib/Dom/canUseDom';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\n\n// We need fully clone React function here\n// to avoid webpack warning React 17 do not export `useId`\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n/**\n * Polyfill `useInsertionEffect` for React < 18\n * @param renderEffect will be executed in `useMemo`, and do not have callback\n * @param effect will be executed in `useLayoutEffect`\n * @param deps\n */\nvar useInsertionEffectPolyfill = function useInsertionEffectPolyfill(renderEffect, effect, deps) {\n  React.useMemo(renderEffect, deps);\n  useLayoutEffect(function () {\n    return effect(true);\n  }, deps);\n};\n\n/**\n * Compatible `useInsertionEffect`\n * will use `useInsertionEffect` if React version >= 18,\n * otherwise use `useInsertionEffectPolyfill`.\n */\nvar useCompatibleInsertionEffect = useInsertionEffect ? function (renderEffect, effect, deps) {\n  return useInsertionEffect(function () {\n    renderEffect();\n    return effect();\n  }, deps);\n} : useInsertionEffectPolyfill;\nexport default useCompatibleInsertionEffect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nvar fullClone = _objectSpread({}, React);\nvar useInsertionEffect = fullClone.useInsertionEffect;\n\n// DO NOT register functions in useEffect cleanup function, or functions that registered will never be called.\nvar useCleanupRegister = function useCleanupRegister(deps) {\n  var effectCleanups = [];\n  var cleanupFlag = false;\n  function register(fn) {\n    if (cleanupFlag) {\n      if (process.env.NODE_ENV !== 'production') {\n        warning(false, '[Ant Design CSS-in-JS] You are registering a cleanup function after unmount, which will not have any effect.');\n      }\n      return;\n    }\n    effectCleanups.push(fn);\n  }\n  React.useEffect(function () {\n    // Compatible with strict mode\n    cleanupFlag = false;\n    return function () {\n      cleanupFlag = true;\n      if (effectCleanups.length) {\n        effectCleanups.forEach(function (fn) {\n          return fn();\n        });\n      }\n    };\n  }, deps);\n  return register;\n};\nvar useRun = function useRun() {\n  return function (fn) {\n    fn();\n  };\n};\n\n// Only enable register in React 18\nvar useEffectCleanupRegister = typeof useInsertionEffect !== 'undefined' ? useCleanupRegister : useRun;\nexport default useEffectCleanupRegister;","function useProdHMR() {\n  return false;\n}\nvar webpackHMR = false;\nfunction useDevHMR() {\n  return webpackHMR;\n}\nexport default process.env.NODE_ENV === 'production' ? useProdHMR : useDevHMR;\n\n// Webpack `module.hot.accept` do not support any deps update trigger\n// We have to hack handler to force mark as HRM\nif (process.env.NODE_ENV !== 'production' && typeof module !== 'undefined' && module && module.hot && typeof window !== 'undefined') {\n  // Use `globalThis` first, and `window` for older browsers\n  // const win = globalThis as any;\n  var win = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : null;\n  if (win && typeof win.webpackHotUpdate === 'function') {\n    var originWebpackHotUpdate = win.webpackHotUpdate;\n    win.webpackHotUpdate = function () {\n      webpackHMR = true;\n      setTimeout(function () {\n        webpackHMR = false;\n      }, 0);\n      return originWebpackHotUpdate.apply(void 0, arguments);\n    };\n  }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { pathKey } from \"../Cache\";\nimport StyleContext from \"../StyleContext\";\nimport useCompatibleInsertionEffect from \"./useCompatibleInsertionEffect\";\nimport useEffectCleanupRegister from \"./useEffectCleanupRegister\";\nimport useHMR from \"./useHMR\";\nexport default function useGlobalCache(prefix, keyPath, cacheFn, onCacheRemove,\n// Add additional effect trigger by `useInsertionEffect`\nonCacheEffect) {\n  var _React$useContext = React.useContext(StyleContext),\n    globalCache = _React$useContext.cache;\n  var fullPath = [prefix].concat(_toConsumableArray(keyPath));\n  var fullPathStr = pathKey(fullPath);\n  var register = useEffectCleanupRegister([fullPathStr]);\n  var HMRUpdate = useHMR();\n  var buildCache = function buildCache(updater) {\n    globalCache.opUpdate(fullPathStr, function (prevCache) {\n      var _ref = prevCache || [undefined, undefined],\n        _ref2 = _slicedToArray(_ref, 2),\n        _ref2$ = _ref2[0],\n        times = _ref2$ === void 0 ? 0 : _ref2$,\n        cache = _ref2[1];\n\n      // HMR should always ignore cache since developer may change it\n      var tmpCache = cache;\n      if (process.env.NODE_ENV !== 'production' && cache && HMRUpdate) {\n        onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(tmpCache, HMRUpdate);\n        tmpCache = null;\n      }\n      var mergedCache = tmpCache || cacheFn();\n      var data = [times, mergedCache];\n\n      // Call updater if need additional logic\n      return updater ? updater(data) : data;\n    });\n  };\n\n  // Create cache\n  React.useMemo(function () {\n    buildCache();\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [fullPathStr]\n  /* eslint-enable */);\n\n  var cacheEntity = globalCache.opGet(fullPathStr);\n\n  // HMR clean the cache but not trigger `useMemo` again\n  // Let's fallback of this\n  // ref https://github.com/ant-design/cssinjs/issues/127\n  if (process.env.NODE_ENV !== 'production' && !cacheEntity) {\n    buildCache();\n    cacheEntity = globalCache.opGet(fullPathStr);\n  }\n  var cacheContent = cacheEntity[1];\n\n  // Remove if no need anymore\n  useCompatibleInsertionEffect(function () {\n    onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n  }, function (polyfill) {\n    // It's bad to call build again in effect.\n    // But we have to do this since StrictMode will call effect twice\n    // which will clear cache on the first time.\n    buildCache(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 2),\n        times = _ref4[0],\n        cache = _ref4[1];\n      if (polyfill && times === 0) {\n        onCacheEffect === null || onCacheEffect === void 0 || onCacheEffect(cacheContent);\n      }\n      return [times + 1, cache];\n    });\n    return function () {\n      globalCache.opUpdate(fullPathStr, function (prevCache) {\n        var _ref5 = prevCache || [],\n          _ref6 = _slicedToArray(_ref5, 2),\n          _ref6$ = _ref6[0],\n          times = _ref6$ === void 0 ? 0 : _ref6$,\n          cache = _ref6[1];\n        var nextCount = times - 1;\n        if (nextCount === 0) {\n          // Always remove styles in useEffect callback\n          register(function () {\n            // With polyfill, registered callback will always be called synchronously\n            // But without polyfill, it will be called in effect clean up,\n            // And by that time this cache is cleaned up.\n            if (polyfill || !globalCache.opGet(fullPathStr)) {\n              onCacheRemove === null || onCacheRemove === void 0 || onCacheRemove(cache, false);\n            }\n          });\n          return null;\n        }\n        return [times - 1, cache];\n      });\n    };\n  }, [fullPathStr]);\n  return cacheContent;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport hash from '@emotion/hash';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { flattenToken, memoResult, token2key, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar EMPTY_OVERRIDE = {};\n\n// Generate different prefix to make user selector break in production env.\n// This helps developer not to do style override directly on the hash id.\nvar hashPrefix = process.env.NODE_ENV !== 'production' ? 'css-dev-only-do-not-override' : 'css';\nvar tokenKeys = new Map();\nfunction recordCleanToken(tokenKey) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) + 1);\n}\nfunction removeStyleTags(key, instanceId) {\n  if (typeof document !== 'undefined') {\n    var styles = document.querySelectorAll(\"style[\".concat(ATTR_TOKEN, \"=\\\"\").concat(key, \"\\\"]\"));\n    styles.forEach(function (style) {\n      if (style[CSS_IN_JS_INSTANCE] === instanceId) {\n        var _style$parentNode;\n        (_style$parentNode = style.parentNode) === null || _style$parentNode === void 0 || _style$parentNode.removeChild(style);\n      }\n    });\n  }\n}\nvar TOKEN_THRESHOLD = 0;\n\n// Remove will check current keys first\nfunction cleanTokenStyle(tokenKey, instanceId) {\n  tokenKeys.set(tokenKey, (tokenKeys.get(tokenKey) || 0) - 1);\n  var tokenKeyList = Array.from(tokenKeys.keys());\n  var cleanableKeyList = tokenKeyList.filter(function (key) {\n    var count = tokenKeys.get(key) || 0;\n    return count <= 0;\n  });\n\n  // Should keep tokens under threshold for not to insert style too often\n  if (tokenKeyList.length - cleanableKeyList.length > TOKEN_THRESHOLD) {\n    cleanableKeyList.forEach(function (key) {\n      removeStyleTags(key, instanceId);\n      tokenKeys.delete(key);\n    });\n  }\n}\nexport var getComputedToken = function getComputedToken(originToken, overrideToken, theme, format) {\n  var derivativeToken = theme.getDerivativeToken(originToken);\n\n  // Merge with override\n  var mergedDerivativeToken = _objectSpread(_objectSpread({}, derivativeToken), overrideToken);\n\n  // Format if needed\n  if (format) {\n    mergedDerivativeToken = format(mergedDerivativeToken);\n  }\n  return mergedDerivativeToken;\n};\nexport var TOKEN_PREFIX = 'token';\n/**\n * Cache theme derivative token as global shared one\n * @param theme Theme entity\n * @param tokens List of tokens, used for cache. Please do not dynamic generate object directly\n * @param option Additional config\n * @returns Call Theme.getDerivativeToken(tokenObject) to get token\n */\nexport default function useCacheToken(theme, tokens) {\n  var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId,\n    container = _useContext.container;\n  var _option$salt = option.salt,\n    salt = _option$salt === void 0 ? '' : _option$salt,\n    _option$override = option.override,\n    override = _option$override === void 0 ? EMPTY_OVERRIDE : _option$override,\n    formatToken = option.formatToken,\n    compute = option.getComputedToken,\n    cssVar = option.cssVar;\n\n  // Basic - We do basic cache here\n  var mergedToken = memoResult(function () {\n    return Object.assign.apply(Object, [{}].concat(_toConsumableArray(tokens)));\n  }, tokens);\n  var tokenStr = flattenToken(mergedToken);\n  var overrideTokenStr = flattenToken(override);\n  var cssVarStr = cssVar ? flattenToken(cssVar) : '';\n  var cachedToken = useGlobalCache(TOKEN_PREFIX, [salt, theme.id, tokenStr, overrideTokenStr, cssVarStr], function () {\n    var _cssVar$key;\n    var mergedDerivativeToken = compute ? compute(mergedToken, override, theme) : getComputedToken(mergedToken, override, theme, formatToken);\n\n    // Replace token value with css variables\n    var actualToken = _objectSpread({}, mergedDerivativeToken);\n    var cssVarsStr = '';\n    if (!!cssVar) {\n      var _transformToken = transformToken(mergedDerivativeToken, cssVar.key, {\n        prefix: cssVar.prefix,\n        ignore: cssVar.ignore,\n        unitless: cssVar.unitless,\n        preserve: cssVar.preserve\n      });\n      var _transformToken2 = _slicedToArray(_transformToken, 2);\n      mergedDerivativeToken = _transformToken2[0];\n      cssVarsStr = _transformToken2[1];\n    }\n\n    // Optimize for `useStyleRegister` performance\n    var tokenKey = token2key(mergedDerivativeToken, salt);\n    mergedDerivativeToken._tokenKey = tokenKey;\n    actualToken._tokenKey = token2key(actualToken, salt);\n    var themeKey = (_cssVar$key = cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) !== null && _cssVar$key !== void 0 ? _cssVar$key : tokenKey;\n    mergedDerivativeToken._themeKey = themeKey;\n    recordCleanToken(themeKey);\n    var hashId = \"\".concat(hashPrefix, \"-\").concat(hash(tokenKey));\n    mergedDerivativeToken._hashId = hashId; // Not used\n\n    return [mergedDerivativeToken, hashId, actualToken, cssVarsStr, (cssVar === null || cssVar === void 0 ? void 0 : cssVar.key) || ''];\n  }, function (cache) {\n    // Remove token will remove all related style\n    cleanTokenStyle(cache[0]._themeKey, instanceId);\n  }, function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 4),\n      token = _ref2[0],\n      cssVarsStr = _ref2[3];\n    if (cssVar && cssVarsStr) {\n      var style = updateCSS(cssVarsStr, hash(\"css-variables-\".concat(token._themeKey)), {\n        mark: ATTR_MARK,\n        prepend: 'queue',\n        attachTo: container,\n        priority: -999\n      });\n      style[CSS_IN_JS_INSTANCE] = instanceId;\n\n      // Used for `useCacheToken` to remove on batch when token removed\n      style.setAttribute(ATTR_TOKEN, token._themeKey);\n    }\n  });\n  return cachedToken;\n}\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 5),\n    realToken = _cache[2],\n    styleStr = _cache[3],\n    cssVarKey = _cache[4];\n  var _ref3 = options || {},\n    plain = _ref3.plain;\n  if (!styleStr) {\n    return null;\n  }\n  var styleId = realToken._tokenKey;\n  var order = -999;\n\n  // ====================== Style ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n  var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n  return [order, styleId, styleText];\n};","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","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","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'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\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 charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\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 * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\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\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} 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\n\tfor (var i = 0; i < children.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 LAYER: if (element.children.length) break\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: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\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 {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\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.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\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, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, token, 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 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -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), declarations)\n\t\t\t\t\t\tif ((token(previous || 1) == 5 || token(peek() || 1) == 5) && strlen(characters) && substr(characters, -1, void 0) !== ' ') characters += ' '\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: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length || (variable === 0 && previous === 47)))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), 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), 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// c(ontainer)\n\t\t\t\t\t\t\t\t\tcase 99:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 3) === 110) break\n\t\t\t\t\t\t\t\t\t// l(ayer)\n\t\t\t\t\t\t\t\t\tcase 108:\n\t\t\t\t\t\t\t\t\t\tif (charat(characters, 2) === 97) break\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\toffset = 0\n\t\t\t\t\t\t\t\t\t// d(ocument) m(edia) s(upports)\n\t\t\t\t\t\t\t\t\tcase 100: case 109: case 115:\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (offset) parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\telse parse(characters, reference, reference, reference, [''], children, 0, points, children)\n\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 * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\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, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { ATTR_MARK } from \"../StyleContext\";\nexport var ATTR_CACHE_MAP = 'data-ant-cssinjs-cache-path';\n\n/**\n * This marks style from the css file.\n * Which means not exist in `<style />` tag.\n */\nexport var CSS_FILE_STYLE = '_FILE_STYLE__';\nexport function serialize(cachePathMap) {\n  return Object.keys(cachePathMap).map(function (path) {\n    var hash = cachePathMap[path];\n    return \"\".concat(path, \":\").concat(hash);\n  }).join(';');\n}\nvar cachePathMap;\nvar fromCSSFile = true;\n\n/**\n * @private Test usage only. Can save remove if no need.\n */\nexport function reset(mockCache) {\n  var fromFile = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  cachePathMap = mockCache;\n  fromCSSFile = fromFile;\n}\nexport function prepare() {\n  if (!cachePathMap) {\n    cachePathMap = {};\n    if (canUseDom()) {\n      var div = document.createElement('div');\n      div.className = ATTR_CACHE_MAP;\n      div.style.position = 'fixed';\n      div.style.visibility = 'hidden';\n      div.style.top = '-9999px';\n      document.body.appendChild(div);\n      var content = getComputedStyle(div).content || '';\n      content = content.replace(/^\"/, '').replace(/\"$/, '');\n\n      // Fill data\n      content.split(';').forEach(function (item) {\n        var _item$split = item.split(':'),\n          _item$split2 = _slicedToArray(_item$split, 2),\n          path = _item$split2[0],\n          hash = _item$split2[1];\n        cachePathMap[path] = hash;\n      });\n\n      // Remove inline record style\n      var inlineMapStyle = document.querySelector(\"style[\".concat(ATTR_CACHE_MAP, \"]\"));\n      if (inlineMapStyle) {\n        var _inlineMapStyle$paren;\n        fromCSSFile = false;\n        (_inlineMapStyle$paren = inlineMapStyle.parentNode) === null || _inlineMapStyle$paren === void 0 || _inlineMapStyle$paren.removeChild(inlineMapStyle);\n      }\n      document.body.removeChild(div);\n    }\n  }\n}\nexport function existPath(path) {\n  prepare();\n  return !!cachePathMap[path];\n}\nexport function getStyleAndHash(path) {\n  var hash = cachePathMap[path];\n  var styleStr = null;\n  if (hash && canUseDom()) {\n    if (fromCSSFile) {\n      styleStr = CSS_FILE_STYLE;\n    } else {\n      var _style = document.querySelector(\"style[\".concat(ATTR_MARK, \"=\\\"\").concat(cachePathMap[path], \"\\\"]\"));\n      if (_style) {\n        styleStr = _style.innerHTML;\n      } else {\n        // Clean up since not exist anymore\n        delete cachePathMap[path];\n      }\n    }\n  }\n  return [styleStr, hash];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport hash from '@emotion/hash';\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport * as React from 'react';\n// @ts-ignore\nimport unitless from '@emotion/unitless';\nimport { compile, serialize, stringify } from 'stylis';\nimport { contentQuotesLinter, hashedAnimationLinter } from \"../linters\";\nimport StyleContext, { ATTR_CACHE_PATH, ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { CSS_FILE_STYLE, existPath, getStyleAndHash } from \"../util/cacheMapUtil\";\nimport useGlobalCache from \"./useGlobalCache\";\nvar SKIP_CHECK = '_skip_check_';\nvar MULTI_VALUE = '_multi_value_';\n// ============================================================================\n// ==                                 Parser                                 ==\n// ============================================================================\n// Preprocessor style content to browser support one\nexport function normalizeStyle(styleStr) {\n  var serialized = serialize(compile(styleStr), stringify);\n  return serialized.replace(/\\{%%%\\:[^;];}/g, ';');\n}\nfunction isCompoundCSSProperty(value) {\n  return _typeof(value) === 'object' && value && (SKIP_CHECK in value || MULTI_VALUE in value);\n}\n\n// 注入 hash 值\nfunction injectSelectorHash(key, hashId, hashPriority) {\n  if (!hashId) {\n    return key;\n  }\n  var hashClassName = \".\".concat(hashId);\n  var hashSelector = hashPriority === 'low' ? \":where(\".concat(hashClassName, \")\") : hashClassName;\n\n  // 注入 hashId\n  var keys = key.split(',').map(function (k) {\n    var _firstPath$match;\n    var fullPath = k.trim().split(/\\s+/);\n\n    // 如果 Selector 第一个是 HTML Element,那我们就插到它的后面。反之,就插到最前面。\n    var firstPath = fullPath[0] || '';\n    var htmlElement = ((_firstPath$match = firstPath.match(/^\\w+/)) === null || _firstPath$match === void 0 ? void 0 : _firstPath$match[0]) || '';\n    firstPath = \"\".concat(htmlElement).concat(hashSelector).concat(firstPath.slice(htmlElement.length));\n    return [firstPath].concat(_toConsumableArray(fullPath.slice(1))).join(' ');\n  });\n  return keys.join(',');\n}\n// Parse CSSObject to style content\nexport var parseStyle = function parseStyle(interpolation) {\n  var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n      root: true,\n      parentSelectors: []\n    },\n    root = _ref.root,\n    injectHash = _ref.injectHash,\n    parentSelectors = _ref.parentSelectors;\n  var hashId = config.hashId,\n    layer = config.layer,\n    path = config.path,\n    hashPriority = config.hashPriority,\n    _config$transformers = config.transformers,\n    transformers = _config$transformers === void 0 ? [] : _config$transformers,\n    _config$linters = config.linters,\n    linters = _config$linters === void 0 ? [] : _config$linters;\n  var styleStr = '';\n  var effectStyle = {};\n  function parseKeyframes(keyframes) {\n    var animationName = keyframes.getName(hashId);\n    if (!effectStyle[animationName]) {\n      var _parseStyle = parseStyle(keyframes.style, config, {\n          root: false,\n          parentSelectors: parentSelectors\n        }),\n        _parseStyle2 = _slicedToArray(_parseStyle, 1),\n        _parsedStr = _parseStyle2[0];\n      effectStyle[animationName] = \"@keyframes \".concat(keyframes.getName(hashId)).concat(_parsedStr);\n    }\n  }\n  function flattenList(list) {\n    var fullList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    list.forEach(function (item) {\n      if (Array.isArray(item)) {\n        flattenList(item, fullList);\n      } else if (item) {\n        fullList.push(item);\n      }\n    });\n    return fullList;\n  }\n  var flattenStyleList = flattenList(Array.isArray(interpolation) ? interpolation : [interpolation]);\n  flattenStyleList.forEach(function (originStyle) {\n    // Only root level can use raw string\n    var style = typeof originStyle === 'string' && !root ? {} : originStyle;\n    if (typeof style === 'string') {\n      styleStr += \"\".concat(style, \"\\n\");\n    } else if (style._keyframe) {\n      // Keyframe\n      parseKeyframes(style);\n    } else {\n      var mergedStyle = transformers.reduce(function (prev, trans) {\n        var _trans$visit;\n        return (trans === null || trans === void 0 || (_trans$visit = trans.visit) === null || _trans$visit === void 0 ? void 0 : _trans$visit.call(trans, prev)) || prev;\n      }, style);\n\n      // Normal CSSObject\n      Object.keys(mergedStyle).forEach(function (key) {\n        var value = mergedStyle[key];\n        if (_typeof(value) === 'object' && value && (key !== 'animationName' || !value._keyframe) && !isCompoundCSSProperty(value)) {\n          var subInjectHash = false;\n\n          // 当成嵌套对象来处理\n          var mergedKey = key.trim();\n          // Whether treat child as root. In most case it is false.\n          var nextRoot = false;\n\n          // 拆分多个选择器\n          if ((root || injectHash) && hashId) {\n            if (mergedKey.startsWith('@')) {\n              // 略过媒体查询,交给子节点继续插入 hashId\n              subInjectHash = true;\n            } else if (mergedKey === '&') {\n              // 抹掉 root selector 上的单个 &\n              mergedKey = injectSelectorHash('', hashId, hashPriority);\n            } else {\n              // 注入 hashId\n              mergedKey = injectSelectorHash(key, hashId, hashPriority);\n            }\n          } else if (root && !hashId && (mergedKey === '&' || mergedKey === '')) {\n            // In case of `{ '&': { a: { color: 'red' } } }` or `{ '': { a: { color: 'red' } } }` without hashId,\n            // we will get `&{a:{color:red;}}` or `{a:{color:red;}}` string for stylis to compile.\n            // But it does not conform to stylis syntax,\n            // and finally we will get `{color:red;}` as css, which is wrong.\n            // So we need to remove key in root, and treat child `{ a: { color: 'red' } }` as root.\n            mergedKey = '';\n            nextRoot = true;\n          }\n          var _parseStyle3 = parseStyle(value, config, {\n              root: nextRoot,\n              injectHash: subInjectHash,\n              parentSelectors: [].concat(_toConsumableArray(parentSelectors), [mergedKey])\n            }),\n            _parseStyle4 = _slicedToArray(_parseStyle3, 2),\n            _parsedStr2 = _parseStyle4[0],\n            childEffectStyle = _parseStyle4[1];\n          effectStyle = _objectSpread(_objectSpread({}, effectStyle), childEffectStyle);\n          styleStr += \"\".concat(mergedKey).concat(_parsedStr2);\n        } else {\n          var _value;\n          function appendStyle(cssKey, cssValue) {\n            if (process.env.NODE_ENV !== 'production' && (_typeof(value) !== 'object' || !(value !== null && value !== void 0 && value[SKIP_CHECK]))) {\n              [contentQuotesLinter, hashedAnimationLinter].concat(_toConsumableArray(linters)).forEach(function (linter) {\n                return linter(cssKey, cssValue, {\n                  path: path,\n                  hashId: hashId,\n                  parentSelectors: parentSelectors\n                });\n              });\n            }\n\n            // 如果是样式则直接插入\n            var styleName = cssKey.replace(/[A-Z]/g, function (match) {\n              return \"-\".concat(match.toLowerCase());\n            });\n\n            // Auto suffix with px\n            var formatValue = cssValue;\n            if (!unitless[cssKey] && typeof formatValue === 'number' && formatValue !== 0) {\n              formatValue = \"\".concat(formatValue, \"px\");\n            }\n\n            // handle animationName & Keyframe value\n            if (cssKey === 'animationName' && cssValue !== null && cssValue !== void 0 && cssValue._keyframe) {\n              parseKeyframes(cssValue);\n              formatValue = cssValue.getName(hashId);\n            }\n            styleStr += \"\".concat(styleName, \":\").concat(formatValue, \";\");\n          }\n          var actualValue = (_value = value === null || value === void 0 ? void 0 : value.value) !== null && _value !== void 0 ? _value : value;\n          if (_typeof(value) === 'object' && value !== null && value !== void 0 && value[MULTI_VALUE] && Array.isArray(actualValue)) {\n            actualValue.forEach(function (item) {\n              appendStyle(key, item);\n            });\n          } else {\n            appendStyle(key, actualValue);\n          }\n        }\n      });\n    }\n  });\n  if (!root) {\n    styleStr = \"{\".concat(styleStr, \"}\");\n  } else if (layer) {\n    // fixme: https://github.com/thysultan/stylis/pull/339\n    if (styleStr) {\n      styleStr = \"@layer \".concat(layer.name, \" {\").concat(styleStr, \"}\");\n    }\n    if (layer.dependencies) {\n      effectStyle[\"@layer \".concat(layer.name)] = layer.dependencies.map(function (deps) {\n        return \"@layer \".concat(deps, \", \").concat(layer.name, \";\");\n      }).join('\\n');\n    }\n  }\n  return [styleStr, effectStyle];\n};\n\n// ============================================================================\n// ==                                Register                                ==\n// ============================================================================\nexport function uniqueHash(path, styleStr) {\n  return hash(\"\".concat(path.join('%')).concat(styleStr));\n}\nfunction Empty() {\n  return null;\n}\nexport var STYLE_PREFIX = 'style';\n/**\n * Register a style to the global style sheet.\n */\nexport default function useStyleRegister(info, styleFn) {\n  var token = info.token,\n    path = info.path,\n    hashId = info.hashId,\n    layer = info.layer,\n    nonce = info.nonce,\n    clientOnly = info.clientOnly,\n    _info$order = info.order,\n    order = _info$order === void 0 ? 0 : _info$order;\n  var _React$useContext = React.useContext(StyleContext),\n    autoClear = _React$useContext.autoClear,\n    mock = _React$useContext.mock,\n    defaultCache = _React$useContext.defaultCache,\n    hashPriority = _React$useContext.hashPriority,\n    container = _React$useContext.container,\n    ssrInline = _React$useContext.ssrInline,\n    transformers = _React$useContext.transformers,\n    linters = _React$useContext.linters,\n    cache = _React$useContext.cache,\n    enableLayer = _React$useContext.layer;\n  var tokenKey = token._tokenKey;\n  var fullPath = [tokenKey];\n  if (enableLayer) {\n    fullPath.push('layer');\n  }\n  fullPath.push.apply(fullPath, _toConsumableArray(path));\n\n  // Check if need insert style\n  var isMergedClientSide = isClientSide;\n  if (process.env.NODE_ENV !== 'production' && mock !== undefined) {\n    isMergedClientSide = mock === 'client';\n  }\n  var _useGlobalCache = useGlobalCache(STYLE_PREFIX, fullPath,\n    // Create cache if needed\n    function () {\n      var cachePath = fullPath.join('|');\n\n      // Get style from SSR inline style directly\n      if (existPath(cachePath)) {\n        var _getStyleAndHash = getStyleAndHash(cachePath),\n          _getStyleAndHash2 = _slicedToArray(_getStyleAndHash, 2),\n          inlineCacheStyleStr = _getStyleAndHash2[0],\n          styleHash = _getStyleAndHash2[1];\n        if (inlineCacheStyleStr) {\n          return [inlineCacheStyleStr, tokenKey, styleHash, {}, clientOnly, order];\n        }\n      }\n\n      // Generate style\n      var styleObj = styleFn();\n      var _parseStyle5 = parseStyle(styleObj, {\n          hashId: hashId,\n          hashPriority: hashPriority,\n          layer: enableLayer ? layer : undefined,\n          path: path.join('-'),\n          transformers: transformers,\n          linters: linters\n        }),\n        _parseStyle6 = _slicedToArray(_parseStyle5, 2),\n        parsedStyle = _parseStyle6[0],\n        effectStyle = _parseStyle6[1];\n      var styleStr = normalizeStyle(parsedStyle);\n      var styleId = uniqueHash(fullPath, styleStr);\n      return [styleStr, tokenKey, styleId, effectStyle, clientOnly, order];\n    },\n    // Remove cache if no need\n    function (_ref2, fromHMR) {\n      var _ref3 = _slicedToArray(_ref2, 3),\n        styleId = _ref3[2];\n      if ((fromHMR || autoClear) && isClientSide) {\n        removeCSS(styleId, {\n          mark: ATTR_MARK\n        });\n      }\n    },\n    // Effect: Inject style here\n    function (_ref4) {\n      var _ref5 = _slicedToArray(_ref4, 4),\n        styleStr = _ref5[0],\n        _ = _ref5[1],\n        styleId = _ref5[2],\n        effectStyle = _ref5[3];\n      if (isMergedClientSide && styleStr !== CSS_FILE_STYLE) {\n        var mergedCSSConfig = {\n          mark: ATTR_MARK,\n          prepend: enableLayer ? false : 'queue',\n          attachTo: container,\n          priority: order\n        };\n        var nonceStr = typeof nonce === 'function' ? nonce() : nonce;\n        if (nonceStr) {\n          mergedCSSConfig.csp = {\n            nonce: nonceStr\n          };\n        }\n\n        // ================= Split Effect Style =================\n        // We will split effectStyle here since @layer should be at the top level\n        var effectLayerKeys = [];\n        var effectRestKeys = [];\n        Object.keys(effectStyle).forEach(function (key) {\n          if (key.startsWith('@layer')) {\n            effectLayerKeys.push(key);\n          } else {\n            effectRestKeys.push(key);\n          }\n        });\n\n        // ================= Inject Layer Style =================\n        // Inject layer style\n        effectLayerKeys.forEach(function (effectKey) {\n          updateCSS(normalizeStyle(effectStyle[effectKey]), \"_layer-\".concat(effectKey), _objectSpread(_objectSpread({}, mergedCSSConfig), {}, {\n            prepend: true\n          }));\n        });\n\n        // ==================== Inject Style ====================\n        // Inject style\n        var style = updateCSS(styleStr, styleId, mergedCSSConfig);\n        style[CSS_IN_JS_INSTANCE] = cache.instanceId;\n\n        // Used for `useCacheToken` to remove on batch when token removed\n        style.setAttribute(ATTR_TOKEN, tokenKey);\n\n        // Debug usage. Dev only\n        if (process.env.NODE_ENV !== 'production') {\n          style.setAttribute(ATTR_CACHE_PATH, fullPath.join('|'));\n        }\n\n        // ================ Inject Effect Style =================\n        // Inject client side effect style\n        effectRestKeys.forEach(function (effectKey) {\n          updateCSS(normalizeStyle(effectStyle[effectKey]), \"_effect-\".concat(effectKey), mergedCSSConfig);\n        });\n      }\n    }),\n    _useGlobalCache2 = _slicedToArray(_useGlobalCache, 3),\n    cachedStyleStr = _useGlobalCache2[0],\n    cachedTokenKey = _useGlobalCache2[1],\n    cachedStyleId = _useGlobalCache2[2];\n  return function (node) {\n    var styleNode;\n    if (!ssrInline || isMergedClientSide || !defaultCache) {\n      styleNode = /*#__PURE__*/React.createElement(Empty, null);\n    } else {\n      var _ref6;\n      styleNode = /*#__PURE__*/React.createElement(\"style\", _extends({}, (_ref6 = {}, _defineProperty(_ref6, ATTR_TOKEN, cachedTokenKey), _defineProperty(_ref6, ATTR_MARK, cachedStyleId), _ref6), {\n        dangerouslySetInnerHTML: {\n          __html: cachedStyleStr\n        }\n      }));\n    }\n    return /*#__PURE__*/React.createElement(React.Fragment, null, styleNode, node);\n  };\n}\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 6),\n    styleStr = _cache[0],\n    tokenKey = _cache[1],\n    styleId = _cache[2],\n    effectStyle = _cache[3],\n    clientOnly = _cache[4],\n    order = _cache[5];\n  var _ref7 = options || {},\n    plain = _ref7.plain;\n\n  // Skip client only style\n  if (clientOnly) {\n    return null;\n  }\n  var keyStyleText = styleStr;\n\n  // ====================== Share ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n\n  // ====================== Style ======================\n  keyStyleText = toStyleStr(styleStr, tokenKey, styleId, sharedAttrs, plain);\n\n  // =============== Create effect style ===============\n  if (effectStyle) {\n    Object.keys(effectStyle).forEach(function (effectKey) {\n      // Effect style can be reused\n      if (!effectStyles[effectKey]) {\n        effectStyles[effectKey] = true;\n        var effectStyleStr = normalizeStyle(effectStyle[effectKey]);\n        var effectStyleHTML = toStyleStr(effectStyleStr, tokenKey, \"_effect-\".concat(effectKey), sharedAttrs, plain);\n        if (effectKey.startsWith('@layer')) {\n          keyStyleText = effectStyleHTML + keyStyleText;\n        } else {\n          keyStyleText += effectStyleHTML;\n        }\n      }\n    });\n  }\n  return [order, styleId, keyStyleText];\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { useContext } from 'react';\nimport StyleContext, { ATTR_MARK, ATTR_TOKEN, CSS_IN_JS_INSTANCE } from \"../StyleContext\";\nimport { isClientSide, toStyleStr } from \"../util\";\nimport { transformToken } from \"../util/css-variables\";\nimport useGlobalCache from \"./useGlobalCache\";\nimport { uniqueHash } from \"./useStyleRegister\";\nexport var CSS_VAR_PREFIX = 'cssVar';\nvar useCSSVarRegister = function useCSSVarRegister(config, fn) {\n  var key = config.key,\n    prefix = config.prefix,\n    unitless = config.unitless,\n    ignore = config.ignore,\n    token = config.token,\n    _config$scope = config.scope,\n    scope = _config$scope === void 0 ? '' : _config$scope;\n  var _useContext = useContext(StyleContext),\n    instanceId = _useContext.cache.instanceId,\n    container = _useContext.container;\n  var tokenKey = token._tokenKey;\n  var stylePath = [].concat(_toConsumableArray(config.path), [key, scope, tokenKey]);\n  var cache = useGlobalCache(CSS_VAR_PREFIX, stylePath, function () {\n    var originToken = fn();\n    var _transformToken = transformToken(originToken, key, {\n        prefix: prefix,\n        unitless: unitless,\n        ignore: ignore,\n        scope: scope\n      }),\n      _transformToken2 = _slicedToArray(_transformToken, 2),\n      mergedToken = _transformToken2[0],\n      cssVarsStr = _transformToken2[1];\n    var styleId = uniqueHash(stylePath, cssVarsStr);\n    return [mergedToken, cssVarsStr, styleId, key];\n  }, function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 3),\n      styleId = _ref2[2];\n    if (isClientSide) {\n      removeCSS(styleId, {\n        mark: ATTR_MARK\n      });\n    }\n  }, function (_ref3) {\n    var _ref4 = _slicedToArray(_ref3, 3),\n      cssVarsStr = _ref4[1],\n      styleId = _ref4[2];\n    if (!cssVarsStr) {\n      return;\n    }\n    var style = updateCSS(cssVarsStr, styleId, {\n      mark: ATTR_MARK,\n      prepend: 'queue',\n      attachTo: container,\n      priority: -999\n    });\n    style[CSS_IN_JS_INSTANCE] = instanceId;\n\n    // Used for `useCacheToken` to remove on batch when token removed\n    style.setAttribute(ATTR_TOKEN, key);\n  });\n  return cache;\n};\nexport var extract = function extract(cache, effectStyles, options) {\n  var _cache = _slicedToArray(cache, 4),\n    styleStr = _cache[1],\n    styleId = _cache[2],\n    cssVarKey = _cache[3];\n  var _ref5 = options || {},\n    plain = _ref5.plain;\n  if (!styleStr) {\n    return null;\n  }\n  var order = -999;\n\n  // ====================== Style ======================\n  // Used for rc-util\n  var sharedAttrs = {\n    'data-rc-order': 'prependQueue',\n    'data-rc-priority': \"\".concat(order)\n  };\n  var styleText = toStyleStr(styleStr, cssVarKey, styleId, sharedAttrs, plain);\n  return [order, styleId, styleText];\n};\nexport default useCSSVarRegister;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _ExtractStyleFns;\nimport { extract as tokenExtractStyle, TOKEN_PREFIX } from \"./hooks/useCacheToken\";\nimport { CSS_VAR_PREFIX, extract as cssVarExtractStyle } from \"./hooks/useCSSVarRegister\";\nimport { extract as styleExtractStyle, STYLE_PREFIX } from \"./hooks/useStyleRegister\";\nimport { toStyleStr } from \"./util\";\nimport { ATTR_CACHE_MAP, serialize as serializeCacheMap } from \"./util/cacheMapUtil\";\nvar ExtractStyleFns = (_ExtractStyleFns = {}, _defineProperty(_ExtractStyleFns, STYLE_PREFIX, styleExtractStyle), _defineProperty(_ExtractStyleFns, TOKEN_PREFIX, tokenExtractStyle), _defineProperty(_ExtractStyleFns, CSS_VAR_PREFIX, cssVarExtractStyle), _ExtractStyleFns);\nfunction isNotNull(value) {\n  return value !== null;\n}\nexport default function extractStyle(cache, options) {\n  var _ref = typeof options === 'boolean' ? {\n      plain: options\n    } : options || {},\n    _ref$plain = _ref.plain,\n    plain = _ref$plain === void 0 ? false : _ref$plain,\n    _ref$types = _ref.types,\n    types = _ref$types === void 0 ? ['style', 'token', 'cssVar'] : _ref$types;\n  var matchPrefixRegexp = new RegExp(\"^(\".concat((typeof types === 'string' ? [types] : types).join('|'), \")%\"));\n\n  // prefix with `style` is used for `useStyleRegister` to cache style context\n  var styleKeys = Array.from(cache.cache.keys()).filter(function (key) {\n    return matchPrefixRegexp.test(key);\n  });\n\n  // Common effect styles like animation\n  var effectStyles = {};\n\n  // Mapping of cachePath to style hash\n  var cachePathMap = {};\n  var styleText = '';\n  styleKeys.map(function (key) {\n    var cachePath = key.replace(matchPrefixRegexp, '').replace(/%/g, '|');\n    var _key$split = key.split('%'),\n      _key$split2 = _slicedToArray(_key$split, 1),\n      prefix = _key$split2[0];\n    var extractFn = ExtractStyleFns[prefix];\n    var extractedStyle = extractFn(cache.cache.get(key)[1], effectStyles, {\n      plain: plain\n    });\n    if (!extractedStyle) {\n      return null;\n    }\n    var _extractedStyle = _slicedToArray(extractedStyle, 3),\n      order = _extractedStyle[0],\n      styleId = _extractedStyle[1],\n      styleStr = _extractedStyle[2];\n    if (key.startsWith('style')) {\n      cachePathMap[cachePath] = styleId;\n    }\n    return [order, styleStr];\n  }).filter(isNotNull).sort(function (_ref2, _ref3) {\n    var _ref4 = _slicedToArray(_ref2, 1),\n      o1 = _ref4[0];\n    var _ref5 = _slicedToArray(_ref3, 1),\n      o2 = _ref5[0];\n    return o1 - o2;\n  }).forEach(function (_ref6) {\n    var _ref7 = _slicedToArray(_ref6, 2),\n      style = _ref7[1];\n    styleText += style;\n  });\n\n  // ==================== Fill Cache Path ====================\n  styleText += toStyleStr(\".\".concat(ATTR_CACHE_MAP, \"{content:\\\"\").concat(serializeCacheMap(cachePathMap), \"\\\";}\"), undefined, undefined, _defineProperty({}, ATTR_CACHE_MAP, ATTR_CACHE_MAP), plain);\n  return styleText;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar Keyframe = /*#__PURE__*/function () {\n  function Keyframe(name, style) {\n    _classCallCheck(this, Keyframe);\n    _defineProperty(this, \"name\", void 0);\n    _defineProperty(this, \"style\", void 0);\n    _defineProperty(this, \"_keyframe\", true);\n    this.name = name;\n    this.style = style;\n  }\n  _createClass(Keyframe, [{\n    key: \"getName\",\n    value: function getName() {\n      var hashId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      return hashId ? \"\".concat(hashId, \"-\").concat(this.name) : this.name;\n    }\n  }]);\n  return Keyframe;\n}();\nexport default Keyframe;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nfunction splitValues(value) {\n  if (typeof value === 'number') {\n    return [[value], false];\n  }\n  var rawStyle = String(value).trim();\n  var importantCells = rawStyle.match(/(.*)(!important)/);\n  var splitStyle = (importantCells ? importantCells[1] : rawStyle).trim().split(/\\s+/);\n\n  // Combine styles split in brackets, like `calc(1px + 2px)`\n  var temp = [];\n  var brackets = 0;\n  return [splitStyle.reduce(function (list, item) {\n    if (item.includes('(') || item.includes(')')) {\n      var left = item.split('(').length - 1;\n      var right = item.split(')').length - 1;\n      brackets += left - right;\n    }\n    if (brackets >= 0) temp.push(item);\n    if (brackets === 0) {\n      list.push(temp.join(' '));\n      temp = [];\n    }\n    return list;\n  }, []), !!importantCells];\n}\nfunction noSplit(list) {\n  list.notSplit = true;\n  return list;\n}\nvar keyMap = {\n  // Inset\n  inset: ['top', 'right', 'bottom', 'left'],\n  insetBlock: ['top', 'bottom'],\n  insetBlockStart: ['top'],\n  insetBlockEnd: ['bottom'],\n  insetInline: ['left', 'right'],\n  insetInlineStart: ['left'],\n  insetInlineEnd: ['right'],\n  // Margin\n  marginBlock: ['marginTop', 'marginBottom'],\n  marginBlockStart: ['marginTop'],\n  marginBlockEnd: ['marginBottom'],\n  marginInline: ['marginLeft', 'marginRight'],\n  marginInlineStart: ['marginLeft'],\n  marginInlineEnd: ['marginRight'],\n  // Padding\n  paddingBlock: ['paddingTop', 'paddingBottom'],\n  paddingBlockStart: ['paddingTop'],\n  paddingBlockEnd: ['paddingBottom'],\n  paddingInline: ['paddingLeft', 'paddingRight'],\n  paddingInlineStart: ['paddingLeft'],\n  paddingInlineEnd: ['paddingRight'],\n  // Border\n  borderBlock: noSplit(['borderTop', 'borderBottom']),\n  borderBlockStart: noSplit(['borderTop']),\n  borderBlockEnd: noSplit(['borderBottom']),\n  borderInline: noSplit(['borderLeft', 'borderRight']),\n  borderInlineStart: noSplit(['borderLeft']),\n  borderInlineEnd: noSplit(['borderRight']),\n  // Border width\n  borderBlockWidth: ['borderTopWidth', 'borderBottomWidth'],\n  borderBlockStartWidth: ['borderTopWidth'],\n  borderBlockEndWidth: ['borderBottomWidth'],\n  borderInlineWidth: ['borderLeftWidth', 'borderRightWidth'],\n  borderInlineStartWidth: ['borderLeftWidth'],\n  borderInlineEndWidth: ['borderRightWidth'],\n  // Border style\n  borderBlockStyle: ['borderTopStyle', 'borderBottomStyle'],\n  borderBlockStartStyle: ['borderTopStyle'],\n  borderBlockEndStyle: ['borderBottomStyle'],\n  borderInlineStyle: ['borderLeftStyle', 'borderRightStyle'],\n  borderInlineStartStyle: ['borderLeftStyle'],\n  borderInlineEndStyle: ['borderRightStyle'],\n  // Border color\n  borderBlockColor: ['borderTopColor', 'borderBottomColor'],\n  borderBlockStartColor: ['borderTopColor'],\n  borderBlockEndColor: ['borderBottomColor'],\n  borderInlineColor: ['borderLeftColor', 'borderRightColor'],\n  borderInlineStartColor: ['borderLeftColor'],\n  borderInlineEndColor: ['borderRightColor'],\n  // Border radius\n  borderStartStartRadius: ['borderTopLeftRadius'],\n  borderStartEndRadius: ['borderTopRightRadius'],\n  borderEndStartRadius: ['borderBottomLeftRadius'],\n  borderEndEndRadius: ['borderBottomRightRadius']\n};\nfunction wrapImportantAndSkipCheck(value, important) {\n  var parsedValue = value;\n  if (important) {\n    parsedValue = \"\".concat(parsedValue, \" !important\");\n  }\n  return {\n    _skip_check_: true,\n    value: parsedValue\n  };\n}\n\n/**\n * Convert css logical properties to legacy properties.\n * Such as: `margin-block-start` to `margin-top`.\n * Transform list:\n * - inset\n * - margin\n * - padding\n * - border\n */\nvar transform = {\n  visit: function visit(cssObj) {\n    var clone = {};\n    Object.keys(cssObj).forEach(function (key) {\n      var value = cssObj[key];\n      var matchValue = keyMap[key];\n      if (matchValue && (typeof value === 'number' || typeof value === 'string')) {\n        var _splitValues = splitValues(value),\n          _splitValues2 = _slicedToArray(_splitValues, 2),\n          _values = _splitValues2[0],\n          _important = _splitValues2[1];\n        if (matchValue.length && matchValue.notSplit) {\n          // not split means always give same value like border\n          matchValue.forEach(function (matchKey) {\n            clone[matchKey] = wrapImportantAndSkipCheck(value, _important);\n          });\n        } else if (matchValue.length === 1) {\n          // Handle like `marginBlockStart` => `marginTop`\n          clone[matchValue[0]] = wrapImportantAndSkipCheck(_values[0], _important);\n        } else if (matchValue.length === 2) {\n          // Handle like `marginBlock` => `marginTop` & `marginBottom`\n          matchValue.forEach(function (matchKey, index) {\n            var _values$index;\n            clone[matchKey] = wrapImportantAndSkipCheck((_values$index = _values[index]) !== null && _values$index !== void 0 ? _values$index : _values[0], _important);\n          });\n        } else if (matchValue.length === 4) {\n          // Handle like `inset` => `top` & `right` & `bottom` & `left`\n          matchValue.forEach(function (matchKey, index) {\n            var _ref, _values$index2;\n            clone[matchKey] = wrapImportantAndSkipCheck((_ref = (_values$index2 = _values[index]) !== null && _values$index2 !== void 0 ? _values$index2 : _values[index - 2]) !== null && _ref !== void 0 ? _ref : _values[0], _important);\n          });\n        } else {\n          clone[key] = value;\n        }\n      } else {\n        clone[key] = value;\n      }\n    });\n    return clone;\n  }\n};\nexport default transform;","function _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n  if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n  t.prototype = Object.create(e && e.prototype, {\n    constructor: {\n      value: t,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(t, \"prototype\", {\n    writable: !1\n  }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\nexport { _isNativeReflectConstruct as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n  if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n  if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n  var r = isNativeReflectConstruct();\n  return function () {\n    var e,\n      o = getPrototypeOf(t);\n    if (r) {\n      var s = getPrototypeOf(this).constructor;\n      e = Reflect.construct(o, arguments, s);\n    } else e = o.apply(this, arguments);\n    return possibleConstructorReturn(this, e);\n  };\n}\nexport { _createSuper as default };","import _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar AbstractCalculator = /*#__PURE__*/_createClass(function AbstractCalculator() {\n  _classCallCheck(this, AbstractCalculator);\n});\nexport default AbstractCalculator;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar CALC_UNIT = 'CALC_UNIT';\nvar regexp = new RegExp(CALC_UNIT, 'g');\nfunction unit(value) {\n  if (typeof value === 'number') {\n    return \"\".concat(value).concat(CALC_UNIT);\n  }\n  return value;\n}\nvar CSSCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(CSSCalculator, _AbstractCalculator);\n  var _super = _createSuper(CSSCalculator);\n  function CSSCalculator(num, unitlessCssVar) {\n    var _this;\n    _classCallCheck(this, CSSCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", '');\n    _defineProperty(_assertThisInitialized(_this), \"unitlessCssVar\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"lowPriority\", void 0);\n    var numType = _typeof(num);\n    _this.unitlessCssVar = unitlessCssVar;\n    if (num instanceof CSSCalculator) {\n      _this.result = \"(\".concat(num.result, \")\");\n    } else if (numType === 'number') {\n      _this.result = unit(num);\n    } else if (numType === 'string') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(CSSCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" + \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" + \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" - \").concat(num.getResult());\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" - \").concat(unit(num));\n      }\n      this.lowPriority = true;\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" * \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" * \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (this.lowPriority) {\n        this.result = \"(\".concat(this.result, \")\");\n      }\n      if (num instanceof CSSCalculator) {\n        this.result = \"\".concat(this.result, \" / \").concat(num.getResult(true));\n      } else if (typeof num === 'number' || typeof num === 'string') {\n        this.result = \"\".concat(this.result, \" / \").concat(num);\n      }\n      this.lowPriority = false;\n      return this;\n    }\n  }, {\n    key: \"getResult\",\n    value: function getResult(force) {\n      return this.lowPriority || force ? \"(\".concat(this.result, \")\") : this.result;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal(options) {\n      var _this2 = this;\n      var _ref = options || {},\n        cssUnit = _ref.unit;\n      var mergedUnit = true;\n      if (typeof cssUnit === 'boolean') {\n        mergedUnit = cssUnit;\n      } else if (Array.from(this.unitlessCssVar).some(function (cssVar) {\n        return _this2.result.includes(cssVar);\n      })) {\n        mergedUnit = false;\n      }\n      this.result = this.result.replace(regexp, mergedUnit ? 'px' : '');\n      if (typeof this.lowPriority !== 'undefined') {\n        return \"calc(\".concat(this.result, \")\");\n      }\n      return this.result;\n    }\n  }]);\n  return CSSCalculator;\n}(AbstractCalculator);\nexport { CSSCalculator as default };","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport AbstractCalculator from \"./calculator\";\nvar NumCalculator = /*#__PURE__*/function (_AbstractCalculator) {\n  _inherits(NumCalculator, _AbstractCalculator);\n  var _super = _createSuper(NumCalculator);\n  function NumCalculator(num) {\n    var _this;\n    _classCallCheck(this, NumCalculator);\n    _this = _super.call(this);\n    _defineProperty(_assertThisInitialized(_this), \"result\", 0);\n    if (num instanceof NumCalculator) {\n      _this.result = num.result;\n    } else if (typeof num === 'number') {\n      _this.result = num;\n    }\n    return _this;\n  }\n  _createClass(NumCalculator, [{\n    key: \"add\",\n    value: function add(num) {\n      if (num instanceof NumCalculator) {\n        this.result += num.result;\n      } else if (typeof num === 'number') {\n        this.result += num;\n      }\n      return this;\n    }\n  }, {\n    key: \"sub\",\n    value: function sub(num) {\n      if (num instanceof NumCalculator) {\n        this.result -= num.result;\n      } else if (typeof num === 'number') {\n        this.result -= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"mul\",\n    value: function mul(num) {\n      if (num instanceof NumCalculator) {\n        this.result *= num.result;\n      } else if (typeof num === 'number') {\n        this.result *= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"div\",\n    value: function div(num) {\n      if (num instanceof NumCalculator) {\n        this.result /= num.result;\n      } else if (typeof num === 'number') {\n        this.result /= num;\n      }\n      return this;\n    }\n  }, {\n    key: \"equal\",\n    value: function equal() {\n      return this.result;\n    }\n  }]);\n  return NumCalculator;\n}(AbstractCalculator);\nexport default NumCalculator;","import CSSCalculator from \"./CSSCalculator\";\nimport NumCalculator from \"./NumCalculator\";\nvar genCalc = function genCalc(type, unitlessCssVar) {\n  var Calculator = type === 'css' ? CSSCalculator : NumCalculator;\n  return function (num) {\n    return new Calculator(num, unitlessCssVar);\n  };\n};\nexport default genCalc;","var getCompVarPrefix = function getCompVarPrefix(component, prefix) {\n  return \"\".concat([prefix, component.replace(/([A-Z]+)([A-Z][a-z]+)/g, '$1-$2').replace(/([a-z])([A-Z])/g, '$1-$2')].filter(Boolean).join('-'));\n};\nexport default getCompVarPrefix;","import * as React from 'react';\nexport default function useEvent(callback) {\n  var fnRef = React.useRef();\n  fnRef.current = callback;\n  var memoFn = React.useCallback(function () {\n    var _fnRef$current;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return (_fnRef$current = fnRef.current) === null || _fnRef$current === void 0 ? void 0 : _fnRef$current.call.apply(_fnRef$current, [fnRef].concat(args));\n  }, []);\n  return memoFn;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\nexport default function useSafeState(defaultValue) {\n  var destroyRef = React.useRef(false);\n  var _React$useState = React.useState(defaultValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    value = _React$useState2[0],\n    setValue = _React$useState2[1];\n  React.useEffect(function () {\n    destroyRef.current = false;\n    return function () {\n      destroyRef.current = true;\n    };\n  }, []);\n  function safeSetState(updater, ignoreDestroy) {\n    if (ignoreDestroy && destroyRef.current) {\n      return;\n    }\n    setValue(updater);\n  }\n  return [value, safeSetState];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"./useEvent\";\nimport { useLayoutUpdateEffect } from \"./useLayoutEffect\";\nimport useState from \"./useState\";\n/** We only think `undefined` is empty */\nfunction hasValue(value) {\n  return value !== undefined;\n}\n\n/**\n * Similar to `useState` but will use props value if provided.\n * Note that internal use rc-util `useState` hook.\n */\nexport default function useMergedState(defaultStateValue, option) {\n  var _ref = option || {},\n    defaultValue = _ref.defaultValue,\n    value = _ref.value,\n    onChange = _ref.onChange,\n    postState = _ref.postState;\n\n  // ======================= Init =======================\n  var _useState = useState(function () {\n      if (hasValue(value)) {\n        return value;\n      } else if (hasValue(defaultValue)) {\n        return typeof defaultValue === 'function' ? defaultValue() : defaultValue;\n      } else {\n        return typeof defaultStateValue === 'function' ? defaultStateValue() : defaultStateValue;\n      }\n    }),\n    _useState2 = _slicedToArray(_useState, 2),\n    innerValue = _useState2[0],\n    setInnerValue = _useState2[1];\n  var mergedValue = value !== undefined ? value : innerValue;\n  var postMergedValue = postState ? postState(mergedValue) : mergedValue;\n\n  // ====================== Change ======================\n  var onChangeFn = useEvent(onChange);\n  var _useState3 = useState([mergedValue]),\n    _useState4 = _slicedToArray(_useState3, 2),\n    prevValue = _useState4[0],\n    setPrevValue = _useState4[1];\n  useLayoutUpdateEffect(function () {\n    var prev = prevValue[0];\n    if (innerValue !== prev) {\n      onChangeFn(innerValue, prev);\n    }\n  }, [prevValue]);\n\n  // Sync value back to `undefined` when it from control to un-control\n  useLayoutUpdateEffect(function () {\n    if (!hasValue(value)) {\n      setInnerValue(value);\n    }\n  }, [value]);\n\n  // ====================== Update ======================\n  var triggerChange = useEvent(function (updater, ignoreDestroy) {\n    setInnerValue(updater, ignoreDestroy);\n    setPrevValue([mergedValue], ignoreDestroy);\n  });\n  return [postMergedValue, triggerChange];\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _toArray(r) {\n  return arrayWithHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableRest();\n}\nexport { _toArray as default };","export default function get(entity, path) {\n  var current = entity;\n  for (var i = 0; i < path.length; i += 1) {\n    if (current === null || current === undefined) {\n      return undefined;\n    }\n    current = current[path[i]];\n  }\n  return current;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from \"./get\";\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n  if (!paths.length) {\n    return value;\n  }\n  var _paths = _toArray(paths),\n    path = _paths[0],\n    restPath = _paths.slice(1);\n  var clone;\n  if (!entity && typeof path === 'number') {\n    clone = [];\n  } else if (Array.isArray(entity)) {\n    clone = _toConsumableArray(entity);\n  } else {\n    clone = _objectSpread({}, entity);\n  }\n\n  // Delete prop if `removeIfUndefined` and value is undefined\n  if (removeIfUndefined && value === undefined && restPath.length === 1) {\n    delete clone[path][restPath[0]];\n  } else {\n    clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n  }\n  return clone;\n}\nexport default function set(entity, paths, value) {\n  var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  // Do nothing if `removeIfUndefined` and parent object not exist\n  if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n    return entity;\n  }\n  return internalSet(entity, paths, value, removeIfUndefined);\n}\nfunction isObject(obj) {\n  return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\nfunction createEmpty(source) {\n  return Array.isArray(source) ? [] : {};\n}\nvar keys = typeof Reflect === 'undefined' ? Object.keys : Reflect.ownKeys;\n\n/**\n * Merge objects which will create\n */\nexport function merge() {\n  for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n    sources[_key] = arguments[_key];\n  }\n  var clone = createEmpty(sources[0]);\n  sources.forEach(function (src) {\n    function internalMerge(path, parentLoopSet) {\n      var loopSet = new Set(parentLoopSet);\n      var value = get(src, path);\n      var isArr = Array.isArray(value);\n      if (isArr || isObject(value)) {\n        // Only add not loop obj\n        if (!loopSet.has(value)) {\n          loopSet.add(value);\n          var originValue = get(clone, path);\n          if (isArr) {\n            // Array will always be override\n            clone = set(clone, path, []);\n          } else if (!originValue || _typeof(originValue) !== 'object') {\n            // Init container if not exist\n            clone = set(clone, path, createEmpty(value));\n          }\n          keys(value).forEach(function (key) {\n            internalMerge([].concat(_toConsumableArray(path), [key]), loopSet);\n          });\n        }\n      } else {\n        clone = set(clone, path, value);\n      }\n    }\n    internalMerge([]);\n  });\n  return clone;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nfunction getComponentToken(component, token, defaultToken, options) {\n  var customToken = _objectSpread({}, token[component]);\n  if (options !== null && options !== void 0 && options.deprecatedTokens) {\n    var deprecatedTokens = options.deprecatedTokens;\n    deprecatedTokens.forEach(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n        oldTokenKey = _ref2[0],\n        newTokenKey = _ref2[1];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(!(customToken !== null && customToken !== void 0 && customToken[oldTokenKey]), \"Component Token `\".concat(String(oldTokenKey), \"` of \").concat(String(component), \" is deprecated. Please use `\").concat(String(newTokenKey), \"` instead.\"));\n      }\n\n      // Should wrap with `if` clause, or there will be `undefined` in object.\n      if (customToken !== null && customToken !== void 0 && customToken[oldTokenKey] || customToken !== null && customToken !== void 0 && customToken[newTokenKey]) {\n        var _customToken$newToken;\n        (_customToken$newToken = customToken[newTokenKey]) !== null && _customToken$newToken !== void 0 ? _customToken$newToken : customToken[newTokenKey] = customToken === null || customToken === void 0 ? void 0 : customToken[oldTokenKey];\n      }\n    });\n  }\n  var mergedToken = _objectSpread(_objectSpread({}, defaultToken), customToken);\n\n  // Remove same value as global token to minimize size\n  Object.keys(mergedToken).forEach(function (key) {\n    if (mergedToken[key] === token[key]) {\n      delete mergedToken[key];\n    }\n  });\n  return mergedToken;\n}\nexport default getComponentToken;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar enableStatistic = process.env.NODE_ENV !== 'production' || typeof CSSINJS_STATISTIC !== 'undefined';\nvar recording = true;\n\n/**\n * This function will do as `Object.assign` in production. But will use Object.defineProperty:get to\n * pass all value access in development. To support statistic field usage with alias token.\n */\nexport function merge() {\n  for (var _len = arguments.length, objs = new Array(_len), _key = 0; _key < _len; _key++) {\n    objs[_key] = arguments[_key];\n  }\n  /* istanbul ignore next */\n  if (!enableStatistic) {\n    return Object.assign.apply(Object, [{}].concat(objs));\n  }\n  recording = false;\n  var ret = {};\n  objs.forEach(function (obj) {\n    if (_typeof(obj) !== 'object') {\n      return;\n    }\n    var keys = Object.keys(obj);\n    keys.forEach(function (key) {\n      Object.defineProperty(ret, key, {\n        configurable: true,\n        enumerable: true,\n        get: function get() {\n          return obj[key];\n        }\n      });\n    });\n  });\n  recording = true;\n  return ret;\n}\n\n/** @internal Internal Usage. Not use in your production. */\nexport var statistic = {};\n\n/** @internal Internal Usage. Not use in your production. */\nexport var _statistic_build_ = {};\n\n/* istanbul ignore next */\nfunction noop() {}\n\n/** Statistic token usage case. Should use `merge` function if you do not want spread record. */\nvar statisticToken = function statisticToken(token) {\n  var tokenKeys;\n  var proxy = token;\n  var flush = noop;\n  if (enableStatistic && typeof Proxy !== 'undefined') {\n    tokenKeys = new Set();\n    proxy = new Proxy(token, {\n      get: function get(obj, prop) {\n        if (recording) {\n          var _tokenKeys;\n          (_tokenKeys = tokenKeys) === null || _tokenKeys === void 0 || _tokenKeys.add(prop);\n        }\n        return obj[prop];\n      }\n    });\n    flush = function flush(componentName, componentToken) {\n      var _statistic$componentN;\n      statistic[componentName] = {\n        global: Array.from(tokenKeys),\n        component: _objectSpread(_objectSpread({}, (_statistic$componentN = statistic[componentName]) === null || _statistic$componentN === void 0 ? void 0 : _statistic$componentN.component), componentToken)\n      };\n    };\n  }\n  return {\n    token: proxy,\n    keys: tokenKeys,\n    flush: flush\n  };\n};\nexport default statisticToken;","import { merge as mergeToken } from \"./statistic\";\nfunction getDefaultComponentToken(component, token, getDefaultToken) {\n  if (typeof getDefaultToken === 'function') {\n    var _token$component;\n    return getDefaultToken(mergeToken(token, (_token$component = token[component]) !== null && _token$component !== void 0 ? _token$component : {}));\n  }\n  return getDefaultToken !== null && getDefaultToken !== void 0 ? getDefaultToken : {};\n}\nexport default getDefaultComponentToken;","import { unit } from '@ant-design/cssinjs';\nfunction genMaxMin(type) {\n  if (type === 'js') {\n    return {\n      max: Math.max,\n      min: Math.min\n    };\n  }\n  return {\n    max: function max() {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return \"max(\".concat(args.map(function (value) {\n        return unit(value);\n      }).join(','), \")\");\n    },\n    min: function min() {\n      for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        args[_key2] = arguments[_key2];\n      }\n      return \"min(\".concat(args.map(function (value) {\n        return unit(value);\n      }).join(','), \")\");\n    }\n  };\n}\nexport default genMaxMin;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport React from 'react';\nvar BEAT_LIMIT = 1000 * 60 * 10;\n\n/**\n * A helper class to map keys to values.\n * It supports both primitive keys and object keys.\n */\nvar ArrayKeyMap = /*#__PURE__*/function () {\n  function ArrayKeyMap() {\n    _classCallCheck(this, ArrayKeyMap);\n    _defineProperty(this, \"map\", new Map());\n    // Use WeakMap to avoid memory leak\n    _defineProperty(this, \"objectIDMap\", new WeakMap());\n    _defineProperty(this, \"nextID\", 0);\n    _defineProperty(this, \"lastAccessBeat\", new Map());\n    // We will clean up the cache when reach the limit\n    _defineProperty(this, \"accessBeat\", 0);\n  }\n  _createClass(ArrayKeyMap, [{\n    key: \"set\",\n    value: function set(keys, value) {\n      // New set will trigger clear\n      this.clear();\n\n      // Set logic\n      var compositeKey = this.getCompositeKey(keys);\n      this.map.set(compositeKey, value);\n      this.lastAccessBeat.set(compositeKey, Date.now());\n    }\n  }, {\n    key: \"get\",\n    value: function get(keys) {\n      var compositeKey = this.getCompositeKey(keys);\n      var cache = this.map.get(compositeKey);\n      this.lastAccessBeat.set(compositeKey, Date.now());\n      this.accessBeat += 1;\n      return cache;\n    }\n  }, {\n    key: \"getCompositeKey\",\n    value: function getCompositeKey(keys) {\n      var _this = this;\n      var ids = keys.map(function (key) {\n        if (key && _typeof(key) === 'object') {\n          return \"obj_\".concat(_this.getObjectID(key));\n        }\n        return \"\".concat(_typeof(key), \"_\").concat(key);\n      });\n      return ids.join('|');\n    }\n  }, {\n    key: \"getObjectID\",\n    value: function getObjectID(obj) {\n      if (this.objectIDMap.has(obj)) {\n        return this.objectIDMap.get(obj);\n      }\n      var id = this.nextID;\n      this.objectIDMap.set(obj, id);\n      this.nextID += 1;\n      return id;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      var _this2 = this;\n      if (this.accessBeat > 10000) {\n        var now = Date.now();\n        this.lastAccessBeat.forEach(function (beat, key) {\n          if (now - beat > BEAT_LIMIT) {\n            _this2.map.delete(key);\n            _this2.lastAccessBeat.delete(key);\n          }\n        });\n        this.accessBeat = 0;\n      }\n    }\n  }]);\n  return ArrayKeyMap;\n}();\nvar uniqueMap = new ArrayKeyMap();\n\n/**\n * Like `useMemo`, but this hook result will be shared across all instances.\n */\nfunction useUniqueMemo(memoFn, deps) {\n  return React.useMemo(function () {\n    var cachedValue = uniqueMap.get(deps);\n    if (cachedValue) {\n      return cachedValue;\n    }\n    var newValue = memoFn();\n    uniqueMap.set(deps, newValue);\n    return newValue;\n  }, deps);\n}\nexport default useUniqueMemo;","/**\n * Provide a default hook since not everyone needs to config this.\n */\nvar useDefaultCSP = function useDefaultCSP() {\n  return {};\n};\nexport default useDefaultCSP;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nimport { token2CSSVar, useCSSVarRegister, useStyleRegister } from '@ant-design/cssinjs';\nimport genCalc from \"./calc\";\nimport getCompVarPrefix from \"./getCompVarPrefix\";\nimport getComponentToken from \"./getComponentToken\";\nimport getDefaultComponentToken from \"./getDefaultComponentToken\";\nimport genMaxMin from \"./maxmin\";\nimport statisticToken, { merge as mergeToken } from \"./statistic\";\nimport useUniqueMemo from \"../_util/hooks/useUniqueMemo\";\nimport useDefaultCSP from \"../hooks/useCSP\";\nfunction genStyleUtils(config) {\n  // Dependency inversion for preparing basic config.\n  var _config$useCSP = config.useCSP,\n    useCSP = _config$useCSP === void 0 ? useDefaultCSP : _config$useCSP,\n    useToken = config.useToken,\n    usePrefix = config.usePrefix,\n    getResetStyles = config.getResetStyles,\n    getCommonStyle = config.getCommonStyle,\n    getCompUnitless = config.getCompUnitless;\n  function genStyleHooks(component, styleFn, getDefaultToken, options) {\n    var componentName = Array.isArray(component) ? component[0] : component;\n    function prefixToken(key) {\n      return \"\".concat(String(componentName)).concat(key.slice(0, 1).toUpperCase()).concat(key.slice(1));\n    }\n\n    // Fill unitless\n    var originUnitless = (options === null || options === void 0 ? void 0 : options.unitless) || {};\n    var originCompUnitless = typeof getCompUnitless === 'function' ? getCompUnitless(component) : {};\n    var compUnitless = _objectSpread(_objectSpread({}, originCompUnitless), {}, _defineProperty({}, prefixToken('zIndexPopup'), true));\n    Object.keys(originUnitless).forEach(function (key) {\n      compUnitless[prefixToken(key)] = originUnitless[key];\n    });\n\n    // Options\n    var mergedOptions = _objectSpread(_objectSpread({}, options), {}, {\n      unitless: compUnitless,\n      prefixToken: prefixToken\n    });\n\n    // Hooks\n    var useStyle = genComponentStyleHook(component, styleFn, getDefaultToken, mergedOptions);\n    var useCSSVar = genCSSVarRegister(componentName, getDefaultToken, mergedOptions);\n    return function (prefixCls) {\n      var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n      var _useStyle = useStyle(prefixCls, rootCls),\n        _useStyle2 = _slicedToArray(_useStyle, 2),\n        hashId = _useStyle2[1];\n      var _useCSSVar = useCSSVar(rootCls),\n        _useCSSVar2 = _slicedToArray(_useCSSVar, 2),\n        wrapCSSVar = _useCSSVar2[0],\n        cssVarCls = _useCSSVar2[1];\n      return [wrapCSSVar, hashId, cssVarCls];\n    };\n  }\n  function genCSSVarRegister(component, getDefaultToken, options) {\n    var compUnitless = options.unitless,\n      _options$injectStyle = options.injectStyle,\n      injectStyle = _options$injectStyle === void 0 ? true : _options$injectStyle,\n      prefixToken = options.prefixToken,\n      ignore = options.ignore;\n    var CSSVarRegister = function CSSVarRegister(_ref) {\n      var rootCls = _ref.rootCls,\n        _ref$cssVar = _ref.cssVar,\n        cssVar = _ref$cssVar === void 0 ? {} : _ref$cssVar;\n      var _useToken = useToken(),\n        realToken = _useToken.realToken;\n      useCSSVarRegister({\n        path: [component],\n        prefix: cssVar.prefix,\n        key: cssVar.key,\n        unitless: compUnitless,\n        ignore: ignore,\n        token: realToken,\n        scope: rootCls\n      }, function () {\n        var defaultToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n        var componentToken = getComponentToken(component, realToken, defaultToken, {\n          deprecatedTokens: options === null || options === void 0 ? void 0 : options.deprecatedTokens\n        });\n        Object.keys(defaultToken).forEach(function (key) {\n          componentToken[prefixToken(key)] = componentToken[key];\n          delete componentToken[key];\n        });\n        return componentToken;\n      });\n      return null;\n    };\n    var useCSSVar = function useCSSVar(rootCls) {\n      var _useToken2 = useToken(),\n        cssVar = _useToken2.cssVar;\n      return [function (node) {\n        return injectStyle && cssVar ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSVarRegister, {\n          rootCls: rootCls,\n          cssVar: cssVar,\n          component: component\n        }), node) : node;\n      }, cssVar === null || cssVar === void 0 ? void 0 : cssVar.key];\n    };\n    return useCSSVar;\n  }\n  function genComponentStyleHook(componentName, styleFn, getDefaultToken) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var cells = Array.isArray(componentName) ? componentName : [componentName, componentName];\n    var _cells = _slicedToArray(cells, 1),\n      component = _cells[0];\n    var concatComponent = cells.join('-');\n    var mergedLayer = config.layer || {\n      name: 'antd'\n    };\n\n    // Return new style hook\n    return function (prefixCls) {\n      var rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n      var _useToken3 = useToken(),\n        theme = _useToken3.theme,\n        realToken = _useToken3.realToken,\n        hashId = _useToken3.hashId,\n        token = _useToken3.token,\n        cssVar = _useToken3.cssVar;\n      var _usePrefix = usePrefix(),\n        rootPrefixCls = _usePrefix.rootPrefixCls,\n        iconPrefixCls = _usePrefix.iconPrefixCls;\n      var csp = useCSP();\n      var type = cssVar ? 'css' : 'js';\n\n      // Use unique memo to share the result across all instances\n      var calc = useUniqueMemo(function () {\n        var unitlessCssVar = new Set();\n        if (cssVar) {\n          Object.keys(options.unitless || {}).forEach(function (key) {\n            // Some component proxy the AliasToken (e.g. Image) and some not (e.g. Modal)\n            // We should both pass in `unitlessCssVar` to make sure the CSSVar can be unitless.\n            unitlessCssVar.add(token2CSSVar(key, cssVar.prefix));\n            unitlessCssVar.add(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)));\n          });\n        }\n        return genCalc(type, unitlessCssVar);\n      }, [type, component, cssVar === null || cssVar === void 0 ? void 0 : cssVar.prefix]);\n      var _genMaxMin = genMaxMin(type),\n        max = _genMaxMin.max,\n        min = _genMaxMin.min;\n\n      // Shared config\n      var sharedConfig = {\n        theme: theme,\n        token: token,\n        hashId: hashId,\n        nonce: function nonce() {\n          return csp.nonce;\n        },\n        clientOnly: options.clientOnly,\n        layer: mergedLayer,\n        // antd is always at top of styles\n        order: options.order || -999\n      };\n\n      // This if statement is safe, as it will only be used if the generator has the function. It's not dynamic.\n      if (typeof getResetStyles === 'function') {\n        // Generate style for all need reset tags.\n        useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n          clientOnly: false,\n          path: ['Shared', rootPrefixCls]\n        }), function () {\n          return getResetStyles(token, {\n            prefix: {\n              rootPrefixCls: rootPrefixCls,\n              iconPrefixCls: iconPrefixCls\n            },\n            csp: csp\n          });\n        });\n      }\n      var wrapSSR = useStyleRegister(_objectSpread(_objectSpread({}, sharedConfig), {}, {\n        path: [concatComponent, prefixCls, iconPrefixCls]\n      }), function () {\n        if (options.injectStyle === false) {\n          return [];\n        }\n        var _statisticToken = statisticToken(token),\n          proxyToken = _statisticToken.token,\n          flush = _statisticToken.flush;\n        var defaultComponentToken = getDefaultComponentToken(component, realToken, getDefaultToken);\n        var componentCls = \".\".concat(prefixCls);\n        var componentToken = getComponentToken(component, realToken, defaultComponentToken, {\n          deprecatedTokens: options.deprecatedTokens\n        });\n        if (cssVar && defaultComponentToken && _typeof(defaultComponentToken) === 'object') {\n          Object.keys(defaultComponentToken).forEach(function (key) {\n            defaultComponentToken[key] = \"var(\".concat(token2CSSVar(key, getCompVarPrefix(component, cssVar.prefix)), \")\");\n          });\n        }\n        var mergedToken = mergeToken(proxyToken, {\n          componentCls: componentCls,\n          prefixCls: prefixCls,\n          iconCls: \".\".concat(iconPrefixCls),\n          antCls: \".\".concat(rootPrefixCls),\n          calc: calc,\n          // @ts-ignore\n          max: max,\n          // @ts-ignore\n          min: min\n        }, cssVar ? defaultComponentToken : componentToken);\n        var styleInterpolation = styleFn(mergedToken, {\n          hashId: hashId,\n          prefixCls: prefixCls,\n          rootPrefixCls: rootPrefixCls,\n          iconPrefixCls: iconPrefixCls\n        });\n        flush(component, componentToken);\n        var commonStyle = typeof getCommonStyle === 'function' ? getCommonStyle(mergedToken, prefixCls, rootCls, options.resetFont) : null;\n        return [options.resetStyle === false ? null : commonStyle, styleInterpolation];\n      });\n      return [wrapSSR, hashId];\n    };\n  }\n  function genSubStyleComponent(componentName, styleFn, getDefaultToken) {\n    var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n    var useStyle = genComponentStyleHook(componentName, styleFn, getDefaultToken, _objectSpread({\n      resetStyle: false,\n      // Sub Style should default after root one\n      order: -998\n    }, options));\n    var StyledComponent = function StyledComponent(_ref2) {\n      var prefixCls = _ref2.prefixCls,\n        _ref2$rootCls = _ref2.rootCls,\n        rootCls = _ref2$rootCls === void 0 ? prefixCls : _ref2$rootCls;\n      useStyle(prefixCls, rootCls);\n      return null;\n    };\n    if (process.env.NODE_ENV !== 'production') {\n      StyledComponent.displayName = \"SubStyle_\".concat(String(Array.isArray(componentName) ? componentName.join('.') : componentName));\n    }\n    return StyledComponent;\n  }\n  return {\n    genStyleHooks: genStyleHooks,\n    genSubStyleComponent: genSubStyleComponent,\n    genComponentStyleHook: genComponentStyleHook\n  };\n}\nexport default genStyleUtils;","\"use client\";\n\nimport { unit } from '@ant-design/cssinjs';\nexport const textEllipsis = {\n  overflow: 'hidden',\n  whiteSpace: 'nowrap',\n  textOverflow: 'ellipsis'\n};\nexport const resetComponent = function (token) {\n  let needInheritFontFamily = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return {\n    boxSizing: 'border-box',\n    margin: 0,\n    padding: 0,\n    color: token.colorText,\n    fontSize: token.fontSize,\n    // font-variant: @font-variant-base;\n    lineHeight: token.lineHeight,\n    listStyle: 'none',\n    // font-feature-settings: @font-feature-settings-base;\n    fontFamily: needInheritFontFamily ? 'inherit' : token.fontFamily\n  };\n};\nexport const resetIcon = () => ({\n  display: 'inline-flex',\n  alignItems: 'center',\n  color: 'inherit',\n  fontStyle: 'normal',\n  lineHeight: 0,\n  textAlign: 'center',\n  textTransform: 'none',\n  // for SVG icon, see https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n  verticalAlign: '-0.125em',\n  textRendering: 'optimizeLegibility',\n  '-webkit-font-smoothing': 'antialiased',\n  '-moz-osx-font-smoothing': 'grayscale',\n  '> *': {\n    lineHeight: 1\n  },\n  svg: {\n    display: 'inline-block'\n  }\n});\nexport const clearFix = () => ({\n  // https://github.com/ant-design/ant-design/issues/21301#issuecomment-583955229\n  '&::before': {\n    display: 'table',\n    content: '\"\"'\n  },\n  '&::after': {\n    // https://github.com/ant-design/ant-design/issues/21864\n    display: 'table',\n    clear: 'both',\n    content: '\"\"'\n  }\n});\nexport const genLinkStyle = token => ({\n  a: {\n    color: token.colorLink,\n    textDecoration: token.linkDecoration,\n    backgroundColor: 'transparent',\n    // remove the gray background on active links in IE 10.\n    outline: 'none',\n    cursor: 'pointer',\n    transition: `color ${token.motionDurationSlow}`,\n    '-webkit-text-decoration-skip': 'objects',\n    // remove gaps in links underline in iOS 8+ and Safari 8+.\n    '&:hover': {\n      color: token.colorLinkHover\n    },\n    '&:active': {\n      color: token.colorLinkActive\n    },\n    '&:active, &:hover': {\n      textDecoration: token.linkHoverDecoration,\n      outline: 0\n    },\n    // https://github.com/ant-design/ant-design/issues/22503\n    '&:focus': {\n      textDecoration: token.linkFocusDecoration,\n      outline: 0\n    },\n    '&[disabled]': {\n      color: token.colorTextDisabled,\n      cursor: 'not-allowed'\n    }\n  }\n});\nexport const genCommonStyle = (token, componentPrefixCls, rootCls, resetFont) => {\n  const prefixSelector = `[class^=\"${componentPrefixCls}\"], [class*=\" ${componentPrefixCls}\"]`;\n  const rootPrefixSelector = rootCls ? `.${rootCls}` : prefixSelector;\n  const resetStyle = {\n    boxSizing: 'border-box',\n    '&::before, &::after': {\n      boxSizing: 'border-box'\n    }\n  };\n  let resetFontStyle = {};\n  if (resetFont !== false) {\n    resetFontStyle = {\n      fontFamily: token.fontFamily,\n      fontSize: token.fontSize\n    };\n  }\n  return {\n    [rootPrefixSelector]: Object.assign(Object.assign(Object.assign({}, resetFontStyle), resetStyle), {\n      [prefixSelector]: resetStyle\n    })\n  };\n};\nexport const genFocusOutline = (token, offset) => ({\n  outline: `${unit(token.lineWidthFocus)} solid ${token.colorPrimaryBorder}`,\n  outlineOffset: offset !== null && offset !== void 0 ? offset : 1,\n  transition: 'outline-offset 0s, outline 0s'\n});\nexport const genFocusStyle = (token, offset) => ({\n  '&:focus-visible': Object.assign({}, genFocusOutline(token, offset))\n});\nexport const genIconStyle = iconPrefixCls => ({\n  [`.${iconPrefixCls}`]: Object.assign(Object.assign({}, resetIcon()), {\n    [`.${iconPrefixCls} .${iconPrefixCls}-icon`]: {\n      display: 'block'\n    }\n  })\n});\nexport const operationUnit = token => Object.assign(Object.assign({\n  // FIXME: This use link but is a operation unit. Seems should be a colorPrimary.\n  // And Typography use this to generate link style which should not do this.\n  color: token.colorLink,\n  textDecoration: token.linkDecoration,\n  outline: 'none',\n  cursor: 'pointer',\n  transition: `all ${token.motionDurationSlow}`,\n  border: 0,\n  padding: 0,\n  background: 'none',\n  userSelect: 'none'\n}, genFocusStyle(token)), {\n  '&:focus, &:hover': {\n    color: token.colorLinkHover\n  },\n  '&:active': {\n    color: token.colorLinkActive\n  }\n});","export const defaultPresetColors = {\n  blue: '#1677FF',\n  purple: '#722ED1',\n  cyan: '#13C2C2',\n  green: '#52C41A',\n  magenta: '#EB2F96',\n  /**\n   * @deprecated Use magenta instead\n   */\n  pink: '#EB2F96',\n  red: '#F5222D',\n  orange: '#FA8C16',\n  yellow: '#FADB14',\n  volcano: '#FA541C',\n  geekblue: '#2F54EB',\n  gold: '#FAAD14',\n  lime: '#A0D911'\n};\nconst seedToken = Object.assign(Object.assign({}, defaultPresetColors), {\n  // Color\n  colorPrimary: '#1677ff',\n  colorSuccess: '#52c41a',\n  colorWarning: '#faad14',\n  colorError: '#ff4d4f',\n  colorInfo: '#1677ff',\n  colorLink: '',\n  colorTextBase: '',\n  colorBgBase: '',\n  // Font\n  fontFamily: `-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,\n  fontFamilyCode: `'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`,\n  fontSize: 14,\n  // Line\n  lineWidth: 1,\n  lineType: 'solid',\n  // Motion\n  motionUnit: 0.1,\n  motionBase: 0,\n  motionEaseOutCirc: 'cubic-bezier(0.08, 0.82, 0.17, 1)',\n  motionEaseInOutCirc: 'cubic-bezier(0.78, 0.14, 0.15, 0.86)',\n  motionEaseOut: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n  motionEaseInOut: 'cubic-bezier(0.645, 0.045, 0.355, 1)',\n  motionEaseOutBack: 'cubic-bezier(0.12, 0.4, 0.29, 1.46)',\n  motionEaseInBack: 'cubic-bezier(0.71, -0.46, 0.88, 0.6)',\n  motionEaseInQuint: 'cubic-bezier(0.755, 0.05, 0.855, 0.06)',\n  motionEaseOutQuint: 'cubic-bezier(0.23, 1, 0.32, 1)',\n  // Radius\n  borderRadius: 6,\n  // Size\n  sizeUnit: 4,\n  sizeStep: 4,\n  sizePopupArrow: 16,\n  // Control Base\n  controlHeight: 32,\n  // zIndex\n  zIndexBase: 0,\n  zIndexPopupBase: 1000,\n  // Image\n  opacityImage: 1,\n  // Wireframe\n  wireframe: false,\n  // Motion\n  motion: true\n});\nexport default seedToken;","import React from 'react';\nimport defaultSeedToken from './themes/seed';\nexport { default as defaultTheme } from './themes/default/theme';\n// ================================ Context =================================\n// To ensure snapshot stable. We disable hashed in test env.\nexport const defaultConfig = {\n  token: defaultSeedToken,\n  override: {\n    override: defaultSeedToken\n  },\n  hashed: true\n};\nexport const DesignTokenContext = /*#__PURE__*/React.createContext(defaultConfig);","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5)      -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5)        -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%)     -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5)         -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%)   -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n  const match = str\n  // Remove str before `(`\n  .replace(/^[^(]*\\((.*)/, '$1')\n  // Remove str after `)`\n  .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n  const numList = match.map(item => parseFloat(item));\n  for (let i = 0; i < 3; i += 1) {\n    numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n  }\n\n  // For alpha. 50% should be 0.5\n  if (match[3]) {\n    numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n  } else {\n    // By default, alpha is 1\n    numList[3] = 1;\n  }\n  return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n  const mergedMax = max || 255;\n  if (value > mergedMax) {\n    return mergedMax;\n  }\n  if (value < 0) {\n    return 0;\n  }\n  return value;\n}\nexport class FastColor {\n  constructor(input) {\n    /**\n     * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n     */\n    _defineProperty(this, \"isValid\", true);\n    /**\n     * Red, R in RGB\n     */\n    _defineProperty(this, \"r\", 0);\n    /**\n     * Green, G in RGB\n     */\n    _defineProperty(this, \"g\", 0);\n    /**\n     * Blue, B in RGB\n     */\n    _defineProperty(this, \"b\", 0);\n    /**\n     * Alpha/Opacity, A in RGBA/HSLA\n     */\n    _defineProperty(this, \"a\", 1);\n    // HSV privates\n    _defineProperty(this, \"_h\", void 0);\n    _defineProperty(this, \"_s\", void 0);\n    _defineProperty(this, \"_l\", void 0);\n    _defineProperty(this, \"_v\", void 0);\n    // intermediate variables to calculate HSL/HSV\n    _defineProperty(this, \"_max\", void 0);\n    _defineProperty(this, \"_min\", void 0);\n    _defineProperty(this, \"_brightness\", void 0);\n    /**\n     * Always check 3 char in the object to determine the format.\n     * We not use function in check to save bundle size.\n     * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n     */\n    function matchFormat(str) {\n      return str[0] in input && str[1] in input && str[2] in input;\n    }\n    if (!input) {\n      // Do nothing since already initialized\n    } else if (typeof input === 'string') {\n      const trimStr = input.trim();\n      function matchPrefix(prefix) {\n        return trimStr.startsWith(prefix);\n      }\n      if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n        this.fromHexString(trimStr);\n      } else if (matchPrefix('rgb')) {\n        this.fromRgbString(trimStr);\n      } else if (matchPrefix('hsl')) {\n        this.fromHslString(trimStr);\n      } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n        this.fromHsvString(trimStr);\n      }\n    } else if (input instanceof FastColor) {\n      this.r = input.r;\n      this.g = input.g;\n      this.b = input.b;\n      this.a = input.a;\n      this._h = input._h;\n      this._s = input._s;\n      this._l = input._l;\n      this._v = input._v;\n    } else if (matchFormat('rgb')) {\n      this.r = limitRange(input.r);\n      this.g = limitRange(input.g);\n      this.b = limitRange(input.b);\n      this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n    } else if (matchFormat('hsl')) {\n      this.fromHsl(input);\n    } else if (matchFormat('hsv')) {\n      this.fromHsv(input);\n    } else {\n      throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n    }\n  }\n\n  // ======================= Setter =======================\n\n  setR(value) {\n    return this._sc('r', value);\n  }\n  setG(value) {\n    return this._sc('g', value);\n  }\n  setB(value) {\n    return this._sc('b', value);\n  }\n  setA(value) {\n    return this._sc('a', value, 1);\n  }\n  setHue(value) {\n    const hsv = this.toHsv();\n    hsv.h = value;\n    return this._c(hsv);\n  }\n\n  // ======================= Getter =======================\n  /**\n   * Returns the perceived luminance of a color, from 0-1.\n   * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n   */\n  getLuminance() {\n    function adjustGamma(raw) {\n      const val = raw / 255;\n      return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n    }\n    const R = adjustGamma(this.r);\n    const G = adjustGamma(this.g);\n    const B = adjustGamma(this.b);\n    return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n  }\n  getHue() {\n    if (typeof this._h === 'undefined') {\n      const delta = this.getMax() - this.getMin();\n      if (delta === 0) {\n        this._h = 0;\n      } else {\n        this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n      }\n    }\n    return this._h;\n  }\n  getSaturation() {\n    if (typeof this._s === 'undefined') {\n      const delta = this.getMax() - this.getMin();\n      if (delta === 0) {\n        this._s = 0;\n      } else {\n        this._s = delta / this.getMax();\n      }\n    }\n    return this._s;\n  }\n  getLightness() {\n    if (typeof this._l === 'undefined') {\n      this._l = (this.getMax() + this.getMin()) / 510;\n    }\n    return this._l;\n  }\n  getValue() {\n    if (typeof this._v === 'undefined') {\n      this._v = this.getMax() / 255;\n    }\n    return this._v;\n  }\n\n  /**\n   * Returns the perceived brightness of the color, from 0-255.\n   * Note: this is not the b of HSB\n   * @see http://www.w3.org/TR/AERT#color-contrast\n   */\n  getBrightness() {\n    if (typeof this._brightness === 'undefined') {\n      this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n    }\n    return this._brightness;\n  }\n\n  // ======================== Func ========================\n\n  darken(amount = 10) {\n    const h = this.getHue();\n    const s = this.getSaturation();\n    let l = this.getLightness() - amount / 100;\n    if (l < 0) {\n      l = 0;\n    }\n    return this._c({\n      h,\n      s,\n      l,\n      a: this.a\n    });\n  }\n  lighten(amount = 10) {\n    const h = this.getHue();\n    const s = this.getSaturation();\n    let l = this.getLightness() + amount / 100;\n    if (l > 1) {\n      l = 1;\n    }\n    return this._c({\n      h,\n      s,\n      l,\n      a: this.a\n    });\n  }\n\n  /**\n   * Mix the current color a given amount with another color, from 0 to 100.\n   * 0 means no mixing (return current color).\n   */\n  mix(input, amount = 50) {\n    const color = this._c(input);\n    const p = amount / 100;\n    const calc = key => (color[key] - this[key]) * p + this[key];\n    const rgba = {\n      r: round(calc('r')),\n      g: round(calc('g')),\n      b: round(calc('b')),\n      a: round(calc('a') * 100) / 100\n    };\n    return this._c(rgba);\n  }\n\n  /**\n   * Mix the color with pure white, from 0 to 100.\n   * Providing 0 will do nothing, providing 100 will always return white.\n   */\n  tint(amount = 10) {\n    return this.mix({\n      r: 255,\n      g: 255,\n      b: 255,\n      a: 1\n    }, amount);\n  }\n\n  /**\n   * Mix the color with pure black, from 0 to 100.\n   * Providing 0 will do nothing, providing 100 will always return black.\n   */\n  shade(amount = 10) {\n    return this.mix({\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 1\n    }, amount);\n  }\n  onBackground(background) {\n    const bg = this._c(background);\n    const alpha = this.a + bg.a * (1 - this.a);\n    const calc = key => {\n      return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n    };\n    return this._c({\n      r: calc('r'),\n      g: calc('g'),\n      b: calc('b'),\n      a: alpha\n    });\n  }\n\n  // ======================= Status =======================\n  isDark() {\n    return this.getBrightness() < 128;\n  }\n  isLight() {\n    return this.getBrightness() >= 128;\n  }\n\n  // ======================== MISC ========================\n  equals(other) {\n    return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n  }\n  clone() {\n    return this._c(this);\n  }\n\n  // ======================= Format =======================\n  toHexString() {\n    let hex = '#';\n    const rHex = (this.r || 0).toString(16);\n    hex += rHex.length === 2 ? rHex : '0' + rHex;\n    const gHex = (this.g || 0).toString(16);\n    hex += gHex.length === 2 ? gHex : '0' + gHex;\n    const bHex = (this.b || 0).toString(16);\n    hex += bHex.length === 2 ? bHex : '0' + bHex;\n    if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n      const aHex = round(this.a * 255).toString(16);\n      hex += aHex.length === 2 ? aHex : '0' + aHex;\n    }\n    return hex;\n  }\n\n  /** CSS support color pattern */\n  toHsl() {\n    return {\n      h: this.getHue(),\n      s: this.getSaturation(),\n      l: this.getLightness(),\n      a: this.a\n    };\n  }\n\n  /** CSS support color pattern */\n  toHslString() {\n    const h = this.getHue();\n    const s = round(this.getSaturation() * 100);\n    const l = round(this.getLightness() * 100);\n    return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n  }\n\n  /** Same as toHsb */\n  toHsv() {\n    return {\n      h: this.getHue(),\n      s: this.getSaturation(),\n      v: this.getValue(),\n      a: this.a\n    };\n  }\n  toRgb() {\n    return {\n      r: this.r,\n      g: this.g,\n      b: this.b,\n      a: this.a\n    };\n  }\n  toRgbString() {\n    return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n  }\n  toString() {\n    return this.toRgbString();\n  }\n\n  // ====================== Privates ======================\n  /** Return a new FastColor object with one channel changed */\n  _sc(rgb, value, max) {\n    const clone = this.clone();\n    clone[rgb] = limitRange(value, max);\n    return clone;\n  }\n  _c(input) {\n    return new this.constructor(input);\n  }\n  getMax() {\n    if (typeof this._max === 'undefined') {\n      this._max = Math.max(this.r, this.g, this.b);\n    }\n    return this._max;\n  }\n  getMin() {\n    if (typeof this._min === 'undefined') {\n      this._min = Math.min(this.r, this.g, this.b);\n    }\n    return this._min;\n  }\n  fromHexString(trimStr) {\n    const withoutPrefix = trimStr.replace('#', '');\n    function connectNum(index1, index2) {\n      return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n    }\n    if (withoutPrefix.length < 6) {\n      // #rgb or #rgba\n      this.r = connectNum(0);\n      this.g = connectNum(1);\n      this.b = connectNum(2);\n      this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n    } else {\n      // #rrggbb or #rrggbbaa\n      this.r = connectNum(0, 1);\n      this.g = connectNum(2, 3);\n      this.b = connectNum(4, 5);\n      this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n    }\n  }\n  fromHsl({\n    h,\n    s,\n    l,\n    a\n  }) {\n    this._h = h % 360;\n    this._s = s;\n    this._l = l;\n    this.a = typeof a === 'number' ? a : 1;\n    if (s <= 0) {\n      const rgb = round(l * 255);\n      this.r = rgb;\n      this.g = rgb;\n      this.b = rgb;\n    }\n    let r = 0,\n      g = 0,\n      b = 0;\n    const huePrime = h / 60;\n    const chroma = (1 - Math.abs(2 * l - 1)) * s;\n    const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n    if (huePrime >= 0 && huePrime < 1) {\n      r = chroma;\n      g = secondComponent;\n    } else if (huePrime >= 1 && huePrime < 2) {\n      r = secondComponent;\n      g = chroma;\n    } else if (huePrime >= 2 && huePrime < 3) {\n      g = chroma;\n      b = secondComponent;\n    } else if (huePrime >= 3 && huePrime < 4) {\n      g = secondComponent;\n      b = chroma;\n    } else if (huePrime >= 4 && huePrime < 5) {\n      r = secondComponent;\n      b = chroma;\n    } else if (huePrime >= 5 && huePrime < 6) {\n      r = chroma;\n      b = secondComponent;\n    }\n    const lightnessModification = l - chroma / 2;\n    this.r = round((r + lightnessModification) * 255);\n    this.g = round((g + lightnessModification) * 255);\n    this.b = round((b + lightnessModification) * 255);\n  }\n  fromHsv({\n    h,\n    s,\n    v,\n    a\n  }) {\n    this._h = h % 360;\n    this._s = s;\n    this._v = v;\n    this.a = typeof a === 'number' ? a : 1;\n    const vv = round(v * 255);\n    this.r = vv;\n    this.g = vv;\n    this.b = vv;\n    if (s <= 0) {\n      return;\n    }\n    const hh = h / 60;\n    const i = Math.floor(hh);\n    const ff = hh - i;\n    const p = round(v * (1.0 - s) * 255);\n    const q = round(v * (1.0 - s * ff) * 255);\n    const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n    switch (i) {\n      case 0:\n        this.g = t;\n        this.b = p;\n        break;\n      case 1:\n        this.r = q;\n        this.b = p;\n        break;\n      case 2:\n        this.r = p;\n        this.b = t;\n        break;\n      case 3:\n        this.r = p;\n        this.g = q;\n        break;\n      case 4:\n        this.r = t;\n        this.g = p;\n        break;\n      case 5:\n      default:\n        this.g = p;\n        this.b = q;\n        break;\n    }\n  }\n  fromHsvString(trimStr) {\n    const cells = splitColorStr(trimStr, parseHSVorHSL);\n    this.fromHsv({\n      h: cells[0],\n      s: cells[1],\n      v: cells[2],\n      a: cells[3]\n    });\n  }\n  fromHslString(trimStr) {\n    const cells = splitColorStr(trimStr, parseHSVorHSL);\n    this.fromHsl({\n      h: cells[0],\n      s: cells[1],\n      l: cells[2],\n      a: cells[3]\n    });\n  }\n  fromRgbString(trimStr) {\n    const cells = splitColorStr(trimStr, (num, txt) =>\n    // Convert percentage to number. e.g. 50% -> 128\n    txt.includes('%') ? round(num / 100 * 255) : num);\n    this.r = cells[0];\n    this.g = cells[1];\n    this.b = cells[2];\n    this.a = cells[3];\n  }\n}","import { FastColor } from '@ant-design/fast-color';\nvar hueStep = 2; // 色相阶梯\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nvar lightColorCount = 5; // 浅色数量,主色上\nvar darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nvar darkColorMap = [{\n  index: 7,\n  amount: 15\n}, {\n  index: 6,\n  amount: 25\n}, {\n  index: 5,\n  amount: 30\n}, {\n  index: 5,\n  amount: 45\n}, {\n  index: 5,\n  amount: 65\n}, {\n  index: 5,\n  amount: 85\n}, {\n  index: 4,\n  amount: 90\n}, {\n  index: 3,\n  amount: 95\n}, {\n  index: 2,\n  amount: 97\n}, {\n  index: 1,\n  amount: 98\n}];\nfunction getHue(hsv, i, light) {\n  var hue;\n  // 根据色相不同,色相转向不同\n  if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n    hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n  } else {\n    hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n  }\n  if (hue < 0) {\n    hue += 360;\n  } else if (hue >= 360) {\n    hue -= 360;\n  }\n  return hue;\n}\nfunction getSaturation(hsv, i, light) {\n  // grey color don't change saturation\n  if (hsv.h === 0 && hsv.s === 0) {\n    return hsv.s;\n  }\n  var saturation;\n  if (light) {\n    saturation = hsv.s - saturationStep * i;\n  } else if (i === darkColorCount) {\n    saturation = hsv.s + saturationStep;\n  } else {\n    saturation = hsv.s + saturationStep2 * i;\n  }\n  // 边界值修正\n  if (saturation > 1) {\n    saturation = 1;\n  }\n  // 第一格的 s 限制在 0.06-0.1 之间\n  if (light && i === lightColorCount && saturation > 0.1) {\n    saturation = 0.1;\n  }\n  if (saturation < 0.06) {\n    saturation = 0.06;\n  }\n  return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n  var value;\n  if (light) {\n    value = hsv.v + brightnessStep1 * i;\n  } else {\n    value = hsv.v - brightnessStep2 * i;\n  }\n  // Clamp value between 0 and 1\n  value = Math.max(0, Math.min(1, value));\n  return Math.round(value * 100) / 100;\n}\nexport default function generate(color) {\n  var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var patterns = [];\n  var pColor = new FastColor(color);\n  var hsv = pColor.toHsv();\n  for (var i = lightColorCount; i > 0; i -= 1) {\n    var c = new FastColor({\n      h: getHue(hsv, i, true),\n      s: getSaturation(hsv, i, true),\n      v: getValue(hsv, i, true)\n    });\n    patterns.push(c);\n  }\n  patterns.push(pColor);\n  for (var _i = 1; _i <= darkColorCount; _i += 1) {\n    var _c = new FastColor({\n      h: getHue(hsv, _i),\n      s: getSaturation(hsv, _i),\n      v: getValue(hsv, _i)\n    });\n    patterns.push(_c);\n  }\n\n  // dark theme patterns\n  if (opts.theme === 'dark') {\n    return darkColorMap.map(function (_ref) {\n      var index = _ref.index,\n        amount = _ref.amount;\n      return new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString();\n    });\n  }\n  return patterns.map(function (c) {\n    return c.toHexString();\n  });\n}","// Generated by script. Do NOT modify!\n\nexport var presetPrimaryColors = {\n  \"red\": \"#F5222D\",\n  \"volcano\": \"#FA541C\",\n  \"orange\": \"#FA8C16\",\n  \"gold\": \"#FAAD14\",\n  \"yellow\": \"#FADB14\",\n  \"lime\": \"#A0D911\",\n  \"green\": \"#52C41A\",\n  \"cyan\": \"#13C2C2\",\n  \"blue\": \"#1677FF\",\n  \"geekblue\": \"#2F54EB\",\n  \"purple\": \"#722ED1\",\n  \"magenta\": \"#EB2F96\",\n  \"grey\": \"#666666\"\n};\nexport var red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport var volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport var orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport var gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport var yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport var lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport var green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport var cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport var blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport var geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport var purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport var magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport var grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport var gray = grey;\nexport var presetPalettes = {\n  red: red,\n  volcano: volcano,\n  orange: orange,\n  gold: gold,\n  yellow: yellow,\n  lime: lime,\n  green: green,\n  cyan: cyan,\n  blue: blue,\n  geekblue: geekblue,\n  purple: purple,\n  magenta: magenta,\n  grey: grey\n};\nexport var redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport var volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport var orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport var goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport var yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport var limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport var greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport var cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport var blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport var geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport var purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport var magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport var greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport var presetDarkPalettes = {\n  red: redDark,\n  volcano: volcanoDark,\n  orange: orangeDark,\n  gold: goldDark,\n  yellow: yellowDark,\n  lime: limeDark,\n  green: greenDark,\n  cyan: cyanDark,\n  blue: blueDark,\n  geekblue: geekblueDark,\n  purple: purpleDark,\n  magenta: magentaDark,\n  grey: greyDark\n};","const genRadius = radiusBase => {\n  let radiusLG = radiusBase;\n  let radiusSM = radiusBase;\n  let radiusXS = radiusBase;\n  let radiusOuter = radiusBase;\n  // radiusLG\n  if (radiusBase < 6 && radiusBase >= 5) {\n    radiusLG = radiusBase + 1;\n  } else if (radiusBase < 16 && radiusBase >= 6) {\n    radiusLG = radiusBase + 2;\n  } else if (radiusBase >= 16) {\n    radiusLG = 16;\n  }\n  // radiusSM\n  if (radiusBase < 7 && radiusBase >= 5) {\n    radiusSM = 4;\n  } else if (radiusBase < 8 && radiusBase >= 7) {\n    radiusSM = 5;\n  } else if (radiusBase < 14 && radiusBase >= 8) {\n    radiusSM = 6;\n  } else if (radiusBase < 16 && radiusBase >= 14) {\n    radiusSM = 7;\n  } else if (radiusBase >= 16) {\n    radiusSM = 8;\n  }\n  // radiusXS\n  if (radiusBase < 6 && radiusBase >= 2) {\n    radiusXS = 1;\n  } else if (radiusBase >= 6) {\n    radiusXS = 2;\n  }\n  // radiusOuter\n  if (radiusBase > 4 && radiusBase < 8) {\n    radiusOuter = 4;\n  } else if (radiusBase >= 8) {\n    radiusOuter = 6;\n  }\n  return {\n    borderRadius: radiusBase,\n    borderRadiusXS: radiusXS,\n    borderRadiusSM: radiusSM,\n    borderRadiusLG: radiusLG,\n    borderRadiusOuter: radiusOuter\n  };\n};\nexport default genRadius;","const genControlHeight = token => {\n  const {\n    controlHeight\n  } = token;\n  return {\n    controlHeightSM: controlHeight * 0.75,\n    controlHeightXS: controlHeight * 0.5,\n    controlHeightLG: controlHeight * 1.25\n  };\n};\nexport default genControlHeight;","export function getLineHeight(fontSize) {\n  return (fontSize + 8) / fontSize;\n}\n// https://zhuanlan.zhihu.com/p/32746810\nexport default function getFontSizes(base) {\n  const fontSizes = new Array(10).fill(null).map((_, index) => {\n    const i = index - 1;\n    const baseSize = base * Math.pow(Math.E, i / 5);\n    const intSize = index > 1 ? Math.floor(baseSize) : Math.ceil(baseSize);\n    // Convert to even\n    return Math.floor(intSize / 2) * 2;\n  });\n  fontSizes[1] = base;\n  return fontSizes.map(size => ({\n    size,\n    lineHeight: getLineHeight(size)\n  }));\n}","import genFontSizes from './genFontSizes';\nconst genFontMapToken = fontSize => {\n  const fontSizePairs = genFontSizes(fontSize);\n  const fontSizes = fontSizePairs.map(pair => pair.size);\n  const lineHeights = fontSizePairs.map(pair => pair.lineHeight);\n  const fontSizeMD = fontSizes[1];\n  const fontSizeSM = fontSizes[0];\n  const fontSizeLG = fontSizes[2];\n  const lineHeight = lineHeights[1];\n  const lineHeightSM = lineHeights[0];\n  const lineHeightLG = lineHeights[2];\n  return {\n    fontSizeSM,\n    fontSize: fontSizeMD,\n    fontSizeLG,\n    fontSizeXL: fontSizes[3],\n    fontSizeHeading1: fontSizes[6],\n    fontSizeHeading2: fontSizes[5],\n    fontSizeHeading3: fontSizes[4],\n    fontSizeHeading4: fontSizes[3],\n    fontSizeHeading5: fontSizes[2],\n    lineHeight,\n    lineHeightLG,\n    lineHeightSM,\n    fontHeight: Math.round(lineHeight * fontSizeMD),\n    fontHeightLG: Math.round(lineHeightLG * fontSizeLG),\n    fontHeightSM: Math.round(lineHeightSM * fontSizeSM),\n    lineHeightHeading1: lineHeights[6],\n    lineHeightHeading2: lineHeights[5],\n    lineHeightHeading3: lineHeights[4],\n    lineHeightHeading4: lineHeights[3],\n    lineHeightHeading5: lineHeights[2]\n  };\n};\nexport default genFontMapToken;","import { FastColor } from '@ant-design/fast-color';\nexport const getAlphaColor = (baseColor, alpha) => new FastColor(baseColor).setA(alpha).toRgbString();\nexport const getSolidColor = (baseColor, brightness) => {\n  const instance = new FastColor(baseColor);\n  return instance.darken(brightness).toHexString();\n};","import { generate } from '@ant-design/colors';\nimport { getAlphaColor, getSolidColor } from './colorAlgorithm';\nexport const generateColorPalettes = baseColor => {\n  const colors = generate(baseColor);\n  return {\n    1: colors[0],\n    2: colors[1],\n    3: colors[2],\n    4: colors[3],\n    5: colors[4],\n    6: colors[5],\n    7: colors[6],\n    8: colors[4],\n    9: colors[5],\n    10: colors[6]\n    // 8: colors[7],\n    // 9: colors[8],\n    // 10: colors[9],\n  };\n};\nexport const generateNeutralColorPalettes = (bgBaseColor, textBaseColor) => {\n  const colorBgBase = bgBaseColor || '#fff';\n  const colorTextBase = textBaseColor || '#000';\n  return {\n    colorBgBase,\n    colorTextBase,\n    colorText: getAlphaColor(colorTextBase, 0.88),\n    colorTextSecondary: getAlphaColor(colorTextBase, 0.65),\n    colorTextTertiary: getAlphaColor(colorTextBase, 0.45),\n    colorTextQuaternary: getAlphaColor(colorTextBase, 0.25),\n    colorFill: getAlphaColor(colorTextBase, 0.15),\n    colorFillSecondary: getAlphaColor(colorTextBase, 0.06),\n    colorFillTertiary: getAlphaColor(colorTextBase, 0.04),\n    colorFillQuaternary: getAlphaColor(colorTextBase, 0.02),\n    colorBgSolid: getAlphaColor(colorTextBase, 1),\n    colorBgSolidHover: getAlphaColor(colorTextBase, 0.75),\n    colorBgSolidActive: getAlphaColor(colorTextBase, 0.95),\n    colorBgLayout: getSolidColor(colorBgBase, 4),\n    colorBgContainer: getSolidColor(colorBgBase, 0),\n    colorBgElevated: getSolidColor(colorBgBase, 0),\n    colorBgSpotlight: getAlphaColor(colorTextBase, 0.85),\n    colorBgBlur: 'transparent',\n    colorBorder: getSolidColor(colorBgBase, 15),\n    colorBorderSecondary: getSolidColor(colorBgBase, 6)\n  };\n};","import { createTheme } from '@ant-design/cssinjs';\nimport defaultDerivative from './index';\nconst defaultTheme = createTheme(defaultDerivative);\nexport default defaultTheme;","import { generate, presetPalettes, presetPrimaryColors } from '@ant-design/colors';\nimport { defaultPresetColors } from '../seed';\nimport genColorMapToken from '../shared/genColorMapToken';\nimport genCommonMapToken from '../shared/genCommonMapToken';\nimport genControlHeight from '../shared/genControlHeight';\nimport genFontMapToken from '../shared/genFontMapToken';\nimport genSizeMapToken from '../shared/genSizeMapToken';\nimport { generateColorPalettes, generateNeutralColorPalettes } from './colors';\nexport default function derivative(token) {\n  // pink is deprecated name of magenta, keep this for backwards compatibility\n  presetPrimaryColors.pink = presetPrimaryColors.magenta;\n  presetPalettes.pink = presetPalettes.magenta;\n  const colorPalettes = Object.keys(defaultPresetColors).map(colorKey => {\n    const colors = token[colorKey] === presetPrimaryColors[colorKey] ? presetPalettes[colorKey] : generate(token[colorKey]);\n    return new Array(10).fill(1).reduce((prev, _, i) => {\n      prev[`${colorKey}-${i + 1}`] = colors[i];\n      prev[`${colorKey}${i + 1}`] = colors[i];\n      return prev;\n    }, {});\n  }).reduce((prev, cur) => {\n    // biome-ignore lint/style/noParameterAssign: it is a reduce\n    prev = Object.assign(Object.assign({}, prev), cur);\n    return prev;\n  }, {});\n  return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, token), colorPalettes), genColorMapToken(token, {\n    generateColorPalettes,\n    generateNeutralColorPalettes\n  })), genFontMapToken(token.fontSize)), genSizeMapToken(token)), genControlHeight(token)), genCommonMapToken(token));\n}","import { FastColor } from '@ant-design/fast-color';\nexport default function genColorMapToken(seed, _ref) {\n  let {\n    generateColorPalettes,\n    generateNeutralColorPalettes\n  } = _ref;\n  const {\n    colorSuccess: colorSuccessBase,\n    colorWarning: colorWarningBase,\n    colorError: colorErrorBase,\n    colorInfo: colorInfoBase,\n    colorPrimary: colorPrimaryBase,\n    colorBgBase,\n    colorTextBase\n  } = seed;\n  const primaryColors = generateColorPalettes(colorPrimaryBase);\n  const successColors = generateColorPalettes(colorSuccessBase);\n  const warningColors = generateColorPalettes(colorWarningBase);\n  const errorColors = generateColorPalettes(colorErrorBase);\n  const infoColors = generateColorPalettes(colorInfoBase);\n  const neutralColors = generateNeutralColorPalettes(colorBgBase, colorTextBase);\n  // Color Link\n  const colorLink = seed.colorLink || seed.colorInfo;\n  const linkColors = generateColorPalettes(colorLink);\n  const colorErrorBgFilledHover = new FastColor(errorColors[1]).mix(new FastColor(errorColors[3]), 50).toHexString();\n  return Object.assign(Object.assign({}, neutralColors), {\n    colorPrimaryBg: primaryColors[1],\n    colorPrimaryBgHover: primaryColors[2],\n    colorPrimaryBorder: primaryColors[3],\n    colorPrimaryBorderHover: primaryColors[4],\n    colorPrimaryHover: primaryColors[5],\n    colorPrimary: primaryColors[6],\n    colorPrimaryActive: primaryColors[7],\n    colorPrimaryTextHover: primaryColors[8],\n    colorPrimaryText: primaryColors[9],\n    colorPrimaryTextActive: primaryColors[10],\n    colorSuccessBg: successColors[1],\n    colorSuccessBgHover: successColors[2],\n    colorSuccessBorder: successColors[3],\n    colorSuccessBorderHover: successColors[4],\n    colorSuccessHover: successColors[4],\n    colorSuccess: successColors[6],\n    colorSuccessActive: successColors[7],\n    colorSuccessTextHover: successColors[8],\n    colorSuccessText: successColors[9],\n    colorSuccessTextActive: successColors[10],\n    colorErrorBg: errorColors[1],\n    colorErrorBgHover: errorColors[2],\n    colorErrorBgFilledHover,\n    colorErrorBgActive: errorColors[3],\n    colorErrorBorder: errorColors[3],\n    colorErrorBorderHover: errorColors[4],\n    colorErrorHover: errorColors[5],\n    colorError: errorColors[6],\n    colorErrorActive: errorColors[7],\n    colorErrorTextHover: errorColors[8],\n    colorErrorText: errorColors[9],\n    colorErrorTextActive: errorColors[10],\n    colorWarningBg: warningColors[1],\n    colorWarningBgHover: warningColors[2],\n    colorWarningBorder: warningColors[3],\n    colorWarningBorderHover: warningColors[4],\n    colorWarningHover: warningColors[4],\n    colorWarning: warningColors[6],\n    colorWarningActive: warningColors[7],\n    colorWarningTextHover: warningColors[8],\n    colorWarningText: warningColors[9],\n    colorWarningTextActive: warningColors[10],\n    colorInfoBg: infoColors[1],\n    colorInfoBgHover: infoColors[2],\n    colorInfoBorder: infoColors[3],\n    colorInfoBorderHover: infoColors[4],\n    colorInfoHover: infoColors[4],\n    colorInfo: infoColors[6],\n    colorInfoActive: infoColors[7],\n    colorInfoTextHover: infoColors[8],\n    colorInfoText: infoColors[9],\n    colorInfoTextActive: infoColors[10],\n    colorLinkHover: linkColors[4],\n    colorLink: linkColors[6],\n    colorLinkActive: linkColors[7],\n    colorBgMask: new FastColor('#000').setA(0.45).toRgbString(),\n    colorWhite: '#fff'\n  });\n}","export default function genSizeMapToken(token) {\n  const {\n    sizeUnit,\n    sizeStep\n  } = token;\n  return {\n    sizeXXL: sizeUnit * (sizeStep + 8),\n    // 48\n    sizeXL: sizeUnit * (sizeStep + 4),\n    // 32\n    sizeLG: sizeUnit * (sizeStep + 2),\n    // 24\n    sizeMD: sizeUnit * (sizeStep + 1),\n    // 20\n    sizeMS: sizeUnit * sizeStep,\n    // 16\n    size: sizeUnit * sizeStep,\n    // 16\n    sizeSM: sizeUnit * (sizeStep - 1),\n    // 12\n    sizeXS: sizeUnit * (sizeStep - 2),\n    // 8\n    sizeXXS: sizeUnit * (sizeStep - 3) // 4\n  };\n}","import genRadius from './genRadius';\nexport default function genCommonMapToken(token) {\n  const {\n    motionUnit,\n    motionBase,\n    borderRadius,\n    lineWidth\n  } = token;\n  return Object.assign({\n    // motion\n    motionDurationFast: `${(motionBase + motionUnit).toFixed(1)}s`,\n    motionDurationMid: `${(motionBase + motionUnit * 2).toFixed(1)}s`,\n    motionDurationSlow: `${(motionBase + motionUnit * 3).toFixed(1)}s`,\n    // line\n    lineWidthBold: lineWidth + 1\n  }, genRadius(borderRadius));\n}","import { FastColor } from '@ant-design/fast-color';\nfunction isStableColor(color) {\n  return color >= 0 && color <= 255;\n}\nfunction getAlphaColor(frontColor, backgroundColor) {\n  const {\n    r: fR,\n    g: fG,\n    b: fB,\n    a: originAlpha\n  } = new FastColor(frontColor).toRgb();\n  if (originAlpha < 1) {\n    return frontColor;\n  }\n  const {\n    r: bR,\n    g: bG,\n    b: bB\n  } = new FastColor(backgroundColor).toRgb();\n  for (let fA = 0.01; fA <= 1; fA += 0.01) {\n    const r = Math.round((fR - bR * (1 - fA)) / fA);\n    const g = Math.round((fG - bG * (1 - fA)) / fA);\n    const b = Math.round((fB - bB * (1 - fA)) / fA);\n    if (isStableColor(r) && isStableColor(g) && isStableColor(b)) {\n      return new FastColor({\n        r,\n        g,\n        b,\n        a: Math.round(fA * 100) / 100\n      }).toRgbString();\n    }\n  }\n  // fallback\n  /* istanbul ignore next */\n  return new FastColor({\n    r: fR,\n    g: fG,\n    b: fB,\n    a: 1\n  }).toRgbString();\n}\nexport default getAlphaColor;","var __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport { FastColor } from '@ant-design/fast-color';\nimport seedToken from '../themes/seed';\nimport getAlphaColor from './getAlphaColor';\n/**\n * Seed (designer) > Derivative (designer) > Alias (developer).\n *\n * Merge seed & derivative & override token and generate alias token for developer.\n */\nexport default function formatToken(derivativeToken) {\n  const {\n      override\n    } = derivativeToken,\n    restToken = __rest(derivativeToken, [\"override\"]);\n  const overrideTokens = Object.assign({}, override);\n  Object.keys(seedToken).forEach(token => {\n    delete overrideTokens[token];\n  });\n  const mergedToken = Object.assign(Object.assign({}, restToken), overrideTokens);\n  const screenXS = 480;\n  const screenSM = 576;\n  const screenMD = 768;\n  const screenLG = 992;\n  const screenXL = 1200;\n  const screenXXL = 1600;\n  // Motion\n  if (mergedToken.motion === false) {\n    const fastDuration = '0s';\n    mergedToken.motionDurationFast = fastDuration;\n    mergedToken.motionDurationMid = fastDuration;\n    mergedToken.motionDurationSlow = fastDuration;\n  }\n  // Generate alias token\n  const aliasToken = Object.assign(Object.assign(Object.assign({}, mergedToken), {\n    // ============== Background ============== //\n    colorFillContent: mergedToken.colorFillSecondary,\n    colorFillContentHover: mergedToken.colorFill,\n    colorFillAlter: mergedToken.colorFillQuaternary,\n    colorBgContainerDisabled: mergedToken.colorFillTertiary,\n    // ============== Split ============== //\n    colorBorderBg: mergedToken.colorBgContainer,\n    colorSplit: getAlphaColor(mergedToken.colorBorderSecondary, mergedToken.colorBgContainer),\n    // ============== Text ============== //\n    colorTextPlaceholder: mergedToken.colorTextQuaternary,\n    colorTextDisabled: mergedToken.colorTextQuaternary,\n    colorTextHeading: mergedToken.colorText,\n    colorTextLabel: mergedToken.colorTextSecondary,\n    colorTextDescription: mergedToken.colorTextTertiary,\n    colorTextLightSolid: mergedToken.colorWhite,\n    colorHighlight: mergedToken.colorError,\n    colorBgTextHover: mergedToken.colorFillSecondary,\n    colorBgTextActive: mergedToken.colorFill,\n    colorIcon: mergedToken.colorTextTertiary,\n    colorIconHover: mergedToken.colorText,\n    colorErrorOutline: getAlphaColor(mergedToken.colorErrorBg, mergedToken.colorBgContainer),\n    colorWarningOutline: getAlphaColor(mergedToken.colorWarningBg, mergedToken.colorBgContainer),\n    // Font\n    fontSizeIcon: mergedToken.fontSizeSM,\n    // Line\n    lineWidthFocus: mergedToken.lineWidth * 3,\n    // Control\n    lineWidth: mergedToken.lineWidth,\n    controlOutlineWidth: mergedToken.lineWidth * 2,\n    // Checkbox size and expand icon size\n    controlInteractiveSize: mergedToken.controlHeight / 2,\n    controlItemBgHover: mergedToken.colorFillTertiary,\n    controlItemBgActive: mergedToken.colorPrimaryBg,\n    controlItemBgActiveHover: mergedToken.colorPrimaryBgHover,\n    controlItemBgActiveDisabled: mergedToken.colorFill,\n    controlTmpOutline: mergedToken.colorFillQuaternary,\n    controlOutline: getAlphaColor(mergedToken.colorPrimaryBg, mergedToken.colorBgContainer),\n    lineType: mergedToken.lineType,\n    borderRadius: mergedToken.borderRadius,\n    borderRadiusXS: mergedToken.borderRadiusXS,\n    borderRadiusSM: mergedToken.borderRadiusSM,\n    borderRadiusLG: mergedToken.borderRadiusLG,\n    fontWeightStrong: 600,\n    opacityLoading: 0.65,\n    linkDecoration: 'none',\n    linkHoverDecoration: 'none',\n    linkFocusDecoration: 'none',\n    controlPaddingHorizontal: 12,\n    controlPaddingHorizontalSM: 8,\n    paddingXXS: mergedToken.sizeXXS,\n    paddingXS: mergedToken.sizeXS,\n    paddingSM: mergedToken.sizeSM,\n    padding: mergedToken.size,\n    paddingMD: mergedToken.sizeMD,\n    paddingLG: mergedToken.sizeLG,\n    paddingXL: mergedToken.sizeXL,\n    paddingContentHorizontalLG: mergedToken.sizeLG,\n    paddingContentVerticalLG: mergedToken.sizeMS,\n    paddingContentHorizontal: mergedToken.sizeMS,\n    paddingContentVertical: mergedToken.sizeSM,\n    paddingContentHorizontalSM: mergedToken.size,\n    paddingContentVerticalSM: mergedToken.sizeXS,\n    marginXXS: mergedToken.sizeXXS,\n    marginXS: mergedToken.sizeXS,\n    marginSM: mergedToken.sizeSM,\n    margin: mergedToken.size,\n    marginMD: mergedToken.sizeMD,\n    marginLG: mergedToken.sizeLG,\n    marginXL: mergedToken.sizeXL,\n    marginXXL: mergedToken.sizeXXL,\n    boxShadow: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowSecondary: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowTertiary: `\n      0 1px 2px 0 rgba(0, 0, 0, 0.03),\n      0 1px 6px -1px rgba(0, 0, 0, 0.02),\n      0 2px 4px 0 rgba(0, 0, 0, 0.02)\n    `,\n    screenXS,\n    screenXSMin: screenXS,\n    screenXSMax: screenSM - 1,\n    screenSM,\n    screenSMMin: screenSM,\n    screenSMMax: screenMD - 1,\n    screenMD,\n    screenMDMin: screenMD,\n    screenMDMax: screenLG - 1,\n    screenLG,\n    screenLGMin: screenLG,\n    screenLGMax: screenXL - 1,\n    screenXL,\n    screenXLMin: screenXL,\n    screenXLMax: screenXXL - 1,\n    screenXXL,\n    screenXXLMin: screenXXL,\n    boxShadowPopoverArrow: '2px 2px 5px rgba(0, 0, 0, 0.05)',\n    boxShadowCard: `\n      0 1px 2px -2px ${new FastColor('rgba(0, 0, 0, 0.16)').toRgbString()},\n      0 3px 6px 0 ${new FastColor('rgba(0, 0, 0, 0.12)').toRgbString()},\n      0 5px 12px 4px ${new FastColor('rgba(0, 0, 0, 0.09)').toRgbString()}\n    `,\n    boxShadowDrawerRight: `\n      -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n      -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n      -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerLeft: `\n      6px 0 16px 0 rgba(0, 0, 0, 0.08),\n      3px 0 6px -4px rgba(0, 0, 0, 0.12),\n      9px 0 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerUp: `\n      0 6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowDrawerDown: `\n      0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n      0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n      0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n    `,\n    boxShadowTabsOverflowLeft: 'inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowRight: 'inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowTop: 'inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)',\n    boxShadowTabsOverflowBottom: 'inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)'\n  }), overrideTokens);\n  return aliasToken;\n}","var __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React from 'react';\nimport { useCacheToken } from '@ant-design/cssinjs';\nimport version from '../version';\nimport { defaultTheme, DesignTokenContext } from './context';\nimport defaultSeedToken from './themes/seed';\nimport formatToken from './util/alias';\nexport const unitless = {\n  lineHeight: true,\n  lineHeightSM: true,\n  lineHeightLG: true,\n  lineHeightHeading1: true,\n  lineHeightHeading2: true,\n  lineHeightHeading3: true,\n  lineHeightHeading4: true,\n  lineHeightHeading5: true,\n  opacityLoading: true,\n  fontWeightStrong: true,\n  zIndexPopupBase: true,\n  zIndexBase: true,\n  opacityImage: true\n};\nexport const ignore = {\n  size: true,\n  sizeSM: true,\n  sizeLG: true,\n  sizeMD: true,\n  sizeXS: true,\n  sizeXXS: true,\n  sizeMS: true,\n  sizeXL: true,\n  sizeXXL: true,\n  sizeUnit: true,\n  sizeStep: true,\n  motionBase: true,\n  motionUnit: true\n};\nconst preserve = {\n  screenXS: true,\n  screenXSMin: true,\n  screenXSMax: true,\n  screenSM: true,\n  screenSMMin: true,\n  screenSMMax: true,\n  screenMD: true,\n  screenMDMin: true,\n  screenMDMax: true,\n  screenLG: true,\n  screenLGMin: true,\n  screenLGMax: true,\n  screenXL: true,\n  screenXLMin: true,\n  screenXLMax: true,\n  screenXXL: true,\n  screenXXLMin: true\n};\nexport const getComputedToken = (originToken, overrideToken, theme) => {\n  const derivativeToken = theme.getDerivativeToken(originToken);\n  const {\n      override\n    } = overrideToken,\n    components = __rest(overrideToken, [\"override\"]);\n  // Merge with override\n  let mergedDerivativeToken = Object.assign(Object.assign({}, derivativeToken), {\n    override\n  });\n  // Format if needed\n  mergedDerivativeToken = formatToken(mergedDerivativeToken);\n  if (components) {\n    Object.entries(components).forEach(_ref => {\n      let [key, value] = _ref;\n      const {\n          theme: componentTheme\n        } = value,\n        componentTokens = __rest(value, [\"theme\"]);\n      let mergedComponentToken = componentTokens;\n      if (componentTheme) {\n        mergedComponentToken = getComputedToken(Object.assign(Object.assign({}, mergedDerivativeToken), componentTokens), {\n          override: componentTokens\n        }, componentTheme);\n      }\n      mergedDerivativeToken[key] = mergedComponentToken;\n    });\n  }\n  return mergedDerivativeToken;\n};\n// ================================== Hook ==================================\nexport default function useToken() {\n  const {\n    token: rootDesignToken,\n    hashed,\n    theme,\n    override,\n    cssVar\n  } = React.useContext(DesignTokenContext);\n  const salt = `${version}-${hashed || ''}`;\n  const mergedTheme = theme || defaultTheme;\n  const [token, hashId, realToken] = useCacheToken(mergedTheme, [defaultSeedToken, rootDesignToken], {\n    salt,\n    override,\n    getComputedToken,\n    // formatToken will not be consumed after 1.15.0 with getComputedToken.\n    // But token will break if @ant-design/cssinjs is under 1.15.0 without it\n    formatToken,\n    cssVar: cssVar && {\n      prefix: cssVar.prefix,\n      key: cssVar.key,\n      unitless,\n      ignore,\n      preserve\n    }\n  });\n  return [mergedTheme, realToken, hashed ? hashId : '', token, cssVar];\n}","export default '5.23.3';","import { useContext } from 'react';\nimport { genStyleUtils } from '@ant-design/cssinjs-utils';\nimport { ConfigContext, defaultIconPrefixCls } from '../../config-provider/context';\nimport { genCommonStyle, genLinkStyle, genIconStyle } from '../../style';\nimport useLocalToken, { unitless } from '../useToken';\nexport const {\n  genStyleHooks,\n  genComponentStyleHook,\n  genSubStyleComponent\n} = genStyleUtils({\n  usePrefix: () => {\n    const {\n      getPrefixCls,\n      iconPrefixCls\n    } = useContext(ConfigContext);\n    const rootPrefixCls = getPrefixCls();\n    return {\n      rootPrefixCls,\n      iconPrefixCls\n    };\n  },\n  useToken: () => {\n    const [theme, realToken, hashId, token, cssVar] = useLocalToken();\n    return {\n      theme,\n      realToken,\n      hashId,\n      token,\n      cssVar\n    };\n  },\n  useCSP: () => {\n    const {\n      csp\n    } = useContext(ConfigContext);\n    return csp !== null && csp !== void 0 ? csp : {};\n  },\n  getResetStyles: (token, config) => {\n    var _a;\n    return [{\n      '&': genLinkStyle(token)\n    }, genIconStyle((_a = config === null || config === void 0 ? void 0 : config.prefix.iconPrefixCls) !== null && _a !== void 0 ? _a : defaultIconPrefixCls)];\n  },\n  getCommonStyle: genCommonStyle,\n  getCompUnitless: () => unitless\n});","import { genComponentStyleHook } from '../../theme/internal';\nconst genWaveStyle = token => {\n  const {\n    componentCls,\n    colorPrimary\n  } = token;\n  return {\n    [componentCls]: {\n      position: 'absolute',\n      background: 'transparent',\n      pointerEvents: 'none',\n      boxSizing: 'border-box',\n      color: `var(--wave-color, ${colorPrimary})`,\n      boxShadow: `0 0 0 0 currentcolor`,\n      opacity: 0.2,\n      // =================== Motion ===================\n      '&.wave-motion-appear': {\n        transition: [`box-shadow 0.4s ${token.motionEaseOutCirc}`, `opacity 2s ${token.motionEaseOutCirc}`].join(','),\n        '&-active': {\n          boxShadow: `0 0 0 6px currentcolor`,\n          opacity: 0\n        },\n        '&.wave-quick': {\n          transition: [`box-shadow ${token.motionDurationSlow} ${token.motionEaseInOut}`, `opacity ${token.motionDurationSlow} ${token.motionEaseInOut}`].join(',')\n        }\n      }\n    }\n  };\n};\nexport default genComponentStyleHook('Wave', token => [genWaveStyle(token)]);","var raf = function raf(callback) {\n  return +setTimeout(callback, 16);\n};\nvar caf = function caf(num) {\n  return clearTimeout(num);\n};\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n  raf = function raf(callback) {\n    return window.requestAnimationFrame(callback);\n  };\n  caf = function caf(handle) {\n    return window.cancelAnimationFrame(handle);\n  };\n}\nvar rafUUID = 0;\nvar rafIds = new Map();\nfunction cleanup(id) {\n  rafIds.delete(id);\n}\nvar wrapperRaf = function wrapperRaf(callback) {\n  var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  rafUUID += 1;\n  var id = rafUUID;\n  function callRef(leftTimes) {\n    if (leftTimes === 0) {\n      // Clean up\n      cleanup(id);\n\n      // Trigger\n      callback();\n    } else {\n      // Next raf\n      var realId = raf(function () {\n        callRef(leftTimes - 1);\n      });\n\n      // Bind real raf id\n      rafIds.set(id, realId);\n    }\n  }\n  callRef(times);\n  return id;\n};\nwrapperRaf.cancel = function (id) {\n  var realId = rafIds.get(id);\n  cleanup(id);\n  return caf(realId);\n};\nif (process.env.NODE_ENV !== 'production') {\n  wrapperRaf.ids = function () {\n    return rafIds;\n  };\n}\nexport default wrapperRaf;","import { defaultPrefixCls } from '../../config-provider';\nexport const TARGET_CLS = `${defaultPrefixCls}-wave-target`;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nexport function isDOM(node) {\n  // https://developer.mozilla.org/en-US/docs/Web/API/Element\n  // Since XULElement is also subclass of Element, we only need HTMLElement and SVGElement\n  return node instanceof HTMLElement || node instanceof SVGElement;\n}\n\n/**\n * Retrieves a DOM node via a ref, and does not invoke `findDOMNode`.\n */\nexport function getDOM(node) {\n  if (node && _typeof(node) === 'object' && isDOM(node.nativeElement)) {\n    return node.nativeElement;\n  }\n  if (isDOM(node)) {\n    return node;\n  }\n  return null;\n}\n\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\nexport default function findDOMNode(node) {\n  var domNode = getDOM(node);\n  if (domNode) {\n    return domNode;\n  }\n  if (node instanceof React.Component) {\n    var _ReactDOM$findDOMNode;\n    return (_ReactDOM$findDOMNode = ReactDOM.findDOMNode) === null || _ReactDOM$findDOMNode === void 0 ? void 0 : _ReactDOM$findDOMNode.call(ReactDOM, node);\n  }\n  return null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport var Context = /*#__PURE__*/React.createContext({});\nexport default function MotionProvider(_ref) {\n  var children = _ref.children,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(Context.Provider, {\n    value: props\n  }, children);\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n  _inherits(DomWrapper, _React$Component);\n  var _super = _createSuper(DomWrapper);\n  function DomWrapper() {\n    _classCallCheck(this, DomWrapper);\n    return _super.apply(this, arguments);\n  }\n  _createClass(DomWrapper, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return DomWrapper;\n}(React.Component);\nexport default DomWrapper;","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';\n/**\n * Used for disabled motion case.\n * Prepare stage will still work but start & active will be skipped.\n */\nexport var STEP_PREPARED = 'prepared';","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\";\n// ================= Transition =================\n// Event wrapper. Copy from react source code\nfunction makePrefixMap(styleProp, eventName) {\n  var prefixes = {};\n  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n  prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n  prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n  prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n  prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n  return prefixes;\n}\nexport function getVendorPrefixes(domSupport, win) {\n  var prefixes = {\n    animationend: makePrefixMap('Animation', 'AnimationEnd'),\n    transitionend: makePrefixMap('Transition', 'TransitionEnd')\n  };\n  if (domSupport) {\n    if (!('AnimationEvent' in win)) {\n      delete prefixes.animationend.animation;\n    }\n    if (!('TransitionEvent' in win)) {\n      delete prefixes.transitionend.transition;\n    }\n  }\n  return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\nif (canUseDOM()) {\n  var _document$createEleme = document.createElement('div');\n  style = _document$createEleme.style;\n}\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n  if (prefixedEventNames[eventName]) {\n    return prefixedEventNames[eventName];\n  }\n  var prefixMap = vendorPrefixes[eventName];\n  if (prefixMap) {\n    var stylePropList = Object.keys(prefixMap);\n    var len = stylePropList.length;\n    for (var i = 0; i < len; i += 1) {\n      var styleProp = stylePropList[i];\n      if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n        prefixedEventNames[eventName] = prefixMap[styleProp];\n        return prefixedEventNames[eventName];\n      }\n    }\n  }\n  return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n  if (!transitionName) return null;\n  if (_typeof(transitionName) === 'object') {\n    var type = transitionType.replace(/-\\w/g, function (match) {\n      return match[1].toUpperCase();\n    });\n    return transitionName[type];\n  }\n  return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","import canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { useEffect, useLayoutEffect } from 'react';\n\n// It's safe to use `useLayoutEffect` but the warning is annoying\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useState from \"rc-util/es/hooks/useState\";\nimport * as React from 'react';\nimport { STEP_ACTIVATED, STEP_ACTIVE, STEP_NONE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useNextFrame from \"./useNextFrame\";\nvar FULL_STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\nvar SIMPLE_STEP_QUEUE = [STEP_PREPARE, STEP_PREPARED];\n\n/** Skip current step */\nexport var SkipStep = false;\n/** Current step should be update in */\nexport var DoStep = true;\nexport function isActive(step) {\n  return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, prepareOnly, callback) {\n  var _useState = useState(STEP_NONE),\n    _useState2 = _slicedToArray(_useState, 2),\n    step = _useState2[0],\n    setStep = _useState2[1];\n  var _useNextFrame = useNextFrame(),\n    _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n    nextFrame = _useNextFrame2[0],\n    cancelNextFrame = _useNextFrame2[1];\n  function startQueue() {\n    setStep(STEP_PREPARE, true);\n  }\n  var STEP_QUEUE = prepareOnly ? SIMPLE_STEP_QUEUE : FULL_STEP_QUEUE;\n  useIsomorphicLayoutEffect(function () {\n    if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n      var index = STEP_QUEUE.indexOf(step);\n      var nextStep = STEP_QUEUE[index + 1];\n      var result = callback(step);\n      if (result === SkipStep) {\n        // Skip when no needed\n        setStep(nextStep, true);\n      } else if (nextStep) {\n        // Do as frame for step update\n        nextFrame(function (info) {\n          function doNext() {\n            // Skip since current queue is ood\n            if (info.isCanceled()) return;\n            setStep(nextStep, true);\n          }\n          if (result === true) {\n            doNext();\n          } else {\n            // Only promise should be async\n            Promise.resolve(result).then(doNext);\n          }\n        });\n      }\n    }\n  }, [status, step]);\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [startQueue, step];\n});","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nexport default (function () {\n  var nextFrameRef = React.useRef(null);\n  function cancelNextFrame() {\n    raf.cancel(nextFrameRef.current);\n  }\n  function nextFrame(callback) {\n    var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n    cancelNextFrame();\n    var nextFrameId = raf(function () {\n      if (delay <= 1) {\n        callback({\n          isCanceled: function isCanceled() {\n            return nextFrameId !== nextFrameRef.current;\n          }\n        });\n      } else {\n        nextFrame(callback, delay - 1);\n      }\n    });\n    nextFrameRef.current = nextFrameId;\n  }\n  React.useEffect(function () {\n    return function () {\n      cancelNextFrame();\n    };\n  }, []);\n  return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent } from 'rc-util';\nimport useState from \"rc-util/es/hooks/useState\";\nimport useSyncState from \"rc-util/es/hooks/useSyncState\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport { STATUS_APPEAR, STATUS_ENTER, STATUS_LEAVE, STATUS_NONE, STEP_ACTIVE, STEP_PREPARE, STEP_PREPARED, STEP_START } from \"../interface\";\nimport useDomMotionEvents from \"./useDomMotionEvents\";\nimport useIsomorphicLayoutEffect from \"./useIsomorphicLayoutEffect\";\nimport useStepQueue, { DoStep, isActive, SkipStep } from \"./useStepQueue\";\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n  var _ref$motionEnter = _ref.motionEnter,\n    motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n    _ref$motionAppear = _ref.motionAppear,\n    motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n    _ref$motionLeave = _ref.motionLeave,\n    motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n    motionDeadline = _ref.motionDeadline,\n    motionLeaveImmediately = _ref.motionLeaveImmediately,\n    onAppearPrepare = _ref.onAppearPrepare,\n    onEnterPrepare = _ref.onEnterPrepare,\n    onLeavePrepare = _ref.onLeavePrepare,\n    onAppearStart = _ref.onAppearStart,\n    onEnterStart = _ref.onEnterStart,\n    onLeaveStart = _ref.onLeaveStart,\n    onAppearActive = _ref.onAppearActive,\n    onEnterActive = _ref.onEnterActive,\n    onLeaveActive = _ref.onLeaveActive,\n    onAppearEnd = _ref.onAppearEnd,\n    onEnterEnd = _ref.onEnterEnd,\n    onLeaveEnd = _ref.onLeaveEnd,\n    onVisibleChanged = _ref.onVisibleChanged;\n  // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    asyncVisible = _useState2[0],\n    setAsyncVisible = _useState2[1];\n  var _useSyncState = useSyncState(STATUS_NONE),\n    _useSyncState2 = _slicedToArray(_useSyncState, 2),\n    getStatus = _useSyncState2[0],\n    setStatus = _useSyncState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    style = _useState4[0],\n    setStyle = _useState4[1];\n  var currentStatus = getStatus();\n  var mountedRef = useRef(false);\n  var deadlineRef = useRef(null);\n\n  // =========================== Dom Node ===========================\n  function getDomElement() {\n    return getElement();\n  }\n\n  // ========================== Motion End ==========================\n  var activeRef = useRef(false);\n\n  /**\n   * Clean up status & style\n   */\n  function updateMotionEndStatus() {\n    setStatus(STATUS_NONE);\n    setStyle(null, true);\n  }\n  var onInternalMotionEnd = useEvent(function (event) {\n    var status = getStatus();\n    // Do nothing since not in any transition status.\n    // This may happen when `motionDeadline` trigger.\n    if (status === STATUS_NONE) {\n      return;\n    }\n    var element = getDomElement();\n    if (event && !event.deadline && event.target !== element) {\n      // event exists\n      // not initiated by deadline\n      // transitionEnd not fired by inner elements\n      return;\n    }\n    var currentActive = activeRef.current;\n    var canEnd;\n    if (status === STATUS_APPEAR && currentActive) {\n      canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n    } else if (status === STATUS_ENTER && currentActive) {\n      canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n    } else if (status === STATUS_LEAVE && currentActive) {\n      canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n    }\n\n    // Only update status when `canEnd` and not destroyed\n    if (currentActive && canEnd !== false) {\n      updateMotionEndStatus();\n    }\n  });\n  var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n    _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n    patchMotionEvents = _useDomMotionEvents2[0];\n\n  // ============================= Step =============================\n  var getEventHandlers = function getEventHandlers(targetStatus) {\n    switch (targetStatus) {\n      case STATUS_APPEAR:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onAppearPrepare), STEP_START, onAppearStart), STEP_ACTIVE, onAppearActive);\n      case STATUS_ENTER:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onEnterPrepare), STEP_START, onEnterStart), STEP_ACTIVE, onEnterActive);\n      case STATUS_LEAVE:\n        return _defineProperty(_defineProperty(_defineProperty({}, STEP_PREPARE, onLeavePrepare), STEP_START, onLeaveStart), STEP_ACTIVE, onLeaveActive);\n      default:\n        return {};\n    }\n  };\n  var eventHandlers = React.useMemo(function () {\n    return getEventHandlers(currentStatus);\n  }, [currentStatus]);\n  var _useStepQueue = useStepQueue(currentStatus, !supportMotion, function (newStep) {\n      // Only prepare step can be skip\n      if (newStep === STEP_PREPARE) {\n        var onPrepare = eventHandlers[STEP_PREPARE];\n        if (!onPrepare) {\n          return SkipStep;\n        }\n        return onPrepare(getDomElement());\n      }\n\n      // Rest step is sync update\n      if (step in eventHandlers) {\n        var _eventHandlers$step;\n        setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n      }\n      if (step === STEP_ACTIVE && currentStatus !== STATUS_NONE) {\n        // Patch events when motion needed\n        patchMotionEvents(getDomElement());\n        if (motionDeadline > 0) {\n          clearTimeout(deadlineRef.current);\n          deadlineRef.current = setTimeout(function () {\n            onInternalMotionEnd({\n              deadline: true\n            });\n          }, motionDeadline);\n        }\n      }\n      if (step === STEP_PREPARED) {\n        updateMotionEndStatus();\n      }\n      return DoStep;\n    }),\n    _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n    startStep = _useStepQueue2[0],\n    step = _useStepQueue2[1];\n  var active = isActive(step);\n  activeRef.current = active;\n\n  // ============================ Status ============================\n  var visibleRef = useRef(null);\n\n  // Update with new status\n  useIsomorphicLayoutEffect(function () {\n    // When use Suspense, the `visible` will repeat trigger,\n    // But not real change of the `visible`, we need to skip it.\n    // https://github.com/ant-design/ant-design/issues/44379\n    if (mountedRef.current && visibleRef.current === visible) {\n      return;\n    }\n    setAsyncVisible(visible);\n    var isMounted = mountedRef.current;\n    mountedRef.current = true;\n\n    // if (!supportMotion) {\n    //   return;\n    // }\n\n    var nextStatus;\n\n    // Appear\n    if (!isMounted && visible && motionAppear) {\n      nextStatus = STATUS_APPEAR;\n    }\n\n    // Enter\n    if (isMounted && visible && motionEnter) {\n      nextStatus = STATUS_ENTER;\n    }\n\n    // Leave\n    if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n      nextStatus = STATUS_LEAVE;\n    }\n    var nextEventHandlers = getEventHandlers(nextStatus);\n\n    // Update to next status\n    if (nextStatus && (supportMotion || nextEventHandlers[STEP_PREPARE])) {\n      setStatus(nextStatus);\n      startStep();\n    } else {\n      // Set back in case no motion but prev status has prepare step\n      setStatus(STATUS_NONE);\n    }\n    visibleRef.current = visible;\n  }, [visible]);\n\n  // ============================ Effect ============================\n  // Reset when motion changed\n  useEffect(function () {\n    if (\n    // Cancel appear\n    currentStatus === STATUS_APPEAR && !motionAppear ||\n    // Cancel enter\n    currentStatus === STATUS_ENTER && !motionEnter ||\n    // Cancel leave\n    currentStatus === STATUS_LEAVE && !motionLeave) {\n      setStatus(STATUS_NONE);\n    }\n  }, [motionAppear, motionEnter, motionLeave]);\n  useEffect(function () {\n    return function () {\n      mountedRef.current = false;\n      clearTimeout(deadlineRef.current);\n    };\n  }, []);\n\n  // Trigger `onVisibleChanged`\n  var firstMountChangeRef = React.useRef(false);\n  useEffect(function () {\n    // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n    if (asyncVisible) {\n      firstMountChangeRef.current = true;\n    }\n    if (asyncVisible !== undefined && currentStatus === STATUS_NONE) {\n      // Skip first render is invisible since it's nothing changed\n      if (firstMountChangeRef.current || asyncVisible) {\n        onVisibleChanged === null || onVisibleChanged === void 0 || onVisibleChanged(asyncVisible);\n      }\n      firstMountChangeRef.current = true;\n    }\n  }, [asyncVisible, currentStatus]);\n\n  // ============================ Styles ============================\n  var mergedStyle = style;\n  if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n    mergedStyle = _objectSpread({\n      transition: 'none'\n    }, mergedStyle);\n  }\n  return [currentStatus, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useEvent from \"./useEvent\";\n/**\n * Same as React.useState but will always get latest state.\n * This is useful when React merge multiple state updates into one.\n * e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.\n */\nexport default function useSyncState(defaultValue) {\n  var _React$useReducer = React.useReducer(function (x) {\n      return x + 1;\n    }, 0),\n    _React$useReducer2 = _slicedToArray(_React$useReducer, 2),\n    forceUpdate = _React$useReducer2[1];\n  var currentValueRef = React.useRef(defaultValue);\n  var getValue = useEvent(function () {\n    return currentValueRef.current;\n  });\n  var setValue = useEvent(function (updater) {\n    currentValueRef.current = typeof updater === 'function' ? updater(currentValueRef.current) : updater;\n    forceUpdate();\n  });\n  return [getValue, setValue];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from \"../util/motion\";\nexport default (function (onInternalMotionEnd) {\n  var cacheElementRef = useRef();\n\n  // Remove events\n  function removeMotionEvents(element) {\n    if (element) {\n      element.removeEventListener(transitionEndName, onInternalMotionEnd);\n      element.removeEventListener(animationEndName, onInternalMotionEnd);\n    }\n  }\n\n  // Patch events\n  function patchMotionEvents(element) {\n    if (cacheElementRef.current && cacheElementRef.current !== element) {\n      removeMotionEvents(cacheElementRef.current);\n    }\n    if (element && element !== cacheElementRef.current) {\n      element.addEventListener(transitionEndName, onInternalMotionEnd);\n      element.addEventListener(animationEndName, onInternalMotionEnd);\n\n      // Save as cache in case dom removed trigger by `motionDeadline`\n      cacheElementRef.current = element;\n    }\n  }\n\n  // Clean up when removed\n  React.useEffect(function () {\n    return function () {\n      removeMotionEvents(cacheElementRef.current);\n    };\n  }, []);\n  return [patchMotionEvents, removeMotionEvents];\n});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport classNames from 'classnames';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport { Context } from \"./context\";\nimport DomWrapper from \"./DomWrapper\";\nimport useStatus from \"./hooks/useStatus\";\nimport { isActive } from \"./hooks/useStepQueue\";\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from \"./interface\";\nimport { getTransitionName, supportTransition } from \"./util/motion\";\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\nexport function genCSSMotion(config) {\n  var transitionSupport = config;\n  if (_typeof(config) === 'object') {\n    transitionSupport = config.transitionSupport;\n  }\n  function isSupportTransition(props, contextMotion) {\n    return !!(props.motionName && transitionSupport && contextMotion !== false);\n  }\n  var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n    var _props$visible = props.visible,\n      visible = _props$visible === void 0 ? true : _props$visible,\n      _props$removeOnLeave = props.removeOnLeave,\n      removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n      forceRender = props.forceRender,\n      children = props.children,\n      motionName = props.motionName,\n      leavedClassName = props.leavedClassName,\n      eventProps = props.eventProps;\n    var _React$useContext = React.useContext(Context),\n      contextMotion = _React$useContext.motion;\n    var supportMotion = isSupportTransition(props, contextMotion);\n\n    // Ref to the react node, it may be a HTMLElement\n    var nodeRef = useRef();\n    // Ref to the dom wrapper in case ref can not pass to HTMLElement\n    var wrapperNodeRef = useRef();\n    function getDomElement() {\n      try {\n        // Here we're avoiding call for findDOMNode since it's deprecated\n        // in strict mode. We're calling it only when node ref is not\n        // an instance of DOM HTMLElement. Otherwise use\n        // findDOMNode as a final resort\n        return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n      } catch (e) {\n        // Only happen when `motionDeadline` trigger but element removed.\n        return null;\n      }\n    }\n    var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n      _useStatus2 = _slicedToArray(_useStatus, 4),\n      status = _useStatus2[0],\n      statusStep = _useStatus2[1],\n      statusStyle = _useStatus2[2],\n      mergedVisible = _useStatus2[3];\n\n    // Record whether content has rendered\n    // Will return null for un-rendered even when `removeOnLeave={false}`\n    var renderedRef = React.useRef(mergedVisible);\n    if (mergedVisible) {\n      renderedRef.current = true;\n    }\n\n    // ====================== Refs ======================\n    var setNodeRef = React.useCallback(function (node) {\n      nodeRef.current = node;\n      fillRef(ref, node);\n    }, [ref]);\n\n    // ===================== Render =====================\n    var motionChildren;\n    var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n      visible: visible\n    });\n    if (!children) {\n      // No children\n      motionChildren = null;\n    } else if (status === STATUS_NONE) {\n      // Stable children\n      if (mergedVisible) {\n        motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n      } else if (!removeOnLeave && renderedRef.current && leavedClassName) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          className: leavedClassName\n        }), setNodeRef);\n      } else if (forceRender || !removeOnLeave && !leavedClassName) {\n        motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n          style: {\n            display: 'none'\n          }\n        }), setNodeRef);\n      } else {\n        motionChildren = null;\n      }\n    } else {\n      // In motion\n      var statusSuffix;\n      if (statusStep === STEP_PREPARE) {\n        statusSuffix = 'prepare';\n      } else if (isActive(statusStep)) {\n        statusSuffix = 'active';\n      } else if (statusStep === STEP_START) {\n        statusSuffix = 'start';\n      }\n      var motionCls = getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix));\n      motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n        className: classNames(getTransitionName(motionName, status), _defineProperty(_defineProperty({}, motionCls, motionCls && statusSuffix), motionName, typeof motionName === 'string')),\n        style: statusStyle\n      }), setNodeRef);\n    }\n\n    // Auto inject ref if child node not have `ref` props\n    if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n      var originNodeRef = getNodeRef(motionChildren);\n      if (!originNodeRef) {\n        motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n          ref: setNodeRef\n        });\n      }\n    }\n    return /*#__PURE__*/React.createElement(DomWrapper, {\n      ref: wrapperNodeRef\n    }, motionChildren);\n  });\n  CSSMotion.displayName = 'CSSMotion';\n  return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n  var keyObj;\n  if (key && _typeof(key) === 'object' && 'key' in key) {\n    keyObj = key;\n  } else {\n    keyObj = {\n      key: key\n    };\n  }\n  return _objectSpread(_objectSpread({}, keyObj), {}, {\n    key: String(keyObj.key)\n  });\n}\nexport function parseKeys() {\n  var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n  var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var list = [];\n  var currentIndex = 0;\n  var currentLen = currentKeys.length;\n  var prevKeyObjects = parseKeys(prevKeys);\n  var currentKeyObjects = parseKeys(currentKeys);\n\n  // Check prev keys to insert or keep\n  prevKeyObjects.forEach(function (keyObj) {\n    var hit = false;\n    for (var i = currentIndex; i < currentLen; i += 1) {\n      var currentKeyObj = currentKeyObjects[i];\n      if (currentKeyObj.key === keyObj.key) {\n        // New added keys should add before current key\n        if (currentIndex < i) {\n          list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n            return _objectSpread(_objectSpread({}, obj), {}, {\n              status: STATUS_ADD\n            });\n          }));\n          currentIndex = i;\n        }\n        list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n          status: STATUS_KEEP\n        }));\n        currentIndex += 1;\n        hit = true;\n        break;\n      }\n    }\n\n    // If not hit, it means key is removed\n    if (!hit) {\n      list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n        status: STATUS_REMOVE\n      }));\n    }\n  });\n\n  // Add rest to the list\n  if (currentIndex < currentLen) {\n    list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n      return _objectSpread(_objectSpread({}, obj), {}, {\n        status: STATUS_ADD\n      });\n    }));\n  }\n\n  /**\n   * Merge same key when it remove and add again:\n   *    [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n   */\n  var keys = {};\n  list.forEach(function (_ref) {\n    var key = _ref.key;\n    keys[key] = (keys[key] || 0) + 1;\n  });\n  var duplicatedKeys = Object.keys(keys).filter(function (key) {\n    return keys[key] > 1;\n  });\n  duplicatedKeys.forEach(function (matchKey) {\n    // Remove `STATUS_REMOVE` node.\n    list = list.filter(function (_ref2) {\n      var key = _ref2.key,\n        status = _ref2.status;\n      return key !== matchKey || status !== STATUS_REMOVE;\n    });\n\n    // Update `STATUS_ADD` to `STATUS_KEEP`\n    list.forEach(function (node) {\n      if (node.key === matchKey) {\n        // eslint-disable-next-line no-param-reassign\n        node.status = STATUS_KEEP;\n      }\n    });\n  });\n  return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n  _excluded2 = [\"status\"];\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from \"./CSSMotion\";\nimport { diffKeys, parseKeys, STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED } from \"./util/diff\";\nimport { supportTransition } from \"./util/motion\";\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearPrepare', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\nexport function genCSSMotionList(transitionSupport) {\n  var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n  var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n    _inherits(CSSMotionList, _React$Component);\n    var _super = _createSuper(CSSMotionList);\n    function CSSMotionList() {\n      var _this;\n      _classCallCheck(this, CSSMotionList);\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      _this = _super.call.apply(_super, [this].concat(args));\n      _defineProperty(_assertThisInitialized(_this), \"state\", {\n        keyEntities: []\n      });\n      // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n      _defineProperty(_assertThisInitialized(_this), \"removeKey\", function (removeKey) {\n        _this.setState(function (prevState) {\n          var nextKeyEntities = prevState.keyEntities.map(function (entity) {\n            if (entity.key !== removeKey) return entity;\n            return _objectSpread(_objectSpread({}, entity), {}, {\n              status: STATUS_REMOVED\n            });\n          });\n          return {\n            keyEntities: nextKeyEntities\n          };\n        }, function () {\n          var keyEntities = _this.state.keyEntities;\n          var restKeysCount = keyEntities.filter(function (_ref) {\n            var status = _ref.status;\n            return status !== STATUS_REMOVED;\n          }).length;\n          if (restKeysCount === 0 && _this.props.onAllRemoved) {\n            _this.props.onAllRemoved();\n          }\n        });\n      });\n      return _this;\n    }\n    _createClass(CSSMotionList, [{\n      key: \"render\",\n      value: function render() {\n        var _this2 = this;\n        var keyEntities = this.state.keyEntities;\n        var _this$props = this.props,\n          component = _this$props.component,\n          children = _this$props.children,\n          _onVisibleChanged = _this$props.onVisibleChanged,\n          onAllRemoved = _this$props.onAllRemoved,\n          restProps = _objectWithoutProperties(_this$props, _excluded);\n        var Component = component || React.Fragment;\n        var motionProps = {};\n        MOTION_PROP_NAMES.forEach(function (prop) {\n          motionProps[prop] = restProps[prop];\n          delete restProps[prop];\n        });\n        delete restProps.keys;\n        return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2, index) {\n          var status = _ref2.status,\n            eventProps = _objectWithoutProperties(_ref2, _excluded2);\n          var visible = status === STATUS_ADD || status === STATUS_KEEP;\n          return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n            key: eventProps.key,\n            visible: visible,\n            eventProps: eventProps,\n            onVisibleChanged: function onVisibleChanged(changedVisible) {\n              _onVisibleChanged === null || _onVisibleChanged === void 0 || _onVisibleChanged(changedVisible, {\n                key: eventProps.key\n              });\n              if (!changedVisible) {\n                _this2.removeKey(eventProps.key);\n              }\n            }\n          }), function (props, ref) {\n            return children(_objectSpread(_objectSpread({}, props), {}, {\n              index: index\n            }), ref);\n          });\n        }));\n      }\n    }], [{\n      key: \"getDerivedStateFromProps\",\n      value: function getDerivedStateFromProps(_ref3, _ref4) {\n        var keys = _ref3.keys;\n        var keyEntities = _ref4.keyEntities;\n        var parsedKeyObjects = parseKeys(keys);\n        var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n        return {\n          keyEntities: mixedKeyEntities.filter(function (entity) {\n            var prevEntity = keyEntities.find(function (_ref5) {\n              var key = _ref5.key;\n              return entity.key === key;\n            });\n\n            // Remove if already mark as removed\n            if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n              return false;\n            }\n            return true;\n          })\n        };\n      }\n    }]);\n    return CSSMotionList;\n  }(React.Component);\n  _defineProperty(CSSMotionList, \"defaultProps\", {\n    component: 'div'\n  });\n  return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from \"./CSSMotion\";\nimport CSSMotionList from \"./CSSMotionList\";\nexport { default as Provider } from \"./context\";\nexport { CSSMotionList };\nexport default CSSMotion;","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n  \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n  _regeneratorRuntime = function _regeneratorRuntime() {\n    return e;\n  };\n  var t,\n    e = {},\n    r = Object.prototype,\n    n = r.hasOwnProperty,\n    o = Object.defineProperty || function (t, e, r) {\n      t[e] = r.value;\n    },\n    i = \"function\" == typeof Symbol ? Symbol : {},\n    a = i.iterator || \"@@iterator\",\n    c = i.asyncIterator || \"@@asyncIterator\",\n    u = i.toStringTag || \"@@toStringTag\";\n  function define(t, e, r) {\n    return Object.defineProperty(t, e, {\n      value: r,\n      enumerable: !0,\n      configurable: !0,\n      writable: !0\n    }), t[e];\n  }\n  try {\n    define({}, \"\");\n  } catch (t) {\n    define = function define(t, e, r) {\n      return t[e] = r;\n    };\n  }\n  function wrap(t, e, r, n) {\n    var i = e && e.prototype instanceof Generator ? e : Generator,\n      a = Object.create(i.prototype),\n      c = new Context(n || []);\n    return o(a, \"_invoke\", {\n      value: makeInvokeMethod(t, r, c)\n    }), a;\n  }\n  function tryCatch(t, e, r) {\n    try {\n      return {\n        type: \"normal\",\n        arg: t.call(e, r)\n      };\n    } catch (t) {\n      return {\n        type: \"throw\",\n        arg: t\n      };\n    }\n  }\n  e.wrap = wrap;\n  var h = \"suspendedStart\",\n    l = \"suspendedYield\",\n    f = \"executing\",\n    s = \"completed\",\n    y = {};\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n  var p = {};\n  define(p, a, function () {\n    return this;\n  });\n  var d = Object.getPrototypeOf,\n    v = d && d(d(values([])));\n  v && v !== r && n.call(v, a) && (p = v);\n  var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n  function defineIteratorMethods(t) {\n    [\"next\", \"throw\", \"return\"].forEach(function (e) {\n      define(t, e, function (t) {\n        return this._invoke(e, t);\n      });\n    });\n  }\n  function AsyncIterator(t, e) {\n    function invoke(r, o, i, a) {\n      var c = tryCatch(t[r], t, o);\n      if (\"throw\" !== c.type) {\n        var u = c.arg,\n          h = u.value;\n        return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n          invoke(\"next\", t, i, a);\n        }, function (t) {\n          invoke(\"throw\", t, i, a);\n        }) : e.resolve(h).then(function (t) {\n          u.value = t, i(u);\n        }, function (t) {\n          return invoke(\"throw\", t, i, a);\n        });\n      }\n      a(c.arg);\n    }\n    var r;\n    o(this, \"_invoke\", {\n      value: function value(t, n) {\n        function callInvokeWithMethodAndArg() {\n          return new e(function (e, r) {\n            invoke(t, n, e, r);\n          });\n        }\n        return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n      }\n    });\n  }\n  function makeInvokeMethod(e, r, n) {\n    var o = h;\n    return function (i, a) {\n      if (o === f) throw Error(\"Generator is already running\");\n      if (o === s) {\n        if (\"throw\" === i) throw a;\n        return {\n          value: t,\n          done: !0\n        };\n      }\n      for (n.method = i, n.arg = a;;) {\n        var c = n.delegate;\n        if (c) {\n          var u = maybeInvokeDelegate(c, n);\n          if (u) {\n            if (u === y) continue;\n            return u;\n          }\n        }\n        if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n          if (o === h) throw o = s, n.arg;\n          n.dispatchException(n.arg);\n        } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n        o = f;\n        var p = tryCatch(e, r, n);\n        if (\"normal\" === p.type) {\n          if (o = n.done ? s : l, p.arg === y) continue;\n          return {\n            value: p.arg,\n            done: n.done\n          };\n        }\n        \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n      }\n    };\n  }\n  function maybeInvokeDelegate(e, r) {\n    var n = r.method,\n      o = e.iterator[n];\n    if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n    var i = tryCatch(o, e.iterator, r.arg);\n    if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n    var a = i.arg;\n    return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n  }\n  function pushTryEntry(t) {\n    var e = {\n      tryLoc: t[0]\n    };\n    1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n  }\n  function resetTryEntry(t) {\n    var e = t.completion || {};\n    e.type = \"normal\", delete e.arg, t.completion = e;\n  }\n  function Context(t) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }], t.forEach(pushTryEntry, this), this.reset(!0);\n  }\n  function values(e) {\n    if (e || \"\" === e) {\n      var r = e[a];\n      if (r) return r.call(e);\n      if (\"function\" == typeof e.next) return e;\n      if (!isNaN(e.length)) {\n        var o = -1,\n          i = function next() {\n            for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n            return next.value = t, next.done = !0, next;\n          };\n        return i.next = i;\n      }\n    }\n    throw new TypeError(_typeof(e) + \" is not iterable\");\n  }\n  return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n    value: GeneratorFunctionPrototype,\n    configurable: !0\n  }), o(GeneratorFunctionPrototype, \"constructor\", {\n    value: GeneratorFunction,\n    configurable: !0\n  }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n    var e = \"function\" == typeof t && t.constructor;\n    return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n  }, e.mark = function (t) {\n    return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n  }, e.awrap = function (t) {\n    return {\n      __await: t\n    };\n  }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n    return this;\n  }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n    void 0 === i && (i = Promise);\n    var a = new AsyncIterator(wrap(t, r, n, o), i);\n    return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n      return t.done ? t.value : a.next();\n    });\n  }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n    return this;\n  }), define(g, \"toString\", function () {\n    return \"[object Generator]\";\n  }), e.keys = function (t) {\n    var e = Object(t),\n      r = [];\n    for (var n in e) r.push(n);\n    return r.reverse(), function next() {\n      for (; r.length;) {\n        var t = r.pop();\n        if (t in e) return next.value = t, next.done = !1, next;\n      }\n      return next.done = !0, next;\n    };\n  }, e.values = values, Context.prototype = {\n    constructor: Context,\n    reset: function reset(e) {\n      if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n    },\n    stop: function stop() {\n      this.done = !0;\n      var t = this.tryEntries[0].completion;\n      if (\"throw\" === t.type) throw t.arg;\n      return this.rval;\n    },\n    dispatchException: function dispatchException(e) {\n      if (this.done) throw e;\n      var r = this;\n      function handle(n, o) {\n        return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n      }\n      for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n        var i = this.tryEntries[o],\n          a = i.completion;\n        if (\"root\" === i.tryLoc) return handle(\"end\");\n        if (i.tryLoc <= this.prev) {\n          var c = n.call(i, \"catchLoc\"),\n            u = n.call(i, \"finallyLoc\");\n          if (c && u) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          } else if (c) {\n            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n          } else {\n            if (!u) throw Error(\"try statement without catch or finally\");\n            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(t, e) {\n      for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n        var o = this.tryEntries[r];\n        if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n          var i = o;\n          break;\n        }\n      }\n      i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n      var a = i ? i.completion : {};\n      return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n    },\n    complete: function complete(t, e) {\n      if (\"throw\" === t.type) throw t.arg;\n      return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n    },\n    finish: function finish(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n      }\n    },\n    \"catch\": function _catch(t) {\n      for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n        var r = this.tryEntries[e];\n        if (r.tryLoc === t) {\n          var n = r.completion;\n          if (\"throw\" === n.type) {\n            var o = n.arg;\n            resetTryEntry(r);\n          }\n          return o;\n        }\n      }\n      throw Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(e, r, n) {\n      return this.delegate = {\n        iterator: values(e),\n        resultName: r,\n        nextLoc: n\n      }, \"next\" === this.method && (this.arg = t), y;\n    }\n  }, e;\n}\nexport { _regeneratorRuntime as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n  try {\n    var i = n[a](c),\n      u = i.value;\n  } catch (n) {\n    return void e(n);\n  }\n  i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n  return function () {\n    var t = this,\n      e = arguments;\n    return new Promise(function (r, o) {\n      var a = n.apply(t, e);\n      function _next(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n      }\n      function _throw(n) {\n        asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n      }\n      _next(void 0);\n    });\n  };\n}\nexport { _asyncToGenerator as default };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom';\n// Let compiler not to search module usage\nvar fullClone = _objectSpread({}, ReactDOM);\nvar version = fullClone.version,\n  reactRender = fullClone.render,\n  unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\ntry {\n  var mainVersion = Number((version || '').split('.')[0]);\n  if (mainVersion >= 18) {\n    createRoot = fullClone.createRoot;\n  }\n} catch (e) {\n  // Do nothing;\n}\nfunction toggleWarning(skip) {\n  var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n    __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n  }\n}\nvar MARK = '__rc_react_root__';\n\n// ========================== Render ==========================\n\nfunction modernRender(node, container) {\n  toggleWarning(true);\n  var root = container[MARK] || createRoot(container);\n  toggleWarning(false);\n  root.render(node);\n  container[MARK] = root;\n}\nfunction legacyRender(node, container) {\n  reactRender === null || reactRender === void 0 || reactRender(node, container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _r(node, container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyRender(node, container);\n  }\n}\nexport function render(node, container) {\n  if (createRoot) {\n    modernRender(node, container);\n    return;\n  }\n  legacyRender(node, container);\n}\n\n// ========================= Unmount ==========================\nfunction modernUnmount(_x) {\n  return _modernUnmount.apply(this, arguments);\n}\nfunction _modernUnmount() {\n  _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n    return _regeneratorRuntime().wrap(function _callee$(_context) {\n      while (1) switch (_context.prev = _context.next) {\n        case 0:\n          return _context.abrupt(\"return\", Promise.resolve().then(function () {\n            var _container$MARK;\n            (_container$MARK = container[MARK]) === null || _container$MARK === void 0 || _container$MARK.unmount();\n            delete container[MARK];\n          }));\n        case 1:\n        case \"end\":\n          return _context.stop();\n      }\n    }, _callee);\n  }));\n  return _modernUnmount.apply(this, arguments);\n}\nfunction legacyUnmount(container) {\n  unmountComponentAtNode(container);\n}\n\n/** @private Test usage. Not work in prod */\nexport function _u(container) {\n  if (process.env.NODE_ENV !== 'production') {\n    return legacyUnmount(container);\n  }\n}\nexport function unmount(_x2) {\n  return _unmount.apply(this, arguments);\n}\nfunction _unmount() {\n  _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) switch (_context2.prev = _context2.next) {\n        case 0:\n          if (!(createRoot !== undefined)) {\n            _context2.next = 2;\n            break;\n          }\n          return _context2.abrupt(\"return\", modernUnmount(container));\n        case 2:\n          legacyUnmount(container);\n        case 3:\n        case \"end\":\n          return _context2.stop();\n      }\n    }, _callee2);\n  }));\n  return _unmount.apply(this, arguments);\n}","\"use client\";\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport warning from '../_util/warning';\nconst defaultReactRender = (node, container) => {\n  // TODO: Remove in v6\n  // Warning for React 19\n  if (process.env.NODE_ENV !== 'production') {\n    const majorVersion = parseInt(React.version.split('.')[0], 10);\n    const fullKeys = Object.keys(ReactDOM);\n    process.env.NODE_ENV !== \"production\" ? warning(majorVersion < 19 || fullKeys.includes('createRoot'), 'compatible', 'antd v5 support React is 16 ~ 18. see https://u.ant.design/v5-for-19 for compatible.') : void 0;\n  }\n  render(node, container);\n  return () => {\n    return unmount(container);\n  };\n};\nlet unstableRender = defaultReactRender;\n/**\n * @deprecated Set React render function for compatible usage.\n * This is internal usage only compatible with React 19.\n * And will be removed in next major version.\n */\nexport function unstableSetRender(render) {\n  unstableRender = render;\n}\nexport function getReactRender() {\n  return unstableRender;\n}","export function isValidWaveColor(color) {\n  return color && color !== '#fff' && color !== '#ffffff' && color !== 'rgb(255, 255, 255)' && color !== 'rgba(255, 255, 255, 1)' && !/rgba\\((?:\\d*, ){3}0\\)/.test(color) &&\n  // any transparent rgba color\n  color !== 'transparent';\n}\nexport function getTargetWaveColor(node) {\n  const {\n    borderTopColor,\n    borderColor,\n    backgroundColor\n  } = getComputedStyle(node);\n  if (isValidWaveColor(borderTopColor)) {\n    return borderTopColor;\n  }\n  if (isValidWaveColor(borderColor)) {\n    return borderColor;\n  }\n  if (isValidWaveColor(backgroundColor)) {\n    return backgroundColor;\n  }\n  return null;\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport raf from \"rc-util/es/raf\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport { getReactRender } from '../../config-provider/UnstableContext';\nimport { TARGET_CLS } from './interface';\nimport { getTargetWaveColor } from './util';\nfunction validateNum(value) {\n  return Number.isNaN(value) ? 0 : value;\n}\nconst WaveEffect = props => {\n  const {\n    className,\n    target,\n    component,\n    registerUnmount\n  } = props;\n  const divRef = React.useRef(null);\n  // ====================== Refs ======================\n  const unmountRef = React.useRef(null);\n  React.useEffect(() => {\n    unmountRef.current = registerUnmount();\n  }, []);\n  // ===================== Effect =====================\n  const [color, setWaveColor] = React.useState(null);\n  const [borderRadius, setBorderRadius] = React.useState([]);\n  const [left, setLeft] = React.useState(0);\n  const [top, setTop] = React.useState(0);\n  const [width, setWidth] = React.useState(0);\n  const [height, setHeight] = React.useState(0);\n  const [enabled, setEnabled] = React.useState(false);\n  const waveStyle = {\n    left,\n    top,\n    width,\n    height,\n    borderRadius: borderRadius.map(radius => `${radius}px`).join(' ')\n  };\n  if (color) {\n    waveStyle['--wave-color'] = color;\n  }\n  function syncPos() {\n    const nodeStyle = getComputedStyle(target);\n    // Get wave color from target\n    setWaveColor(getTargetWaveColor(target));\n    const isStatic = nodeStyle.position === 'static';\n    // Rect\n    const {\n      borderLeftWidth,\n      borderTopWidth\n    } = nodeStyle;\n    setLeft(isStatic ? target.offsetLeft : validateNum(-parseFloat(borderLeftWidth)));\n    setTop(isStatic ? target.offsetTop : validateNum(-parseFloat(borderTopWidth)));\n    setWidth(target.offsetWidth);\n    setHeight(target.offsetHeight);\n    // Get border radius\n    const {\n      borderTopLeftRadius,\n      borderTopRightRadius,\n      borderBottomLeftRadius,\n      borderBottomRightRadius\n    } = nodeStyle;\n    setBorderRadius([borderTopLeftRadius, borderTopRightRadius, borderBottomRightRadius, borderBottomLeftRadius].map(radius => validateNum(parseFloat(radius))));\n  }\n  React.useEffect(() => {\n    if (target) {\n      // We need delay to check position here\n      // since UI may change after click\n      const id = raf(() => {\n        syncPos();\n        setEnabled(true);\n      });\n      // Add resize observer to follow size\n      let resizeObserver;\n      if (typeof ResizeObserver !== 'undefined') {\n        resizeObserver = new ResizeObserver(syncPos);\n        resizeObserver.observe(target);\n      }\n      return () => {\n        raf.cancel(id);\n        resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();\n      };\n    }\n  }, []);\n  if (!enabled) {\n    return null;\n  }\n  const isSmallComponent = (component === 'Checkbox' || component === 'Radio') && (target === null || target === void 0 ? void 0 : target.classList.contains(TARGET_CLS));\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: true,\n    motionAppear: true,\n    motionName: \"wave-motion\",\n    motionDeadline: 5000,\n    onAppearEnd: (_, event) => {\n      var _a, _b;\n      if (event.deadline || event.propertyName === 'opacity') {\n        const holder = (_a = divRef.current) === null || _a === void 0 ? void 0 : _a.parentElement;\n        (_b = unmountRef.current) === null || _b === void 0 ? void 0 : _b.call(unmountRef).then(() => {\n          holder === null || holder === void 0 ? void 0 : holder.remove();\n        });\n      }\n      return false;\n    }\n  }, (_ref, ref) => {\n    let {\n      className: motionClassName\n    } = _ref;\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: composeRef(divRef, ref),\n      className: classNames(className, motionClassName, {\n        'wave-quick': isSmallComponent\n      }),\n      style: waveStyle\n    });\n  });\n};\nconst showWaveEffect = (target, info) => {\n  var _a;\n  const {\n    component\n  } = info;\n  // Skip for unchecked checkbox\n  if (component === 'Checkbox' && !((_a = target.querySelector('input')) === null || _a === void 0 ? void 0 : _a.checked)) {\n    return;\n  }\n  // Create holder\n  const holder = document.createElement('div');\n  holder.style.position = 'absolute';\n  holder.style.left = '0px';\n  holder.style.top = '0px';\n  target === null || target === void 0 ? void 0 : target.insertBefore(holder, target === null || target === void 0 ? void 0 : target.firstChild);\n  const reactRender = getReactRender();\n  let unmountCallback = null;\n  function registerUnmount() {\n    return unmountCallback;\n  }\n  unmountCallback = reactRender(/*#__PURE__*/React.createElement(WaveEffect, Object.assign({}, info, {\n    target: target,\n    registerUnmount: registerUnmount\n  })), holder);\n};\nexport default showWaveEffect;","import * as React from 'react';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport raf from \"rc-util/es/raf\";\nimport { ConfigContext } from '../../config-provider';\nimport useToken from '../../theme/useToken';\nimport { TARGET_CLS } from './interface';\nimport showWaveEffect from './WaveEffect';\nconst useWave = (nodeRef, className, component) => {\n  const {\n    wave\n  } = React.useContext(ConfigContext);\n  const [, token, hashId] = useToken();\n  const showWave = useEvent(event => {\n    const node = nodeRef.current;\n    if ((wave === null || wave === void 0 ? void 0 : wave.disabled) || !node) {\n      return;\n    }\n    const targetNode = node.querySelector(`.${TARGET_CLS}`) || node;\n    const {\n      showEffect\n    } = wave || {};\n    // Customize wave effect\n    (showEffect || showWaveEffect)(targetNode, {\n      className,\n      token,\n      component,\n      event,\n      hashId\n    });\n  });\n  const rafId = React.useRef(null);\n  // Merge trigger event into one for each frame\n  const showDebounceWave = event => {\n    raf.cancel(rafId.current);\n    rafId.current = raf(() => {\n      showWave(event);\n    });\n  };\n  return showDebounceWave;\n};\nexport default useWave;","import React, { useContext, useRef } from 'react';\nimport classNames from 'classnames';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { composeRef, getNodeRef, supportRef } from \"rc-util/es/ref\";\nimport { ConfigContext } from '../../config-provider';\nimport { cloneElement } from '../reactNode';\nimport useStyle from './style';\nimport useWave from './useWave';\nconst Wave = props => {\n  const {\n    children,\n    disabled,\n    component\n  } = props;\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const containerRef = useRef(null);\n  // ============================== Style ===============================\n  const prefixCls = getPrefixCls('wave');\n  const [, hashId] = useStyle(prefixCls);\n  // =============================== Wave ===============================\n  const showWave = useWave(containerRef, classNames(prefixCls, hashId), component);\n  // ============================== Effect ==============================\n  React.useEffect(() => {\n    const node = containerRef.current;\n    if (!node || node.nodeType !== 1 || disabled) {\n      return;\n    }\n    // Click handler\n    const onClick = e => {\n      // Fix radio button click twice\n      if (!isVisible(e.target) ||\n      // No need wave\n      !node.getAttribute || node.getAttribute('disabled') || node.disabled || node.className.includes('disabled') || node.className.includes('-leave')) {\n        return;\n      }\n      showWave(e);\n    };\n    // Bind events\n    node.addEventListener('click', onClick, true);\n    return () => {\n      node.removeEventListener('click', onClick, true);\n    };\n  }, [disabled]);\n  // ============================== Render ==============================\n  if (! /*#__PURE__*/React.isValidElement(children)) {\n    return children !== null && children !== void 0 ? children : null;\n  }\n  const ref = supportRef(children) ? composeRef(getNodeRef(children), containerRef) : containerRef;\n  return cloneElement(children, {\n    ref\n  });\n};\nif (process.env.NODE_ENV !== 'production') {\n  Wave.displayName = 'Wave';\n}\nexport default Wave;","\"use client\";\n\nimport * as React from 'react';\nconst DisabledContext = /*#__PURE__*/React.createContext(false);\nexport const DisabledContextProvider = _ref => {\n  let {\n    children,\n    disabled\n  } = _ref;\n  const originDisabled = React.useContext(DisabledContext);\n  return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n    value: disabled !== null && disabled !== void 0 ? disabled : originDisabled\n  }, children);\n};\nexport default DisabledContext;","\"use client\";\n\nimport * as React from 'react';\nconst SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport const SizeContextProvider = _ref => {\n  let {\n    children,\n    size\n  } = _ref;\n  const originSize = React.useContext(SizeContext);\n  return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n    value: size || originSize\n  }, children);\n};\nexport default SizeContext;","import React from 'react';\nimport SizeContext from '../SizeContext';\nconst useSize = customSize => {\n  const size = React.useContext(SizeContext);\n  const mergedSize = React.useMemo(() => {\n    if (!customSize) {\n      return size;\n    }\n    if (typeof customSize === 'string') {\n      return customSize !== null && customSize !== void 0 ? customSize : size;\n    }\n    if (customSize instanceof Function) {\n      return customSize(size);\n    }\n    return size;\n  }, [customSize, size]);\n  return mergedSize;\n};\nexport default useSize;","import isFragment from \"../React/isFragment\";\nimport React from 'react';\nexport default function toArray(children) {\n  var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var ret = [];\n  React.Children.forEach(children, function (child) {\n    if ((child === undefined || child === null) && !option.keepEmpty) {\n      return;\n    }\n    if (Array.isArray(child)) {\n      ret = ret.concat(toArray(child));\n    } else if (isFragment(child) && child.props) {\n      ret = ret.concat(toArray(child.props.children, option));\n    } else {\n      ret.push(child);\n    }\n  });\n  return ret;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useStyle from './style';\nexport const SpaceCompactItemContext = /*#__PURE__*/React.createContext(null);\nexport const useCompactItemContext = (prefixCls, direction) => {\n  const compactItemContext = React.useContext(SpaceCompactItemContext);\n  const compactItemClassnames = React.useMemo(() => {\n    if (!compactItemContext) {\n      return '';\n    }\n    const {\n      compactDirection,\n      isFirstItem,\n      isLastItem\n    } = compactItemContext;\n    const separator = compactDirection === 'vertical' ? '-vertical-' : '-';\n    return classNames(`${prefixCls}-compact${separator}item`, {\n      [`${prefixCls}-compact${separator}first-item`]: isFirstItem,\n      [`${prefixCls}-compact${separator}last-item`]: isLastItem,\n      [`${prefixCls}-compact${separator}item-rtl`]: direction === 'rtl'\n    });\n  }, [prefixCls, direction, compactItemContext]);\n  return {\n    compactSize: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactSize,\n    compactDirection: compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.compactDirection,\n    compactItemClassnames\n  };\n};\nexport const NoCompactStyle = props => {\n  const {\n    children\n  } = props;\n  return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n    value: null\n  }, children);\n};\nconst CompactItem = props => {\n  const {\n      children\n    } = props,\n    others = __rest(props, [\"children\"]);\n  return /*#__PURE__*/React.createElement(SpaceCompactItemContext.Provider, {\n    value: React.useMemo(() => others, [others])\n  }, children);\n};\nconst Compact = props => {\n  const {\n    getPrefixCls,\n    direction: directionConfig\n  } = React.useContext(ConfigContext);\n  const {\n      size,\n      direction,\n      block,\n      prefixCls: customizePrefixCls,\n      className,\n      rootClassName,\n      children\n    } = props,\n    restProps = __rest(props, [\"size\", \"direction\", \"block\", \"prefixCls\", \"className\", \"rootClassName\", \"children\"]);\n  const mergedSize = useSize(ctx => size !== null && size !== void 0 ? size : ctx);\n  const prefixCls = getPrefixCls('space-compact', customizePrefixCls);\n  const [wrapCSSVar, hashId] = useStyle(prefixCls);\n  const clx = classNames(prefixCls, hashId, {\n    [`${prefixCls}-rtl`]: directionConfig === 'rtl',\n    [`${prefixCls}-block`]: block,\n    [`${prefixCls}-vertical`]: direction === 'vertical'\n  }, className, rootClassName);\n  const compactItemContext = React.useContext(SpaceCompactItemContext);\n  const childNodes = toArray(children);\n  const nodes = React.useMemo(() => childNodes.map((child, i) => {\n    const key = (child === null || child === void 0 ? void 0 : child.key) || `${prefixCls}-item-${i}`;\n    return /*#__PURE__*/React.createElement(CompactItem, {\n      key: key,\n      compactSize: mergedSize,\n      compactDirection: direction,\n      isFirstItem: i === 0 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isFirstItem)),\n      isLastItem: i === childNodes.length - 1 && (!compactItemContext || (compactItemContext === null || compactItemContext === void 0 ? void 0 : compactItemContext.isLastItem))\n    }, child);\n  }), [size, childNodes, compactItemContext]);\n  // =========================== Render ===========================\n  if (childNodes.length === 0) {\n    return null;\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    className: clx\n  }, restProps), nodes));\n};\nexport default Compact;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nexport const GroupSizeContext = /*#__PURE__*/React.createContext(undefined);\nconst ButtonGroup = props => {\n  const {\n    getPrefixCls,\n    direction\n  } = React.useContext(ConfigContext);\n  const {\n      prefixCls: customizePrefixCls,\n      size,\n      className\n    } = props,\n    others = __rest(props, [\"prefixCls\", \"size\", \"className\"]);\n  const prefixCls = getPrefixCls('btn-group', customizePrefixCls);\n  const [,, hashId] = useToken();\n  const sizeCls = React.useMemo(() => {\n    switch (size) {\n      case 'large':\n        return 'lg';\n      case 'small':\n        return 'sm';\n      default:\n        return '';\n    }\n  }, [size]);\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Button.Group');\n    process.env.NODE_ENV !== \"production\" ? warning(!size || ['large', 'small', 'middle'].includes(size), 'usage', 'Invalid prop `size`.') : void 0;\n  }\n  const classes = classNames(prefixCls, {\n    [`${prefixCls}-${sizeCls}`]: sizeCls,\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, className, hashId);\n  return /*#__PURE__*/React.createElement(GroupSizeContext.Provider, {\n    value: size\n  }, /*#__PURE__*/React.createElement(\"div\", Object.assign({}, others, {\n    className: classes\n  })));\n};\nexport default ButtonGroup;","export const PresetColors = ['blue', 'purple', 'cyan', 'green', 'magenta', 'pink', 'red', 'orange', 'yellow', 'volcano', 'geekblue', 'lime', 'gold'];","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport React from 'react';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { PresetColors } from '../theme/interface';\nconst rxTwoCNChar = /^[\\u4E00-\\u9FA5]{2}$/;\nexport const isTwoCNChar = rxTwoCNChar.test.bind(rxTwoCNChar);\nexport function convertLegacyProps(type) {\n  if (type === 'danger') {\n    return {\n      danger: true\n    };\n  }\n  return {\n    type\n  };\n}\nexport function isString(str) {\n  return typeof str === 'string';\n}\nexport function isUnBorderedButtonVariant(type) {\n  return type === 'text' || type === 'link';\n}\nfunction splitCNCharsBySpace(child, needInserted) {\n  if (child === null || child === undefined) {\n    return;\n  }\n  const SPACE = needInserted ? ' ' : '';\n  if (typeof child !== 'string' && typeof child !== 'number' && isString(child.type) && isTwoCNChar(child.props.children)) {\n    return cloneElement(child, {\n      children: child.props.children.split('').join(SPACE)\n    });\n  }\n  if (isString(child)) {\n    return isTwoCNChar(child) ? /*#__PURE__*/React.createElement(\"span\", null, child.split('').join(SPACE)) : /*#__PURE__*/React.createElement(\"span\", null, child);\n  }\n  if (isFragment(child)) {\n    return /*#__PURE__*/React.createElement(\"span\", null, child);\n  }\n  return child;\n}\nexport function spaceChildren(children, needInserted) {\n  let isPrevChildPure = false;\n  const childList = [];\n  React.Children.forEach(children, child => {\n    const type = typeof child;\n    const isCurrentChildPure = type === 'string' || type === 'number';\n    if (isPrevChildPure && isCurrentChildPure) {\n      const lastIndex = childList.length - 1;\n      const lastChild = childList[lastIndex];\n      childList[lastIndex] = `${lastChild}${child}`;\n    } else {\n      childList.push(child);\n    }\n    isPrevChildPure = isCurrentChildPure;\n  });\n  return React.Children.map(childList, child => splitCNCharsBySpace(child, needInserted));\n}\nconst _ButtonTypes = ['default', 'primary', 'dashed', 'link', 'text'];\nconst _ButtonShapes = ['default', 'circle', 'round'];\nconst _ButtonHTMLTypes = ['submit', 'button', 'reset'];\nexport const _ButtonVariantTypes = ['outlined', 'dashed', 'solid', 'filled', 'text', 'link'];\nexport const _ButtonColorTypes = ['default', 'primary', 'danger'].concat(_toConsumableArray(PresetColors));","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nconst IconWrapper = /*#__PURE__*/forwardRef((props, ref) => {\n  const {\n    className,\n    style,\n    children,\n    prefixCls\n  } = props;\n  const iconWrapperCls = classNames(`${prefixCls}-icon`, className);\n  return /*#__PURE__*/React.createElement(\"span\", {\n    ref: ref,\n    className: iconWrapperCls,\n    style: style\n  }, children);\n});\nexport default IconWrapper;","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function getRoot(ele) {\n  var _ele$getRootNode;\n  return ele === null || ele === void 0 || (_ele$getRootNode = ele.getRootNode) === null || _ele$getRootNode === void 0 ? void 0 : _ele$getRootNode.call(ele);\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n  return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n  return inShadow(ele) ? getRoot(ele) : null;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport warn from \"rc-util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n  return input.replace(/-(.)/g, function (match, g) {\n    return g.toUpperCase();\n  });\n}\nexport function warning(valid, message) {\n  warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n  return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return Object.keys(attrs).reduce(function (acc, key) {\n    var val = attrs[key];\n    switch (key) {\n      case 'class':\n        acc.className = val;\n        delete acc.class;\n        break;\n      default:\n        delete acc[key];\n        acc[camelCase(key)] = val;\n    }\n    return acc;\n  }, {});\n}\nexport function generate(node, key, rootProps) {\n  if (!rootProps) {\n    return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n      key: key\n    }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n      return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n    }));\n  }\n  return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n    key: key\n  }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n    return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n  }));\n}\nexport function getSecondaryColor(primaryColor) {\n  // choose the second color\n  return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n  if (!twoToneColor) {\n    return [];\n  }\n  return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport var svgBaseProps = {\n  width: '1em',\n  height: '1em',\n  fill: 'currentColor',\n  'aria-hidden': 'true',\n  focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n  display: inline-flex;\\n  align-items: center;\\n  color: inherit;\\n  font-style: normal;\\n  line-height: 0;\\n  text-align: center;\\n  text-transform: none;\\n  vertical-align: -0.125em;\\n  text-rendering: optimizeLegibility;\\n  -webkit-font-smoothing: antialiased;\\n  -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n  line-height: 1;\\n}\\n\\n.anticon svg {\\n  display: inline-block;\\n}\\n\\n.anticon::before {\\n  display: none;\\n}\\n\\n.anticon .anticon-icon {\\n  display: block;\\n}\\n\\n.anticon[tabindex] {\\n  cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n  display: inline-block;\\n  -webkit-animation: loadingCircle 1s infinite linear;\\n  animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\\n@keyframes loadingCircle {\\n  100% {\\n    -webkit-transform: rotate(360deg);\\n    transform: rotate(360deg);\\n  }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles(eleRef) {\n  var _useContext = useContext(IconContext),\n    csp = _useContext.csp,\n    prefixCls = _useContext.prefixCls,\n    layer = _useContext.layer;\n  var mergedStyleStr = iconStyles;\n  if (prefixCls) {\n    mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n  }\n  if (layer) {\n    mergedStyleStr = \"@layer \".concat(layer, \" {\\n\").concat(mergedStyleStr, \"\\n}\");\n  }\n  useEffect(function () {\n    var ele = eleRef.current;\n    var shadowRoot = getShadowRoot(ele);\n    updateCSS(mergedStyleStr, '@ant-design-icons', {\n      prepend: true,\n      csp: csp,\n      attachTo: shadowRoot\n    });\n  }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nvar twoToneColorPalette = {\n  primaryColor: '#333',\n  secondaryColor: '#E6E6E6',\n  calculated: false\n};\nfunction setTwoToneColors(_ref) {\n  var primaryColor = _ref.primaryColor,\n    secondaryColor = _ref.secondaryColor;\n  twoToneColorPalette.primaryColor = primaryColor;\n  twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n  twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n  return _objectSpread({}, twoToneColorPalette);\n}\nvar IconBase = function IconBase(props) {\n  var icon = props.icon,\n    className = props.className,\n    onClick = props.onClick,\n    style = props.style,\n    primaryColor = props.primaryColor,\n    secondaryColor = props.secondaryColor,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var svgRef = React.useRef();\n  var colors = twoToneColorPalette;\n  if (primaryColor) {\n    colors = {\n      primaryColor: primaryColor,\n      secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n    };\n  }\n  useInsertStyles(svgRef);\n  warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n  if (!isIconDefinition(icon)) {\n    return null;\n  }\n  var target = icon;\n  if (target && typeof target.icon === 'function') {\n    target = _objectSpread(_objectSpread({}, target), {}, {\n      icon: target.icon(colors.primaryColor, colors.secondaryColor)\n    });\n  }\n  return generate(target.icon, \"svg-\".concat(target.name), _objectSpread(_objectSpread({\n    className: className,\n    onClick: onClick,\n    style: style,\n    'data-icon': target.name,\n    width: '1em',\n    height: '1em',\n    fill: 'currentColor',\n    'aria-hidden': 'true'\n  }, restProps), {}, {\n    ref: svgRef\n  }));\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n    _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n    primaryColor = _normalizeTwoToneColo2[0],\n    secondaryColor = _normalizeTwoToneColo2[1];\n  return ReactIcon.setTwoToneColors({\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor\n  });\n}\nexport function getTwoToneColor() {\n  var colors = ReactIcon.getTwoToneColors();\n  if (!colors.calculated) {\n    return colors.primaryColor;\n  }\n  return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var className = props.className,\n    icon = props.icon,\n    spin = props.spin,\n    rotate = props.rotate,\n    tabIndex = props.tabIndex,\n    onClick = props.onClick,\n    twoToneColor = props.twoToneColor,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var _React$useContext = React.useContext(Context),\n    _React$useContext$pre = _React$useContext.prefixCls,\n    prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre,\n    rootClassName = _React$useContext.rootClassName;\n  var classString = classNames(rootClassName, prefixCls, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), className);\n  var iconTabIndex = tabIndex;\n  if (iconTabIndex === undefined && onClick) {\n    iconTabIndex = -1;\n  }\n  var svgStyle = rotate ? {\n    msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n    transform: \"rotate(\".concat(rotate, \"deg)\")\n  } : undefined;\n  var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n    _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n    primaryColor = _normalizeTwoToneColo2[0],\n    secondaryColor = _normalizeTwoToneColo2[1];\n  return /*#__PURE__*/React.createElement(\"span\", _extends({\n    role: \"img\",\n    \"aria-label\": icon.name\n  }, restProps, {\n    ref: ref,\n    tabIndex: iconTabIndex,\n    onClick: onClick,\n    className: classString\n  }), /*#__PURE__*/React.createElement(ReactIcon, {\n    icon: icon,\n    primaryColor: primaryColor,\n    secondaryColor: secondaryColor,\n    style: svgStyle\n  }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: LoadingOutlinedSvg\n  }));\n};\n\n/**![loading](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LoadingOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'LoadingOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport React, { forwardRef } from 'react';\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport IconWrapper from './IconWrapper';\nconst InnerLoadingIcon = /*#__PURE__*/forwardRef((props, ref) => {\n  const {\n    prefixCls,\n    className,\n    style,\n    iconClassName\n  } = props;\n  const mergedIconCls = classNames(`${prefixCls}-loading-icon`, className);\n  return /*#__PURE__*/React.createElement(IconWrapper, {\n    prefixCls: prefixCls,\n    className: mergedIconCls,\n    style: style,\n    ref: ref\n  }, /*#__PURE__*/React.createElement(LoadingOutlined, {\n    className: iconClassName\n  }));\n});\nconst getCollapsedWidth = () => ({\n  width: 0,\n  opacity: 0,\n  transform: 'scale(0)'\n});\nconst getRealWidth = node => ({\n  width: node.scrollWidth,\n  opacity: 1,\n  transform: 'scale(1)'\n});\nconst DefaultLoadingIcon = props => {\n  const {\n    prefixCls,\n    loading,\n    existIcon,\n    className,\n    style,\n    mount\n  } = props;\n  const visible = !!loading;\n  if (existIcon) {\n    return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n      prefixCls: prefixCls,\n      className: className,\n      style: style\n    });\n  }\n  return /*#__PURE__*/React.createElement(CSSMotion, {\n    visible: visible,\n    // Used for minus flex gap style only\n    motionName: `${prefixCls}-loading-icon-motion`,\n    motionAppear: !mount,\n    motionEnter: !mount,\n    motionLeave: !mount,\n    removeOnLeave: true,\n    onAppearStart: getCollapsedWidth,\n    onAppearActive: getRealWidth,\n    onEnterStart: getCollapsedWidth,\n    onEnterActive: getRealWidth,\n    onLeaveStart: getRealWidth,\n    onLeaveActive: getCollapsedWidth\n  }, (_ref, ref) => {\n    let {\n      className: motionCls,\n      style: motionStyle\n    } = _ref;\n    const mergedStyle = Object.assign(Object.assign({}, style), motionStyle);\n    return /*#__PURE__*/React.createElement(InnerLoadingIcon, {\n      prefixCls: prefixCls,\n      className: classNames(className, motionCls),\n      style: mergedStyle,\n      ref: ref\n    });\n  });\n};\nexport default DefaultLoadingIcon;","const genButtonBorderStyle = (buttonTypeCls, borderColor) => ({\n  // Border\n  [`> span, > ${buttonTypeCls}`]: {\n    '&:not(:last-child)': {\n      [`&, & > ${buttonTypeCls}`]: {\n        '&:not(:disabled)': {\n          borderInlineEndColor: borderColor\n        }\n      }\n    },\n    '&:not(:first-child)': {\n      [`&, & > ${buttonTypeCls}`]: {\n        '&:not(:disabled)': {\n          borderInlineStartColor: borderColor\n        }\n      }\n    }\n  }\n});\nconst genGroupStyle = token => {\n  const {\n    componentCls,\n    fontSize,\n    lineWidth,\n    groupBorderColor,\n    colorErrorHover\n  } = token;\n  return {\n    [`${componentCls}-group`]: [{\n      position: 'relative',\n      display: 'inline-flex',\n      // Border\n      [`> span, > ${componentCls}`]: {\n        '&:not(:last-child)': {\n          [`&, & > ${componentCls}`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        },\n        '&:not(:first-child)': {\n          marginInlineStart: token.calc(lineWidth).mul(-1).equal(),\n          [`&, & > ${componentCls}`]: {\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0\n          }\n        }\n      },\n      [componentCls]: {\n        position: 'relative',\n        zIndex: 1,\n        '&:hover, &:focus, &:active': {\n          zIndex: 2\n        },\n        '&[disabled]': {\n          zIndex: 0\n        }\n      },\n      [`${componentCls}-icon-only`]: {\n        fontSize\n      }\n    },\n    // Border Color\n    genButtonBorderStyle(`${componentCls}-primary`, groupBorderColor), genButtonBorderStyle(`${componentCls}-danger`, colorErrorHover)]\n  };\n};\nexport default genGroupStyle;","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"b\"],\n  _excluded2 = [\"v\"];\nimport { FastColor } from '@ant-design/fast-color';\nexport var getRoundNumber = function getRoundNumber(value) {\n  return Math.round(Number(value || 0));\n};\nvar convertHsb2Hsv = function convertHsb2Hsv(color) {\n  if (color instanceof FastColor) {\n    return color;\n  }\n  if (color && _typeof(color) === 'object' && 'h' in color && 'b' in color) {\n    var _ref = color,\n      b = _ref.b,\n      resets = _objectWithoutProperties(_ref, _excluded);\n    return _objectSpread(_objectSpread({}, resets), {}, {\n      v: b\n    });\n  }\n  if (typeof color === 'string' && /hsb/.test(color)) {\n    return color.replace(/hsb/, 'hsv');\n  }\n  return color;\n};\nexport var Color = /*#__PURE__*/function (_FastColor) {\n  _inherits(Color, _FastColor);\n  var _super = _createSuper(Color);\n  function Color(color) {\n    _classCallCheck(this, Color);\n    return _super.call(this, convertHsb2Hsv(color));\n  }\n  _createClass(Color, [{\n    key: \"toHsbString\",\n    value: function toHsbString() {\n      var hsb = this.toHsb();\n      var saturation = getRoundNumber(hsb.s * 100);\n      var lightness = getRoundNumber(hsb.b * 100);\n      var hue = getRoundNumber(hsb.h);\n      var alpha = hsb.a;\n      var hsbString = \"hsb(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%)\");\n      var hsbaString = \"hsba(\".concat(hue, \", \").concat(saturation, \"%, \").concat(lightness, \"%, \").concat(alpha.toFixed(alpha === 0 ? 0 : 2), \")\");\n      return alpha === 1 ? hsbString : hsbaString;\n    }\n  }, {\n    key: \"toHsb\",\n    value: function toHsb() {\n      var _this$toHsv = this.toHsv(),\n        v = _this$toHsv.v,\n        resets = _objectWithoutProperties(_this$toHsv, _excluded2);\n      return _objectSpread(_objectSpread({}, resets), {}, {\n        b: v,\n        a: this.a\n      });\n    }\n  }]);\n  return Color;\n}(FastColor);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { Color } from \"./color\";\nexport var ColorPickerPrefixCls = 'rc-color-picker';\nexport var generateColor = function generateColor(color) {\n  if (color instanceof Color) {\n    return color;\n  }\n  return new Color(color);\n};\nexport var defaultColor = generateColor('#1677ff');\nexport var calculateColor = function calculateColor(props) {\n  var offset = props.offset,\n    targetRef = props.targetRef,\n    containerRef = props.containerRef,\n    color = props.color,\n    type = props.type;\n  var _containerRef$current = containerRef.current.getBoundingClientRect(),\n    width = _containerRef$current.width,\n    height = _containerRef$current.height;\n  var _targetRef$current$ge = targetRef.current.getBoundingClientRect(),\n    targetWidth = _targetRef$current$ge.width,\n    targetHeight = _targetRef$current$ge.height;\n  var centerOffsetX = targetWidth / 2;\n  var centerOffsetY = targetHeight / 2;\n  var saturation = (offset.x + centerOffsetX) / width;\n  var bright = 1 - (offset.y + centerOffsetY) / height;\n  var hsb = color.toHsb();\n  var alphaOffset = saturation;\n  var hueOffset = (offset.x + centerOffsetX) / width * 360;\n  if (type) {\n    switch (type) {\n      case 'hue':\n        return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n          h: hueOffset <= 0 ? 0 : hueOffset\n        }));\n      case 'alpha':\n        return generateColor(_objectSpread(_objectSpread({}, hsb), {}, {\n          a: alphaOffset <= 0 ? 0 : alphaOffset\n        }));\n    }\n  }\n  return generateColor({\n    h: hsb.h,\n    s: saturation <= 0 ? 0 : saturation,\n    b: bright >= 1 ? 1 : bright,\n    a: hsb.a\n  });\n};\nexport var calcOffset = function calcOffset(color, type) {\n  var hsb = color.toHsb();\n  switch (type) {\n    case 'hue':\n      return {\n        x: hsb.h / 360 * 100,\n        y: 50\n      };\n    case 'alpha':\n      return {\n        x: color.a * 100,\n        y: 50\n      };\n\n    // Picker panel\n    default:\n      return {\n        x: hsb.s * 100,\n        y: (1 - hsb.b) * 100\n      };\n  }\n};","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport { Color as RcColor } from '@rc-component/color-picker';\nexport const toHexFormat = (value, alpha) => (value === null || value === void 0 ? void 0 : value.replace(/[^\\w/]/g, '').slice(0, alpha ? 8 : 6)) || '';\nexport const getHex = (value, alpha) => value ? toHexFormat(value, alpha) : '';\nexport let AggregationColor = /*#__PURE__*/function () {\n  function AggregationColor(color) {\n    _classCallCheck(this, AggregationColor);\n    var _a;\n    this.cleared = false;\n    // Clone from another AggregationColor\n    if (color instanceof AggregationColor) {\n      this.metaColor = color.metaColor.clone();\n      this.colors = (_a = color.colors) === null || _a === void 0 ? void 0 : _a.map(info => ({\n        color: new AggregationColor(info.color),\n        percent: info.percent\n      }));\n      this.cleared = color.cleared;\n      return;\n    }\n    const isArray = Array.isArray(color);\n    if (isArray && color.length) {\n      this.colors = color.map(_ref => {\n        let {\n          color: c,\n          percent\n        } = _ref;\n        return {\n          color: new AggregationColor(c),\n          percent\n        };\n      });\n      this.metaColor = new RcColor(this.colors[0].color.metaColor);\n    } else {\n      this.metaColor = new RcColor(isArray ? '' : color);\n    }\n    if (!color || isArray && !this.colors) {\n      this.metaColor = this.metaColor.setA(0);\n      this.cleared = true;\n    }\n  }\n  return _createClass(AggregationColor, [{\n    key: \"toHsb\",\n    value: function toHsb() {\n      return this.metaColor.toHsb();\n    }\n  }, {\n    key: \"toHsbString\",\n    value: function toHsbString() {\n      return this.metaColor.toHsbString();\n    }\n  }, {\n    key: \"toHex\",\n    value: function toHex() {\n      return getHex(this.toHexString(), this.metaColor.a < 1);\n    }\n  }, {\n    key: \"toHexString\",\n    value: function toHexString() {\n      return this.metaColor.toHexString();\n    }\n  }, {\n    key: \"toRgb\",\n    value: function toRgb() {\n      return this.metaColor.toRgb();\n    }\n  }, {\n    key: \"toRgbString\",\n    value: function toRgbString() {\n      return this.metaColor.toRgbString();\n    }\n  }, {\n    key: \"isGradient\",\n    value: function isGradient() {\n      return !!this.colors && !this.cleared;\n    }\n  }, {\n    key: \"getColors\",\n    value: function getColors() {\n      return this.colors || [{\n        color: this,\n        percent: 0\n      }];\n    }\n  }, {\n    key: \"toCssString\",\n    value: function toCssString() {\n      const {\n        colors\n      } = this;\n      // CSS line-gradient\n      if (colors) {\n        const colorsStr = colors.map(c => `${c.color.toRgbString()} ${c.percent}%`).join(', ');\n        return `linear-gradient(90deg, ${colorsStr})`;\n      }\n      return this.metaColor.toRgbString();\n    }\n  }, {\n    key: \"equals\",\n    value: function equals(color) {\n      if (!color || this.isGradient() !== color.isGradient()) {\n        return false;\n      }\n      if (!this.isGradient()) {\n        return this.toHexString() === color.toHexString();\n      }\n      return this.colors.length === color.colors.length && this.colors.every((c, i) => {\n        const target = color.colors[i];\n        return c.percent === target.percent && c.color.equals(target.color);\n      });\n    }\n  }]);\n}();","\"use client\";\n\nimport React, { useMemo } from 'react';\nimport { ColorBlock, Color as RcColor } from '@rc-component/color-picker';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport Collapse from '../../collapse';\nimport { useLocale } from '../../locale';\nimport { useToken } from '../../theme/internal';\nimport { generateColor } from '../util';\nconst genPresetColor = list => list.map(value => {\n  value.colors = value.colors.map(generateColor);\n  return value;\n});\nexport const isBright = (value, bgColorToken) => {\n  const {\n    r,\n    g,\n    b,\n    a\n  } = value.toRgb();\n  const hsv = new RcColor(value.toRgbString()).onBackground(bgColorToken).toHsv();\n  if (a <= 0.5) {\n    // Adapted to dark mode\n    return hsv.v > 0.5;\n  }\n  return r * 0.299 + g * 0.587 + b * 0.114 > 192;\n};\nconst genCollapsePanelKey = (preset, index) => {\n  var _a;\n  const mergedKey = (_a = preset.key) !== null && _a !== void 0 ? _a : index;\n  return `panel-${mergedKey}`;\n};\nconst ColorPresets = _ref => {\n  let {\n    prefixCls,\n    presets,\n    value: color,\n    onChange\n  } = _ref;\n  const [locale] = useLocale('ColorPicker');\n  const [, token] = useToken();\n  const [presetsValue] = useMergedState(genPresetColor(presets), {\n    value: genPresetColor(presets),\n    postState: genPresetColor\n  });\n  const colorPresetsPrefixCls = `${prefixCls}-presets`;\n  const activeKeys = useMemo(() => presetsValue.reduce((acc, preset, index) => {\n    const {\n      defaultOpen = true\n    } = preset;\n    if (defaultOpen) {\n      acc.push(genCollapsePanelKey(preset, index));\n    }\n    return acc;\n  }, []), [presetsValue]);\n  const handleClick = colorValue => {\n    onChange === null || onChange === void 0 ? void 0 : onChange(colorValue);\n  };\n  const items = presetsValue.map((preset, index) => {\n    var _a;\n    return {\n      key: genCollapsePanelKey(preset, index),\n      label: /*#__PURE__*/React.createElement(\"div\", {\n        className: `${colorPresetsPrefixCls}-label`\n      }, preset === null || preset === void 0 ? void 0 : preset.label),\n      children: (/*#__PURE__*/React.createElement(\"div\", {\n        className: `${colorPresetsPrefixCls}-items`\n      }, Array.isArray(preset === null || preset === void 0 ? void 0 : preset.colors) && ((_a = preset.colors) === null || _a === void 0 ? void 0 : _a.length) > 0 ? preset.colors.map((presetColor, index) => (/*#__PURE__*/React.createElement(ColorBlock\n      // eslint-disable-next-line react/no-array-index-key\n      , {\n        // eslint-disable-next-line react/no-array-index-key\n        key: `preset-${index}-${presetColor.toHexString()}`,\n        color: generateColor(presetColor).toRgbString(),\n        prefixCls: prefixCls,\n        className: classNames(`${colorPresetsPrefixCls}-color`, {\n          [`${colorPresetsPrefixCls}-color-checked`]: presetColor.toHexString() === (color === null || color === void 0 ? void 0 : color.toHexString()),\n          [`${colorPresetsPrefixCls}-color-bright`]: isBright(presetColor, token.colorBgElevated)\n        }),\n        onClick: () => handleClick(presetColor)\n      }))) : (/*#__PURE__*/React.createElement(\"span\", {\n        className: `${colorPresetsPrefixCls}-empty`\n      }, locale.presetEmpty))))\n    };\n  });\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: colorPresetsPrefixCls\n  }, /*#__PURE__*/React.createElement(Collapse, {\n    defaultActiveKey: activeKeys,\n    ghost: true,\n    items: items\n  }));\n};\nexport default ColorPresets;","import { AggregationColor } from '../../color-picker/color';\nimport { isBright } from '../../color-picker/components/ColorPresets';\nimport { getLineHeight, mergeToken } from '../../theme/internal';\nexport const prepareToken = token => {\n  const {\n    paddingInline,\n    onlyIconSize\n  } = token;\n  const buttonToken = mergeToken(token, {\n    buttonPaddingHorizontal: paddingInline,\n    buttonPaddingVertical: 0,\n    buttonIconOnlyFontSize: onlyIconSize\n  });\n  return buttonToken;\n};\nexport const prepareComponentToken = token => {\n  var _a, _b, _c, _d, _e, _f;\n  const contentFontSize = (_a = token.contentFontSize) !== null && _a !== void 0 ? _a : token.fontSize;\n  const contentFontSizeSM = (_b = token.contentFontSizeSM) !== null && _b !== void 0 ? _b : token.fontSize;\n  const contentFontSizeLG = (_c = token.contentFontSizeLG) !== null && _c !== void 0 ? _c : token.fontSizeLG;\n  const contentLineHeight = (_d = token.contentLineHeight) !== null && _d !== void 0 ? _d : getLineHeight(contentFontSize);\n  const contentLineHeightSM = (_e = token.contentLineHeightSM) !== null && _e !== void 0 ? _e : getLineHeight(contentFontSizeSM);\n  const contentLineHeightLG = (_f = token.contentLineHeightLG) !== null && _f !== void 0 ? _f : getLineHeight(contentFontSizeLG);\n  const solidTextColor = isBright(new AggregationColor(token.colorBgSolid), '#fff') ? '#000' : '#fff';\n  return {\n    fontWeight: 400,\n    defaultShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlTmpOutline}`,\n    primaryShadow: `0 ${token.controlOutlineWidth}px 0 ${token.controlOutline}`,\n    dangerShadow: `0 ${token.controlOutlineWidth}px 0 ${token.colorErrorOutline}`,\n    primaryColor: token.colorTextLightSolid,\n    dangerColor: token.colorTextLightSolid,\n    borderColorDisabled: token.colorBorder,\n    defaultGhostColor: token.colorBgContainer,\n    ghostBg: 'transparent',\n    defaultGhostBorderColor: token.colorBgContainer,\n    paddingInline: token.paddingContentHorizontal - token.lineWidth,\n    paddingInlineLG: token.paddingContentHorizontal - token.lineWidth,\n    paddingInlineSM: 8 - token.lineWidth,\n    onlyIconSize: 'inherit',\n    onlyIconSizeSM: 'inherit',\n    onlyIconSizeLG: 'inherit',\n    groupBorderColor: token.colorPrimaryHover,\n    linkHoverBg: 'transparent',\n    textTextColor: token.colorText,\n    textTextHoverColor: token.colorText,\n    textTextActiveColor: token.colorText,\n    textHoverBg: token.colorFillTertiary,\n    defaultColor: token.colorText,\n    defaultBg: token.colorBgContainer,\n    defaultBorderColor: token.colorBorder,\n    defaultBorderColorDisabled: token.colorBorder,\n    defaultHoverBg: token.colorBgContainer,\n    defaultHoverColor: token.colorPrimaryHover,\n    defaultHoverBorderColor: token.colorPrimaryHover,\n    defaultActiveBg: token.colorBgContainer,\n    defaultActiveColor: token.colorPrimaryActive,\n    defaultActiveBorderColor: token.colorPrimaryActive,\n    solidTextColor,\n    contentFontSize,\n    contentFontSizeSM,\n    contentFontSizeLG,\n    contentLineHeight,\n    contentLineHeightSM,\n    contentLineHeightLG,\n    paddingBlock: Math.max((token.controlHeight - contentFontSize * contentLineHeight) / 2 - token.lineWidth, 0),\n    paddingBlockSM: Math.max((token.controlHeightSM - contentFontSizeSM * contentLineHeightSM) / 2 - token.lineWidth, 0),\n    paddingBlockLG: Math.max((token.controlHeightLG - contentFontSizeLG * contentLineHeightLG) / 2 - token.lineWidth, 0)\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetIcon } from '../../style';\nimport { PresetColors } from '../../theme/interface';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genGroupStyle from './group';\nimport { prepareComponentToken, prepareToken } from './token';\n// ============================== Shared ==============================\nconst genSharedButtonStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    fontWeight,\n    opacityLoading,\n    motionDurationSlow,\n    motionEaseInOut,\n    marginXS,\n    calc\n  } = token;\n  return {\n    [componentCls]: {\n      outline: 'none',\n      position: 'relative',\n      display: 'inline-flex',\n      gap: token.marginXS,\n      alignItems: 'center',\n      justifyContent: 'center',\n      fontWeight,\n      whiteSpace: 'nowrap',\n      textAlign: 'center',\n      backgroundImage: 'none',\n      background: 'transparent',\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      cursor: 'pointer',\n      transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n      userSelect: 'none',\n      touchAction: 'manipulation',\n      color: token.colorText,\n      '&:disabled > *': {\n        pointerEvents: 'none'\n      },\n      // https://github.com/ant-design/ant-design/issues/51380\n      [`${componentCls}-icon > svg`]: resetIcon(),\n      '> a': {\n        color: 'currentColor'\n      },\n      '&:not(:disabled)': genFocusStyle(token),\n      [`&${componentCls}-two-chinese-chars::first-letter`]: {\n        letterSpacing: '0.34em'\n      },\n      [`&${componentCls}-two-chinese-chars > *:not(${iconCls})`]: {\n        marginInlineEnd: '-0.34em',\n        letterSpacing: '0.34em'\n      },\n      [`&${componentCls}-icon-only`]: {\n        paddingInline: 0,\n        // make `btn-icon-only` not too narrow\n        [`&${componentCls}-compact-item`]: {\n          flex: 'none'\n        },\n        [`&${componentCls}-round`]: {\n          width: 'auto'\n        }\n      },\n      // Loading\n      [`&${componentCls}-loading`]: {\n        opacity: opacityLoading,\n        cursor: 'default'\n      },\n      [`${componentCls}-loading-icon`]: {\n        transition: ['width', 'opacity', 'margin'].map(transition => `${transition} ${motionDurationSlow} ${motionEaseInOut}`).join(',')\n      },\n      // iconPosition\n      [`&:not(${componentCls}-icon-end)`]: {\n        [`${componentCls}-loading-icon-motion`]: {\n          '&-appear-start, &-enter-start': {\n            marginInlineEnd: calc(marginXS).mul(-1).equal()\n          },\n          '&-appear-active, &-enter-active': {\n            marginInlineEnd: 0\n          },\n          '&-leave-start': {\n            marginInlineEnd: 0\n          },\n          '&-leave-active': {\n            marginInlineEnd: calc(marginXS).mul(-1).equal()\n          }\n        }\n      },\n      '&-icon-end': {\n        flexDirection: 'row-reverse',\n        [`${componentCls}-loading-icon-motion`]: {\n          '&-appear-start, &-enter-start': {\n            marginInlineStart: calc(marginXS).mul(-1).equal()\n          },\n          '&-appear-active, &-enter-active': {\n            marginInlineStart: 0\n          },\n          '&-leave-start': {\n            marginInlineStart: 0\n          },\n          '&-leave-active': {\n            marginInlineStart: calc(marginXS).mul(-1).equal()\n          }\n        }\n      }\n    }\n  };\n};\nconst genHoverActiveButtonStyle = (btnCls, hoverStyle, activeStyle) => ({\n  [`&:not(:disabled):not(${btnCls}-disabled)`]: {\n    '&:hover': hoverStyle,\n    '&:active': activeStyle\n  }\n});\n// ============================== Shape ===============================\nconst genCircleButtonStyle = token => ({\n  minWidth: token.controlHeight,\n  paddingInlineStart: 0,\n  paddingInlineEnd: 0,\n  borderRadius: '50%'\n});\nconst genRoundButtonStyle = token => ({\n  borderRadius: token.controlHeight,\n  paddingInlineStart: token.calc(token.controlHeight).div(2).equal(),\n  paddingInlineEnd: token.calc(token.controlHeight).div(2).equal()\n});\nconst genDisabledStyle = token => ({\n  cursor: 'not-allowed',\n  borderColor: token.borderColorDisabled,\n  color: token.colorTextDisabled,\n  background: token.colorBgContainerDisabled,\n  boxShadow: 'none'\n});\nconst genGhostButtonStyle = (btnCls, background, textColor, borderColor, textColorDisabled, borderColorDisabled, hoverStyle, activeStyle) => ({\n  [`&${btnCls}-background-ghost`]: Object.assign(Object.assign({\n    color: textColor || undefined,\n    background,\n    borderColor: borderColor || undefined,\n    boxShadow: 'none'\n  }, genHoverActiveButtonStyle(btnCls, Object.assign({\n    background\n  }, hoverStyle), Object.assign({\n    background\n  }, activeStyle))), {\n    '&:disabled': {\n      cursor: 'not-allowed',\n      color: textColorDisabled || undefined,\n      borderColor: borderColorDisabled || undefined\n    }\n  })\n});\nconst genSolidDisabledButtonStyle = token => ({\n  [`&:disabled, &${token.componentCls}-disabled`]: Object.assign({}, genDisabledStyle(token))\n});\nconst genPureDisabledButtonStyle = token => ({\n  [`&:disabled, &${token.componentCls}-disabled`]: {\n    cursor: 'not-allowed',\n    color: token.colorTextDisabled\n  }\n});\n// ============================== Variant =============================\nconst genVariantButtonStyle = (token, hoverStyle, activeStyle, variant) => {\n  const isPureDisabled = variant && ['link', 'text'].includes(variant);\n  const genDisabledButtonStyle = isPureDisabled ? genPureDisabledButtonStyle : genSolidDisabledButtonStyle;\n  return Object.assign(Object.assign({}, genDisabledButtonStyle(token)), genHoverActiveButtonStyle(token.componentCls, hoverStyle, activeStyle));\n};\nconst genSolidButtonStyle = (token, textColor, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-solid`]: Object.assign({\n    color: textColor,\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genOutlinedDashedButtonStyle = (token, borderColor, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-outlined, &${token.componentCls}-variant-dashed`]: Object.assign({\n    borderColor,\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genDashedButtonStyle = token => ({\n  [`&${token.componentCls}-variant-dashed`]: {\n    borderStyle: 'dashed'\n  }\n});\nconst genFilledButtonStyle = (token, background, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-filled`]: Object.assign({\n    boxShadow: 'none',\n    background\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle))\n});\nconst genTextLinkButtonStyle = (token, textColor, variant, hoverStyle, activeStyle) => ({\n  [`&${token.componentCls}-variant-${variant}`]: Object.assign({\n    color: textColor,\n    boxShadow: 'none'\n  }, genVariantButtonStyle(token, hoverStyle, activeStyle, variant))\n});\n// =============================== Color ==============================\nconst genPresetColorStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return PresetColors.reduce((prev, colorKey) => {\n    const darkColor = token[`${colorKey}6`];\n    const lightColor = token[`${colorKey}1`];\n    const hoverColor = token[`${colorKey}5`];\n    const lightHoverColor = token[`${colorKey}2`];\n    const lightBorderColor = token[`${colorKey}3`];\n    const activeColor = token[`${colorKey}7`];\n    const boxShadow = `0 ${unit(token.controlOutlineWidth)} 0 ${token[`${colorKey}1`]}`;\n    return Object.assign(Object.assign({}, prev), {\n      [`&${componentCls}-color-${colorKey}`]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n        color: darkColor,\n        boxShadow\n      }, genSolidButtonStyle(token, token.colorTextLightSolid, darkColor, {\n        background: hoverColor\n      }, {\n        background: activeColor\n      })), genOutlinedDashedButtonStyle(token, darkColor, token.colorBgContainer, {\n        color: hoverColor,\n        borderColor: hoverColor,\n        background: token.colorBgContainer\n      }, {\n        color: activeColor,\n        borderColor: activeColor,\n        background: token.colorBgContainer\n      })), genDashedButtonStyle(token)), genFilledButtonStyle(token, lightColor, {\n        background: lightHoverColor\n      }, {\n        background: lightBorderColor\n      })), genTextLinkButtonStyle(token, darkColor, 'link', {\n        color: hoverColor\n      }, {\n        color: activeColor\n      })), genTextLinkButtonStyle(token, darkColor, 'text', {\n        color: hoverColor,\n        background: lightColor\n      }, {\n        color: activeColor,\n        background: lightBorderColor\n      }))\n    });\n  }, {});\n};\nconst genDefaultButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.defaultColor,\n  boxShadow: token.defaultShadow\n}, genSolidButtonStyle(token, token.solidTextColor, token.colorBgSolid, {\n  color: token.solidTextColor,\n  background: token.colorBgSolidHover\n}, {\n  color: token.solidTextColor,\n  background: token.colorBgSolidActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorFillTertiary, {\n  background: token.colorFillSecondary\n}, {\n  background: token.colorFill\n})), genTextLinkButtonStyle(token, token.textTextColor, 'link', {\n  color: token.colorLinkHover,\n  background: token.linkHoverBg\n}, {\n  color: token.colorLinkActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.defaultGhostColor, token.defaultGhostBorderColor, token.colorTextDisabled, token.colorBorder));\nconst genPrimaryButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.colorPrimary,\n  boxShadow: token.primaryShadow\n}, genOutlinedDashedButtonStyle(token, token.colorPrimary, token.colorBgContainer, {\n  color: token.colorPrimaryTextHover,\n  borderColor: token.colorPrimaryHover,\n  background: token.colorBgContainer\n}, {\n  color: token.colorPrimaryTextActive,\n  borderColor: token.colorPrimaryActive,\n  background: token.colorBgContainer\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorPrimaryBg, {\n  background: token.colorPrimaryBgHover\n}, {\n  background: token.colorPrimaryBorder\n})), genTextLinkButtonStyle(token, token.colorLink, 'text', {\n  color: token.colorPrimaryTextHover,\n  background: token.colorPrimaryBg\n}, {\n  color: token.colorPrimaryTextActive,\n  background: token.colorPrimaryBorder\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorPrimary, token.colorPrimary, token.colorTextDisabled, token.colorBorder, {\n  color: token.colorPrimaryHover,\n  borderColor: token.colorPrimaryHover\n}, {\n  color: token.colorPrimaryActive,\n  borderColor: token.colorPrimaryActive\n}));\nconst genDangerousStyle = token => Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({\n  color: token.colorError,\n  boxShadow: token.dangerShadow\n}, genSolidButtonStyle(token, token.dangerColor, token.colorError, {\n  background: token.colorErrorHover\n}, {\n  background: token.colorErrorActive\n})), genOutlinedDashedButtonStyle(token, token.colorError, token.colorBgContainer, {\n  color: token.colorErrorHover,\n  borderColor: token.colorErrorBorderHover\n}, {\n  color: token.colorErrorActive,\n  borderColor: token.colorErrorActive\n})), genDashedButtonStyle(token)), genFilledButtonStyle(token, token.colorErrorBg, {\n  background: token.colorErrorBgFilledHover\n}, {\n  background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'text', {\n  color: token.colorErrorHover,\n  background: token.colorErrorBg\n}, {\n  color: token.colorErrorHover,\n  background: token.colorErrorBgActive\n})), genTextLinkButtonStyle(token, token.colorError, 'link', {\n  color: token.colorErrorHover\n}, {\n  color: token.colorErrorActive\n})), genGhostButtonStyle(token.componentCls, token.ghostBg, token.colorError, token.colorError, token.colorTextDisabled, token.colorBorder, {\n  color: token.colorErrorHover,\n  borderColor: token.colorErrorHover\n}, {\n  color: token.colorErrorActive,\n  borderColor: token.colorErrorActive\n}));\nconst genColorButtonStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return Object.assign({\n    [`${componentCls}-color-default`]: genDefaultButtonStyle(token),\n    [`${componentCls}-color-primary`]: genPrimaryButtonStyle(token),\n    [`${componentCls}-color-dangerous`]: genDangerousStyle(token)\n  }, genPresetColorStyle(token));\n};\n// =========== Compatible with versions earlier than 5.21.0 ===========\nconst genCompatibleButtonStyle = token => Object.assign(Object.assign(Object.assign(Object.assign({}, genOutlinedDashedButtonStyle(token, token.defaultBorderColor, token.defaultBg, {\n  color: token.defaultHoverColor,\n  borderColor: token.defaultHoverBorderColor,\n  background: token.defaultHoverBg\n}, {\n  color: token.defaultActiveColor,\n  borderColor: token.defaultActiveBorderColor,\n  background: token.defaultActiveBg\n})), genTextLinkButtonStyle(token, token.textTextColor, 'text', {\n  color: token.textTextHoverColor,\n  background: token.textHoverBg\n}, {\n  color: token.textTextActiveColor,\n  background: token.colorBgTextActive\n})), genSolidButtonStyle(token, token.primaryColor, token.colorPrimary, {\n  background: token.colorPrimaryHover,\n  color: token.primaryColor\n}, {\n  background: token.colorPrimaryActive,\n  color: token.primaryColor\n})), genTextLinkButtonStyle(token, token.colorLink, 'link', {\n  color: token.colorLinkHover,\n  background: token.linkHoverBg\n}, {\n  color: token.colorLinkActive\n}));\n// =============================== Size ===============================\nconst genButtonStyle = function (token) {\n  let prefixCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  const {\n    componentCls,\n    controlHeight,\n    fontSize,\n    borderRadius,\n    buttonPaddingHorizontal,\n    iconCls,\n    buttonPaddingVertical,\n    buttonIconOnlyFontSize\n  } = token;\n  return [{\n    [prefixCls]: {\n      fontSize,\n      height: controlHeight,\n      padding: `${unit(buttonPaddingVertical)} ${unit(buttonPaddingHorizontal)}`,\n      borderRadius,\n      [`&${componentCls}-icon-only`]: {\n        width: controlHeight,\n        [iconCls]: {\n          fontSize: buttonIconOnlyFontSize\n        }\n      }\n    }\n  },\n  // Shape - patch prefixCls again to override solid border radius style\n  {\n    [`${componentCls}${componentCls}-circle${prefixCls}`]: genCircleButtonStyle(token)\n  }, {\n    [`${componentCls}${componentCls}-round${prefixCls}`]: genRoundButtonStyle(token)\n  }];\n};\nconst genSizeBaseButtonStyle = token => {\n  const baseToken = mergeToken(token, {\n    fontSize: token.contentFontSize\n  });\n  return genButtonStyle(baseToken, token.componentCls);\n};\nconst genSizeSmallButtonStyle = token => {\n  const smallToken = mergeToken(token, {\n    controlHeight: token.controlHeightSM,\n    fontSize: token.contentFontSizeSM,\n    padding: token.paddingXS,\n    buttonPaddingHorizontal: token.paddingInlineSM,\n    buttonPaddingVertical: 0,\n    borderRadius: token.borderRadiusSM,\n    buttonIconOnlyFontSize: token.onlyIconSizeSM\n  });\n  return genButtonStyle(smallToken, `${token.componentCls}-sm`);\n};\nconst genSizeLargeButtonStyle = token => {\n  const largeToken = mergeToken(token, {\n    controlHeight: token.controlHeightLG,\n    fontSize: token.contentFontSizeLG,\n    buttonPaddingHorizontal: token.paddingInlineLG,\n    buttonPaddingVertical: 0,\n    borderRadius: token.borderRadiusLG,\n    buttonIconOnlyFontSize: token.onlyIconSizeLG\n  });\n  return genButtonStyle(largeToken, `${token.componentCls}-lg`);\n};\nconst genBlockButtonStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: {\n      [`&${componentCls}-block`]: {\n        width: '100%'\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Button', token => {\n  const buttonToken = prepareToken(token);\n  return [\n  // Shared\n  genSharedButtonStyle(buttonToken),\n  // Size\n  genSizeBaseButtonStyle(buttonToken), genSizeSmallButtonStyle(buttonToken), genSizeLargeButtonStyle(buttonToken),\n  // Block\n  genBlockButtonStyle(buttonToken),\n  // Color\n  genColorButtonStyle(buttonToken),\n  // https://github.com/ant-design/ant-design/issues/50969\n  genCompatibleButtonStyle(buttonToken),\n  // Button Group\n  genGroupStyle(buttonToken)];\n}, prepareComponentToken, {\n  unitless: {\n    fontWeight: true,\n    contentLineHeight: true,\n    contentLineHeightSM: true,\n    contentLineHeightLG: true\n  }\n});","// handle border collapse\nfunction compactItemBorder(token, parentCls, options) {\n  const {\n    focusElCls,\n    focus,\n    borderElCls\n  } = options;\n  const childCombinator = borderElCls ? '> *' : '';\n  const hoverEffects = ['hover', focus ? 'focus' : null, 'active'].filter(Boolean).map(n => `&:${n} ${childCombinator}`).join(',');\n  return {\n    [`&-item:not(${parentCls}-last-item)`]: {\n      marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal()\n    },\n    '&-item': Object.assign(Object.assign({\n      [hoverEffects]: {\n        zIndex: 2\n      }\n    }, focusElCls ? {\n      [`&${focusElCls}`]: {\n        zIndex: 2\n      }\n    } : {}), {\n      [`&[disabled] ${childCombinator}`]: {\n        zIndex: 0\n      }\n    })\n  };\n}\n// handle border-radius\nfunction compactItemBorderRadius(prefixCls, parentCls, options) {\n  const {\n    borderElCls\n  } = options;\n  const childCombinator = borderElCls ? `> ${borderElCls}` : '';\n  return {\n    [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item) ${childCombinator}`]: {\n      borderRadius: 0\n    },\n    [`&-item:not(${parentCls}-last-item)${parentCls}-first-item`]: {\n      [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`&-item:not(${parentCls}-first-item)${parentCls}-last-item`]: {\n      [`& ${childCombinator}, &${prefixCls}-sm ${childCombinator}, &${prefixCls}-lg ${childCombinator}`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    }\n  };\n}\nexport function genCompactItemStyle(token) {\n  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    focus: true\n  };\n  const {\n    componentCls\n  } = token;\n  const compactCls = `${componentCls}-compact`;\n  return {\n    [compactCls]: Object.assign(Object.assign({}, compactItemBorder(token, compactCls, options)), compactItemBorderRadius(componentCls, compactCls, options))\n  };\n}","function compactItemVerticalBorder(token, parentCls) {\n  return {\n    // border collapse\n    [`&-item:not(${parentCls}-last-item)`]: {\n      marginBottom: token.calc(token.lineWidth).mul(-1).equal()\n    },\n    '&-item': {\n      '&:hover,&:focus,&:active': {\n        zIndex: 2\n      },\n      '&[disabled]': {\n        zIndex: 0\n      }\n    }\n  };\n}\nfunction compactItemBorderVerticalRadius(prefixCls, parentCls) {\n  return {\n    [`&-item:not(${parentCls}-first-item):not(${parentCls}-last-item)`]: {\n      borderRadius: 0\n    },\n    [`&-item${parentCls}-first-item:not(${parentCls}-last-item)`]: {\n      [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n        borderEndEndRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`&-item${parentCls}-last-item:not(${parentCls}-first-item)`]: {\n      [`&, &${prefixCls}-sm, &${prefixCls}-lg`]: {\n        borderStartStartRadius: 0,\n        borderStartEndRadius: 0\n      }\n    }\n  };\n}\nexport function genCompactItemVerticalStyle(token) {\n  const compactCls = `${token.componentCls}-compact-vertical`;\n  return {\n    [compactCls]: Object.assign(Object.assign({}, compactItemVerticalBorder(token, compactCls)), compactItemBorderVerticalRadius(token.componentCls, compactCls))\n  };\n}","import { genCompactItemStyle } from '../../style/compact-item';\nimport { genCompactItemVerticalStyle } from '../../style/compact-item-vertical';\nimport { genSubStyleComponent } from '../../theme/internal';\nimport { prepareComponentToken, prepareToken } from './token';\nconst genButtonCompactStyle = token => {\n  const {\n    componentCls,\n    colorPrimaryHover,\n    lineWidth,\n    calc\n  } = token;\n  const insetOffset = calc(lineWidth).mul(-1).equal();\n  const getCompactBorderStyle = vertical => {\n    const selector = `${componentCls}-compact${vertical ? '-vertical' : ''}-item${componentCls}-primary:not([disabled])`;\n    return {\n      [`${selector} + ${selector}::before`]: {\n        position: 'absolute',\n        top: vertical ? insetOffset : 0,\n        insetInlineStart: vertical ? 0 : insetOffset,\n        backgroundColor: colorPrimaryHover,\n        content: '\"\"',\n        width: vertical ? '100%' : lineWidth,\n        height: vertical ? lineWidth : '100%'\n      }\n    };\n  };\n  // Special styles for Primary Button\n  return Object.assign(Object.assign({}, getCompactBorderStyle()), getCompactBorderStyle(true));\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Button', 'compact'], token => {\n  const buttonToken = prepareToken(token);\n  return [\n  // Space Compact\n  genCompactItemStyle(buttonToken), genCompactItemVerticalStyle(buttonToken), genButtonCompactStyle(buttonToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport React, { Children, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useSize from '../config-provider/hooks/useSize';\nimport { useCompactItemContext } from '../space/Compact';\nimport Group, { GroupSizeContext } from './button-group';\nimport { isTwoCNChar, isUnBorderedButtonVariant, spaceChildren } from './buttonHelpers';\nimport IconWrapper from './IconWrapper';\nimport DefaultLoadingIcon from './DefaultLoadingIcon';\nimport useStyle from './style';\nimport Compact from './style/compact';\nfunction getLoadingConfig(loading) {\n  if (typeof loading === 'object' && loading) {\n    let delay = loading === null || loading === void 0 ? void 0 : loading.delay;\n    delay = !Number.isNaN(delay) && typeof delay === 'number' ? delay : 0;\n    return {\n      loading: delay <= 0,\n      delay\n    };\n  }\n  return {\n    loading: !!loading,\n    delay: 0\n  };\n}\nconst ButtonTypeMap = {\n  default: ['default', 'outlined'],\n  primary: ['primary', 'solid'],\n  dashed: ['default', 'dashed'],\n  link: ['primary', 'link'],\n  text: ['default', 'text']\n};\nconst InternalCompoundedButton = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a, _b, _c, _d;\n  const {\n      loading = false,\n      prefixCls: customizePrefixCls,\n      color,\n      variant,\n      type,\n      danger = false,\n      shape = 'default',\n      size: customizeSize,\n      styles,\n      disabled: customDisabled,\n      className,\n      rootClassName,\n      children,\n      icon,\n      iconPosition = 'start',\n      ghost = false,\n      block = false,\n      // React does not recognize the `htmlType` prop on a DOM element. Here we pick it out of `rest`.\n      htmlType = 'button',\n      classNames: customClassNames,\n      style: customStyle = {},\n      autoInsertSpace,\n      autoFocus\n    } = props,\n    rest = __rest(props, [\"loading\", \"prefixCls\", \"color\", \"variant\", \"type\", \"danger\", \"shape\", \"size\", \"styles\", \"disabled\", \"className\", \"rootClassName\", \"children\", \"icon\", \"iconPosition\", \"ghost\", \"block\", \"htmlType\", \"classNames\", \"style\", \"autoInsertSpace\", \"autoFocus\"]);\n  // https://github.com/ant-design/ant-design/issues/47605\n  // Compatible with original `type` behavior\n  const mergedType = type || 'default';\n  const [mergedColor, mergedVariant] = useMemo(() => {\n    if (color && variant) {\n      return [color, variant];\n    }\n    const colorVariantPair = ButtonTypeMap[mergedType] || [];\n    if (danger) {\n      return ['danger', colorVariantPair[1]];\n    }\n    return colorVariantPair;\n  }, [type, color, variant, danger]);\n  const isDanger = mergedColor === 'danger';\n  const mergedColorText = isDanger ? 'dangerous' : mergedColor;\n  const {\n    getPrefixCls,\n    direction,\n    button\n  } = useContext(ConfigContext);\n  const mergedInsertSpace = (_a = autoInsertSpace !== null && autoInsertSpace !== void 0 ? autoInsertSpace : button === null || button === void 0 ? void 0 : button.autoInsertSpace) !== null && _a !== void 0 ? _a : true;\n  const prefixCls = getPrefixCls('btn', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const disabled = useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  const groupSize = useContext(GroupSizeContext);\n  const loadingOrDelay = useMemo(() => getLoadingConfig(loading), [loading]);\n  const [innerLoading, setLoading] = useState(loadingOrDelay.loading);\n  const [hasTwoCNChar, setHasTwoCNChar] = useState(false);\n  const buttonRef = useRef(null);\n  const mergedRef = useComposeRef(ref, buttonRef);\n  const needInserted = Children.count(children) === 1 && !icon && !isUnBorderedButtonVariant(mergedVariant);\n  // ========================= Mount ==========================\n  // Record for mount status.\n  // This will help to no to show the animation of loading on the first mount.\n  const isMountRef = useRef(true);\n  React.useEffect(() => {\n    isMountRef.current = false;\n    return () => {\n      isMountRef.current = true;\n    };\n  }, []);\n  // ========================= Effect =========================\n  // Loading\n  useEffect(() => {\n    let delayTimer = null;\n    if (loadingOrDelay.delay > 0) {\n      delayTimer = setTimeout(() => {\n        delayTimer = null;\n        setLoading(true);\n      }, loadingOrDelay.delay);\n    } else {\n      setLoading(loadingOrDelay.loading);\n    }\n    function cleanupTimer() {\n      if (delayTimer) {\n        clearTimeout(delayTimer);\n        delayTimer = null;\n      }\n    }\n    return cleanupTimer;\n  }, [loadingOrDelay]);\n  // Two chinese characters check\n  useEffect(() => {\n    // FIXME: for HOC usage like <FormatMessage />\n    if (!buttonRef.current || !mergedInsertSpace) {\n      return;\n    }\n    const buttonText = buttonRef.current.textContent || '';\n    if (needInserted && isTwoCNChar(buttonText)) {\n      if (!hasTwoCNChar) {\n        setHasTwoCNChar(true);\n      }\n    } else if (hasTwoCNChar) {\n      setHasTwoCNChar(false);\n    }\n  });\n  // Auto focus\n  useEffect(() => {\n    if (autoFocus && buttonRef.current) {\n      buttonRef.current.focus();\n    }\n  }, []);\n  // ========================= Events =========================\n  const handleClick = React.useCallback(e => {\n    var _a;\n    // FIXME: https://github.com/ant-design/ant-design/issues/30207\n    if (innerLoading || mergedDisabled) {\n      e.preventDefault();\n      return;\n    }\n    (_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);\n  }, [props.onClick, innerLoading, mergedDisabled]);\n  // ========================== Warn ==========================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Button');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof icon === 'string' && icon.length > 2), 'breaking', `\\`icon\\` is using ReactNode instead of string naming in v4. Please check \\`${icon}\\` at https://ant.design/components/icon`) : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!(ghost && isUnBorderedButtonVariant(mergedVariant)), 'usage', \"`link` or `text` button can't be a `ghost` button.\") : void 0;\n  }\n  // ========================== Size ==========================\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  const sizeClassNameMap = {\n    large: 'lg',\n    small: 'sm',\n    middle: undefined\n  };\n  const sizeFullName = useSize(ctxSize => {\n    var _a, _b;\n    return (_b = (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : groupSize) !== null && _b !== void 0 ? _b : ctxSize;\n  });\n  const sizeCls = sizeFullName ? (_b = sizeClassNameMap[sizeFullName]) !== null && _b !== void 0 ? _b : '' : '';\n  const iconType = innerLoading ? 'loading' : icon;\n  const linkButtonRestProps = omit(rest, ['navigate']);\n  // ========================= Render =========================\n  const classes = classNames(prefixCls, hashId, cssVarCls, {\n    [`${prefixCls}-${shape}`]: shape !== 'default' && shape,\n    // line(253 - 254): Compatible with versions earlier than 5.21.0\n    [`${prefixCls}-${mergedType}`]: mergedType,\n    [`${prefixCls}-dangerous`]: danger,\n    [`${prefixCls}-color-${mergedColorText}`]: mergedColorText,\n    [`${prefixCls}-variant-${mergedVariant}`]: mergedVariant,\n    [`${prefixCls}-${sizeCls}`]: sizeCls,\n    [`${prefixCls}-icon-only`]: !children && children !== 0 && !!iconType,\n    [`${prefixCls}-background-ghost`]: ghost && !isUnBorderedButtonVariant(mergedVariant),\n    [`${prefixCls}-loading`]: innerLoading,\n    [`${prefixCls}-two-chinese-chars`]: hasTwoCNChar && mergedInsertSpace && !innerLoading,\n    [`${prefixCls}-block`]: block,\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-icon-end`]: iconPosition === 'end'\n  }, compactItemClassnames, className, rootClassName, button === null || button === void 0 ? void 0 : button.className);\n  const fullStyle = Object.assign(Object.assign({}, button === null || button === void 0 ? void 0 : button.style), customStyle);\n  const iconClasses = classNames(customClassNames === null || customClassNames === void 0 ? void 0 : customClassNames.icon, (_c = button === null || button === void 0 ? void 0 : button.classNames) === null || _c === void 0 ? void 0 : _c.icon);\n  const iconStyle = Object.assign(Object.assign({}, (styles === null || styles === void 0 ? void 0 : styles.icon) || {}), ((_d = button === null || button === void 0 ? void 0 : button.styles) === null || _d === void 0 ? void 0 : _d.icon) || {});\n  const iconNode = icon && !innerLoading ? (/*#__PURE__*/React.createElement(IconWrapper, {\n    prefixCls: prefixCls,\n    className: iconClasses,\n    style: iconStyle\n  }, icon)) : loading && typeof loading === 'object' && loading.icon ? (/*#__PURE__*/React.createElement(IconWrapper, {\n    prefixCls: prefixCls,\n    className: iconClasses,\n    style: iconStyle\n  }, loading.icon)) : (/*#__PURE__*/React.createElement(DefaultLoadingIcon, {\n    existIcon: !!icon,\n    prefixCls: prefixCls,\n    loading: innerLoading,\n    mount: isMountRef.current\n  }));\n  const kids = children || children === 0 ? spaceChildren(children, needInserted && mergedInsertSpace) : null;\n  if (linkButtonRestProps.href !== undefined) {\n    return wrapCSSVar(/*#__PURE__*/React.createElement(\"a\", Object.assign({}, linkButtonRestProps, {\n      className: classNames(classes, {\n        [`${prefixCls}-disabled`]: mergedDisabled\n      }),\n      href: mergedDisabled ? undefined : linkButtonRestProps.href,\n      style: fullStyle,\n      onClick: handleClick,\n      ref: mergedRef,\n      tabIndex: mergedDisabled ? -1 : 0\n    }), iconNode, kids));\n  }\n  let buttonNode = /*#__PURE__*/React.createElement(\"button\", Object.assign({}, rest, {\n    type: htmlType,\n    className: classes,\n    style: fullStyle,\n    onClick: handleClick,\n    disabled: mergedDisabled,\n    ref: mergedRef\n  }), iconNode, kids, compactItemClassnames && /*#__PURE__*/React.createElement(Compact, {\n    prefixCls: prefixCls\n  }));\n  if (!isUnBorderedButtonVariant(mergedVariant)) {\n    buttonNode = /*#__PURE__*/React.createElement(Wave, {\n      component: \"Button\",\n      disabled: innerLoading\n    }, buttonNode);\n  }\n  return wrapCSSVar(buttonNode);\n});\nconst Button = InternalCompoundedButton;\nButton.Group = Group;\nButton.__ANT_BUTTON = true;\nif (process.env.NODE_ENV !== 'production') {\n  Button.displayName = 'Button';\n}\nexport default Button;","\"use client\";\n\nimport Button from './button';\nexport * from './buttonHelpers';\nexport default Button;","import * as React from 'react';\nexport var CollectionContext = /*#__PURE__*/React.createContext(null);\n/**\n * Collect all the resize event from children ResizeObserver\n */\nexport function Collection(_ref) {\n  var children = _ref.children,\n    onBatchResize = _ref.onBatchResize;\n  var resizeIdRef = React.useRef(0);\n  var resizeInfosRef = React.useRef([]);\n  var onCollectionResize = React.useContext(CollectionContext);\n  var onResize = React.useCallback(function (size, element, data) {\n    resizeIdRef.current += 1;\n    var currentId = resizeIdRef.current;\n    resizeInfosRef.current.push({\n      size: size,\n      element: element,\n      data: data\n    });\n    Promise.resolve().then(function () {\n      if (currentId === resizeIdRef.current) {\n        onBatchResize === null || onBatchResize === void 0 || onBatchResize(resizeInfosRef.current);\n        resizeInfosRef.current = [];\n      }\n    });\n\n    // Continue bubbling if parent exist\n    onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(size, element, data);\n  }, [onBatchResize, onCollectionResize]);\n  return /*#__PURE__*/React.createElement(CollectionContext.Provider, {\n    value: onResize\n  }, children);\n}","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n    if (typeof Map !== 'undefined') {\r\n        return Map;\r\n    }\r\n    /**\r\n     * Returns index in provided array that matches the specified key.\r\n     *\r\n     * @param {Array<Array>} arr\r\n     * @param {*} key\r\n     * @returns {number}\r\n     */\r\n    function getIndex(arr, key) {\r\n        var result = -1;\r\n        arr.some(function (entry, index) {\r\n            if (entry[0] === key) {\r\n                result = index;\r\n                return true;\r\n            }\r\n            return false;\r\n        });\r\n        return result;\r\n    }\r\n    return /** @class */ (function () {\r\n        function class_1() {\r\n            this.__entries__ = [];\r\n        }\r\n        Object.defineProperty(class_1.prototype, \"size\", {\r\n            /**\r\n             * @returns {boolean}\r\n             */\r\n            get: function () {\r\n                return this.__entries__.length;\r\n            },\r\n            enumerable: true,\r\n            configurable: true\r\n        });\r\n        /**\r\n         * @param {*} key\r\n         * @returns {*}\r\n         */\r\n        class_1.prototype.get = function (key) {\r\n            var index = getIndex(this.__entries__, key);\r\n            var entry = this.__entries__[index];\r\n            return entry && entry[1];\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @param {*} value\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.set = function (key, value) {\r\n            var index = getIndex(this.__entries__, key);\r\n            if (~index) {\r\n                this.__entries__[index][1] = value;\r\n            }\r\n            else {\r\n                this.__entries__.push([key, value]);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.delete = function (key) {\r\n            var entries = this.__entries__;\r\n            var index = getIndex(entries, key);\r\n            if (~index) {\r\n                entries.splice(index, 1);\r\n            }\r\n        };\r\n        /**\r\n         * @param {*} key\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.has = function (key) {\r\n            return !!~getIndex(this.__entries__, key);\r\n        };\r\n        /**\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.clear = function () {\r\n            this.__entries__.splice(0);\r\n        };\r\n        /**\r\n         * @param {Function} callback\r\n         * @param {*} [ctx=null]\r\n         * @returns {void}\r\n         */\r\n        class_1.prototype.forEach = function (callback, ctx) {\r\n            if (ctx === void 0) { ctx = null; }\r\n            for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n                var entry = _a[_i];\r\n                callback.call(ctx, entry[1], entry[0]);\r\n            }\r\n        };\r\n        return class_1;\r\n    }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n    if (typeof global !== 'undefined' && global.Math === Math) {\r\n        return global;\r\n    }\r\n    if (typeof self !== 'undefined' && self.Math === Math) {\r\n        return self;\r\n    }\r\n    if (typeof window !== 'undefined' && window.Math === Math) {\r\n        return window;\r\n    }\r\n    // eslint-disable-next-line no-new-func\r\n    return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n    if (typeof requestAnimationFrame === 'function') {\r\n        // It's required to use a bounded function because IE sometimes throws\r\n        // an \"Invalid calling object\" error if rAF is invoked without the global\r\n        // object on the left hand side.\r\n        return requestAnimationFrame.bind(global$1);\r\n    }\r\n    return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n    var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n    /**\r\n     * Invokes the original callback function and schedules new invocation if\r\n     * the \"proxy\" was called during current request.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function resolvePending() {\r\n        if (leadingCall) {\r\n            leadingCall = false;\r\n            callback();\r\n        }\r\n        if (trailingCall) {\r\n            proxy();\r\n        }\r\n    }\r\n    /**\r\n     * Callback invoked after the specified delay. It will further postpone\r\n     * invocation of the original function delegating it to the\r\n     * requestAnimationFrame.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function timeoutCallback() {\r\n        requestAnimationFrame$1(resolvePending);\r\n    }\r\n    /**\r\n     * Schedules invocation of the original function.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    function proxy() {\r\n        var timeStamp = Date.now();\r\n        if (leadingCall) {\r\n            // Reject immediately following calls.\r\n            if (timeStamp - lastCallTime < trailingTimeout) {\r\n                return;\r\n            }\r\n            // Schedule new call to be in invoked when the pending one is resolved.\r\n            // This is important for \"transitions\" which never actually start\r\n            // immediately so there is a chance that we might miss one if change\r\n            // happens amids the pending invocation.\r\n            trailingCall = true;\r\n        }\r\n        else {\r\n            leadingCall = true;\r\n            trailingCall = false;\r\n            setTimeout(timeoutCallback, delay);\r\n        }\r\n        lastCallTime = timeStamp;\r\n    }\r\n    return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserverController.\r\n     *\r\n     * @private\r\n     */\r\n    function ResizeObserverController() {\r\n        /**\r\n         * Indicates whether DOM listeners have been added.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.connected_ = false;\r\n        /**\r\n         * Tells that controller has subscribed for Mutation Events.\r\n         *\r\n         * @private {boolean}\r\n         */\r\n        this.mutationEventsAdded_ = false;\r\n        /**\r\n         * Keeps reference to the instance of MutationObserver.\r\n         *\r\n         * @private {MutationObserver}\r\n         */\r\n        this.mutationsObserver_ = null;\r\n        /**\r\n         * A list of connected observers.\r\n         *\r\n         * @private {Array<ResizeObserverSPI>}\r\n         */\r\n        this.observers_ = [];\r\n        this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n        this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n    }\r\n    /**\r\n     * Adds observer to observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be added.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.addObserver = function (observer) {\r\n        if (!~this.observers_.indexOf(observer)) {\r\n            this.observers_.push(observer);\r\n        }\r\n        // Add listeners if they haven't been added yet.\r\n        if (!this.connected_) {\r\n            this.connect_();\r\n        }\r\n    };\r\n    /**\r\n     * Removes observer from observers list.\r\n     *\r\n     * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.removeObserver = function (observer) {\r\n        var observers = this.observers_;\r\n        var index = observers.indexOf(observer);\r\n        // Remove observer if it's present in registry.\r\n        if (~index) {\r\n            observers.splice(index, 1);\r\n        }\r\n        // Remove listeners if controller has no connected observers.\r\n        if (!observers.length && this.connected_) {\r\n            this.disconnect_();\r\n        }\r\n    };\r\n    /**\r\n     * Invokes the update of observers. It will continue running updates insofar\r\n     * it detects changes.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.refresh = function () {\r\n        var changesDetected = this.updateObservers_();\r\n        // Continue running updates if changes have been detected as there might\r\n        // be future ones caused by CSS transitions.\r\n        if (changesDetected) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Updates every observer from observers list and notifies them of queued\r\n     * entries.\r\n     *\r\n     * @private\r\n     * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n     *      dimensions of it's elements.\r\n     */\r\n    ResizeObserverController.prototype.updateObservers_ = function () {\r\n        // Collect observers that have active observations.\r\n        var activeObservers = this.observers_.filter(function (observer) {\r\n            return observer.gatherActive(), observer.hasActive();\r\n        });\r\n        // Deliver notifications in a separate cycle in order to avoid any\r\n        // collisions between observers, e.g. when multiple instances of\r\n        // ResizeObserver are tracking the same element and the callback of one\r\n        // of them changes content dimensions of the observed target. Sometimes\r\n        // this may result in notifications being blocked for the rest of observers.\r\n        activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n        return activeObservers.length > 0;\r\n    };\r\n    /**\r\n     * Initializes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.connect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already added.\r\n        if (!isBrowser || this.connected_) {\r\n            return;\r\n        }\r\n        // Subscription to the \"Transitionend\" event is used as a workaround for\r\n        // delayed transitions. This way it's possible to capture at least the\r\n        // final state of an element.\r\n        document.addEventListener('transitionend', this.onTransitionEnd_);\r\n        window.addEventListener('resize', this.refresh);\r\n        if (mutationObserverSupported) {\r\n            this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n            this.mutationsObserver_.observe(document, {\r\n                attributes: true,\r\n                childList: true,\r\n                characterData: true,\r\n                subtree: true\r\n            });\r\n        }\r\n        else {\r\n            document.addEventListener('DOMSubtreeModified', this.refresh);\r\n            this.mutationEventsAdded_ = true;\r\n        }\r\n        this.connected_ = true;\r\n    };\r\n    /**\r\n     * Removes DOM listeners.\r\n     *\r\n     * @private\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.disconnect_ = function () {\r\n        // Do nothing if running in a non-browser environment or if listeners\r\n        // have been already removed.\r\n        if (!isBrowser || !this.connected_) {\r\n            return;\r\n        }\r\n        document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n        window.removeEventListener('resize', this.refresh);\r\n        if (this.mutationsObserver_) {\r\n            this.mutationsObserver_.disconnect();\r\n        }\r\n        if (this.mutationEventsAdded_) {\r\n            document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n        }\r\n        this.mutationsObserver_ = null;\r\n        this.mutationEventsAdded_ = false;\r\n        this.connected_ = false;\r\n    };\r\n    /**\r\n     * \"Transitionend\" event handler.\r\n     *\r\n     * @private\r\n     * @param {TransitionEvent} event\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n        var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n        // Detect whether transition may affect dimensions of an element.\r\n        var isReflowProperty = transitionKeys.some(function (key) {\r\n            return !!~propertyName.indexOf(key);\r\n        });\r\n        if (isReflowProperty) {\r\n            this.refresh();\r\n        }\r\n    };\r\n    /**\r\n     * Returns instance of the ResizeObserverController.\r\n     *\r\n     * @returns {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.getInstance = function () {\r\n        if (!this.instance_) {\r\n            this.instance_ = new ResizeObserverController();\r\n        }\r\n        return this.instance_;\r\n    };\r\n    /**\r\n     * Holds reference to the controller's instance.\r\n     *\r\n     * @private {ResizeObserverController}\r\n     */\r\n    ResizeObserverController.instance_ = null;\r\n    return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n    for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n        var key = _a[_i];\r\n        Object.defineProperty(target, key, {\r\n            value: props[key],\r\n            enumerable: false,\r\n            writable: false,\r\n            configurable: true\r\n        });\r\n    }\r\n    return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n    // Assume that the element is an instance of Node, which means that it\r\n    // has the \"ownerDocument\" property from which we can retrieve a\r\n    // corresponding global object.\r\n    var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n    // Return the local global object if it's not possible extract one from\r\n    // provided element.\r\n    return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n    return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n    var positions = [];\r\n    for (var _i = 1; _i < arguments.length; _i++) {\r\n        positions[_i - 1] = arguments[_i];\r\n    }\r\n    return positions.reduce(function (size, position) {\r\n        var value = styles['border-' + position + '-width'];\r\n        return size + toFloat(value);\r\n    }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n    var positions = ['top', 'right', 'bottom', 'left'];\r\n    var paddings = {};\r\n    for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n        var position = positions_1[_i];\r\n        var value = styles['padding-' + position];\r\n        paddings[position] = toFloat(value);\r\n    }\r\n    return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n *      to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n    var bbox = target.getBBox();\r\n    return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n    // Client width & height properties can't be\r\n    // used exclusively as they provide rounded values.\r\n    var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n    // By this condition we can catch all non-replaced inline, hidden and\r\n    // detached elements. Though elements with width & height properties less\r\n    // than 0.5 will be discarded as well.\r\n    //\r\n    // Without it we would need to implement separate methods for each of\r\n    // those cases and it's not possible to perform a precise and performance\r\n    // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n    // gives wrong results for elements with width & height less than 0.5.\r\n    if (!clientWidth && !clientHeight) {\r\n        return emptyRect;\r\n    }\r\n    var styles = getWindowOf(target).getComputedStyle(target);\r\n    var paddings = getPaddings(styles);\r\n    var horizPad = paddings.left + paddings.right;\r\n    var vertPad = paddings.top + paddings.bottom;\r\n    // Computed styles of width & height are being used because they are the\r\n    // only dimensions available to JS that contain non-rounded values. It could\r\n    // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n    // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n    var width = toFloat(styles.width), height = toFloat(styles.height);\r\n    // Width & height include paddings and borders when the 'border-box' box\r\n    // model is applied (except for IE).\r\n    if (styles.boxSizing === 'border-box') {\r\n        // Following conditions are required to handle Internet Explorer which\r\n        // doesn't include paddings and borders to computed CSS dimensions.\r\n        //\r\n        // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n        // properties then it's either IE, and thus we don't need to subtract\r\n        // anything, or an element merely doesn't have paddings/borders styles.\r\n        if (Math.round(width + horizPad) !== clientWidth) {\r\n            width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n        }\r\n        if (Math.round(height + vertPad) !== clientHeight) {\r\n            height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n        }\r\n    }\r\n    // Following steps can't be applied to the document's root element as its\r\n    // client[Width/Height] properties represent viewport area of the window.\r\n    // Besides, it's as well not necessary as the <html> itself neither has\r\n    // rendered scroll bars nor it can be clipped.\r\n    if (!isDocumentElement(target)) {\r\n        // In some browsers (only in Firefox, actually) CSS width & height\r\n        // include scroll bars size which can be removed at this step as scroll\r\n        // bars are the only difference between rounded dimensions + paddings\r\n        // and \"client\" properties, though that is not always true in Chrome.\r\n        var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n        var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n        // Chrome has a rather weird rounding of \"client\" properties.\r\n        // E.g. for an element with content width of 314.2px it sometimes gives\r\n        // the client width of 315px and for the width of 314.7px it may give\r\n        // 314px. And it doesn't happen all the time. So just ignore this delta\r\n        // as a non-relevant.\r\n        if (Math.abs(vertScrollbar) !== 1) {\r\n            width -= vertScrollbar;\r\n        }\r\n        if (Math.abs(horizScrollbar) !== 1) {\r\n            height -= horizScrollbar;\r\n        }\r\n    }\r\n    return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n    // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n    // interface.\r\n    if (typeof SVGGraphicsElement !== 'undefined') {\r\n        return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n    }\r\n    // If it's so, then check that element is at least an instance of the\r\n    // SVGElement and that it has the \"getBBox\" method.\r\n    // eslint-disable-next-line no-extra-parens\r\n    return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n        typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n    return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n    if (!isBrowser) {\r\n        return emptyRect;\r\n    }\r\n    if (isSVGGraphicsElement(target)) {\r\n        return getSVGContentRect(target);\r\n    }\r\n    return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n    var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n    // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n    var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n    var rect = Object.create(Constr.prototype);\r\n    // Rectangle's properties are not writable and non-enumerable.\r\n    defineConfigurable(rect, {\r\n        x: x, y: y, width: width, height: height,\r\n        top: y,\r\n        right: x + width,\r\n        bottom: height + y,\r\n        left: x\r\n    });\r\n    return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n    return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObservation.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     */\r\n    function ResizeObservation(target) {\r\n        /**\r\n         * Broadcasted width of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastWidth = 0;\r\n        /**\r\n         * Broadcasted height of content rectangle.\r\n         *\r\n         * @type {number}\r\n         */\r\n        this.broadcastHeight = 0;\r\n        /**\r\n         * Reference to the last observed content rectangle.\r\n         *\r\n         * @private {DOMRectInit}\r\n         */\r\n        this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n        this.target = target;\r\n    }\r\n    /**\r\n     * Updates content rectangle and tells whether it's width or height properties\r\n     * have changed since the last broadcast.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObservation.prototype.isActive = function () {\r\n        var rect = getContentRect(this.target);\r\n        this.contentRect_ = rect;\r\n        return (rect.width !== this.broadcastWidth ||\r\n            rect.height !== this.broadcastHeight);\r\n    };\r\n    /**\r\n     * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n     * from the corresponding properties of the last observed content rectangle.\r\n     *\r\n     * @returns {DOMRectInit} Last observed content rectangle.\r\n     */\r\n    ResizeObservation.prototype.broadcastRect = function () {\r\n        var rect = this.contentRect_;\r\n        this.broadcastWidth = rect.width;\r\n        this.broadcastHeight = rect.height;\r\n        return rect;\r\n    };\r\n    return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n    /**\r\n     * Creates an instance of ResizeObserverEntry.\r\n     *\r\n     * @param {Element} target - Element that is being observed.\r\n     * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n     */\r\n    function ResizeObserverEntry(target, rectInit) {\r\n        var contentRect = createReadOnlyRect(rectInit);\r\n        // According to the specification following properties are not writable\r\n        // and are also not enumerable in the native implementation.\r\n        //\r\n        // Property accessors are not being used as they'd require to define a\r\n        // private WeakMap storage which may cause memory leaks in browsers that\r\n        // don't support this type of collections.\r\n        defineConfigurable(this, { target: target, contentRect: contentRect });\r\n    }\r\n    return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n     *      when one of the observed elements changes it's content dimensions.\r\n     * @param {ResizeObserverController} controller - Controller instance which\r\n     *      is responsible for the updates of observer.\r\n     * @param {ResizeObserver} callbackCtx - Reference to the public\r\n     *      ResizeObserver instance which will be passed to callback function.\r\n     */\r\n    function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n        /**\r\n         * Collection of resize observations that have detected changes in dimensions\r\n         * of elements.\r\n         *\r\n         * @private {Array<ResizeObservation>}\r\n         */\r\n        this.activeObservations_ = [];\r\n        /**\r\n         * Registry of the ResizeObservation instances.\r\n         *\r\n         * @private {Map<Element, ResizeObservation>}\r\n         */\r\n        this.observations_ = new MapShim();\r\n        if (typeof callback !== 'function') {\r\n            throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n        }\r\n        this.callback_ = callback;\r\n        this.controller_ = controller;\r\n        this.callbackCtx_ = callbackCtx;\r\n    }\r\n    /**\r\n     * Starts observing provided element.\r\n     *\r\n     * @param {Element} target - Element to be observed.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.observe = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is already being observed.\r\n        if (observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.set(target, new ResizeObservation(target));\r\n        this.controller_.addObserver(this);\r\n        // Force the update of observations.\r\n        this.controller_.refresh();\r\n    };\r\n    /**\r\n     * Stops observing provided element.\r\n     *\r\n     * @param {Element} target - Element to stop observing.\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.unobserve = function (target) {\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        // Do nothing if current environment doesn't have the Element interface.\r\n        if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n            return;\r\n        }\r\n        if (!(target instanceof getWindowOf(target).Element)) {\r\n            throw new TypeError('parameter 1 is not of type \"Element\".');\r\n        }\r\n        var observations = this.observations_;\r\n        // Do nothing if element is not being observed.\r\n        if (!observations.has(target)) {\r\n            return;\r\n        }\r\n        observations.delete(target);\r\n        if (!observations.size) {\r\n            this.controller_.removeObserver(this);\r\n        }\r\n    };\r\n    /**\r\n     * Stops observing all elements.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.disconnect = function () {\r\n        this.clearActive();\r\n        this.observations_.clear();\r\n        this.controller_.removeObserver(this);\r\n    };\r\n    /**\r\n     * Collects observation instances the associated element of which has changed\r\n     * it's content rectangle.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.gatherActive = function () {\r\n        var _this = this;\r\n        this.clearActive();\r\n        this.observations_.forEach(function (observation) {\r\n            if (observation.isActive()) {\r\n                _this.activeObservations_.push(observation);\r\n            }\r\n        });\r\n    };\r\n    /**\r\n     * Invokes initial callback function with a list of ResizeObserverEntry\r\n     * instances collected from active resize observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.broadcastActive = function () {\r\n        // Do nothing if observer doesn't have active observations.\r\n        if (!this.hasActive()) {\r\n            return;\r\n        }\r\n        var ctx = this.callbackCtx_;\r\n        // Create ResizeObserverEntry instance for every active observation.\r\n        var entries = this.activeObservations_.map(function (observation) {\r\n            return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n        });\r\n        this.callback_.call(ctx, entries, ctx);\r\n        this.clearActive();\r\n    };\r\n    /**\r\n     * Clears the collection of active observations.\r\n     *\r\n     * @returns {void}\r\n     */\r\n    ResizeObserverSPI.prototype.clearActive = function () {\r\n        this.activeObservations_.splice(0);\r\n    };\r\n    /**\r\n     * Tells whether observer has active observations.\r\n     *\r\n     * @returns {boolean}\r\n     */\r\n    ResizeObserverSPI.prototype.hasActive = function () {\r\n        return this.activeObservations_.length > 0;\r\n    };\r\n    return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n    /**\r\n     * Creates a new instance of ResizeObserver.\r\n     *\r\n     * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n     *      dimensions of the observed elements change.\r\n     */\r\n    function ResizeObserver(callback) {\r\n        if (!(this instanceof ResizeObserver)) {\r\n            throw new TypeError('Cannot call a class as a function.');\r\n        }\r\n        if (!arguments.length) {\r\n            throw new TypeError('1 argument required, but only 0 present.');\r\n        }\r\n        var controller = ResizeObserverController.getInstance();\r\n        var observer = new ResizeObserverSPI(callback, controller, this);\r\n        observers.set(this, observer);\r\n    }\r\n    return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n    'observe',\r\n    'unobserve',\r\n    'disconnect'\r\n].forEach(function (method) {\r\n    ResizeObserver.prototype[method] = function () {\r\n        var _a;\r\n        return (_a = observers.get(this))[method].apply(_a, arguments);\r\n    };\r\n});\n\nvar index = (function () {\r\n    // Export existing implementation if available.\r\n    if (typeof global$1.ResizeObserver !== 'undefined') {\r\n        return global$1.ResizeObserver;\r\n    }\r\n    return ResizeObserver;\r\n})();\n\nexport default index;\n","import ResizeObserver from 'resize-observer-polyfill';\n// =============================== Const ===============================\nvar elementListeners = new Map();\nfunction onResize(entities) {\n  entities.forEach(function (entity) {\n    var _elementListeners$get;\n    var target = entity.target;\n    (_elementListeners$get = elementListeners.get(target)) === null || _elementListeners$get === void 0 || _elementListeners$get.forEach(function (listener) {\n      return listener(target);\n    });\n  });\n}\n\n// Note: ResizeObserver polyfill not support option to measure border-box resize\nvar resizeObserver = new ResizeObserver(onResize);\n\n// Dev env only\nexport var _el = process.env.NODE_ENV !== 'production' ? elementListeners : null; // eslint-disable-line\nexport var _rs = process.env.NODE_ENV !== 'production' ? onResize : null; // eslint-disable-line\n\n// ============================== Observe ==============================\nexport function observe(element, callback) {\n  if (!elementListeners.has(element)) {\n    elementListeners.set(element, new Set());\n    resizeObserver.observe(element);\n  }\n  elementListeners.get(element).add(callback);\n}\nexport function unobserve(element, callback) {\n  if (elementListeners.has(element)) {\n    elementListeners.get(element).delete(callback);\n    if (!elementListeners.get(element).size) {\n      resizeObserver.unobserve(element);\n      elementListeners.delete(element);\n    }\n  }\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n/**\n * Fallback to findDOMNode if origin ref do not provide any dom element\n */\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n  _inherits(DomWrapper, _React$Component);\n  var _super = _createSuper(DomWrapper);\n  function DomWrapper() {\n    _classCallCheck(this, DomWrapper);\n    return _super.apply(this, arguments);\n  }\n  _createClass(DomWrapper, [{\n    key: \"render\",\n    value: function render() {\n      return this.props.children;\n    }\n  }]);\n  return DomWrapper;\n}(React.Component);\nexport { DomWrapper as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { supportRef, useComposeRef, getNodeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { CollectionContext } from \"../Collection\";\nimport { observe, unobserve } from \"../utils/observerUtil\";\nimport DomWrapper from \"./DomWrapper\";\nfunction SingleObserver(props, ref) {\n  var children = props.children,\n    disabled = props.disabled;\n  var elementRef = React.useRef(null);\n  var wrapperRef = React.useRef(null);\n  var onCollectionResize = React.useContext(CollectionContext);\n\n  // =========================== Children ===========================\n  var isRenderProps = typeof children === 'function';\n  var mergedChildren = isRenderProps ? children(elementRef) : children;\n\n  // ============================= Size =============================\n  var sizeRef = React.useRef({\n    width: -1,\n    height: -1,\n    offsetWidth: -1,\n    offsetHeight: -1\n  });\n\n  // ============================= Ref ==============================\n  var canRef = !isRenderProps && /*#__PURE__*/React.isValidElement(mergedChildren) && supportRef(mergedChildren);\n  var originRef = canRef ? getNodeRef(mergedChildren) : null;\n  var mergedRef = useComposeRef(originRef, elementRef);\n  var getDom = function getDom() {\n    var _elementRef$current;\n    return findDOMNode(elementRef.current) || (\n    // Support `nativeElement` format\n    elementRef.current && _typeof(elementRef.current) === 'object' ? findDOMNode((_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.nativeElement) : null) || findDOMNode(wrapperRef.current);\n  };\n  React.useImperativeHandle(ref, function () {\n    return getDom();\n  });\n\n  // =========================== Observe ============================\n  var propsRef = React.useRef(props);\n  propsRef.current = props;\n\n  // Handler\n  var onInternalResize = React.useCallback(function (target) {\n    var _propsRef$current = propsRef.current,\n      onResize = _propsRef$current.onResize,\n      data = _propsRef$current.data;\n    var _target$getBoundingCl = target.getBoundingClientRect(),\n      width = _target$getBoundingCl.width,\n      height = _target$getBoundingCl.height;\n    var offsetWidth = target.offsetWidth,\n      offsetHeight = target.offsetHeight;\n\n    /**\n     * Resize observer trigger when content size changed.\n     * In most case we just care about element size,\n     * let's use `boundary` instead of `contentRect` here to avoid shaking.\n     */\n    var fixedWidth = Math.floor(width);\n    var fixedHeight = Math.floor(height);\n    if (sizeRef.current.width !== fixedWidth || sizeRef.current.height !== fixedHeight || sizeRef.current.offsetWidth !== offsetWidth || sizeRef.current.offsetHeight !== offsetHeight) {\n      var size = {\n        width: fixedWidth,\n        height: fixedHeight,\n        offsetWidth: offsetWidth,\n        offsetHeight: offsetHeight\n      };\n      sizeRef.current = size;\n\n      // IE is strange, right?\n      var mergedOffsetWidth = offsetWidth === Math.round(width) ? width : offsetWidth;\n      var mergedOffsetHeight = offsetHeight === Math.round(height) ? height : offsetHeight;\n      var sizeInfo = _objectSpread(_objectSpread({}, size), {}, {\n        offsetWidth: mergedOffsetWidth,\n        offsetHeight: mergedOffsetHeight\n      });\n\n      // Let collection know what happened\n      onCollectionResize === null || onCollectionResize === void 0 || onCollectionResize(sizeInfo, target, data);\n      if (onResize) {\n        // defer the callback but not defer to next frame\n        Promise.resolve().then(function () {\n          onResize(sizeInfo, target);\n        });\n      }\n    }\n  }, []);\n\n  // Dynamic observe\n  React.useEffect(function () {\n    var currentElement = getDom();\n    if (currentElement && !disabled) {\n      observe(currentElement, onInternalResize);\n    }\n    return function () {\n      return unobserve(currentElement, onInternalResize);\n    };\n  }, [elementRef.current, disabled]);\n\n  // ============================ Render ============================\n  return /*#__PURE__*/React.createElement(DomWrapper, {\n    ref: wrapperRef\n  }, canRef ? /*#__PURE__*/React.cloneElement(mergedChildren, {\n    ref: mergedRef\n  }) : mergedChildren);\n}\nvar RefSingleObserver = /*#__PURE__*/React.forwardRef(SingleObserver);\nif (process.env.NODE_ENV !== 'production') {\n  RefSingleObserver.displayName = 'SingleObserver';\n}\nexport default RefSingleObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport { warning } from \"rc-util/es/warning\";\nimport SingleObserver from \"./SingleObserver\";\nimport { Collection } from \"./Collection\";\nvar INTERNAL_PREFIX_KEY = 'rc-observer-key';\nimport { _rs } from \"./utils/observerUtil\";\nexport { /** @private Test only for mock trigger resize event */\n_rs };\nfunction ResizeObserver(props, ref) {\n  var children = props.children;\n  var childNodes = typeof children === 'function' ? [children] : toArray(children);\n  if (process.env.NODE_ENV !== 'production') {\n    if (childNodes.length > 1) {\n      warning(false, 'Find more than one child node with `children` in ResizeObserver. Please use ResizeObserver.Collection instead.');\n    } else if (childNodes.length === 0) {\n      warning(false, '`children` of ResizeObserver is empty. Nothing is in observe.');\n    }\n  }\n  return childNodes.map(function (child, index) {\n    var key = (child === null || child === void 0 ? void 0 : child.key) || \"\".concat(INTERNAL_PREFIX_KEY, \"-\").concat(index);\n    return /*#__PURE__*/React.createElement(SingleObserver, _extends({}, props, {\n      key: key,\n      ref: index === 0 ? ref : undefined\n    }), child);\n  });\n}\nvar RefResizeObserver = /*#__PURE__*/React.forwardRef(ResizeObserver);\nif (process.env.NODE_ENV !== 'production') {\n  RefResizeObserver.displayName = 'ResizeObserver';\n}\nRefResizeObserver.Collection = Collection;\nexport default RefResizeObserver;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"invalidate\", \"item\", \"renderItem\", \"responsive\", \"responsiveDisabled\", \"registerSize\", \"itemKey\", \"className\", \"style\", \"children\", \"display\", \"order\", \"component\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\n// Use shared variable to save bundle size\nvar UNDEFINED = undefined;\nfunction InternalItem(props, ref) {\n  var prefixCls = props.prefixCls,\n    invalidate = props.invalidate,\n    item = props.item,\n    renderItem = props.renderItem,\n    responsive = props.responsive,\n    responsiveDisabled = props.responsiveDisabled,\n    registerSize = props.registerSize,\n    itemKey = props.itemKey,\n    className = props.className,\n    style = props.style,\n    children = props.children,\n    display = props.display,\n    order = props.order,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedHidden = responsive && !display;\n\n  // ================================ Effect ================================\n  function internalRegisterSize(width) {\n    registerSize(itemKey, width);\n  }\n  React.useEffect(function () {\n    return function () {\n      internalRegisterSize(null);\n    };\n  }, []);\n\n  // ================================ Render ================================\n  var childNode = renderItem && item !== UNDEFINED ? renderItem(item, {\n    index: order\n  }) : children;\n  var overflowStyle;\n  if (!invalidate) {\n    overflowStyle = {\n      opacity: mergedHidden ? 0 : 1,\n      height: mergedHidden ? 0 : UNDEFINED,\n      overflowY: mergedHidden ? 'hidden' : UNDEFINED,\n      order: responsive ? order : UNDEFINED,\n      pointerEvents: mergedHidden ? 'none' : UNDEFINED,\n      position: mergedHidden ? 'absolute' : UNDEFINED\n    };\n  }\n  var overflowProps = {};\n  if (mergedHidden) {\n    overflowProps['aria-hidden'] = true;\n  }\n  var itemNode = /*#__PURE__*/React.createElement(Component, _extends({\n    className: classNames(!invalidate && prefixCls, className),\n    style: _objectSpread(_objectSpread({}, overflowStyle), style)\n  }, overflowProps, restProps, {\n    ref: ref\n  }), childNode);\n  if (responsive) {\n    itemNode = /*#__PURE__*/React.createElement(ResizeObserver, {\n      onResize: function onResize(_ref) {\n        var offsetWidth = _ref.offsetWidth;\n        internalRegisterSize(offsetWidth);\n      },\n      disabled: responsiveDisabled\n    }, itemNode);\n  }\n  return itemNode;\n}\nvar Item = /*#__PURE__*/React.forwardRef(InternalItem);\nItem.displayName = 'Item';\nexport default Item;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nimport channelUpdate from \"./channelUpdate\";\n/**\n * Batcher for record any `useEffectState` need update.\n */\nexport function useBatcher() {\n  // Updater Trigger\n  var updateFuncRef = React.useRef(null);\n\n  // Notify update\n  var notifyEffectUpdate = function notifyEffectUpdate(callback) {\n    if (!updateFuncRef.current) {\n      updateFuncRef.current = [];\n      channelUpdate(function () {\n        unstable_batchedUpdates(function () {\n          updateFuncRef.current.forEach(function (fn) {\n            fn();\n          });\n          updateFuncRef.current = null;\n        });\n      });\n    }\n    updateFuncRef.current.push(callback);\n  };\n  return notifyEffectUpdate;\n}\n\n/**\n * Trigger state update by `useLayoutEffect` to save perf.\n */\nexport default function useEffectState(notifyEffectUpdate, defaultValue) {\n  // Value\n  var _React$useState = React.useState(defaultValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    stateValue = _React$useState2[0],\n    setStateValue = _React$useState2[1];\n\n  // Set State\n  var setEffectVal = useEvent(function (nextValue) {\n    notifyEffectUpdate(function () {\n      setStateValue(nextValue);\n    });\n  });\n  return [stateValue, setEffectVal];\n}","import raf from \"rc-util/es/raf\";\nexport default function channelUpdate(callback) {\n  if (typeof MessageChannel === 'undefined') {\n    raf(callback);\n  } else {\n    var channel = new MessageChannel();\n    channel.port1.onmessage = function () {\n      return callback();\n    };\n    channel.port2.postMessage(undefined);\n  }\n}","import React from 'react';\nexport var OverflowContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"component\"],\n  _excluded2 = [\"className\"],\n  _excluded3 = [\"className\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Item from \"./Item\";\nimport { OverflowContext } from \"./context\";\nvar InternalRawItem = function InternalRawItem(props, ref) {\n  var context = React.useContext(OverflowContext);\n\n  // Render directly when context not provided\n  if (!context) {\n    var _props$component = props.component,\n      Component = _props$component === void 0 ? 'div' : _props$component,\n      _restProps = _objectWithoutProperties(props, _excluded);\n    return /*#__PURE__*/React.createElement(Component, _extends({}, _restProps, {\n      ref: ref\n    }));\n  }\n  var contextClassName = context.className,\n    restContext = _objectWithoutProperties(context, _excluded2);\n  var className = props.className,\n    restProps = _objectWithoutProperties(props, _excluded3);\n\n  // Do not pass context to sub item to avoid multiple measure\n  return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(Item, _extends({\n    ref: ref,\n    className: classNames(contextClassName, className)\n  }, restContext, restProps)));\n};\nvar RawItem = /*#__PURE__*/React.forwardRef(InternalRawItem);\nRawItem.displayName = 'RawItem';\nexport default RawItem;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"renderItem\", \"renderRawItem\", \"itemKey\", \"itemWidth\", \"ssr\", \"style\", \"className\", \"maxCount\", \"renderRest\", \"renderRawRest\", \"suffix\", \"component\", \"itemComponent\", \"onVisibleChange\"];\nimport * as React from 'react';\nimport { useState, useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Item from \"./Item\";\nimport useEffectState, { useBatcher } from \"./hooks/useEffectState\";\nimport RawItem from \"./RawItem\";\nimport { OverflowContext } from \"./context\";\nvar RESPONSIVE = 'responsive';\nvar INVALIDATE = 'invalidate';\nexport { OverflowContext } from \"./context\";\nfunction defaultRenderRest(omittedItems) {\n  return \"+ \".concat(omittedItems.length, \" ...\");\n}\nfunction Overflow(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,\n    _props$data = props.data,\n    data = _props$data === void 0 ? [] : _props$data,\n    renderItem = props.renderItem,\n    renderRawItem = props.renderRawItem,\n    itemKey = props.itemKey,\n    _props$itemWidth = props.itemWidth,\n    itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,\n    ssr = props.ssr,\n    style = props.style,\n    className = props.className,\n    maxCount = props.maxCount,\n    renderRest = props.renderRest,\n    renderRawRest = props.renderRawRest,\n    suffix = props.suffix,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    itemComponent = props.itemComponent,\n    onVisibleChange = props.onVisibleChange,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var fullySSR = ssr === 'full';\n  var notifyEffectUpdate = useBatcher();\n  var _useEffectState = useEffectState(notifyEffectUpdate, null),\n    _useEffectState2 = _slicedToArray(_useEffectState, 2),\n    containerWidth = _useEffectState2[0],\n    setContainerWidth = _useEffectState2[1];\n  var mergedContainerWidth = containerWidth || 0;\n  var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),\n    _useEffectState4 = _slicedToArray(_useEffectState3, 2),\n    itemWidths = _useEffectState4[0],\n    setItemWidths = _useEffectState4[1];\n  var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState6 = _slicedToArray(_useEffectState5, 2),\n    prevRestWidth = _useEffectState6[0],\n    setPrevRestWidth = _useEffectState6[1];\n  var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState8 = _slicedToArray(_useEffectState7, 2),\n    restWidth = _useEffectState8[0],\n    setRestWidth = _useEffectState8[1];\n  var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),\n    _useEffectState10 = _slicedToArray(_useEffectState9, 2),\n    suffixWidth = _useEffectState10[0],\n    setSuffixWidth = _useEffectState10[1];\n  var _useState = useState(null),\n    _useState2 = _slicedToArray(_useState, 2),\n    suffixFixedStart = _useState2[0],\n    setSuffixFixedStart = _useState2[1];\n  var _useState3 = useState(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    displayCount = _useState4[0],\n    setDisplayCount = _useState4[1];\n  var mergedDisplayCount = React.useMemo(function () {\n    if (displayCount === null && fullySSR) {\n      return Number.MAX_SAFE_INTEGER;\n    }\n    return displayCount || 0;\n  }, [displayCount, containerWidth]);\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    restReady = _useState6[0],\n    setRestReady = _useState6[1];\n  var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n\n  // Always use the max width to avoid blink\n  var mergedRestWidth = Math.max(prevRestWidth, restWidth);\n\n  // ================================= Data =================================\n  var isResponsive = maxCount === RESPONSIVE;\n  var shouldResponsive = data.length && isResponsive;\n  var invalidate = maxCount === INVALIDATE;\n\n  /**\n   * When is `responsive`, we will always render rest node to get the real width of it for calculation\n   */\n  var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;\n  var mergedData = useMemo(function () {\n    var items = data;\n    if (shouldResponsive) {\n      if (containerWidth === null && fullySSR) {\n        items = data;\n      } else {\n        items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));\n      }\n    } else if (typeof maxCount === 'number') {\n      items = data.slice(0, maxCount);\n    }\n    return items;\n  }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);\n  var omittedItems = useMemo(function () {\n    if (shouldResponsive) {\n      return data.slice(mergedDisplayCount + 1);\n    }\n    return data.slice(mergedData.length);\n  }, [data, mergedData, shouldResponsive, mergedDisplayCount]);\n\n  // ================================= Item =================================\n  var getKey = useCallback(function (item, index) {\n    var _ref;\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;\n  }, [itemKey]);\n  var mergedRenderItem = useCallback(renderItem || function (item) {\n    return item;\n  }, [renderItem]);\n  function updateDisplayCount(count, suffixFixedStartVal, notReady) {\n    // React 18 will sync render even when the value is same in some case.\n    // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.\n    // ref: https://github.com/ant-design/ant-design/issues/36559\n    if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {\n      return;\n    }\n    setDisplayCount(count);\n    if (!notReady) {\n      setRestReady(count < data.length - 1);\n      onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(count);\n    }\n    if (suffixFixedStartVal !== undefined) {\n      setSuffixFixedStart(suffixFixedStartVal);\n    }\n  }\n\n  // ================================= Size =================================\n  function onOverflowResize(_, element) {\n    setContainerWidth(element.clientWidth);\n  }\n  function registerSize(key, width) {\n    setItemWidths(function (origin) {\n      var clone = new Map(origin);\n      if (width === null) {\n        clone.delete(key);\n      } else {\n        clone.set(key, width);\n      }\n      return clone;\n    });\n  }\n  function registerOverflowSize(_, width) {\n    setRestWidth(width);\n    setPrevRestWidth(restWidth);\n  }\n  function registerSuffixSize(_, width) {\n    setSuffixWidth(width);\n  }\n\n  // ================================ Effect ================================\n  function getItemWidth(index) {\n    return itemWidths.get(getKey(mergedData[index], index));\n  }\n  useLayoutEffect(function () {\n    if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {\n      var totalWidth = suffixWidth;\n      var len = mergedData.length;\n      var lastIndex = len - 1;\n\n      // When data count change to 0, reset this since not loop will reach\n      if (!len) {\n        updateDisplayCount(0, null);\n        return;\n      }\n      for (var i = 0; i < len; i += 1) {\n        var currentItemWidth = getItemWidth(i);\n\n        // Fully will always render\n        if (fullySSR) {\n          currentItemWidth = currentItemWidth || 0;\n        }\n\n        // Break since data not ready\n        if (currentItemWidth === undefined) {\n          updateDisplayCount(i - 1, undefined, true);\n          break;\n        }\n\n        // Find best match\n        totalWidth += currentItemWidth;\n        if (\n        // Only one means `totalWidth` is the final width\n        lastIndex === 0 && totalWidth <= mergedContainerWidth ||\n        // Last two width will be the final width\n        i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {\n          // Additional check if match the end\n          updateDisplayCount(lastIndex, null);\n          break;\n        } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {\n          // Can not hold all the content to show rest\n          updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);\n          break;\n        }\n      }\n      if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {\n        setSuffixFixedStart(null);\n      }\n    }\n  }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);\n\n  // ================================ Render ================================\n  var displayRest = restReady && !!omittedItems.length;\n  var suffixStyle = {};\n  if (suffixFixedStart !== null && shouldResponsive) {\n    suffixStyle = {\n      position: 'absolute',\n      left: suffixFixedStart,\n      top: 0\n    };\n  }\n  var itemSharedProps = {\n    prefixCls: itemPrefixCls,\n    responsive: shouldResponsive,\n    component: itemComponent,\n    invalidate: invalidate\n  };\n\n  // >>>>> Choice render fun by `renderRawItem`\n  var internalRenderItemNode = renderRawItem ? function (item, index) {\n    var key = getKey(item, index);\n    return /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n      key: key,\n      value: _objectSpread(_objectSpread({}, itemSharedProps), {}, {\n        order: index,\n        item: item,\n        itemKey: key,\n        registerSize: registerSize,\n        display: index <= mergedDisplayCount\n      })\n    }, renderRawItem(item, index));\n  } : function (item, index) {\n    var key = getKey(item, index);\n    return /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n      order: index,\n      key: key,\n      item: item,\n      renderItem: mergedRenderItem,\n      itemKey: key,\n      registerSize: registerSize,\n      display: index <= mergedDisplayCount\n    }));\n  };\n\n  // >>>>> Rest node\n  var restContextProps = {\n    order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,\n    className: \"\".concat(itemPrefixCls, \"-rest\"),\n    registerSize: registerOverflowSize,\n    display: displayRest\n  };\n  var mergedRenderRest = renderRest || defaultRenderRest;\n  var restNode = renderRawRest ? /*#__PURE__*/React.createElement(OverflowContext.Provider, {\n    value: _objectSpread(_objectSpread({}, itemSharedProps), restContextProps)\n  }, renderRawRest(omittedItems)) : /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);\n  var overflowNode = /*#__PURE__*/React.createElement(Component, _extends({\n    className: classNames(!invalidate && prefixCls, className),\n    style: style,\n    ref: ref\n  }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/React.createElement(Item, _extends({}, itemSharedProps, {\n    responsive: isResponsive,\n    responsiveDisabled: !shouldResponsive,\n    order: mergedDisplayCount,\n    className: \"\".concat(itemPrefixCls, \"-suffix\"),\n    registerSize: registerSuffixSize,\n    display: true,\n    style: suffixStyle\n  }), suffix));\n  return isResponsive ? /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onOverflowResize,\n    disabled: !shouldResponsive\n  }, overflowNode) : overflowNode;\n}\nvar ForwardOverflow = /*#__PURE__*/React.forwardRef(Overflow);\nForwardOverflow.displayName = 'Overflow';\nForwardOverflow.Item = RawItem;\nForwardOverflow.RESPONSIVE = RESPONSIVE;\nForwardOverflow.INVALIDATE = INVALIDATE;\n\n// Convert to generic type\nexport default ForwardOverflow;","import Overflow from \"./Overflow\";\nexport default Overflow;","import * as React from 'react';\nexport var IdContext = /*#__PURE__*/React.createContext(null);\nexport function getMenuId(uuid, eventKey) {\n  if (uuid === undefined) {\n    return null;\n  }\n  return \"\".concat(uuid, \"-\").concat(eventKey);\n}\n\n/**\n * Get `data-menu-id`\n */\nexport function useMenuId(eventKey) {\n  var id = React.useContext(IdContext);\n  return getMenuId(id, eventKey);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"children\", \"locked\"];\nimport * as React from 'react';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nexport var MenuContext = /*#__PURE__*/React.createContext(null);\nfunction mergeProps(origin, target) {\n  var clone = _objectSpread({}, origin);\n  Object.keys(target).forEach(function (key) {\n    var value = target[key];\n    if (value !== undefined) {\n      clone[key] = value;\n    }\n  });\n  return clone;\n}\nexport default function InheritableContextProvider(_ref) {\n  var children = _ref.children,\n    locked = _ref.locked,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var context = React.useContext(MenuContext);\n  var inheritableContext = useMemo(function () {\n    return mergeProps(context, restProps);\n  }, [context, restProps], function (prev, next) {\n    return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));\n  });\n  return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: inheritableContext\n  }, children);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nvar EmptyList = [];\n\n// ========================= Path Register =========================\n\nexport var PathRegisterContext = /*#__PURE__*/React.createContext(null);\nexport function useMeasure() {\n  return React.useContext(PathRegisterContext);\n}\n\n// ========================= Path Tracker ==========================\nexport var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);\nexport function useFullPath(eventKey) {\n  var parentKeyPath = React.useContext(PathTrackerContext);\n  return React.useMemo(function () {\n    return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;\n  }, [parentKeyPath, eventKey]);\n}\n\n// =========================== Path User ===========================\n\nexport var PathUserContext = /*#__PURE__*/React.createContext(null);","import * as React from 'react';\nvar PrivateContext = /*#__PURE__*/React.createContext({});\nexport default PrivateContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport isVisible from \"./isVisible\";\nfunction focusable(node) {\n  var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  if (isVisible(node)) {\n    var nodeName = node.nodeName.toLowerCase();\n    var isFocusableElement =\n    // Focusable element\n    ['input', 'select', 'textarea', 'button'].includes(nodeName) ||\n    // Editable element\n    node.isContentEditable ||\n    // Anchor with href element\n    nodeName === 'a' && !!node.getAttribute('href');\n\n    // Get tabIndex\n    var tabIndexAttr = node.getAttribute('tabindex');\n    var tabIndexNum = Number(tabIndexAttr);\n\n    // Parse as number if validate\n    var tabIndex = null;\n    if (tabIndexAttr && !Number.isNaN(tabIndexNum)) {\n      tabIndex = tabIndexNum;\n    } else if (isFocusableElement && tabIndex === null) {\n      tabIndex = 0;\n    }\n\n    // Block focusable if disabled\n    if (isFocusableElement && node.disabled) {\n      tabIndex = null;\n    }\n    return tabIndex !== null && (tabIndex >= 0 || includePositive && tabIndex < 0);\n  }\n  return false;\n}\nexport function getFocusNodeList(node) {\n  var includePositive = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var res = _toConsumableArray(node.querySelectorAll('*')).filter(function (child) {\n    return focusable(child, includePositive);\n  });\n  if (focusable(node, includePositive)) {\n    res.unshift(node);\n  }\n  return res;\n}\nvar lastFocusElement = null;\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function saveLastFocusNode() {\n  lastFocusElement = document.activeElement;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function clearLastFocusNode() {\n  lastFocusElement = null;\n}\n\n/** @deprecated Do not use since this may failed when used in async */\nexport function backLastFocusNode() {\n  if (lastFocusElement) {\n    try {\n      // 元素可能已经被移动了\n      lastFocusElement.focus();\n\n      /* eslint-disable no-empty */\n    } catch (e) {\n      // empty\n    }\n    /* eslint-enable no-empty */\n  }\n}\nexport function limitTabRange(node, e) {\n  if (e.keyCode === 9) {\n    var tabNodeList = getFocusNodeList(node);\n    var lastTabNode = tabNodeList[e.shiftKey ? 0 : tabNodeList.length - 1];\n    var leavingTab = lastTabNode === document.activeElement || node === document.activeElement;\n    if (leavingTab) {\n      var target = tabNodeList[e.shiftKey ? tabNodeList.length - 1 : 0];\n      target.focus();\n      e.preventDefault();\n    }\n  }\n}","/**\n * @ignore\n * some key-codes definition and utils from closure-library\n * @author yiminghe@gmail.com\n */\n\nvar KeyCode = {\n  /**\n   * MAC_ENTER\n   */\n  MAC_ENTER: 3,\n  /**\n   * BACKSPACE\n   */\n  BACKSPACE: 8,\n  /**\n   * TAB\n   */\n  TAB: 9,\n  /**\n   * NUMLOCK on FF/Safari Mac\n   */\n  NUM_CENTER: 12,\n  // NUMLOCK on FF/Safari Mac\n  /**\n   * ENTER\n   */\n  ENTER: 13,\n  /**\n   * SHIFT\n   */\n  SHIFT: 16,\n  /**\n   * CTRL\n   */\n  CTRL: 17,\n  /**\n   * ALT\n   */\n  ALT: 18,\n  /**\n   * PAUSE\n   */\n  PAUSE: 19,\n  /**\n   * CAPS_LOCK\n   */\n  CAPS_LOCK: 20,\n  /**\n   * ESC\n   */\n  ESC: 27,\n  /**\n   * SPACE\n   */\n  SPACE: 32,\n  /**\n   * PAGE_UP\n   */\n  PAGE_UP: 33,\n  // also NUM_NORTH_EAST\n  /**\n   * PAGE_DOWN\n   */\n  PAGE_DOWN: 34,\n  // also NUM_SOUTH_EAST\n  /**\n   * END\n   */\n  END: 35,\n  // also NUM_SOUTH_WEST\n  /**\n   * HOME\n   */\n  HOME: 36,\n  // also NUM_NORTH_WEST\n  /**\n   * LEFT\n   */\n  LEFT: 37,\n  // also NUM_WEST\n  /**\n   * UP\n   */\n  UP: 38,\n  // also NUM_NORTH\n  /**\n   * RIGHT\n   */\n  RIGHT: 39,\n  // also NUM_EAST\n  /**\n   * DOWN\n   */\n  DOWN: 40,\n  // also NUM_SOUTH\n  /**\n   * PRINT_SCREEN\n   */\n  PRINT_SCREEN: 44,\n  /**\n   * INSERT\n   */\n  INSERT: 45,\n  // also NUM_INSERT\n  /**\n   * DELETE\n   */\n  DELETE: 46,\n  // also NUM_DELETE\n  /**\n   * ZERO\n   */\n  ZERO: 48,\n  /**\n   * ONE\n   */\n  ONE: 49,\n  /**\n   * TWO\n   */\n  TWO: 50,\n  /**\n   * THREE\n   */\n  THREE: 51,\n  /**\n   * FOUR\n   */\n  FOUR: 52,\n  /**\n   * FIVE\n   */\n  FIVE: 53,\n  /**\n   * SIX\n   */\n  SIX: 54,\n  /**\n   * SEVEN\n   */\n  SEVEN: 55,\n  /**\n   * EIGHT\n   */\n  EIGHT: 56,\n  /**\n   * NINE\n   */\n  NINE: 57,\n  /**\n   * QUESTION_MARK\n   */\n  QUESTION_MARK: 63,\n  // needs localization\n  /**\n   * A\n   */\n  A: 65,\n  /**\n   * B\n   */\n  B: 66,\n  /**\n   * C\n   */\n  C: 67,\n  /**\n   * D\n   */\n  D: 68,\n  /**\n   * E\n   */\n  E: 69,\n  /**\n   * F\n   */\n  F: 70,\n  /**\n   * G\n   */\n  G: 71,\n  /**\n   * H\n   */\n  H: 72,\n  /**\n   * I\n   */\n  I: 73,\n  /**\n   * J\n   */\n  J: 74,\n  /**\n   * K\n   */\n  K: 75,\n  /**\n   * L\n   */\n  L: 76,\n  /**\n   * M\n   */\n  M: 77,\n  /**\n   * N\n   */\n  N: 78,\n  /**\n   * O\n   */\n  O: 79,\n  /**\n   * P\n   */\n  P: 80,\n  /**\n   * Q\n   */\n  Q: 81,\n  /**\n   * R\n   */\n  R: 82,\n  /**\n   * S\n   */\n  S: 83,\n  /**\n   * T\n   */\n  T: 84,\n  /**\n   * U\n   */\n  U: 85,\n  /**\n   * V\n   */\n  V: 86,\n  /**\n   * W\n   */\n  W: 87,\n  /**\n   * X\n   */\n  X: 88,\n  /**\n   * Y\n   */\n  Y: 89,\n  /**\n   * Z\n   */\n  Z: 90,\n  /**\n   * META\n   */\n  META: 91,\n  // WIN_KEY_LEFT\n  /**\n   * WIN_KEY_RIGHT\n   */\n  WIN_KEY_RIGHT: 92,\n  /**\n   * CONTEXT_MENU\n   */\n  CONTEXT_MENU: 93,\n  /**\n   * NUM_ZERO\n   */\n  NUM_ZERO: 96,\n  /**\n   * NUM_ONE\n   */\n  NUM_ONE: 97,\n  /**\n   * NUM_TWO\n   */\n  NUM_TWO: 98,\n  /**\n   * NUM_THREE\n   */\n  NUM_THREE: 99,\n  /**\n   * NUM_FOUR\n   */\n  NUM_FOUR: 100,\n  /**\n   * NUM_FIVE\n   */\n  NUM_FIVE: 101,\n  /**\n   * NUM_SIX\n   */\n  NUM_SIX: 102,\n  /**\n   * NUM_SEVEN\n   */\n  NUM_SEVEN: 103,\n  /**\n   * NUM_EIGHT\n   */\n  NUM_EIGHT: 104,\n  /**\n   * NUM_NINE\n   */\n  NUM_NINE: 105,\n  /**\n   * NUM_MULTIPLY\n   */\n  NUM_MULTIPLY: 106,\n  /**\n   * NUM_PLUS\n   */\n  NUM_PLUS: 107,\n  /**\n   * NUM_MINUS\n   */\n  NUM_MINUS: 109,\n  /**\n   * NUM_PERIOD\n   */\n  NUM_PERIOD: 110,\n  /**\n   * NUM_DIVISION\n   */\n  NUM_DIVISION: 111,\n  /**\n   * F1\n   */\n  F1: 112,\n  /**\n   * F2\n   */\n  F2: 113,\n  /**\n   * F3\n   */\n  F3: 114,\n  /**\n   * F4\n   */\n  F4: 115,\n  /**\n   * F5\n   */\n  F5: 116,\n  /**\n   * F6\n   */\n  F6: 117,\n  /**\n   * F7\n   */\n  F7: 118,\n  /**\n   * F8\n   */\n  F8: 119,\n  /**\n   * F9\n   */\n  F9: 120,\n  /**\n   * F10\n   */\n  F10: 121,\n  /**\n   * F11\n   */\n  F11: 122,\n  /**\n   * F12\n   */\n  F12: 123,\n  /**\n   * NUMLOCK\n   */\n  NUMLOCK: 144,\n  /**\n   * SEMICOLON\n   */\n  SEMICOLON: 186,\n  // needs localization\n  /**\n   * DASH\n   */\n  DASH: 189,\n  // needs localization\n  /**\n   * EQUALS\n   */\n  EQUALS: 187,\n  // needs localization\n  /**\n   * COMMA\n   */\n  COMMA: 188,\n  // needs localization\n  /**\n   * PERIOD\n   */\n  PERIOD: 190,\n  // needs localization\n  /**\n   * SLASH\n   */\n  SLASH: 191,\n  // needs localization\n  /**\n   * APOSTROPHE\n   */\n  APOSTROPHE: 192,\n  // needs localization\n  /**\n   * SINGLE_QUOTE\n   */\n  SINGLE_QUOTE: 222,\n  // needs localization\n  /**\n   * OPEN_SQUARE_BRACKET\n   */\n  OPEN_SQUARE_BRACKET: 219,\n  // needs localization\n  /**\n   * BACKSLASH\n   */\n  BACKSLASH: 220,\n  // needs localization\n  /**\n   * CLOSE_SQUARE_BRACKET\n   */\n  CLOSE_SQUARE_BRACKET: 221,\n  // needs localization\n  /**\n   * WIN_KEY\n   */\n  WIN_KEY: 224,\n  /**\n   * MAC_FF_META\n   */\n  MAC_FF_META: 224,\n  // Firefox (Gecko) fires this for the meta key instead of 91\n  /**\n   * WIN_IME\n   */\n  WIN_IME: 229,\n  // ======================== Function ========================\n  /**\n   * whether text and modified key is entered at the same time.\n   */\n  isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {\n    var keyCode = e.keyCode;\n    if (e.altKey && !e.ctrlKey || e.metaKey ||\n    // Function keys don't generate text\n    keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {\n      return false;\n    }\n\n    // The following keys are quite harmless, even in combination with\n    // CTRL, ALT or SHIFT.\n    switch (keyCode) {\n      case KeyCode.ALT:\n      case KeyCode.CAPS_LOCK:\n      case KeyCode.CONTEXT_MENU:\n      case KeyCode.CTRL:\n      case KeyCode.DOWN:\n      case KeyCode.END:\n      case KeyCode.ESC:\n      case KeyCode.HOME:\n      case KeyCode.INSERT:\n      case KeyCode.LEFT:\n      case KeyCode.MAC_FF_META:\n      case KeyCode.META:\n      case KeyCode.NUMLOCK:\n      case KeyCode.NUM_CENTER:\n      case KeyCode.PAGE_DOWN:\n      case KeyCode.PAGE_UP:\n      case KeyCode.PAUSE:\n      case KeyCode.PRINT_SCREEN:\n      case KeyCode.RIGHT:\n      case KeyCode.SHIFT:\n      case KeyCode.UP:\n      case KeyCode.WIN_KEY:\n      case KeyCode.WIN_KEY_RIGHT:\n        return false;\n      default:\n        return true;\n    }\n  },\n  /**\n   * whether character is entered.\n   */\n  isCharacterKey: function isCharacterKey(keyCode) {\n    if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {\n      return true;\n    }\n    if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {\n      return true;\n    }\n    if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {\n      return true;\n    }\n\n    // Safari sends zero key code for non-latin characters.\n    if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {\n      return true;\n    }\n    switch (keyCode) {\n      case KeyCode.SPACE:\n      case KeyCode.QUESTION_MARK:\n      case KeyCode.NUM_PLUS:\n      case KeyCode.NUM_MINUS:\n      case KeyCode.NUM_PERIOD:\n      case KeyCode.NUM_DIVISION:\n      case KeyCode.SEMICOLON:\n      case KeyCode.DASH:\n      case KeyCode.EQUALS:\n      case KeyCode.COMMA:\n      case KeyCode.PERIOD:\n      case KeyCode.SLASH:\n      case KeyCode.APOSTROPHE:\n      case KeyCode.SINGLE_QUOTE:\n      case KeyCode.OPEN_SQUARE_BRACKET:\n      case KeyCode.BACKSLASH:\n      case KeyCode.CLOSE_SQUARE_BRACKET:\n        return true;\n      default:\n        return false;\n    }\n  }\n};\nexport default KeyCode;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getFocusNodeList } from \"rc-util/es/Dom/focus\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getMenuId } from \"../context/IdContext\";\n// destruct to reduce minify size\nvar LEFT = KeyCode.LEFT,\n  RIGHT = KeyCode.RIGHT,\n  UP = KeyCode.UP,\n  DOWN = KeyCode.DOWN,\n  ENTER = KeyCode.ENTER,\n  ESC = KeyCode.ESC,\n  HOME = KeyCode.HOME,\n  END = KeyCode.END;\nvar ArrowKeys = [UP, DOWN, LEFT, RIGHT];\nfunction getOffset(mode, isRootLevel, isRtl, which) {\n  var _offsets;\n  var prev = 'prev';\n  var next = 'next';\n  var children = 'children';\n  var parent = 'parent';\n\n  // Inline enter is special that we use unique operation\n  if (mode === 'inline' && which === ENTER) {\n    return {\n      inlineTrigger: true\n    };\n  }\n  var inline = _defineProperty(_defineProperty({}, UP, prev), DOWN, next);\n  var horizontal = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, LEFT, isRtl ? next : prev), RIGHT, isRtl ? prev : next), DOWN, children), ENTER, children);\n  var vertical = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, UP, prev), DOWN, next), ENTER, children), ESC, parent), LEFT, isRtl ? children : parent), RIGHT, isRtl ? parent : children);\n  var offsets = {\n    inline: inline,\n    horizontal: horizontal,\n    vertical: vertical,\n    inlineSub: inline,\n    horizontalSub: vertical,\n    verticalSub: vertical\n  };\n  var type = (_offsets = offsets[\"\".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];\n  switch (type) {\n    case prev:\n      return {\n        offset: -1,\n        sibling: true\n      };\n    case next:\n      return {\n        offset: 1,\n        sibling: true\n      };\n    case parent:\n      return {\n        offset: -1,\n        sibling: false\n      };\n    case children:\n      return {\n        offset: 1,\n        sibling: false\n      };\n    default:\n      return null;\n  }\n}\nfunction findContainerUL(element) {\n  var current = element;\n  while (current) {\n    if (current.getAttribute('data-menu-list')) {\n      return current;\n    }\n    current = current.parentElement;\n  }\n\n  // Normally should not reach this line\n  /* istanbul ignore next */\n  return null;\n}\n\n/**\n * Find focused element within element set provided\n */\nfunction getFocusElement(activeElement, elements) {\n  var current = activeElement || document.activeElement;\n  while (current) {\n    if (elements.has(current)) {\n      return current;\n    }\n    current = current.parentElement;\n  }\n  return null;\n}\n\n/**\n * Get focusable elements from the element set under provided container\n */\nexport function getFocusableElements(container, elements) {\n  var list = getFocusNodeList(container, true);\n  return list.filter(function (ele) {\n    return elements.has(ele);\n  });\n}\nfunction getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {\n  var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n  // Key on the menu item will not get validate parent container\n  if (!parentQueryContainer) {\n    return null;\n  }\n\n  // List current level menu item elements\n  var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);\n\n  // Find next focus index\n  var count = sameLevelFocusableMenuElementList.length;\n  var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {\n    return focusMenuElement === ele;\n  });\n  if (offset < 0) {\n    if (focusIndex === -1) {\n      focusIndex = count - 1;\n    } else {\n      focusIndex -= 1;\n    }\n  } else if (offset > 0) {\n    focusIndex += 1;\n  }\n  focusIndex = (focusIndex + count) % count;\n\n  // Focus menu item\n  return sameLevelFocusableMenuElementList[focusIndex];\n}\nexport var refreshElements = function refreshElements(keys, id) {\n  var elements = new Set();\n  var key2element = new Map();\n  var element2key = new Map();\n  keys.forEach(function (key) {\n    var element = document.querySelector(\"[data-menu-id='\".concat(getMenuId(id, key), \"']\"));\n    if (element) {\n      elements.add(element);\n      element2key.set(element, key);\n      key2element.set(key, element);\n    }\n  });\n  return {\n    elements: elements,\n    key2element: key2element,\n    element2key: element2key\n  };\n};\nexport function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {\n  var rafRef = React.useRef();\n  var activeRef = React.useRef();\n  activeRef.current = activeKey;\n  var cleanRaf = function cleanRaf() {\n    raf.cancel(rafRef.current);\n  };\n  React.useEffect(function () {\n    return function () {\n      cleanRaf();\n    };\n  }, []);\n  return function (e) {\n    var which = e.which;\n    if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {\n      var keys = getKeys();\n      var refreshedElements = refreshElements(keys, id);\n      var _refreshedElements = refreshedElements,\n        elements = _refreshedElements.elements,\n        key2element = _refreshedElements.key2element,\n        element2key = _refreshedElements.element2key;\n\n      // First we should find current focused MenuItem/SubMenu element\n      var activeElement = key2element.get(activeKey);\n      var focusMenuElement = getFocusElement(activeElement, elements);\n      var focusMenuKey = element2key.get(focusMenuElement);\n      var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);\n\n      // Some mode do not have fully arrow operation like inline\n      if (!offsetObj && which !== HOME && which !== END) {\n        return;\n      }\n\n      // Arrow prevent default to avoid page scroll\n      if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {\n        e.preventDefault();\n      }\n      var tryFocus = function tryFocus(menuElement) {\n        if (menuElement) {\n          var focusTargetElement = menuElement;\n\n          // Focus to link instead of menu item if possible\n          var link = menuElement.querySelector('a');\n          if (link !== null && link !== void 0 && link.getAttribute('href')) {\n            focusTargetElement = link;\n          }\n          var targetKey = element2key.get(menuElement);\n          triggerActiveKey(targetKey);\n\n          /**\n           * Do not `useEffect` here since `tryFocus` may trigger async\n           * which makes React sync update the `activeKey`\n           * that force render before `useRef` set the next activeKey\n           */\n          cleanRaf();\n          rafRef.current = raf(function () {\n            if (activeRef.current === targetKey) {\n              focusTargetElement.focus();\n            }\n          });\n        }\n      };\n      if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {\n        // ========================== Sibling ==========================\n        // Find walkable focus menu element container\n        var parentQueryContainer;\n        if (!focusMenuElement || mode === 'inline') {\n          parentQueryContainer = containerRef.current;\n        } else {\n          parentQueryContainer = findContainerUL(focusMenuElement);\n        }\n\n        // Get next focus element\n        var targetElement;\n        var focusableElements = getFocusableElements(parentQueryContainer, elements);\n        if (which === HOME) {\n          targetElement = focusableElements[0];\n        } else if (which === END) {\n          targetElement = focusableElements[focusableElements.length - 1];\n        } else {\n          targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);\n        }\n        // Focus menu item\n        tryFocus(targetElement);\n\n        // ======================= InlineTrigger =======================\n      } else if (offsetObj.inlineTrigger) {\n        // Inline trigger no need switch to sub menu item\n        triggerAccessibilityOpen(focusMenuKey);\n        // =========================== Level ===========================\n      } else if (offsetObj.offset > 0) {\n        triggerAccessibilityOpen(focusMenuKey, true);\n        cleanRaf();\n        rafRef.current = raf(function () {\n          // Async should resync elements\n          refreshedElements = refreshElements(keys, id);\n          var controlId = focusMenuElement.getAttribute('aria-controls');\n          var subQueryContainer = document.getElementById(controlId);\n\n          // Get sub focusable menu item\n          var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);\n\n          // Focus menu item\n          tryFocus(targetElement);\n        }, 5);\n      } else if (offsetObj.offset < 0) {\n        var keyPath = getKeyPath(focusMenuKey, true);\n        var parentKey = keyPath[keyPath.length - 2];\n        var parentMenuElement = key2element.get(parentKey);\n\n        // Focus menu item\n        triggerAccessibilityOpen(parentKey, false);\n        tryFocus(parentMenuElement);\n      }\n    }\n\n    // Pass origin key down event\n    originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);\n  };\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useCallback } from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { nextSlice } from \"../utils/timeUtil\";\nvar PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';\nvar getPathStr = function getPathStr(keyPath) {\n  return keyPath.join(PATH_SPLIT);\n};\nvar getPathKeys = function getPathKeys(keyPathStr) {\n  return keyPathStr.split(PATH_SPLIT);\n};\nexport var OVERFLOW_KEY = 'rc-menu-more';\nexport default function useKeyRecords() {\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    internalForceUpdate = _React$useState2[1];\n  var key2pathRef = useRef(new Map());\n  var path2keyRef = useRef(new Map());\n  var _React$useState3 = React.useState([]),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    overflowKeys = _React$useState4[0],\n    setOverflowKeys = _React$useState4[1];\n  var updateRef = useRef(0);\n  var destroyRef = useRef(false);\n  var forceUpdate = function forceUpdate() {\n    if (!destroyRef.current) {\n      internalForceUpdate({});\n    }\n  };\n  var registerPath = useCallback(function (key, keyPath) {\n    // Warning for invalidate or duplicated `key`\n    if (process.env.NODE_ENV !== 'production') {\n      warning(!key2pathRef.current.has(key), \"Duplicated key '\".concat(key, \"' used in Menu by path [\").concat(keyPath.join(' > '), \"]\"));\n    }\n\n    // Fill map\n    var connectedPath = getPathStr(keyPath);\n    path2keyRef.current.set(connectedPath, key);\n    key2pathRef.current.set(key, connectedPath);\n    updateRef.current += 1;\n    var id = updateRef.current;\n    nextSlice(function () {\n      if (id === updateRef.current) {\n        forceUpdate();\n      }\n    });\n  }, []);\n  var unregisterPath = useCallback(function (key, keyPath) {\n    var connectedPath = getPathStr(keyPath);\n    path2keyRef.current.delete(connectedPath);\n    key2pathRef.current.delete(key);\n  }, []);\n  var refreshOverflowKeys = useCallback(function (keys) {\n    setOverflowKeys(keys);\n  }, []);\n  var getKeyPath = useCallback(function (eventKey, includeOverflow) {\n    var fullPath = key2pathRef.current.get(eventKey) || '';\n    var keys = getPathKeys(fullPath);\n    if (includeOverflow && overflowKeys.includes(keys[0])) {\n      keys.unshift(OVERFLOW_KEY);\n    }\n    return keys;\n  }, [overflowKeys]);\n  var isSubPathKey = useCallback(function (pathKeys, eventKey) {\n    return pathKeys.filter(function (item) {\n      return item !== undefined;\n    }).some(function (pathKey) {\n      var pathKeyList = getKeyPath(pathKey, true);\n      return pathKeyList.includes(eventKey);\n    });\n  }, [getKeyPath]);\n  var getKeys = function getKeys() {\n    var keys = _toConsumableArray(key2pathRef.current.keys());\n    if (overflowKeys.length) {\n      keys.push(OVERFLOW_KEY);\n    }\n    return keys;\n  };\n\n  /**\n   * Find current key related child path keys\n   */\n  var getSubPathKeys = useCallback(function (key) {\n    var connectedPath = \"\".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);\n    var pathKeys = new Set();\n    _toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {\n      if (pathKey.startsWith(connectedPath)) {\n        pathKeys.add(path2keyRef.current.get(pathKey));\n      }\n    });\n    return pathKeys;\n  }, []);\n  React.useEffect(function () {\n    return function () {\n      destroyRef.current = true;\n    };\n  }, []);\n  return {\n    // Register\n    registerPath: registerPath,\n    unregisterPath: unregisterPath,\n    refreshOverflowKeys: refreshOverflowKeys,\n    // Util\n    isSubPathKey: isSubPathKey,\n    getKeyPath: getKeyPath,\n    getKeys: getKeys,\n    getSubPathKeys: getSubPathKeys\n  };\n}","export function nextSlice(callback) {\n  /* istanbul ignore next */\n  Promise.resolve().then(callback);\n}","import * as React from 'react';\n\n/**\n * Cache callback function that always return same ref instead.\n * This is used for context optimization.\n */\nexport default function useMemoCallback(func) {\n  var funRef = React.useRef(func);\n  funRef.current = func;\n  var callback = React.useCallback(function () {\n    var _funRef$current;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));\n  }, []);\n  return func ? callback : undefined;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nvar uniquePrefix = Math.random().toFixed(5).toString().slice(2);\nvar internalId = 0;\nexport default function useUUID(id) {\n  var _useMergedState = useMergedState(id, {\n      value: id\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    uuid = _useMergedState2[0],\n    setUUID = _useMergedState2[1];\n  React.useEffect(function () {\n    internalId += 1;\n    var newId = process.env.NODE_ENV === 'test' ? 'test' : \"\".concat(uniquePrefix, \"-\").concat(internalId);\n    setUUID(\"rc-menu-uuid-\".concat(newId));\n  }, []);\n  return uuid;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {\n  var _React$useContext = React.useContext(MenuContext),\n    activeKey = _React$useContext.activeKey,\n    onActive = _React$useContext.onActive,\n    onInactive = _React$useContext.onInactive;\n  var ret = {\n    active: activeKey === eventKey\n  };\n\n  // Skip when disabled\n  if (!disabled) {\n    ret.onMouseEnter = function (domEvent) {\n      onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n        key: eventKey,\n        domEvent: domEvent\n      });\n      onActive(eventKey);\n    };\n    ret.onMouseLeave = function (domEvent) {\n      onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n        key: eventKey,\n        domEvent: domEvent\n      });\n      onInactive(eventKey);\n    };\n  }\n  return ret;\n}","import * as React from 'react';\nimport { MenuContext } from \"../context/MenuContext\";\nexport default function useDirectionStyle(level) {\n  var _React$useContext = React.useContext(MenuContext),\n    mode = _React$useContext.mode,\n    rtl = _React$useContext.rtl,\n    inlineIndent = _React$useContext.inlineIndent;\n  if (mode !== 'inline') {\n    return null;\n  }\n  var len = level;\n  return rtl ? {\n    paddingRight: len * inlineIndent\n  } : {\n    paddingLeft: len * inlineIndent\n  };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nexport default function Icon(_ref) {\n  var icon = _ref.icon,\n    props = _ref.props,\n    children = _ref.children;\n  var iconNode;\n  if (icon === null || icon === false) {\n    return null;\n  }\n  if (typeof icon === 'function') {\n    iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n  } else if (typeof icon !== \"boolean\") {\n    // Compatible for origin definition\n    iconNode = icon;\n  }\n  return iconNode || children || null;\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"item\"];\nimport warning from \"rc-util/es/warning\";\n\n/**\n * `onClick` event return `info.item` which point to react node directly.\n * We should warning this since it will not work on FC.\n */\nexport function warnItemProp(_ref) {\n  var item = _ref.item,\n    restInfo = _objectWithoutProperties(_ref, _excluded);\n  Object.defineProperty(restInfo, 'item', {\n    get: function get() {\n      warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');\n      return item;\n    }\n  });\n  return restInfo;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _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 _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"title\", \"attribute\", \"elementRef\"],\n  _excluded2 = [\"style\", \"className\", \"eventKey\", \"warnKey\", \"disabled\", \"itemIcon\", \"children\", \"role\", \"onMouseEnter\", \"onMouseLeave\", \"onClick\", \"onKeyDown\", \"onFocus\"],\n  _excluded3 = [\"active\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport omit from \"rc-util/es/omit\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useMenuId } from \"./context/IdContext\";\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport useActive from \"./hooks/useActive\";\nimport useDirectionStyle from \"./hooks/useDirectionStyle\";\nimport Icon from \"./Icon\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n// Since Menu event provide the `info.item` which point to the MenuItem node instance.\n// We have to use class component here.\n// This should be removed from doc & api in future.\nvar LegacyMenuItem = /*#__PURE__*/function (_React$Component) {\n  _inherits(LegacyMenuItem, _React$Component);\n  var _super = _createSuper(LegacyMenuItem);\n  function LegacyMenuItem() {\n    _classCallCheck(this, LegacyMenuItem);\n    return _super.apply(this, arguments);\n  }\n  _createClass(LegacyMenuItem, [{\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        title = _this$props.title,\n        attribute = _this$props.attribute,\n        elementRef = _this$props.elementRef,\n        restProps = _objectWithoutProperties(_this$props, _excluded);\n\n      // Here the props are eventually passed to the DOM element.\n      // React does not recognize non-standard attributes.\n      // Therefore, remove the props that is not used here.\n      // ref: https://github.com/ant-design/ant-design/issues/41395\n      var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);\n      warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');\n      return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {\n        title: typeof title === 'string' ? title : undefined\n      }, passedProps, {\n        ref: elementRef\n      }));\n    }\n  }]);\n  return LegacyMenuItem;\n}(React.Component);\n/**\n * Real Menu Item component\n */\nvar InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var style = props.style,\n    className = props.className,\n    eventKey = props.eventKey,\n    warnKey = props.warnKey,\n    disabled = props.disabled,\n    itemIcon = props.itemIcon,\n    children = props.children,\n    role = props.role,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onClick = props.onClick,\n    onKeyDown = props.onKeyDown,\n    onFocus = props.onFocus,\n    restProps = _objectWithoutProperties(props, _excluded2);\n  var domDataId = useMenuId(eventKey);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    onItemClick = _React$useContext.onItemClick,\n    contextDisabled = _React$useContext.disabled,\n    overflowDisabled = _React$useContext.overflowDisabled,\n    contextItemIcon = _React$useContext.itemIcon,\n    selectedKeys = _React$useContext.selectedKeys,\n    onActive = _React$useContext.onActive;\n  var _React$useContext2 = React.useContext(PrivateContext),\n    _internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;\n  var itemCls = \"\".concat(prefixCls, \"-item\");\n  var legacyMenuItemRef = React.useRef();\n  var elementRef = React.useRef();\n  var mergedDisabled = contextDisabled || disabled;\n  var mergedEleRef = useComposeRef(ref, elementRef);\n  var connectedKeys = useFullPath(eventKey);\n\n  // ================================ Warn ================================\n  if (process.env.NODE_ENV !== 'production' && warnKey) {\n    warning(false, 'MenuItem should not leave undefined `key`.');\n  }\n\n  // ============================= Info =============================\n  var getEventInfo = function getEventInfo(e) {\n    return {\n      key: eventKey,\n      // Note: For legacy code is reversed which not like other antd component\n      keyPath: _toConsumableArray(connectedKeys).reverse(),\n      item: legacyMenuItemRef.current,\n      domEvent: e\n    };\n  };\n\n  // ============================= Icon =============================\n  var mergedItemIcon = itemIcon || contextItemIcon;\n\n  // ============================ Active ============================\n  var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),\n    active = _useActive.active,\n    activeProps = _objectWithoutProperties(_useActive, _excluded3);\n\n  // ============================ Select ============================\n  var selected = selectedKeys.includes(eventKey);\n\n  // ======================== DirectionStyle ========================\n  var directionStyle = useDirectionStyle(connectedKeys.length);\n\n  // ============================ Events ============================\n  var onInternalClick = function onInternalClick(e) {\n    if (mergedDisabled) {\n      return;\n    }\n    var info = getEventInfo(e);\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    onItemClick(info);\n  };\n  var onInternalKeyDown = function onInternalKeyDown(e) {\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);\n    if (e.which === KeyCode.ENTER) {\n      var info = getEventInfo(e);\n\n      // Legacy. Key will also trigger click event\n      onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n      onItemClick(info);\n    }\n  };\n\n  /**\n   * Used for accessibility. Helper will focus element without key board.\n   * We should manually trigger an active\n   */\n  var onInternalFocus = function onInternalFocus(e) {\n    onActive(eventKey);\n    onFocus === null || onFocus === void 0 || onFocus(e);\n  };\n\n  // ============================ Render ============================\n  var optionRoleProps = {};\n  if (props.role === 'option') {\n    optionRoleProps['aria-selected'] = selected;\n  }\n  var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({\n    ref: legacyMenuItemRef,\n    elementRef: mergedEleRef,\n    role: role === null ? 'none' : role || 'menuitem',\n    tabIndex: disabled ? null : -1,\n    \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId\n  }, omit(restProps, ['extra']), activeProps, optionRoleProps, {\n    component: \"li\",\n    \"aria-disabled\": disabled,\n    style: _objectSpread(_objectSpread({}, directionStyle), style),\n    className: classNames(itemCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(itemCls, \"-active\"), active), \"\".concat(itemCls, \"-selected\"), selected), \"\".concat(itemCls, \"-disabled\"), mergedDisabled), className),\n    onClick: onInternalClick,\n    onKeyDown: onInternalKeyDown,\n    onFocus: onInternalFocus\n  }), children, /*#__PURE__*/React.createElement(Icon, {\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      isSelected: selected\n    }),\n    icon: mergedItemIcon\n  }));\n  if (_internalRenderMenuItem) {\n    renderNode = _internalRenderMenuItem(renderNode, props, {\n      selected: selected\n    });\n  }\n  return renderNode;\n});\nfunction MenuItem(props, ref) {\n  var eventKey = props.eventKey;\n\n  // ==================== Record KeyPath ====================\n  var measure = useMeasure();\n  var connectedKeyPath = useFullPath(eventKey);\n\n  // eslint-disable-next-line consistent-return\n  React.useEffect(function () {\n    if (measure) {\n      measure.registerPath(eventKey, connectedKeyPath);\n      return function () {\n        measure.unregisterPath(eventKey, connectedKeyPath);\n      };\n    }\n  }, [connectedKeyPath]);\n  if (measure) {\n    return null;\n  }\n\n  // ======================== Render ========================\n  return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {\n    ref: ref\n  }));\n}\nexport default /*#__PURE__*/React.forwardRef(MenuItem);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"children\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"../context/MenuContext\";\nvar InternalSubMenuList = function InternalSubMenuList(_ref, ref) {\n  var className = _ref.className,\n    children = _ref.children,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    mode = _React$useContext.mode,\n    rtl = _React$useContext.rtl;\n  return /*#__PURE__*/React.createElement(\"ul\", _extends({\n    className: classNames(prefixCls, rtl && \"\".concat(prefixCls, \"-rtl\"), \"\".concat(prefixCls, \"-sub\"), \"\".concat(prefixCls, \"-\").concat(mode === 'inline' ? 'inline' : 'vertical'), className),\n    role: \"menu\"\n  }, restProps, {\n    \"data-menu-list\": true,\n    ref: ref\n  }), children);\n};\nvar SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);\nSubMenuList.displayName = 'SubMenuList';\nexport default SubMenuList;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport toArray from \"rc-util/es/Children/toArray\";\nimport * as React from 'react';\nexport function parseChildren(children, keyPath) {\n  return toArray(children).map(function (child, index) {\n    if ( /*#__PURE__*/React.isValidElement(child)) {\n      var _eventKey, _child$props;\n      var key = child.key;\n      var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;\n      var emptyKey = eventKey === null || eventKey === undefined;\n      if (emptyKey) {\n        eventKey = \"tmp_key-\".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));\n      }\n      var cloneProps = {\n        key: eventKey,\n        eventKey: eventKey\n      };\n      if (process.env.NODE_ENV !== 'production' && emptyKey) {\n        cloneProps.warnKey = true;\n      }\n      return /*#__PURE__*/React.cloneElement(child, cloneProps);\n    }\n    return child;\n  });\n}","import * as React from 'react';\nvar OrderContext = /*#__PURE__*/React.createContext(null);\nexport default OrderContext;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport OrderContext from \"./Context\";\nvar EMPTY_LIST = [];\n\n/**\n * Will add `div` to document. Nest call will keep order\n * @param render Render DOM in document\n */\nexport default function useDom(render, debug) {\n  var _React$useState = React.useState(function () {\n      if (!canUseDom()) {\n        return null;\n      }\n      var defaultEle = document.createElement('div');\n      if (process.env.NODE_ENV !== 'production' && debug) {\n        defaultEle.setAttribute('data-debug', debug);\n      }\n      return defaultEle;\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 1),\n    ele = _React$useState2[0];\n\n  // ========================== Order ==========================\n  var appendedRef = React.useRef(false);\n  var queueCreate = React.useContext(OrderContext);\n  var _React$useState3 = React.useState(EMPTY_LIST),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    queue = _React$useState4[0],\n    setQueue = _React$useState4[1];\n  var mergedQueueCreate = queueCreate || (appendedRef.current ? undefined : function (appendFn) {\n    setQueue(function (origin) {\n      var newQueue = [appendFn].concat(_toConsumableArray(origin));\n      return newQueue;\n    });\n  });\n\n  // =========================== DOM ===========================\n  function append() {\n    if (!ele.parentElement) {\n      document.body.appendChild(ele);\n    }\n    appendedRef.current = true;\n  }\n  function cleanup() {\n    var _ele$parentElement;\n    (_ele$parentElement = ele.parentElement) === null || _ele$parentElement === void 0 ? void 0 : _ele$parentElement.removeChild(ele);\n    appendedRef.current = false;\n  }\n  useLayoutEffect(function () {\n    if (render) {\n      if (queueCreate) {\n        queueCreate(append);\n      } else {\n        append();\n      }\n    } else {\n      cleanup();\n    }\n    return cleanup;\n  }, [render]);\n  useLayoutEffect(function () {\n    if (queue.length) {\n      queue.forEach(function (appendFn) {\n        return appendFn();\n      });\n      setQueue(EMPTY_LIST);\n    }\n  }, [queue]);\n  return [ele, mergedQueueCreate];\n}","/* eslint-disable no-param-reassign */\nimport { removeCSS, updateCSS } from \"./Dom/dynamicCSS\";\nvar cached;\nfunction measureScrollbarSize(ele) {\n  var randomId = \"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7));\n  var measureEle = document.createElement('div');\n  measureEle.id = randomId;\n\n  // Create Style\n  var measureStyle = measureEle.style;\n  measureStyle.position = 'absolute';\n  measureStyle.left = '0';\n  measureStyle.top = '0';\n  measureStyle.width = '100px';\n  measureStyle.height = '100px';\n  measureStyle.overflow = 'scroll';\n\n  // Clone Style if needed\n  var fallbackWidth;\n  var fallbackHeight;\n  if (ele) {\n    var targetStyle = getComputedStyle(ele);\n    measureStyle.scrollbarColor = targetStyle.scrollbarColor;\n    measureStyle.scrollbarWidth = targetStyle.scrollbarWidth;\n\n    // Set Webkit style\n    var webkitScrollbarStyle = getComputedStyle(ele, '::-webkit-scrollbar');\n    var width = parseInt(webkitScrollbarStyle.width, 10);\n    var height = parseInt(webkitScrollbarStyle.height, 10);\n\n    // Try wrap to handle CSP case\n    try {\n      var widthStyle = width ? \"width: \".concat(webkitScrollbarStyle.width, \";\") : '';\n      var heightStyle = height ? \"height: \".concat(webkitScrollbarStyle.height, \";\") : '';\n      updateCSS(\"\\n#\".concat(randomId, \"::-webkit-scrollbar {\\n\").concat(widthStyle, \"\\n\").concat(heightStyle, \"\\n}\"), randomId);\n    } catch (e) {\n      // Can't wrap, just log error\n      console.error(e);\n\n      // Get from style directly\n      fallbackWidth = width;\n      fallbackHeight = height;\n    }\n  }\n  document.body.appendChild(measureEle);\n\n  // Measure. Get fallback style if provided\n  var scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;\n  var scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;\n\n  // Clean up\n  document.body.removeChild(measureEle);\n  removeCSS(randomId);\n  return {\n    width: scrollWidth,\n    height: scrollHeight\n  };\n}\nexport default function getScrollBarSize(fresh) {\n  if (typeof document === 'undefined') {\n    return 0;\n  }\n  if (fresh || cached === undefined) {\n    cached = measureScrollbarSize();\n  }\n  return cached.width;\n}\nexport function getTargetScrollBarSize(target) {\n  if (typeof document === 'undefined' || !target || !(target instanceof Element)) {\n    return {\n      width: 0,\n      height: 0\n    };\n  }\n  return measureScrollbarSize(target);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { updateCSS, removeCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport { isBodyOverflowing } from \"./util\";\nvar UNIQUE_ID = \"rc-util-locker-\".concat(Date.now());\nvar uuid = 0;\nexport default function useScrollLocker(lock) {\n  var mergedLock = !!lock;\n  var _React$useState = React.useState(function () {\n      uuid += 1;\n      return \"\".concat(UNIQUE_ID, \"_\").concat(uuid);\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 1),\n    id = _React$useState2[0];\n  useLayoutEffect(function () {\n    if (mergedLock) {\n      var scrollbarSize = getTargetScrollBarSize(document.body).width;\n      var isOverflow = isBodyOverflowing();\n      updateCSS(\"\\nhtml body {\\n  overflow-y: hidden;\\n  \".concat(isOverflow ? \"width: calc(100% - \".concat(scrollbarSize, \"px);\") : '', \"\\n}\"), id);\n    } else {\n      removeCSS(id);\n    }\n    return function () {\n      removeCSS(id);\n    };\n  }, [mergedLock, id]);\n}","/**\n * Test usage export. Do not use in your production\n */\nexport function isBodyOverflowing() {\n  return document.body.scrollHeight > (window.innerHeight || document.documentElement.clientHeight) && window.innerWidth > document.body.offsetWidth;\n}","export var inline = false;\nexport function inlineMock(nextInline) {\n  if (typeof nextInline === 'boolean') {\n    inline = nextInline;\n  }\n  return inline;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport warning from \"rc-util/es/warning\";\nimport { supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport OrderContext from \"./Context\";\nimport useDom from \"./useDom\";\nimport useScrollLocker from \"./useScrollLocker\";\nimport { inlineMock } from \"./mock\";\nvar getPortalContainer = function getPortalContainer(getContainer) {\n  if (getContainer === false) {\n    return false;\n  }\n  if (!canUseDom() || !getContainer) {\n    return null;\n  }\n  if (typeof getContainer === 'string') {\n    return document.querySelector(getContainer);\n  }\n  if (typeof getContainer === 'function') {\n    return getContainer();\n  }\n  return getContainer;\n};\nvar Portal = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var open = props.open,\n    autoLock = props.autoLock,\n    getContainer = props.getContainer,\n    debug = props.debug,\n    _props$autoDestroy = props.autoDestroy,\n    autoDestroy = _props$autoDestroy === void 0 ? true : _props$autoDestroy,\n    children = props.children;\n  var _React$useState = React.useState(open),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    shouldRender = _React$useState2[0],\n    setShouldRender = _React$useState2[1];\n  var mergedRender = shouldRender || open;\n\n  // ========================= Warning =========================\n  if (process.env.NODE_ENV !== 'production') {\n    warning(canUseDom() || !open, \"Portal only work in client side. Please call 'useEffect' to show Portal instead default render in SSR.\");\n  }\n\n  // ====================== Should Render ======================\n  React.useEffect(function () {\n    if (autoDestroy || open) {\n      setShouldRender(open);\n    }\n  }, [open, autoDestroy]);\n\n  // ======================== Container ========================\n  var _React$useState3 = React.useState(function () {\n      return getPortalContainer(getContainer);\n    }),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    innerContainer = _React$useState4[0],\n    setInnerContainer = _React$useState4[1];\n  React.useEffect(function () {\n    var customizeContainer = getPortalContainer(getContainer);\n\n    // Tell component that we check this in effect which is safe to be `null`\n    setInnerContainer(customizeContainer !== null && customizeContainer !== void 0 ? customizeContainer : null);\n  });\n  var _useDom = useDom(mergedRender && !innerContainer, debug),\n    _useDom2 = _slicedToArray(_useDom, 2),\n    defaultContainer = _useDom2[0],\n    queueCreate = _useDom2[1];\n  var mergedContainer = innerContainer !== null && innerContainer !== void 0 ? innerContainer : defaultContainer;\n\n  // ========================= Locker ==========================\n  useScrollLocker(autoLock && open && canUseDom() && (mergedContainer === defaultContainer || mergedContainer === document.body));\n\n  // =========================== Ref ===========================\n  var childRef = null;\n  if (children && supportRef(children) && ref) {\n    var _ref = children;\n    childRef = _ref.ref;\n  }\n  var mergedRef = useComposeRef(childRef, ref);\n\n  // ========================= Render ==========================\n  // Do not render when nothing need render\n  // When innerContainer is `undefined`, it may not ready since user use ref in the same render\n  if (!mergedRender || !canUseDom() || innerContainer === undefined) {\n    return null;\n  }\n\n  // Render inline\n  var renderInline = mergedContainer === false || inlineMock();\n  var reffedChildren = children;\n  if (ref) {\n    reffedChildren = /*#__PURE__*/React.cloneElement(children, {\n      ref: mergedRef\n    });\n  }\n  return /*#__PURE__*/React.createElement(OrderContext.Provider, {\n    value: queueCreate\n  }, renderInline ? reffedChildren : /*#__PURE__*/createPortal(reffedChildren, mergedContainer));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Portal.displayName = 'Portal';\n}\nexport default Portal;","import Portal from \"./Portal\";\nimport { inlineMock } from \"./mock\";\nexport { inlineMock };\nexport default Portal;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction getUseId() {\n  // We need fully clone React function here to avoid webpack warning React 17 do not export `useId`\n  var fullClone = _objectSpread({}, React);\n  return fullClone.useId;\n}\nvar uuid = 0;\n\n/** @private Note only worked in develop env. Not work in production. */\nexport function resetUuid() {\n  if (process.env.NODE_ENV !== 'production') {\n    uuid = 0;\n  }\n}\nvar useOriginId = getUseId();\nexport default useOriginId ?\n// Use React `useId`\nfunction useId(id) {\n  var reactId = useOriginId();\n\n  // Developer passed id is single source of truth\n  if (id) {\n    return id;\n  }\n\n  // Test env always return mock id\n  if (process.env.NODE_ENV === 'test') {\n    return 'test-id';\n  }\n  return reactId;\n} :\n// Use compatible of `useId`\nfunction useCompatId(id) {\n  // Inner id for accessibility usage. Only work in client side\n  var _React$useState = React.useState('ssr-id'),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerId = _React$useState2[0],\n    setInnerId = _React$useState2[1];\n  React.useEffect(function () {\n    var nextId = uuid;\n    uuid += 1;\n    setInnerId(\"rc_unique_\".concat(nextId));\n  }, []);\n\n  // Developer passed id is single source of truth\n  if (id) {\n    return id;\n  }\n\n  // Test env always return mock id\n  if (process.env.NODE_ENV === 'test') {\n    return 'test-id';\n  }\n\n  // Return react native id or inner id\n  return innerId;\n};","export default (function () {\n  if (typeof navigator === 'undefined' || typeof window === 'undefined') {\n    return false;\n  }\n  var agent = navigator.userAgent || navigator.vendor || window.opera;\n  return /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(agent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(agent === null || agent === void 0 ? void 0 : agent.substr(0, 4));\n});","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Arrow(props) {\n  var prefixCls = props.prefixCls,\n    align = props.align,\n    arrow = props.arrow,\n    arrowPos = props.arrowPos;\n  var _ref = arrow || {},\n    className = _ref.className,\n    content = _ref.content;\n  var _arrowPos$x = arrowPos.x,\n    x = _arrowPos$x === void 0 ? 0 : _arrowPos$x,\n    _arrowPos$y = arrowPos.y,\n    y = _arrowPos$y === void 0 ? 0 : _arrowPos$y;\n  var arrowRef = React.useRef();\n\n  // Skip if no align\n  if (!align || !align.points) {\n    return null;\n  }\n  var alignStyle = {\n    position: 'absolute'\n  };\n\n  // Skip if no need to align\n  if (align.autoArrow !== false) {\n    var popupPoints = align.points[0];\n    var targetPoints = align.points[1];\n    var popupTB = popupPoints[0];\n    var popupLR = popupPoints[1];\n    var targetTB = targetPoints[0];\n    var targetLR = targetPoints[1];\n\n    // Top & Bottom\n    if (popupTB === targetTB || !['t', 'b'].includes(popupTB)) {\n      alignStyle.top = y;\n    } else if (popupTB === 't') {\n      alignStyle.top = 0;\n    } else {\n      alignStyle.bottom = 0;\n    }\n\n    // Left & Right\n    if (popupLR === targetLR || !['l', 'r'].includes(popupLR)) {\n      alignStyle.left = x;\n    } else if (popupLR === 'l') {\n      alignStyle.left = 0;\n    } else {\n      alignStyle.right = 0;\n    }\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: arrowRef,\n    className: classNames(\"\".concat(prefixCls, \"-arrow\"), className),\n    style: alignStyle\n  }, content);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport * as React from 'react';\nexport default function Mask(props) {\n  var prefixCls = props.prefixCls,\n    open = props.open,\n    zIndex = props.zIndex,\n    mask = props.mask,\n    motion = props.motion;\n  if (!mask) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motion, {\n    motionAppear: true,\n    visible: open,\n    removeOnLeave: true\n  }), function (_ref) {\n    var className = _ref.className;\n    return /*#__PURE__*/React.createElement(\"div\", {\n      style: {\n        zIndex: zIndex\n      },\n      className: classNames(\"\".concat(prefixCls, \"-mask\"), className)\n    });\n  });\n}","import * as React from 'react';\nvar PopupContent = /*#__PURE__*/React.memo(function (_ref) {\n  var children = _ref.children;\n  return children;\n}, function (_, next) {\n  return next.cache;\n});\nif (process.env.NODE_ENV !== 'production') {\n  PopupContent.displayName = 'PopupContent';\n}\nexport default PopupContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport ResizeObserver from 'rc-resize-observer';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { composeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport Arrow from \"./Arrow\";\nimport Mask from \"./Mask\";\nimport PopupContent from \"./PopupContent\";\nvar Popup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var popup = props.popup,\n    className = props.className,\n    prefixCls = props.prefixCls,\n    style = props.style,\n    target = props.target,\n    _onVisibleChanged = props.onVisibleChanged,\n    open = props.open,\n    keepDom = props.keepDom,\n    fresh = props.fresh,\n    onClick = props.onClick,\n    mask = props.mask,\n    arrow = props.arrow,\n    arrowPos = props.arrowPos,\n    align = props.align,\n    motion = props.motion,\n    maskMotion = props.maskMotion,\n    forceRender = props.forceRender,\n    getPopupContainer = props.getPopupContainer,\n    autoDestroy = props.autoDestroy,\n    Portal = props.portal,\n    zIndex = props.zIndex,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onPointerEnter = props.onPointerEnter,\n    onPointerDownCapture = props.onPointerDownCapture,\n    ready = props.ready,\n    offsetX = props.offsetX,\n    offsetY = props.offsetY,\n    offsetR = props.offsetR,\n    offsetB = props.offsetB,\n    onAlign = props.onAlign,\n    onPrepare = props.onPrepare,\n    stretch = props.stretch,\n    targetWidth = props.targetWidth,\n    targetHeight = props.targetHeight;\n  var childNode = typeof popup === 'function' ? popup() : popup;\n\n  // We can not remove holder only when motion finished.\n  var isNodeVisible = open || keepDom;\n\n  // ======================= Container ========================\n  var getPopupContainerNeedParams = (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer.length) > 0;\n  var _React$useState = React.useState(!getPopupContainer || !getPopupContainerNeedParams),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    show = _React$useState2[0],\n    setShow = _React$useState2[1];\n\n  // Delay to show since `getPopupContainer` need target element\n  useLayoutEffect(function () {\n    if (!show && getPopupContainerNeedParams && target) {\n      setShow(true);\n    }\n  }, [show, getPopupContainerNeedParams, target]);\n\n  // ========================= Render =========================\n  if (!show) {\n    return null;\n  }\n\n  // >>>>> Offset\n  var AUTO = 'auto';\n  var offsetStyle = {\n    left: '-1000vw',\n    top: '-1000vh',\n    right: AUTO,\n    bottom: AUTO\n  };\n\n  // Set align style\n  if (ready || !open) {\n    var _experimental;\n    var points = align.points;\n    var dynamicInset = align.dynamicInset || ((_experimental = align._experimental) === null || _experimental === void 0 ? void 0 : _experimental.dynamicInset);\n    var alignRight = dynamicInset && points[0][1] === 'r';\n    var alignBottom = dynamicInset && points[0][0] === 'b';\n    if (alignRight) {\n      offsetStyle.right = offsetR;\n      offsetStyle.left = AUTO;\n    } else {\n      offsetStyle.left = offsetX;\n      offsetStyle.right = AUTO;\n    }\n    if (alignBottom) {\n      offsetStyle.bottom = offsetB;\n      offsetStyle.top = AUTO;\n    } else {\n      offsetStyle.top = offsetY;\n      offsetStyle.bottom = AUTO;\n    }\n  }\n\n  // >>>>> Misc\n  var miscStyle = {};\n  if (stretch) {\n    if (stretch.includes('height') && targetHeight) {\n      miscStyle.height = targetHeight;\n    } else if (stretch.includes('minHeight') && targetHeight) {\n      miscStyle.minHeight = targetHeight;\n    }\n    if (stretch.includes('width') && targetWidth) {\n      miscStyle.width = targetWidth;\n    } else if (stretch.includes('minWidth') && targetWidth) {\n      miscStyle.minWidth = targetWidth;\n    }\n  }\n  if (!open) {\n    miscStyle.pointerEvents = 'none';\n  }\n  return /*#__PURE__*/React.createElement(Portal, {\n    open: forceRender || isNodeVisible,\n    getContainer: getPopupContainer && function () {\n      return getPopupContainer(target);\n    },\n    autoDestroy: autoDestroy\n  }, /*#__PURE__*/React.createElement(Mask, {\n    prefixCls: prefixCls,\n    open: open,\n    zIndex: zIndex,\n    mask: mask,\n    motion: maskMotion\n  }), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onAlign,\n    disabled: !open\n  }, function (resizeObserverRef) {\n    return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n      motionAppear: true,\n      motionEnter: true,\n      motionLeave: true,\n      removeOnLeave: false,\n      forceRender: forceRender,\n      leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n    }, motion, {\n      onAppearPrepare: onPrepare,\n      onEnterPrepare: onPrepare,\n      visible: open,\n      onVisibleChanged: function onVisibleChanged(nextVisible) {\n        var _motion$onVisibleChan;\n        motion === null || motion === void 0 || (_motion$onVisibleChan = motion.onVisibleChanged) === null || _motion$onVisibleChan === void 0 || _motion$onVisibleChan.call(motion, nextVisible);\n        _onVisibleChanged(nextVisible);\n      }\n    }), function (_ref, motionRef) {\n      var motionClassName = _ref.className,\n        motionStyle = _ref.style;\n      var cls = classNames(prefixCls, motionClassName, className);\n      return /*#__PURE__*/React.createElement(\"div\", {\n        ref: composeRef(resizeObserverRef, ref, motionRef),\n        className: cls,\n        style: _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n          '--arrow-x': \"\".concat(arrowPos.x || 0, \"px\"),\n          '--arrow-y': \"\".concat(arrowPos.y || 0, \"px\")\n        }, offsetStyle), miscStyle), motionStyle), {}, {\n          boxSizing: 'border-box',\n          zIndex: zIndex\n        }, style),\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onPointerEnter: onPointerEnter,\n        onClick: onClick,\n        onPointerDownCapture: onPointerDownCapture\n      }, arrow && /*#__PURE__*/React.createElement(Arrow, {\n        prefixCls: prefixCls,\n        arrow: arrow,\n        arrowPos: arrowPos,\n        align: align\n      }), /*#__PURE__*/React.createElement(PopupContent, {\n        cache: !open && !fresh\n      }, childNode));\n    });\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Popup.displayName = 'Popup';\n}\nexport default Popup;","import { fillRef, getNodeRef, supportRef, useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nvar TriggerWrapper = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var children = props.children,\n    getTriggerDOMNode = props.getTriggerDOMNode;\n  var canUseRef = supportRef(children);\n\n  // When use `getTriggerDOMNode`, we should do additional work to get the real dom\n  var setRef = React.useCallback(function (node) {\n    fillRef(ref, getTriggerDOMNode ? getTriggerDOMNode(node) : node);\n  }, [getTriggerDOMNode]);\n  var mergedRef = useComposeRef(setRef, getNodeRef(children));\n  return canUseRef ? /*#__PURE__*/React.cloneElement(children, {\n    ref: mergedRef\n  }) : children;\n});\nif (process.env.NODE_ENV !== 'production') {\n  TriggerWrapper.displayName = 'TriggerWrapper';\n}\nexport default TriggerWrapper;","import * as React from 'react';\nvar TriggerContext = /*#__PURE__*/React.createContext(null);\nexport default TriggerContext;","import * as React from 'react';\nfunction toArray(val) {\n  return val ? Array.isArray(val) ? val : [val] : [];\n}\nexport default function useAction(mobile, action, showAction, hideAction) {\n  return React.useMemo(function () {\n    var mergedShowAction = toArray(showAction !== null && showAction !== void 0 ? showAction : action);\n    var mergedHideAction = toArray(hideAction !== null && hideAction !== void 0 ? hideAction : action);\n    var showActionSet = new Set(mergedShowAction);\n    var hideActionSet = new Set(mergedHideAction);\n    if (mobile) {\n      if (showActionSet.has('hover')) {\n        showActionSet.delete('hover');\n        showActionSet.add('click');\n      }\n      if (hideActionSet.has('hover')) {\n        hideActionSet.delete('hover');\n        hideActionSet.add('click');\n      }\n    }\n    return [showActionSet, hideActionSet];\n  }, [mobile, action, showAction, hideAction]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction isPointsEq() {\n  var a1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  var a2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n  var isAlignPoint = arguments.length > 2 ? arguments[2] : undefined;\n  if (isAlignPoint) {\n    return a1[0] === a2[0];\n  }\n  return a1[0] === a2[0] && a1[1] === a2[1];\n}\nexport function getAlignPopupClassName(builtinPlacements, prefixCls, align, isAlignPoint) {\n  var points = align.points;\n  var placements = Object.keys(builtinPlacements);\n  for (var i = 0; i < placements.length; i += 1) {\n    var _builtinPlacements$pl;\n    var placement = placements[i];\n    if (isPointsEq((_builtinPlacements$pl = builtinPlacements[placement]) === null || _builtinPlacements$pl === void 0 ? void 0 : _builtinPlacements$pl.points, points, isAlignPoint)) {\n      return \"\".concat(prefixCls, \"-placement-\").concat(placement);\n    }\n  }\n  return '';\n}\n\n/** @deprecated We should not use this if we can refactor all deps */\nexport function getMotion(prefixCls, motion, animation, transitionName) {\n  if (motion) {\n    return motion;\n  }\n  if (animation) {\n    return {\n      motionName: \"\".concat(prefixCls, \"-\").concat(animation)\n    };\n  }\n  if (transitionName) {\n    return {\n      motionName: transitionName\n    };\n  }\n  return null;\n}\nexport function getWin(ele) {\n  return ele.ownerDocument.defaultView;\n}\n\n/**\n * Get all the scrollable parent elements of the element\n * @param ele       The element to be detected\n * @param areaOnly  Only return the parent which will cut visible area\n */\nexport function collectScroller(ele) {\n  var scrollerList = [];\n  var current = ele === null || ele === void 0 ? void 0 : ele.parentElement;\n  var scrollStyle = ['hidden', 'scroll', 'clip', 'auto'];\n  while (current) {\n    var _getWin$getComputedSt = getWin(current).getComputedStyle(current),\n      overflowX = _getWin$getComputedSt.overflowX,\n      overflowY = _getWin$getComputedSt.overflowY,\n      overflow = _getWin$getComputedSt.overflow;\n    if ([overflowX, overflowY, overflow].some(function (o) {\n      return scrollStyle.includes(o);\n    })) {\n      scrollerList.push(current);\n    }\n    current = current.parentElement;\n  }\n  return scrollerList;\n}\nexport function toNum(num) {\n  var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n  return Number.isNaN(num) ? defaultValue : num;\n}\nfunction getPxValue(val) {\n  return toNum(parseFloat(val), 0);\n}\n/**\n *\n *\n *  **************************************\n *  *              Border                *\n *  *     **************************     *\n *  *     *                  *     *     *\n *  *  B  *                  *  S  *  B  *\n *  *  o  *                  *  c  *  o  *\n *  *  r  *      Content     *  r  *  r  *\n *  *  d  *                  *  o  *  d  *\n *  *  e  *                  *  l  *  e  *\n *  *  r  ********************  l  *  r  *\n *  *     *        Scroll          *     *\n *  *     **************************     *\n *  *              Border                *\n *  **************************************\n *\n */\n/**\n * Get visible area of element\n */\nexport function getVisibleArea(initArea, scrollerList) {\n  var visibleArea = _objectSpread({}, initArea);\n  (scrollerList || []).forEach(function (ele) {\n    if (ele instanceof HTMLBodyElement || ele instanceof HTMLHtmlElement) {\n      return;\n    }\n\n    // Skip if static position which will not affect visible area\n    var _getWin$getComputedSt2 = getWin(ele).getComputedStyle(ele),\n      overflow = _getWin$getComputedSt2.overflow,\n      overflowClipMargin = _getWin$getComputedSt2.overflowClipMargin,\n      borderTopWidth = _getWin$getComputedSt2.borderTopWidth,\n      borderBottomWidth = _getWin$getComputedSt2.borderBottomWidth,\n      borderLeftWidth = _getWin$getComputedSt2.borderLeftWidth,\n      borderRightWidth = _getWin$getComputedSt2.borderRightWidth;\n    var eleRect = ele.getBoundingClientRect();\n    var eleOutHeight = ele.offsetHeight,\n      eleInnerHeight = ele.clientHeight,\n      eleOutWidth = ele.offsetWidth,\n      eleInnerWidth = ele.clientWidth;\n    var borderTopNum = getPxValue(borderTopWidth);\n    var borderBottomNum = getPxValue(borderBottomWidth);\n    var borderLeftNum = getPxValue(borderLeftWidth);\n    var borderRightNum = getPxValue(borderRightWidth);\n    var scaleX = toNum(Math.round(eleRect.width / eleOutWidth * 1000) / 1000);\n    var scaleY = toNum(Math.round(eleRect.height / eleOutHeight * 1000) / 1000);\n\n    // Original visible area\n    var eleScrollWidth = (eleOutWidth - eleInnerWidth - borderLeftNum - borderRightNum) * scaleX;\n    var eleScrollHeight = (eleOutHeight - eleInnerHeight - borderTopNum - borderBottomNum) * scaleY;\n\n    // Cut border size\n    var scaledBorderTopWidth = borderTopNum * scaleY;\n    var scaledBorderBottomWidth = borderBottomNum * scaleY;\n    var scaledBorderLeftWidth = borderLeftNum * scaleX;\n    var scaledBorderRightWidth = borderRightNum * scaleX;\n\n    // Clip margin\n    var clipMarginWidth = 0;\n    var clipMarginHeight = 0;\n    if (overflow === 'clip') {\n      var clipNum = getPxValue(overflowClipMargin);\n      clipMarginWidth = clipNum * scaleX;\n      clipMarginHeight = clipNum * scaleY;\n    }\n\n    // Region\n    var eleLeft = eleRect.x + scaledBorderLeftWidth - clipMarginWidth;\n    var eleTop = eleRect.y + scaledBorderTopWidth - clipMarginHeight;\n    var eleRight = eleLeft + eleRect.width + 2 * clipMarginWidth - scaledBorderLeftWidth - scaledBorderRightWidth - eleScrollWidth;\n    var eleBottom = eleTop + eleRect.height + 2 * clipMarginHeight - scaledBorderTopWidth - scaledBorderBottomWidth - eleScrollHeight;\n    visibleArea.left = Math.max(visibleArea.left, eleLeft);\n    visibleArea.top = Math.max(visibleArea.top, eleTop);\n    visibleArea.right = Math.min(visibleArea.right, eleRight);\n    visibleArea.bottom = Math.min(visibleArea.bottom, eleBottom);\n  });\n  return visibleArea;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { collectScroller, getVisibleArea, getWin, toNum } from \"../util\";\nfunction getUnitOffset(size) {\n  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var offsetStr = \"\".concat(offset);\n  var cells = offsetStr.match(/^(.*)\\%$/);\n  if (cells) {\n    return size * (parseFloat(cells[1]) / 100);\n  }\n  return parseFloat(offsetStr);\n}\nfunction getNumberOffset(rect, offset) {\n  var _ref = offset || [],\n    _ref2 = _slicedToArray(_ref, 2),\n    offsetX = _ref2[0],\n    offsetY = _ref2[1];\n  return [getUnitOffset(rect.width, offsetX), getUnitOffset(rect.height, offsetY)];\n}\nfunction splitPoints() {\n  var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  return [points[0], points[1]];\n}\nfunction getAlignPoint(rect, points) {\n  var topBottom = points[0];\n  var leftRight = points[1];\n  var x;\n  var y;\n\n  // Top & Bottom\n  if (topBottom === 't') {\n    y = rect.y;\n  } else if (topBottom === 'b') {\n    y = rect.y + rect.height;\n  } else {\n    y = rect.y + rect.height / 2;\n  }\n\n  // Left & Right\n  if (leftRight === 'l') {\n    x = rect.x;\n  } else if (leftRight === 'r') {\n    x = rect.x + rect.width;\n  } else {\n    x = rect.x + rect.width / 2;\n  }\n  return {\n    x: x,\n    y: y\n  };\n}\nfunction reversePoints(points, index) {\n  var reverseMap = {\n    t: 'b',\n    b: 't',\n    l: 'r',\n    r: 'l'\n  };\n  return points.map(function (point, i) {\n    if (i === index) {\n      return reverseMap[point] || 'c';\n    }\n    return point;\n  }).join('');\n}\nexport default function useAlign(open, popupEle, target, placement, builtinPlacements, popupAlign, onPopupAlign) {\n  var _React$useState = React.useState({\n      ready: false,\n      offsetX: 0,\n      offsetY: 0,\n      offsetR: 0,\n      offsetB: 0,\n      arrowX: 0,\n      arrowY: 0,\n      scaleX: 1,\n      scaleY: 1,\n      align: builtinPlacements[placement] || {}\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    offsetInfo = _React$useState2[0],\n    setOffsetInfo = _React$useState2[1];\n  var alignCountRef = React.useRef(0);\n  var scrollerList = React.useMemo(function () {\n    if (!popupEle) {\n      return [];\n    }\n    return collectScroller(popupEle);\n  }, [popupEle]);\n\n  // ========================= Flip ==========================\n  // We will memo flip info.\n  // If size change to make flip, it will memo the flip info and use it in next align.\n  var prevFlipRef = React.useRef({});\n  var resetFlipCache = function resetFlipCache() {\n    prevFlipRef.current = {};\n  };\n  if (!open) {\n    resetFlipCache();\n  }\n\n  // ========================= Align =========================\n  var onAlign = useEvent(function () {\n    if (popupEle && target && open) {\n      var _popupElement$parentE, _popupRect$x, _popupRect$y, _popupElement$parentE2;\n      var popupElement = popupEle;\n      var doc = popupElement.ownerDocument;\n      var win = getWin(popupElement);\n      var _win$getComputedStyle = win.getComputedStyle(popupElement),\n        width = _win$getComputedStyle.width,\n        height = _win$getComputedStyle.height,\n        popupPosition = _win$getComputedStyle.position;\n      var originLeft = popupElement.style.left;\n      var originTop = popupElement.style.top;\n      var originRight = popupElement.style.right;\n      var originBottom = popupElement.style.bottom;\n      var originOverflow = popupElement.style.overflow;\n\n      // Placement\n      var placementInfo = _objectSpread(_objectSpread({}, builtinPlacements[placement]), popupAlign);\n\n      // placeholder element\n      var placeholderElement = doc.createElement('div');\n      (_popupElement$parentE = popupElement.parentElement) === null || _popupElement$parentE === void 0 || _popupElement$parentE.appendChild(placeholderElement);\n      placeholderElement.style.left = \"\".concat(popupElement.offsetLeft, \"px\");\n      placeholderElement.style.top = \"\".concat(popupElement.offsetTop, \"px\");\n      placeholderElement.style.position = popupPosition;\n      placeholderElement.style.height = \"\".concat(popupElement.offsetHeight, \"px\");\n      placeholderElement.style.width = \"\".concat(popupElement.offsetWidth, \"px\");\n\n      // Reset first\n      popupElement.style.left = '0';\n      popupElement.style.top = '0';\n      popupElement.style.right = 'auto';\n      popupElement.style.bottom = 'auto';\n      popupElement.style.overflow = 'hidden';\n\n      // Calculate align style, we should consider `transform` case\n      var targetRect;\n      if (Array.isArray(target)) {\n        targetRect = {\n          x: target[0],\n          y: target[1],\n          width: 0,\n          height: 0\n        };\n      } else {\n        var _rect$x, _rect$y;\n        var rect = target.getBoundingClientRect();\n        rect.x = (_rect$x = rect.x) !== null && _rect$x !== void 0 ? _rect$x : rect.left;\n        rect.y = (_rect$y = rect.y) !== null && _rect$y !== void 0 ? _rect$y : rect.top;\n        targetRect = {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        };\n      }\n      var popupRect = popupElement.getBoundingClientRect();\n      popupRect.x = (_popupRect$x = popupRect.x) !== null && _popupRect$x !== void 0 ? _popupRect$x : popupRect.left;\n      popupRect.y = (_popupRect$y = popupRect.y) !== null && _popupRect$y !== void 0 ? _popupRect$y : popupRect.top;\n      var _doc$documentElement = doc.documentElement,\n        clientWidth = _doc$documentElement.clientWidth,\n        clientHeight = _doc$documentElement.clientHeight,\n        scrollWidth = _doc$documentElement.scrollWidth,\n        scrollHeight = _doc$documentElement.scrollHeight,\n        scrollTop = _doc$documentElement.scrollTop,\n        scrollLeft = _doc$documentElement.scrollLeft;\n      var popupHeight = popupRect.height;\n      var popupWidth = popupRect.width;\n      var targetHeight = targetRect.height;\n      var targetWidth = targetRect.width;\n\n      // Get bounding of visible area\n      var visibleRegion = {\n        left: 0,\n        top: 0,\n        right: clientWidth,\n        bottom: clientHeight\n      };\n      var scrollRegion = {\n        left: -scrollLeft,\n        top: -scrollTop,\n        right: scrollWidth - scrollLeft,\n        bottom: scrollHeight - scrollTop\n      };\n      var htmlRegion = placementInfo.htmlRegion;\n      var VISIBLE = 'visible';\n      var VISIBLE_FIRST = 'visibleFirst';\n      if (htmlRegion !== 'scroll' && htmlRegion !== VISIBLE_FIRST) {\n        htmlRegion = VISIBLE;\n      }\n      var isVisibleFirst = htmlRegion === VISIBLE_FIRST;\n      var scrollRegionArea = getVisibleArea(scrollRegion, scrollerList);\n      var visibleRegionArea = getVisibleArea(visibleRegion, scrollerList);\n      var visibleArea = htmlRegion === VISIBLE ? visibleRegionArea : scrollRegionArea;\n\n      // When set to `visibleFirst`,\n      // the check `adjust` logic will use `visibleRegion` for check first.\n      var adjustCheckVisibleArea = isVisibleFirst ? visibleRegionArea : visibleArea;\n\n      // Record right & bottom align data\n      popupElement.style.left = 'auto';\n      popupElement.style.top = 'auto';\n      popupElement.style.right = '0';\n      popupElement.style.bottom = '0';\n      var popupMirrorRect = popupElement.getBoundingClientRect();\n\n      // Reset back\n      popupElement.style.left = originLeft;\n      popupElement.style.top = originTop;\n      popupElement.style.right = originRight;\n      popupElement.style.bottom = originBottom;\n      popupElement.style.overflow = originOverflow;\n      (_popupElement$parentE2 = popupElement.parentElement) === null || _popupElement$parentE2 === void 0 || _popupElement$parentE2.removeChild(placeholderElement);\n\n      // Calculate scale\n      var _scaleX = toNum(Math.round(popupWidth / parseFloat(width) * 1000) / 1000);\n      var _scaleY = toNum(Math.round(popupHeight / parseFloat(height) * 1000) / 1000);\n\n      // No need to align since it's not visible in view\n      if (_scaleX === 0 || _scaleY === 0 || isDOM(target) && !isVisible(target)) {\n        return;\n      }\n\n      // Offset\n      var offset = placementInfo.offset,\n        targetOffset = placementInfo.targetOffset;\n      var _getNumberOffset = getNumberOffset(popupRect, offset),\n        _getNumberOffset2 = _slicedToArray(_getNumberOffset, 2),\n        popupOffsetX = _getNumberOffset2[0],\n        popupOffsetY = _getNumberOffset2[1];\n      var _getNumberOffset3 = getNumberOffset(targetRect, targetOffset),\n        _getNumberOffset4 = _slicedToArray(_getNumberOffset3, 2),\n        targetOffsetX = _getNumberOffset4[0],\n        targetOffsetY = _getNumberOffset4[1];\n      targetRect.x -= targetOffsetX;\n      targetRect.y -= targetOffsetY;\n\n      // Points\n      var _ref3 = placementInfo.points || [],\n        _ref4 = _slicedToArray(_ref3, 2),\n        popupPoint = _ref4[0],\n        targetPoint = _ref4[1];\n      var targetPoints = splitPoints(targetPoint);\n      var popupPoints = splitPoints(popupPoint);\n      var targetAlignPoint = getAlignPoint(targetRect, targetPoints);\n      var popupAlignPoint = getAlignPoint(popupRect, popupPoints);\n\n      // Real align info may not same as origin one\n      var nextAlignInfo = _objectSpread({}, placementInfo);\n\n      // Next Offset\n      var nextOffsetX = targetAlignPoint.x - popupAlignPoint.x + popupOffsetX;\n      var nextOffsetY = targetAlignPoint.y - popupAlignPoint.y + popupOffsetY;\n\n      // ============== Intersection ===============\n      // Get area by position. Used for check if flip area is better\n      function getIntersectionVisibleArea(offsetX, offsetY) {\n        var area = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : visibleArea;\n        var l = popupRect.x + offsetX;\n        var t = popupRect.y + offsetY;\n        var r = l + popupWidth;\n        var b = t + popupHeight;\n        var visibleL = Math.max(l, area.left);\n        var visibleT = Math.max(t, area.top);\n        var visibleR = Math.min(r, area.right);\n        var visibleB = Math.min(b, area.bottom);\n        return Math.max(0, (visibleR - visibleL) * (visibleB - visibleT));\n      }\n      var originIntersectionVisibleArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY);\n\n      // As `visibleFirst`, we prepare this for check\n      var originIntersectionRecommendArea = getIntersectionVisibleArea(nextOffsetX, nextOffsetY, visibleRegionArea);\n\n      // ========================== Overflow ===========================\n      var targetAlignPointTL = getAlignPoint(targetRect, ['t', 'l']);\n      var popupAlignPointTL = getAlignPoint(popupRect, ['t', 'l']);\n      var targetAlignPointBR = getAlignPoint(targetRect, ['b', 'r']);\n      var popupAlignPointBR = getAlignPoint(popupRect, ['b', 'r']);\n      var overflow = placementInfo.overflow || {};\n      var adjustX = overflow.adjustX,\n        adjustY = overflow.adjustY,\n        shiftX = overflow.shiftX,\n        shiftY = overflow.shiftY;\n      var supportAdjust = function supportAdjust(val) {\n        if (typeof val === 'boolean') {\n          return val;\n        }\n        return val >= 0;\n      };\n\n      // Prepare position\n      var nextPopupY;\n      var nextPopupBottom;\n      var nextPopupX;\n      var nextPopupRight;\n      function syncNextPopupPosition() {\n        nextPopupY = popupRect.y + nextOffsetY;\n        nextPopupBottom = nextPopupY + popupHeight;\n        nextPopupX = popupRect.x + nextOffsetX;\n        nextPopupRight = nextPopupX + popupWidth;\n      }\n      syncNextPopupPosition();\n\n      // >>>>>>>>>> Top & Bottom\n      var needAdjustY = supportAdjust(adjustY);\n      var sameTB = popupPoints[0] === targetPoints[0];\n\n      // Bottom to Top\n      if (needAdjustY && popupPoints[0] === 't' && (nextPopupBottom > adjustCheckVisibleArea.bottom || prevFlipRef.current.bt)) {\n        var tmpNextOffsetY = nextOffsetY;\n        if (sameTB) {\n          tmpNextOffsetY -= popupHeight - targetHeight;\n        } else {\n          tmpNextOffsetY = targetAlignPointTL.y - popupAlignPointBR.y - popupOffsetY;\n        }\n        var newVisibleArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY);\n        var newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, tmpNextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        newVisibleArea > originIntersectionVisibleArea || newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.bt = true;\n          nextOffsetY = tmpNextOffsetY;\n          popupOffsetY = -popupOffsetY;\n          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n        } else {\n          prevFlipRef.current.bt = false;\n        }\n      }\n\n      // Top to Bottom\n      if (needAdjustY && popupPoints[0] === 'b' && (nextPopupY < adjustCheckVisibleArea.top || prevFlipRef.current.tb)) {\n        var _tmpNextOffsetY = nextOffsetY;\n        if (sameTB) {\n          _tmpNextOffsetY += popupHeight - targetHeight;\n        } else {\n          _tmpNextOffsetY = targetAlignPointBR.y - popupAlignPointTL.y - popupOffsetY;\n        }\n        var _newVisibleArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY);\n        var _newVisibleRecommendArea = getIntersectionVisibleArea(nextOffsetX, _tmpNextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea > originIntersectionVisibleArea || _newVisibleArea === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.tb = true;\n          nextOffsetY = _tmpNextOffsetY;\n          popupOffsetY = -popupOffsetY;\n          nextAlignInfo.points = [reversePoints(popupPoints, 0), reversePoints(targetPoints, 0)];\n        } else {\n          prevFlipRef.current.tb = false;\n        }\n      }\n\n      // >>>>>>>>>> Left & Right\n      var needAdjustX = supportAdjust(adjustX);\n\n      // >>>>> Flip\n      var sameLR = popupPoints[1] === targetPoints[1];\n\n      // Right to Left\n      if (needAdjustX && popupPoints[1] === 'l' && (nextPopupRight > adjustCheckVisibleArea.right || prevFlipRef.current.rl)) {\n        var tmpNextOffsetX = nextOffsetX;\n        if (sameLR) {\n          tmpNextOffsetX -= popupWidth - targetWidth;\n        } else {\n          tmpNextOffsetX = targetAlignPointTL.x - popupAlignPointBR.x - popupOffsetX;\n        }\n        var _newVisibleArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY);\n        var _newVisibleRecommendArea2 = getIntersectionVisibleArea(tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea2 > originIntersectionVisibleArea || _newVisibleArea2 === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea2 >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.rl = true;\n          nextOffsetX = tmpNextOffsetX;\n          popupOffsetX = -popupOffsetX;\n          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n        } else {\n          prevFlipRef.current.rl = false;\n        }\n      }\n\n      // Left to Right\n      if (needAdjustX && popupPoints[1] === 'r' && (nextPopupX < adjustCheckVisibleArea.left || prevFlipRef.current.lr)) {\n        var _tmpNextOffsetX = nextOffsetX;\n        if (sameLR) {\n          _tmpNextOffsetX += popupWidth - targetWidth;\n        } else {\n          _tmpNextOffsetX = targetAlignPointBR.x - popupAlignPointTL.x - popupOffsetX;\n        }\n        var _newVisibleArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY);\n        var _newVisibleRecommendArea3 = getIntersectionVisibleArea(_tmpNextOffsetX, nextOffsetY, visibleRegionArea);\n        if (\n        // Of course use larger one\n        _newVisibleArea3 > originIntersectionVisibleArea || _newVisibleArea3 === originIntersectionVisibleArea && (!isVisibleFirst ||\n        // Choose recommend one\n        _newVisibleRecommendArea3 >= originIntersectionRecommendArea)) {\n          prevFlipRef.current.lr = true;\n          nextOffsetX = _tmpNextOffsetX;\n          popupOffsetX = -popupOffsetX;\n          nextAlignInfo.points = [reversePoints(popupPoints, 1), reversePoints(targetPoints, 1)];\n        } else {\n          prevFlipRef.current.lr = false;\n        }\n      }\n\n      // ============================ Shift ============================\n      syncNextPopupPosition();\n      var numShiftX = shiftX === true ? 0 : shiftX;\n      if (typeof numShiftX === 'number') {\n        // Left\n        if (nextPopupX < visibleRegionArea.left) {\n          nextOffsetX -= nextPopupX - visibleRegionArea.left - popupOffsetX;\n          if (targetRect.x + targetWidth < visibleRegionArea.left + numShiftX) {\n            nextOffsetX += targetRect.x - visibleRegionArea.left + targetWidth - numShiftX;\n          }\n        }\n\n        // Right\n        if (nextPopupRight > visibleRegionArea.right) {\n          nextOffsetX -= nextPopupRight - visibleRegionArea.right - popupOffsetX;\n          if (targetRect.x > visibleRegionArea.right - numShiftX) {\n            nextOffsetX += targetRect.x - visibleRegionArea.right + numShiftX;\n          }\n        }\n      }\n      var numShiftY = shiftY === true ? 0 : shiftY;\n      if (typeof numShiftY === 'number') {\n        // Top\n        if (nextPopupY < visibleRegionArea.top) {\n          nextOffsetY -= nextPopupY - visibleRegionArea.top - popupOffsetY;\n\n          // When target if far away from visible area\n          // Stop shift\n          if (targetRect.y + targetHeight < visibleRegionArea.top + numShiftY) {\n            nextOffsetY += targetRect.y - visibleRegionArea.top + targetHeight - numShiftY;\n          }\n        }\n\n        // Bottom\n        if (nextPopupBottom > visibleRegionArea.bottom) {\n          nextOffsetY -= nextPopupBottom - visibleRegionArea.bottom - popupOffsetY;\n          if (targetRect.y > visibleRegionArea.bottom - numShiftY) {\n            nextOffsetY += targetRect.y - visibleRegionArea.bottom + numShiftY;\n          }\n        }\n      }\n\n      // ============================ Arrow ============================\n      // Arrow center align\n      var popupLeft = popupRect.x + nextOffsetX;\n      var popupRight = popupLeft + popupWidth;\n      var popupTop = popupRect.y + nextOffsetY;\n      var popupBottom = popupTop + popupHeight;\n      var targetLeft = targetRect.x;\n      var targetRight = targetLeft + targetWidth;\n      var targetTop = targetRect.y;\n      var targetBottom = targetTop + targetHeight;\n      var maxLeft = Math.max(popupLeft, targetLeft);\n      var minRight = Math.min(popupRight, targetRight);\n      var xCenter = (maxLeft + minRight) / 2;\n      var nextArrowX = xCenter - popupLeft;\n      var maxTop = Math.max(popupTop, targetTop);\n      var minBottom = Math.min(popupBottom, targetBottom);\n      var yCenter = (maxTop + minBottom) / 2;\n      var nextArrowY = yCenter - popupTop;\n      onPopupAlign === null || onPopupAlign === void 0 || onPopupAlign(popupEle, nextAlignInfo);\n\n      // Additional calculate right & bottom position\n      var offsetX4Right = popupMirrorRect.right - popupRect.x - (nextOffsetX + popupRect.width);\n      var offsetY4Bottom = popupMirrorRect.bottom - popupRect.y - (nextOffsetY + popupRect.height);\n      if (_scaleX === 1) {\n        nextOffsetX = Math.round(nextOffsetX);\n        offsetX4Right = Math.round(offsetX4Right);\n      }\n      if (_scaleY === 1) {\n        nextOffsetY = Math.round(nextOffsetY);\n        offsetY4Bottom = Math.round(offsetY4Bottom);\n      }\n      var nextOffsetInfo = {\n        ready: true,\n        offsetX: nextOffsetX / _scaleX,\n        offsetY: nextOffsetY / _scaleY,\n        offsetR: offsetX4Right / _scaleX,\n        offsetB: offsetY4Bottom / _scaleY,\n        arrowX: nextArrowX / _scaleX,\n        arrowY: nextArrowY / _scaleY,\n        scaleX: _scaleX,\n        scaleY: _scaleY,\n        align: nextAlignInfo\n      };\n      setOffsetInfo(nextOffsetInfo);\n    }\n  });\n  var triggerAlign = function triggerAlign() {\n    alignCountRef.current += 1;\n    var id = alignCountRef.current;\n\n    // Merge all align requirement into one frame\n    Promise.resolve().then(function () {\n      if (alignCountRef.current === id) {\n        onAlign();\n      }\n    });\n  };\n\n  // Reset ready status when placement & open changed\n  var resetReady = function resetReady() {\n    setOffsetInfo(function (ori) {\n      return _objectSpread(_objectSpread({}, ori), {}, {\n        ready: false\n      });\n    });\n  };\n  useLayoutEffect(resetReady, [placement]);\n  useLayoutEffect(function () {\n    if (!open) {\n      resetReady();\n    }\n  }, [open]);\n  return [offsetInfo.ready, offsetInfo.offsetX, offsetInfo.offsetY, offsetInfo.offsetR, offsetInfo.offsetB, offsetInfo.arrowX, offsetInfo.arrowY, offsetInfo.scaleX, offsetInfo.scaleY, offsetInfo.align, triggerAlign];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"children\", \"action\", \"showAction\", \"hideAction\", \"popupVisible\", \"defaultPopupVisible\", \"onPopupVisibleChange\", \"afterPopupVisibleChange\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"focusDelay\", \"blurDelay\", \"mask\", \"maskClosable\", \"getPopupContainer\", \"forceRender\", \"autoDestroy\", \"destroyPopupOnHide\", \"popup\", \"popupClassName\", \"popupStyle\", \"popupPlacement\", \"builtinPlacements\", \"popupAlign\", \"zIndex\", \"stretch\", \"getPopupClassNameFromAlign\", \"fresh\", \"alignPoint\", \"onPopupClick\", \"onPopupAlign\", \"arrow\", \"popupMotion\", \"maskMotion\", \"popupTransitionName\", \"popupAnimation\", \"maskTransitionName\", \"maskAnimation\", \"className\", \"getTriggerDOMNode\"];\nimport Portal from '@rc-component/portal';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { isDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useId from \"rc-util/es/hooks/useId\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport * as React from 'react';\nimport Popup from \"./Popup\";\nimport TriggerWrapper from \"./TriggerWrapper\";\nimport TriggerContext from \"./context\";\nimport useAction from \"./hooks/useAction\";\nimport useAlign from \"./hooks/useAlign\";\nimport useWatch from \"./hooks/useWatch\";\nimport useWinClick from \"./hooks/useWinClick\";\nimport { getAlignPopupClassName, getMotion } from \"./util\";\n\n// Removed Props List\n// Seems this can be auto\n// getDocument?: (element?: HTMLElement) => Document;\n\n// New version will not wrap popup with `rc-trigger-popup-content` when multiple children\n\nexport function generateTrigger() {\n  var PortalComponent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Portal;\n  var Trigger = /*#__PURE__*/React.forwardRef(function (props, ref) {\n    var _props$prefixCls = props.prefixCls,\n      prefixCls = _props$prefixCls === void 0 ? 'rc-trigger-popup' : _props$prefixCls,\n      children = props.children,\n      _props$action = props.action,\n      action = _props$action === void 0 ? 'hover' : _props$action,\n      showAction = props.showAction,\n      hideAction = props.hideAction,\n      popupVisible = props.popupVisible,\n      defaultPopupVisible = props.defaultPopupVisible,\n      onPopupVisibleChange = props.onPopupVisibleChange,\n      afterPopupVisibleChange = props.afterPopupVisibleChange,\n      mouseEnterDelay = props.mouseEnterDelay,\n      _props$mouseLeaveDela = props.mouseLeaveDelay,\n      mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n      focusDelay = props.focusDelay,\n      blurDelay = props.blurDelay,\n      mask = props.mask,\n      _props$maskClosable = props.maskClosable,\n      maskClosable = _props$maskClosable === void 0 ? true : _props$maskClosable,\n      getPopupContainer = props.getPopupContainer,\n      forceRender = props.forceRender,\n      autoDestroy = props.autoDestroy,\n      destroyPopupOnHide = props.destroyPopupOnHide,\n      popup = props.popup,\n      popupClassName = props.popupClassName,\n      popupStyle = props.popupStyle,\n      popupPlacement = props.popupPlacement,\n      _props$builtinPlaceme = props.builtinPlacements,\n      builtinPlacements = _props$builtinPlaceme === void 0 ? {} : _props$builtinPlaceme,\n      popupAlign = props.popupAlign,\n      zIndex = props.zIndex,\n      stretch = props.stretch,\n      getPopupClassNameFromAlign = props.getPopupClassNameFromAlign,\n      fresh = props.fresh,\n      alignPoint = props.alignPoint,\n      onPopupClick = props.onPopupClick,\n      onPopupAlign = props.onPopupAlign,\n      arrow = props.arrow,\n      popupMotion = props.popupMotion,\n      maskMotion = props.maskMotion,\n      popupTransitionName = props.popupTransitionName,\n      popupAnimation = props.popupAnimation,\n      maskTransitionName = props.maskTransitionName,\n      maskAnimation = props.maskAnimation,\n      className = props.className,\n      getTriggerDOMNode = props.getTriggerDOMNode,\n      restProps = _objectWithoutProperties(props, _excluded);\n    var mergedAutoDestroy = autoDestroy || destroyPopupOnHide || false;\n\n    // =========================== Mobile ===========================\n    var _React$useState = React.useState(false),\n      _React$useState2 = _slicedToArray(_React$useState, 2),\n      mobile = _React$useState2[0],\n      setMobile = _React$useState2[1];\n    useLayoutEffect(function () {\n      setMobile(isMobile());\n    }, []);\n\n    // ========================== Context ===========================\n    var subPopupElements = React.useRef({});\n    var parentContext = React.useContext(TriggerContext);\n    var context = React.useMemo(function () {\n      return {\n        registerSubPopup: function registerSubPopup(id, subPopupEle) {\n          subPopupElements.current[id] = subPopupEle;\n          parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, subPopupEle);\n        }\n      };\n    }, [parentContext]);\n\n    // =========================== Popup ============================\n    var id = useId();\n    var _React$useState3 = React.useState(null),\n      _React$useState4 = _slicedToArray(_React$useState3, 2),\n      popupEle = _React$useState4[0],\n      setPopupEle = _React$useState4[1];\n\n    // Used for forwardRef popup. Not use internal\n    var externalPopupRef = React.useRef(null);\n    var setPopupRef = useEvent(function (node) {\n      externalPopupRef.current = node;\n      if (isDOM(node) && popupEle !== node) {\n        setPopupEle(node);\n      }\n      parentContext === null || parentContext === void 0 || parentContext.registerSubPopup(id, node);\n    });\n\n    // =========================== Target ===========================\n    // Use state to control here since `useRef` update not trigger render\n    var _React$useState5 = React.useState(null),\n      _React$useState6 = _slicedToArray(_React$useState5, 2),\n      targetEle = _React$useState6[0],\n      setTargetEle = _React$useState6[1];\n\n    // Used for forwardRef target. Not use internal\n    var externalForwardRef = React.useRef(null);\n    var setTargetRef = useEvent(function (node) {\n      if (isDOM(node) && targetEle !== node) {\n        setTargetEle(node);\n        externalForwardRef.current = node;\n      }\n    });\n\n    // ========================== Children ==========================\n    var child = React.Children.only(children);\n    var originChildProps = (child === null || child === void 0 ? void 0 : child.props) || {};\n    var cloneProps = {};\n    var inPopupOrChild = useEvent(function (ele) {\n      var _getShadowRoot, _getShadowRoot2;\n      var childDOM = targetEle;\n      return (childDOM === null || childDOM === void 0 ? void 0 : childDOM.contains(ele)) || ((_getShadowRoot = getShadowRoot(childDOM)) === null || _getShadowRoot === void 0 ? void 0 : _getShadowRoot.host) === ele || ele === childDOM || (popupEle === null || popupEle === void 0 ? void 0 : popupEle.contains(ele)) || ((_getShadowRoot2 = getShadowRoot(popupEle)) === null || _getShadowRoot2 === void 0 ? void 0 : _getShadowRoot2.host) === ele || ele === popupEle || Object.values(subPopupElements.current).some(function (subPopupEle) {\n        return (subPopupEle === null || subPopupEle === void 0 ? void 0 : subPopupEle.contains(ele)) || ele === subPopupEle;\n      });\n    });\n\n    // =========================== Motion ===========================\n    var mergePopupMotion = getMotion(prefixCls, popupMotion, popupAnimation, popupTransitionName);\n    var mergeMaskMotion = getMotion(prefixCls, maskMotion, maskAnimation, maskTransitionName);\n\n    // ============================ Open ============================\n    var _React$useState7 = React.useState(defaultPopupVisible || false),\n      _React$useState8 = _slicedToArray(_React$useState7, 2),\n      internalOpen = _React$useState8[0],\n      setInternalOpen = _React$useState8[1];\n\n    // Render still use props as first priority\n    var mergedOpen = popupVisible !== null && popupVisible !== void 0 ? popupVisible : internalOpen;\n\n    // We use effect sync here in case `popupVisible` back to `undefined`\n    var setMergedOpen = useEvent(function (nextOpen) {\n      if (popupVisible === undefined) {\n        setInternalOpen(nextOpen);\n      }\n    });\n    useLayoutEffect(function () {\n      setInternalOpen(popupVisible || false);\n    }, [popupVisible]);\n    var openRef = React.useRef(mergedOpen);\n    openRef.current = mergedOpen;\n    var lastTriggerRef = React.useRef([]);\n    lastTriggerRef.current = [];\n    var internalTriggerOpen = useEvent(function (nextOpen) {\n      var _lastTriggerRef$curre;\n      setMergedOpen(nextOpen);\n\n      // Enter or Pointer will both trigger open state change\n      // We only need take one to avoid duplicated change event trigger\n      // Use `lastTriggerRef` to record last open type\n      if (((_lastTriggerRef$curre = lastTriggerRef.current[lastTriggerRef.current.length - 1]) !== null && _lastTriggerRef$curre !== void 0 ? _lastTriggerRef$curre : mergedOpen) !== nextOpen) {\n        lastTriggerRef.current.push(nextOpen);\n        onPopupVisibleChange === null || onPopupVisibleChange === void 0 || onPopupVisibleChange(nextOpen);\n      }\n    });\n\n    // Trigger for delay\n    var delayRef = React.useRef();\n    var clearDelay = function clearDelay() {\n      clearTimeout(delayRef.current);\n    };\n    var triggerOpen = function triggerOpen(nextOpen) {\n      var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      clearDelay();\n      if (delay === 0) {\n        internalTriggerOpen(nextOpen);\n      } else {\n        delayRef.current = setTimeout(function () {\n          internalTriggerOpen(nextOpen);\n        }, delay * 1000);\n      }\n    };\n    React.useEffect(function () {\n      return clearDelay;\n    }, []);\n\n    // ========================== Motion ============================\n    var _React$useState9 = React.useState(false),\n      _React$useState10 = _slicedToArray(_React$useState9, 2),\n      inMotion = _React$useState10[0],\n      setInMotion = _React$useState10[1];\n    useLayoutEffect(function (firstMount) {\n      if (!firstMount || mergedOpen) {\n        setInMotion(true);\n      }\n    }, [mergedOpen]);\n    var _React$useState11 = React.useState(null),\n      _React$useState12 = _slicedToArray(_React$useState11, 2),\n      motionPrepareResolve = _React$useState12[0],\n      setMotionPrepareResolve = _React$useState12[1];\n\n    // =========================== Align ============================\n    var _React$useState13 = React.useState(null),\n      _React$useState14 = _slicedToArray(_React$useState13, 2),\n      mousePos = _React$useState14[0],\n      setMousePos = _React$useState14[1];\n    var setMousePosByEvent = function setMousePosByEvent(event) {\n      setMousePos([event.clientX, event.clientY]);\n    };\n    var _useAlign = useAlign(mergedOpen, popupEle, alignPoint && mousePos !== null ? mousePos : targetEle, popupPlacement, builtinPlacements, popupAlign, onPopupAlign),\n      _useAlign2 = _slicedToArray(_useAlign, 11),\n      ready = _useAlign2[0],\n      offsetX = _useAlign2[1],\n      offsetY = _useAlign2[2],\n      offsetR = _useAlign2[3],\n      offsetB = _useAlign2[4],\n      arrowX = _useAlign2[5],\n      arrowY = _useAlign2[6],\n      scaleX = _useAlign2[7],\n      scaleY = _useAlign2[8],\n      alignInfo = _useAlign2[9],\n      onAlign = _useAlign2[10];\n    var _useAction = useAction(mobile, action, showAction, hideAction),\n      _useAction2 = _slicedToArray(_useAction, 2),\n      showActions = _useAction2[0],\n      hideActions = _useAction2[1];\n    var clickToShow = showActions.has('click');\n    var clickToHide = hideActions.has('click') || hideActions.has('contextMenu');\n    var triggerAlign = useEvent(function () {\n      if (!inMotion) {\n        onAlign();\n      }\n    });\n    var onScroll = function onScroll() {\n      if (openRef.current && alignPoint && clickToHide) {\n        triggerOpen(false);\n      }\n    };\n    useWatch(mergedOpen, targetEle, popupEle, triggerAlign, onScroll);\n    useLayoutEffect(function () {\n      triggerAlign();\n    }, [mousePos, popupPlacement]);\n\n    // When no builtinPlacements and popupAlign changed\n    useLayoutEffect(function () {\n      if (mergedOpen && !(builtinPlacements !== null && builtinPlacements !== void 0 && builtinPlacements[popupPlacement])) {\n        triggerAlign();\n      }\n    }, [JSON.stringify(popupAlign)]);\n    var alignedClassName = React.useMemo(function () {\n      var baseClassName = getAlignPopupClassName(builtinPlacements, prefixCls, alignInfo, alignPoint);\n      return classNames(baseClassName, getPopupClassNameFromAlign === null || getPopupClassNameFromAlign === void 0 ? void 0 : getPopupClassNameFromAlign(alignInfo));\n    }, [alignInfo, getPopupClassNameFromAlign, builtinPlacements, prefixCls, alignPoint]);\n\n    // ============================ Refs ============================\n    React.useImperativeHandle(ref, function () {\n      return {\n        nativeElement: externalForwardRef.current,\n        popupElement: externalPopupRef.current,\n        forceAlign: triggerAlign\n      };\n    });\n\n    // ========================== Stretch ===========================\n    var _React$useState15 = React.useState(0),\n      _React$useState16 = _slicedToArray(_React$useState15, 2),\n      targetWidth = _React$useState16[0],\n      setTargetWidth = _React$useState16[1];\n    var _React$useState17 = React.useState(0),\n      _React$useState18 = _slicedToArray(_React$useState17, 2),\n      targetHeight = _React$useState18[0],\n      setTargetHeight = _React$useState18[1];\n    var syncTargetSize = function syncTargetSize() {\n      if (stretch && targetEle) {\n        var rect = targetEle.getBoundingClientRect();\n        setTargetWidth(rect.width);\n        setTargetHeight(rect.height);\n      }\n    };\n    var onTargetResize = function onTargetResize() {\n      syncTargetSize();\n      triggerAlign();\n    };\n\n    // ========================== Motion ============================\n    var onVisibleChanged = function onVisibleChanged(visible) {\n      setInMotion(false);\n      onAlign();\n      afterPopupVisibleChange === null || afterPopupVisibleChange === void 0 || afterPopupVisibleChange(visible);\n    };\n\n    // We will trigger align when motion is in prepare\n    var onPrepare = function onPrepare() {\n      return new Promise(function (resolve) {\n        syncTargetSize();\n        setMotionPrepareResolve(function () {\n          return resolve;\n        });\n      });\n    };\n    useLayoutEffect(function () {\n      if (motionPrepareResolve) {\n        onAlign();\n        motionPrepareResolve();\n        setMotionPrepareResolve(null);\n      }\n    }, [motionPrepareResolve]);\n\n    // =========================== Action ===========================\n    /**\n     * Util wrapper for trigger action\n     */\n    function wrapperAction(eventName, nextOpen, delay, preEvent) {\n      cloneProps[eventName] = function (event) {\n        var _originChildProps$eve;\n        preEvent === null || preEvent === void 0 || preEvent(event);\n        triggerOpen(nextOpen, delay);\n\n        // Pass to origin\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        (_originChildProps$eve = originChildProps[eventName]) === null || _originChildProps$eve === void 0 || _originChildProps$eve.call.apply(_originChildProps$eve, [originChildProps, event].concat(args));\n      };\n    }\n\n    // ======================= Action: Click ========================\n    if (clickToShow || clickToHide) {\n      cloneProps.onClick = function (event) {\n        var _originChildProps$onC;\n        if (openRef.current && clickToHide) {\n          triggerOpen(false);\n        } else if (!openRef.current && clickToShow) {\n          setMousePosByEvent(event);\n          triggerOpen(true);\n        }\n\n        // Pass to origin\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        (_originChildProps$onC = originChildProps.onClick) === null || _originChildProps$onC === void 0 || _originChildProps$onC.call.apply(_originChildProps$onC, [originChildProps, event].concat(args));\n      };\n    }\n\n    // Click to hide is special action since click popup element should not hide\n    var onPopupPointerDown = useWinClick(mergedOpen, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen);\n\n    // ======================= Action: Hover ========================\n    var hoverToShow = showActions.has('hover');\n    var hoverToHide = hideActions.has('hover');\n    var onPopupMouseEnter;\n    var onPopupMouseLeave;\n    if (hoverToShow) {\n      // Compatible with old browser which not support pointer event\n      wrapperAction('onMouseEnter', true, mouseEnterDelay, function (event) {\n        setMousePosByEvent(event);\n      });\n      wrapperAction('onPointerEnter', true, mouseEnterDelay, function (event) {\n        setMousePosByEvent(event);\n      });\n      onPopupMouseEnter = function onPopupMouseEnter(event) {\n        // Only trigger re-open when popup is visible\n        if ((mergedOpen || inMotion) && popupEle !== null && popupEle !== void 0 && popupEle.contains(event.target)) {\n          triggerOpen(true, mouseEnterDelay);\n        }\n      };\n\n      // Align Point\n      if (alignPoint) {\n        cloneProps.onMouseMove = function (event) {\n          var _originChildProps$onM;\n          // setMousePosByEvent(event);\n          (_originChildProps$onM = originChildProps.onMouseMove) === null || _originChildProps$onM === void 0 || _originChildProps$onM.call(originChildProps, event);\n        };\n      }\n    }\n    if (hoverToHide) {\n      wrapperAction('onMouseLeave', false, mouseLeaveDelay);\n      wrapperAction('onPointerLeave', false, mouseLeaveDelay);\n      onPopupMouseLeave = function onPopupMouseLeave() {\n        triggerOpen(false, mouseLeaveDelay);\n      };\n    }\n\n    // ======================= Action: Focus ========================\n    if (showActions.has('focus')) {\n      wrapperAction('onFocus', true, focusDelay);\n    }\n    if (hideActions.has('focus')) {\n      wrapperAction('onBlur', false, blurDelay);\n    }\n\n    // ==================== Action: ContextMenu =====================\n    if (showActions.has('contextMenu')) {\n      cloneProps.onContextMenu = function (event) {\n        var _originChildProps$onC2;\n        if (openRef.current && hideActions.has('contextMenu')) {\n          triggerOpen(false);\n        } else {\n          setMousePosByEvent(event);\n          triggerOpen(true);\n        }\n        event.preventDefault();\n\n        // Pass to origin\n        for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n          args[_key3 - 1] = arguments[_key3];\n        }\n        (_originChildProps$onC2 = originChildProps.onContextMenu) === null || _originChildProps$onC2 === void 0 || _originChildProps$onC2.call.apply(_originChildProps$onC2, [originChildProps, event].concat(args));\n      };\n    }\n\n    // ========================= ClassName ==========================\n    if (className) {\n      cloneProps.className = classNames(originChildProps.className, className);\n    }\n\n    // =========================== Render ===========================\n    var mergedChildrenProps = _objectSpread(_objectSpread({}, originChildProps), cloneProps);\n\n    // Pass props into cloneProps for nest usage\n    var passedProps = {};\n    var passedEventList = ['onContextMenu', 'onClick', 'onMouseDown', 'onTouchStart', 'onMouseEnter', 'onMouseLeave', 'onFocus', 'onBlur'];\n    passedEventList.forEach(function (eventName) {\n      if (restProps[eventName]) {\n        passedProps[eventName] = function () {\n          var _mergedChildrenProps$;\n          for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n            args[_key4] = arguments[_key4];\n          }\n          (_mergedChildrenProps$ = mergedChildrenProps[eventName]) === null || _mergedChildrenProps$ === void 0 || _mergedChildrenProps$.call.apply(_mergedChildrenProps$, [mergedChildrenProps].concat(args));\n          restProps[eventName].apply(restProps, args);\n        };\n      }\n    });\n\n    // Child Node\n    var triggerNode = /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({}, mergedChildrenProps), passedProps));\n    var arrowPos = {\n      x: arrowX,\n      y: arrowY\n    };\n    var innerArrow = arrow ? _objectSpread({}, arrow !== true ? arrow : {}) : null;\n\n    // Render\n    return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ResizeObserver, {\n      disabled: !mergedOpen,\n      ref: setTargetRef,\n      onResize: onTargetResize\n    }, /*#__PURE__*/React.createElement(TriggerWrapper, {\n      getTriggerDOMNode: getTriggerDOMNode\n    }, triggerNode)), /*#__PURE__*/React.createElement(TriggerContext.Provider, {\n      value: context\n    }, /*#__PURE__*/React.createElement(Popup, {\n      portal: PortalComponent,\n      ref: setPopupRef,\n      prefixCls: prefixCls,\n      popup: popup,\n      className: classNames(popupClassName, alignedClassName),\n      style: popupStyle,\n      target: targetEle,\n      onMouseEnter: onPopupMouseEnter,\n      onMouseLeave: onPopupMouseLeave\n      // https://github.com/ant-design/ant-design/issues/43924\n      ,\n      onPointerEnter: onPopupMouseEnter,\n      zIndex: zIndex\n      // Open\n      ,\n      open: mergedOpen,\n      keepDom: inMotion,\n      fresh: fresh\n      // Click\n      ,\n      onClick: onPopupClick,\n      onPointerDownCapture: onPopupPointerDown\n      // Mask\n      ,\n      mask: mask\n      // Motion\n      ,\n      motion: mergePopupMotion,\n      maskMotion: mergeMaskMotion,\n      onVisibleChanged: onVisibleChanged,\n      onPrepare: onPrepare\n      // Portal\n      ,\n      forceRender: forceRender,\n      autoDestroy: mergedAutoDestroy,\n      getPopupContainer: getPopupContainer\n      // Arrow\n      ,\n      align: alignInfo,\n      arrow: innerArrow,\n      arrowPos: arrowPos\n      // Align\n      ,\n      ready: ready,\n      offsetX: offsetX,\n      offsetY: offsetY,\n      offsetR: offsetR,\n      offsetB: offsetB,\n      onAlign: triggerAlign\n      // Stretch\n      ,\n      stretch: stretch,\n      targetWidth: targetWidth / scaleX,\n      targetHeight: targetHeight / scaleY\n    })));\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    Trigger.displayName = 'Trigger';\n  }\n  return Trigger;\n}\nexport default generateTrigger(Portal);","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { collectScroller, getWin } from \"../util\";\nexport default function useWatch(open, target, popup, onAlign, onScroll) {\n  useLayoutEffect(function () {\n    if (open && target && popup) {\n      var targetElement = target;\n      var popupElement = popup;\n      var targetScrollList = collectScroller(targetElement);\n      var popupScrollList = collectScroller(popupElement);\n      var win = getWin(popupElement);\n      var mergedList = new Set([win].concat(_toConsumableArray(targetScrollList), _toConsumableArray(popupScrollList)));\n      function notifyScroll() {\n        onAlign();\n        onScroll();\n      }\n      mergedList.forEach(function (scroller) {\n        scroller.addEventListener('scroll', notifyScroll, {\n          passive: true\n        });\n      });\n      win.addEventListener('resize', notifyScroll, {\n        passive: true\n      });\n\n      // First time always do align\n      onAlign();\n      return function () {\n        mergedList.forEach(function (scroller) {\n          scroller.removeEventListener('scroll', notifyScroll);\n          win.removeEventListener('resize', notifyScroll);\n        });\n      };\n    }\n  }, [open, target, popup]);\n}","import { getShadowRoot } from \"rc-util/es/Dom/shadow\";\nimport { warning } from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { getWin } from \"../util\";\nexport default function useWinClick(open, clickToHide, targetEle, popupEle, mask, maskClosable, inPopupOrChild, triggerOpen) {\n  var openRef = React.useRef(open);\n  openRef.current = open;\n  var popupPointerDownRef = React.useRef(false);\n\n  // Click to hide is special action since click popup element should not hide\n  React.useEffect(function () {\n    if (clickToHide && popupEle && (!mask || maskClosable)) {\n      var onPointerDown = function onPointerDown() {\n        popupPointerDownRef.current = false;\n      };\n      var onTriggerClose = function onTriggerClose(e) {\n        var _e$composedPath;\n        if (openRef.current && !inPopupOrChild(((_e$composedPath = e.composedPath) === null || _e$composedPath === void 0 || (_e$composedPath = _e$composedPath.call(e)) === null || _e$composedPath === void 0 ? void 0 : _e$composedPath[0]) || e.target) && !popupPointerDownRef.current) {\n          triggerOpen(false);\n        }\n      };\n      var win = getWin(popupEle);\n      win.addEventListener('pointerdown', onPointerDown, true);\n      win.addEventListener('mousedown', onTriggerClose, true);\n      win.addEventListener('contextmenu', onTriggerClose, true);\n\n      // shadow root\n      var targetShadowRoot = getShadowRoot(targetEle);\n      if (targetShadowRoot) {\n        targetShadowRoot.addEventListener('mousedown', onTriggerClose, true);\n        targetShadowRoot.addEventListener('contextmenu', onTriggerClose, true);\n      }\n\n      // Warning if target and popup not in same root\n      if (process.env.NODE_ENV !== 'production') {\n        var _targetEle$getRootNod, _popupEle$getRootNode;\n        var targetRoot = targetEle === null || targetEle === void 0 || (_targetEle$getRootNod = targetEle.getRootNode) === null || _targetEle$getRootNod === void 0 ? void 0 : _targetEle$getRootNod.call(targetEle);\n        var popupRoot = (_popupEle$getRootNode = popupEle.getRootNode) === null || _popupEle$getRootNode === void 0 ? void 0 : _popupEle$getRootNode.call(popupEle);\n        warning(targetRoot === popupRoot, \"trigger element and popup element should in same shadow root.\");\n      }\n      return function () {\n        win.removeEventListener('pointerdown', onPointerDown, true);\n        win.removeEventListener('mousedown', onTriggerClose, true);\n        win.removeEventListener('contextmenu', onTriggerClose, true);\n        if (targetShadowRoot) {\n          targetShadowRoot.removeEventListener('mousedown', onTriggerClose, true);\n          targetShadowRoot.removeEventListener('contextmenu', onTriggerClose, true);\n        }\n      };\n    }\n  }, [clickToHide, targetEle, popupEle, mask, maskClosable]);\n  function onPopupPointerDown() {\n    popupPointerDownRef.current = true;\n  }\n  return onPopupPointerDown;\n}","var autoAdjustOverflow = {\n  adjustX: 1,\n  adjustY: 1\n};\nexport var placements = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow\n  },\n  leftTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  leftBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  rightTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  rightBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflow\n  }\n};\nexport var placementsRtl = {\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflow\n  },\n  rightTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflow\n  },\n  rightBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflow\n  },\n  leftTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflow\n  },\n  leftBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflow\n  }\n};\nexport default placements;","export function getMotion(mode, motion, defaultMotions) {\n  if (motion) {\n    return motion;\n  }\n  if (defaultMotions) {\n    return defaultMotions[mode] || defaultMotions.other;\n  }\n  return undefined;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport { MenuContext } from \"../context/MenuContext\";\nimport { placements, placementsRtl } from \"../placements\";\nimport { getMotion } from \"../utils/motionUtil\";\nvar popupPlacementMap = {\n  horizontal: 'bottomLeft',\n  vertical: 'rightTop',\n  'vertical-left': 'rightTop',\n  'vertical-right': 'leftTop'\n};\nexport default function PopupTrigger(_ref) {\n  var prefixCls = _ref.prefixCls,\n    visible = _ref.visible,\n    children = _ref.children,\n    popup = _ref.popup,\n    popupStyle = _ref.popupStyle,\n    popupClassName = _ref.popupClassName,\n    popupOffset = _ref.popupOffset,\n    disabled = _ref.disabled,\n    mode = _ref.mode,\n    onVisibleChange = _ref.onVisibleChange;\n  var _React$useContext = React.useContext(MenuContext),\n    getPopupContainer = _React$useContext.getPopupContainer,\n    rtl = _React$useContext.rtl,\n    subMenuOpenDelay = _React$useContext.subMenuOpenDelay,\n    subMenuCloseDelay = _React$useContext.subMenuCloseDelay,\n    builtinPlacements = _React$useContext.builtinPlacements,\n    triggerSubMenuAction = _React$useContext.triggerSubMenuAction,\n    forceSubMenuRender = _React$useContext.forceSubMenuRender,\n    rootClassName = _React$useContext.rootClassName,\n    motion = _React$useContext.motion,\n    defaultMotions = _React$useContext.defaultMotions;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerVisible = _React$useState2[0],\n    setInnerVisible = _React$useState2[1];\n  var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);\n  var popupPlacement = popupPlacementMap[mode];\n  var targetMotion = getMotion(mode, motion, defaultMotions);\n  var targetMotionRef = React.useRef(targetMotion);\n  if (mode !== 'inline') {\n    /**\n     * PopupTrigger is only used for vertical and horizontal types.\n     * When collapsed is unfolded, the inline animation will destroy the vertical animation.\n     */\n    targetMotionRef.current = targetMotion;\n  }\n  var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {\n    leavedClassName: \"\".concat(prefixCls, \"-hidden\"),\n    removeOnLeave: false,\n    motionAppear: true\n  });\n\n  // Delay to change visible\n  var visibleRef = React.useRef();\n  React.useEffect(function () {\n    visibleRef.current = raf(function () {\n      setInnerVisible(visible);\n    });\n    return function () {\n      raf.cancel(visibleRef.current);\n    };\n  }, [visible]);\n  return /*#__PURE__*/React.createElement(Trigger, {\n    prefixCls: prefixCls,\n    popupClassName: classNames(\"\".concat(prefixCls, \"-popup\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl), popupClassName, rootClassName),\n    stretch: mode === 'horizontal' ? 'minWidth' : null,\n    getPopupContainer: getPopupContainer,\n    builtinPlacements: placement,\n    popupPlacement: popupPlacement,\n    popupVisible: innerVisible,\n    popup: popup,\n    popupStyle: popupStyle,\n    popupAlign: popupOffset && {\n      offset: popupOffset\n    },\n    action: disabled ? [] : [triggerSubMenuAction],\n    mouseEnterDelay: subMenuOpenDelay,\n    mouseLeaveDelay: subMenuCloseDelay,\n    onPopupVisibleChange: onVisibleChange,\n    forceRender: forceSubMenuRender,\n    popupMotion: mergedMotion,\n    fresh: true\n  }, children);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport CSSMotion from 'rc-motion';\nimport { getMotion } from \"../utils/motionUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport SubMenuList from \"./SubMenuList\";\nexport default function InlineSubMenuList(_ref) {\n  var id = _ref.id,\n    open = _ref.open,\n    keyPath = _ref.keyPath,\n    children = _ref.children;\n  var fixedMode = 'inline';\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    forceSubMenuRender = _React$useContext.forceSubMenuRender,\n    motion = _React$useContext.motion,\n    defaultMotions = _React$useContext.defaultMotions,\n    mode = _React$useContext.mode;\n\n  // Always use latest mode check\n  var sameModeRef = React.useRef(false);\n  sameModeRef.current = mode === fixedMode;\n\n  // We record `destroy` mark here since when mode change from `inline` to others.\n  // The inline list should remove when motion end.\n  var _React$useState = React.useState(!sameModeRef.current),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    destroy = _React$useState2[0],\n    setDestroy = _React$useState2[1];\n  var mergedOpen = sameModeRef.current ? open : false;\n\n  // ================================= Effect =================================\n  // Reset destroy state when mode change back\n  React.useEffect(function () {\n    if (sameModeRef.current) {\n      setDestroy(false);\n    }\n  }, [mode]);\n\n  // ================================= Render =================================\n  var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));\n\n  // No need appear since nest inlineCollapse changed\n  if (keyPath.length > 1) {\n    mergedMotion.motionAppear = false;\n  }\n\n  // Hide inline list when mode changed and motion end\n  var originOnVisibleChanged = mergedMotion.onVisibleChanged;\n  mergedMotion.onVisibleChanged = function (newVisible) {\n    if (!sameModeRef.current && !newVisible) {\n      setDestroy(true);\n    }\n    return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);\n  };\n  if (destroy) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(MenuContextProvider, {\n    mode: fixedMode,\n    locked: !sameModeRef.current\n  }, /*#__PURE__*/React.createElement(CSSMotion, _extends({\n    visible: mergedOpen\n  }, mergedMotion, {\n    forceRender: forceSubMenuRender,\n    removeOnLeave: false,\n    leavedClassName: \"\".concat(prefixCls, \"-hidden\")\n  }), function (_ref2) {\n    var motionClassName = _ref2.className,\n      motionStyle = _ref2.style;\n    return /*#__PURE__*/React.createElement(SubMenuList, {\n      id: id,\n      className: motionClassName,\n      style: motionStyle\n    }, children);\n  }));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"style\", \"className\", \"title\", \"eventKey\", \"warnKey\", \"disabled\", \"internalPopupClose\", \"children\", \"itemIcon\", \"expandIcon\", \"popupClassName\", \"popupOffset\", \"popupStyle\", \"onClick\", \"onMouseEnter\", \"onMouseLeave\", \"onTitleClick\", \"onTitleMouseEnter\", \"onTitleMouseLeave\"],\n  _excluded2 = [\"active\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport warning from \"rc-util/es/warning\";\nimport SubMenuList from \"./SubMenuList\";\nimport { parseChildren } from \"../utils/commonUtil\";\nimport MenuContextProvider, { MenuContext } from \"../context/MenuContext\";\nimport useMemoCallback from \"../hooks/useMemoCallback\";\nimport PopupTrigger from \"./PopupTrigger\";\nimport Icon from \"../Icon\";\nimport useActive from \"../hooks/useActive\";\nimport { warnItemProp } from \"../utils/warnUtil\";\nimport useDirectionStyle from \"../hooks/useDirectionStyle\";\nimport InlineSubMenuList from \"./InlineSubMenuList\";\nimport { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from \"../context/PathContext\";\nimport { useMenuId } from \"../context/IdContext\";\nimport PrivateContext from \"../context/PrivateContext\";\nvar InternalSubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var style = props.style,\n    className = props.className,\n    title = props.title,\n    eventKey = props.eventKey,\n    warnKey = props.warnKey,\n    disabled = props.disabled,\n    internalPopupClose = props.internalPopupClose,\n    children = props.children,\n    itemIcon = props.itemIcon,\n    expandIcon = props.expandIcon,\n    popupClassName = props.popupClassName,\n    popupOffset = props.popupOffset,\n    popupStyle = props.popupStyle,\n    onClick = props.onClick,\n    onMouseEnter = props.onMouseEnter,\n    onMouseLeave = props.onMouseLeave,\n    onTitleClick = props.onTitleClick,\n    onTitleMouseEnter = props.onTitleMouseEnter,\n    onTitleMouseLeave = props.onTitleMouseLeave,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var domDataId = useMenuId(eventKey);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls,\n    mode = _React$useContext.mode,\n    openKeys = _React$useContext.openKeys,\n    contextDisabled = _React$useContext.disabled,\n    overflowDisabled = _React$useContext.overflowDisabled,\n    activeKey = _React$useContext.activeKey,\n    selectedKeys = _React$useContext.selectedKeys,\n    contextItemIcon = _React$useContext.itemIcon,\n    contextExpandIcon = _React$useContext.expandIcon,\n    onItemClick = _React$useContext.onItemClick,\n    onOpenChange = _React$useContext.onOpenChange,\n    onActive = _React$useContext.onActive;\n  var _React$useContext2 = React.useContext(PrivateContext),\n    _internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;\n  var _React$useContext3 = React.useContext(PathUserContext),\n    isSubPathKey = _React$useContext3.isSubPathKey;\n  var connectedPath = useFullPath();\n  var subMenuPrefixCls = \"\".concat(prefixCls, \"-submenu\");\n  var mergedDisabled = contextDisabled || disabled;\n  var elementRef = React.useRef();\n  var popupRef = React.useRef();\n\n  // ================================ Warn ================================\n  if (process.env.NODE_ENV !== 'production' && warnKey) {\n    warning(false, 'SubMenu should not leave undefined `key`.');\n  }\n\n  // ================================ Icon ================================\n  var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;\n  var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;\n\n  // ================================ Open ================================\n  var originOpen = openKeys.includes(eventKey);\n  var open = !overflowDisabled && originOpen;\n\n  // =============================== Select ===============================\n  var childrenSelected = isSubPathKey(selectedKeys, eventKey);\n\n  // =============================== Active ===============================\n  var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),\n    active = _useActive.active,\n    activeProps = _objectWithoutProperties(_useActive, _excluded2);\n\n  // Fallback of active check to avoid hover on menu title or disabled item\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    childrenActive = _React$useState2[0],\n    setChildrenActive = _React$useState2[1];\n  var triggerChildrenActive = function triggerChildrenActive(newActive) {\n    if (!mergedDisabled) {\n      setChildrenActive(newActive);\n    }\n  };\n  var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {\n    triggerChildrenActive(true);\n    onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n      key: eventKey,\n      domEvent: domEvent\n    });\n  };\n  var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {\n    triggerChildrenActive(false);\n    onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n      key: eventKey,\n      domEvent: domEvent\n    });\n  };\n  var mergedActive = React.useMemo(function () {\n    if (active) {\n      return active;\n    }\n    if (mode !== 'inline') {\n      return childrenActive || isSubPathKey([activeKey], eventKey);\n    }\n    return false;\n  }, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);\n\n  // ========================== DirectionStyle ==========================\n  var directionStyle = useDirectionStyle(connectedPath.length);\n\n  // =============================== Events ===============================\n  // >>>> Title click\n  var onInternalTitleClick = function onInternalTitleClick(e) {\n    // Skip if disabled\n    if (mergedDisabled) {\n      return;\n    }\n    onTitleClick === null || onTitleClick === void 0 || onTitleClick({\n      key: eventKey,\n      domEvent: e\n    });\n\n    // Trigger open by click when mode is `inline`\n    if (mode === 'inline') {\n      onOpenChange(eventKey, !originOpen);\n    }\n  };\n\n  // >>>> Context for children click\n  var onMergedItemClick = useMemoCallback(function (info) {\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    onItemClick(info);\n  });\n\n  // >>>>> Visible change\n  var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {\n    if (mode !== 'inline') {\n      onOpenChange(eventKey, newVisible);\n    }\n  };\n\n  /**\n   * Used for accessibility. Helper will focus element without key board.\n   * We should manually trigger an active\n   */\n  var onInternalFocus = function onInternalFocus() {\n    onActive(eventKey);\n  };\n\n  // =============================== Render ===============================\n  var popupId = domDataId && \"\".concat(domDataId, \"-popup\");\n\n  // >>>>> Title\n  var titleNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n    role: \"menuitem\",\n    style: directionStyle,\n    className: \"\".concat(subMenuPrefixCls, \"-title\"),\n    tabIndex: mergedDisabled ? null : -1,\n    ref: elementRef,\n    title: typeof title === 'string' ? title : null,\n    \"data-menu-id\": overflowDisabled && domDataId ? null : domDataId,\n    \"aria-expanded\": open,\n    \"aria-haspopup\": true,\n    \"aria-controls\": popupId,\n    \"aria-disabled\": mergedDisabled,\n    onClick: onInternalTitleClick,\n    onFocus: onInternalFocus\n  }, activeProps), title, /*#__PURE__*/React.createElement(Icon, {\n    icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,\n    props: _objectSpread(_objectSpread({}, props), {}, {\n      isOpen: open,\n      // [Legacy] Not sure why need this mark\n      isSubMenu: true\n    })\n  }, /*#__PURE__*/React.createElement(\"i\", {\n    className: \"\".concat(subMenuPrefixCls, \"-arrow\")\n  })));\n\n  // Cache mode if it change to `inline` which do not have popup motion\n  var triggerModeRef = React.useRef(mode);\n  if (mode !== 'inline' && connectedPath.length > 1) {\n    triggerModeRef.current = 'vertical';\n  } else {\n    triggerModeRef.current = mode;\n  }\n  if (!overflowDisabled) {\n    var triggerMode = triggerModeRef.current;\n\n    // Still wrap with Trigger here since we need avoid react re-mount dom node\n    // Which makes motion failed\n    titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {\n      mode: triggerMode,\n      prefixCls: subMenuPrefixCls,\n      visible: !internalPopupClose && open && mode !== 'inline',\n      popupClassName: popupClassName,\n      popupOffset: popupOffset,\n      popupStyle: popupStyle,\n      popup: /*#__PURE__*/React.createElement(MenuContextProvider\n      // Special handle of horizontal mode\n      , {\n        mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode\n      }, /*#__PURE__*/React.createElement(SubMenuList, {\n        id: popupId,\n        ref: popupRef\n      }, children)),\n      disabled: mergedDisabled,\n      onVisibleChange: onPopupVisibleChange\n    }, titleNode);\n  }\n\n  // >>>>> List node\n  var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({\n    ref: ref,\n    role: \"none\"\n  }, restProps, {\n    component: \"li\",\n    style: style,\n    className: classNames(subMenuPrefixCls, \"\".concat(subMenuPrefixCls, \"-\").concat(mode), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(subMenuPrefixCls, \"-open\"), open), \"\".concat(subMenuPrefixCls, \"-active\"), mergedActive), \"\".concat(subMenuPrefixCls, \"-selected\"), childrenSelected), \"\".concat(subMenuPrefixCls, \"-disabled\"), mergedDisabled)),\n    onMouseEnter: onInternalMouseEnter,\n    onMouseLeave: onInternalMouseLeave\n  }), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {\n    id: popupId,\n    open: open,\n    keyPath: connectedPath\n  }, children));\n  if (_internalRenderSubMenuItem) {\n    listNode = _internalRenderSubMenuItem(listNode, props, {\n      selected: childrenSelected,\n      active: mergedActive,\n      open: open,\n      disabled: mergedDisabled\n    });\n  }\n\n  // >>>>> Render\n  return /*#__PURE__*/React.createElement(MenuContextProvider, {\n    onItemClick: onMergedItemClick,\n    mode: mode === 'horizontal' ? 'vertical' : mode,\n    itemIcon: mergedItemIcon,\n    expandIcon: mergedExpandIcon\n  }, listNode);\n});\nvar SubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var eventKey = props.eventKey,\n    children = props.children;\n  var connectedKeyPath = useFullPath(eventKey);\n  var childList = parseChildren(children, connectedKeyPath);\n\n  // ==================== Record KeyPath ====================\n  var measure = useMeasure();\n\n  // eslint-disable-next-line consistent-return\n  React.useEffect(function () {\n    if (measure) {\n      measure.registerPath(eventKey, connectedKeyPath);\n      return function () {\n        measure.unregisterPath(eventKey, connectedKeyPath);\n      };\n    }\n  }, [connectedKeyPath]);\n  var renderNode;\n\n  // ======================== Render ========================\n  if (measure) {\n    renderNode = childList;\n  } else {\n    renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, _extends({\n      ref: ref\n    }, props), childList);\n  }\n  return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {\n    value: connectedKeyPath\n  }, renderNode);\n});\nif (process.env.NODE_ENV !== 'production') {\n  SubMenu.displayName = 'SubMenu';\n}\nexport default SubMenu;","import * as React from 'react';\nimport classNames from 'classnames';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useMeasure } from \"./context/PathContext\";\nexport default function Divider(_ref) {\n  var className = _ref.className,\n    style = _ref.style;\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls;\n  var measure = useMeasure();\n  if (measure) {\n    return null;\n  }\n  return /*#__PURE__*/React.createElement(\"li\", {\n    role: \"separator\",\n    className: classNames(\"\".concat(prefixCls, \"-item-divider\"), className),\n    style: style\n  });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"title\", \"eventKey\", \"children\"];\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport * as React from 'react';\nimport { MenuContext } from \"./context/MenuContext\";\nimport { useFullPath, useMeasure } from \"./context/PathContext\";\nimport { parseChildren } from \"./utils/commonUtil\";\nvar InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var className = props.className,\n    title = props.title,\n    eventKey = props.eventKey,\n    children = props.children,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var _React$useContext = React.useContext(MenuContext),\n    prefixCls = _React$useContext.prefixCls;\n  var groupPrefixCls = \"\".concat(prefixCls, \"-item-group\");\n  return /*#__PURE__*/React.createElement(\"li\", _extends({\n    ref: ref,\n    role: \"presentation\"\n  }, restProps, {\n    onClick: function onClick(e) {\n      return e.stopPropagation();\n    },\n    className: classNames(groupPrefixCls, className)\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    role: \"presentation\",\n    className: \"\".concat(groupPrefixCls, \"-title\"),\n    title: typeof title === 'string' ? title : undefined\n  }, title), /*#__PURE__*/React.createElement(\"ul\", {\n    role: \"group\",\n    className: \"\".concat(groupPrefixCls, \"-list\")\n  }, children));\n});\nvar MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var eventKey = props.eventKey,\n    children = props.children;\n  var connectedKeyPath = useFullPath(eventKey);\n  var childList = parseChildren(children, connectedKeyPath);\n  var measure = useMeasure();\n  if (measure) {\n    return childList;\n  }\n  return /*#__PURE__*/React.createElement(InternalMenuItemGroup, _extends({\n    ref: ref\n  }, omit(props, ['warnKey'])), childList);\n});\nif (process.env.NODE_ENV !== 'production') {\n  MenuItemGroup.displayName = 'MenuItemGroup';\n}\nexport default MenuItemGroup;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"label\", \"children\", \"key\", \"type\", \"extra\"];\nimport * as React from 'react';\nimport Divider from \"../Divider\";\nimport MenuItem from \"../MenuItem\";\nimport MenuItemGroup from \"../MenuItemGroup\";\nimport SubMenu from \"../SubMenu\";\nimport { parseChildren } from \"./commonUtil\";\nfunction convertItemsToNodes(list, components, prefixCls) {\n  var MergedMenuItem = components.item,\n    MergedMenuItemGroup = components.group,\n    MergedSubMenu = components.submenu,\n    MergedDivider = components.divider;\n  return (list || []).map(function (opt, index) {\n    if (opt && _typeof(opt) === 'object') {\n      var _ref = opt,\n        label = _ref.label,\n        children = _ref.children,\n        key = _ref.key,\n        type = _ref.type,\n        extra = _ref.extra,\n        restProps = _objectWithoutProperties(_ref, _excluded);\n      var mergedKey = key !== null && key !== void 0 ? key : \"tmp-\".concat(index);\n\n      // MenuItemGroup & SubMenuItem\n      if (children || type === 'group') {\n        if (type === 'group') {\n          // Group\n          return /*#__PURE__*/React.createElement(MergedMenuItemGroup, _extends({\n            key: mergedKey\n          }, restProps, {\n            title: label\n          }), convertItemsToNodes(children, components, prefixCls));\n        }\n\n        // Sub Menu\n        return /*#__PURE__*/React.createElement(MergedSubMenu, _extends({\n          key: mergedKey\n        }, restProps, {\n          title: label\n        }), convertItemsToNodes(children, components, prefixCls));\n      }\n\n      // MenuItem & Divider\n      if (type === 'divider') {\n        return /*#__PURE__*/React.createElement(MergedDivider, _extends({\n          key: mergedKey\n        }, restProps));\n      }\n      return /*#__PURE__*/React.createElement(MergedMenuItem, _extends({\n        key: mergedKey\n      }, restProps, {\n        extra: extra\n      }), label, (!!extra || extra === 0) && /*#__PURE__*/React.createElement(\"span\", {\n        className: \"\".concat(prefixCls, \"-item-extra\")\n      }, extra));\n    }\n    return null;\n  }).filter(function (opt) {\n    return opt;\n  });\n}\nexport function parseItems(children, items, keyPath, components, prefixCls) {\n  var childNodes = children;\n  var mergedComponents = _objectSpread({\n    divider: Divider,\n    item: MenuItem,\n    group: MenuItemGroup,\n    submenu: SubMenu\n  }, components);\n  if (items) {\n    childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);\n  }\n  return parseChildren(childNodes, keyPath);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"rootClassName\", \"style\", \"className\", \"tabIndex\", \"items\", \"children\", \"direction\", \"id\", \"mode\", \"inlineCollapsed\", \"disabled\", \"disabledOverflow\", \"subMenuOpenDelay\", \"subMenuCloseDelay\", \"forceSubMenuRender\", \"defaultOpenKeys\", \"openKeys\", \"activeKey\", \"defaultActiveFirst\", \"selectable\", \"multiple\", \"defaultSelectedKeys\", \"selectedKeys\", \"onSelect\", \"onDeselect\", \"inlineIndent\", \"motion\", \"defaultMotions\", \"triggerSubMenuAction\", \"builtinPlacements\", \"itemIcon\", \"expandIcon\", \"overflowedIndicator\", \"overflowedIndicatorPopupClassName\", \"getPopupContainer\", \"onClick\", \"onOpenChange\", \"onKeyDown\", \"openAnimation\", \"openTransitionName\", \"_internalRenderMenuItem\", \"_internalRenderSubMenuItem\", \"_internalComponents\"];\nimport classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport { flushSync } from 'react-dom';\nimport { IdContext } from \"./context/IdContext\";\nimport MenuContextProvider from \"./context/MenuContext\";\nimport { PathRegisterContext, PathUserContext } from \"./context/PathContext\";\nimport PrivateContext from \"./context/PrivateContext\";\nimport { getFocusableElements, refreshElements, useAccessibility } from \"./hooks/useAccessibility\";\nimport useKeyRecords, { OVERFLOW_KEY } from \"./hooks/useKeyRecords\";\nimport useMemoCallback from \"./hooks/useMemoCallback\";\nimport useUUID from \"./hooks/useUUID\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport { parseItems } from \"./utils/nodeUtil\";\nimport { warnItemProp } from \"./utils/warnUtil\";\n\n/**\n * Menu modify after refactor:\n * ## Add\n * - disabled\n *\n * ## Remove\n * - openTransitionName\n * - openAnimation\n * - onDestroy\n * - siderCollapsed: Seems antd do not use this prop (Need test in antd)\n * - collapsedWidth: Seems this logic should be handle by antd Layout.Sider\n */\n\n// optimize for render\nvar EMPTY_LIST = [];\nvar Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _childList$;\n  var _ref = props,\n    _ref$prefixCls = _ref.prefixCls,\n    prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,\n    rootClassName = _ref.rootClassName,\n    style = _ref.style,\n    className = _ref.className,\n    _ref$tabIndex = _ref.tabIndex,\n    tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,\n    items = _ref.items,\n    children = _ref.children,\n    direction = _ref.direction,\n    id = _ref.id,\n    _ref$mode = _ref.mode,\n    mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,\n    inlineCollapsed = _ref.inlineCollapsed,\n    disabled = _ref.disabled,\n    disabledOverflow = _ref.disabledOverflow,\n    _ref$subMenuOpenDelay = _ref.subMenuOpenDelay,\n    subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,\n    _ref$subMenuCloseDela = _ref.subMenuCloseDelay,\n    subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,\n    forceSubMenuRender = _ref.forceSubMenuRender,\n    defaultOpenKeys = _ref.defaultOpenKeys,\n    openKeys = _ref.openKeys,\n    activeKey = _ref.activeKey,\n    defaultActiveFirst = _ref.defaultActiveFirst,\n    _ref$selectable = _ref.selectable,\n    selectable = _ref$selectable === void 0 ? true : _ref$selectable,\n    _ref$multiple = _ref.multiple,\n    multiple = _ref$multiple === void 0 ? false : _ref$multiple,\n    defaultSelectedKeys = _ref.defaultSelectedKeys,\n    selectedKeys = _ref.selectedKeys,\n    onSelect = _ref.onSelect,\n    onDeselect = _ref.onDeselect,\n    _ref$inlineIndent = _ref.inlineIndent,\n    inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,\n    motion = _ref.motion,\n    defaultMotions = _ref.defaultMotions,\n    _ref$triggerSubMenuAc = _ref.triggerSubMenuAction,\n    triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,\n    builtinPlacements = _ref.builtinPlacements,\n    itemIcon = _ref.itemIcon,\n    expandIcon = _ref.expandIcon,\n    _ref$overflowedIndica = _ref.overflowedIndicator,\n    overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,\n    overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,\n    getPopupContainer = _ref.getPopupContainer,\n    onClick = _ref.onClick,\n    onOpenChange = _ref.onOpenChange,\n    onKeyDown = _ref.onKeyDown,\n    openAnimation = _ref.openAnimation,\n    openTransitionName = _ref.openTransitionName,\n    _internalRenderMenuItem = _ref._internalRenderMenuItem,\n    _internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,\n    _internalComponents = _ref._internalComponents,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var _React$useMemo = React.useMemo(function () {\n      return [parseItems(children, items, EMPTY_LIST, _internalComponents, prefixCls), parseItems(children, items, EMPTY_LIST, {}, prefixCls)];\n    }, [children, items, _internalComponents]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    childList = _React$useMemo2[0],\n    measureChildList = _React$useMemo2[1];\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    mounted = _React$useState2[0],\n    setMounted = _React$useState2[1];\n  var containerRef = React.useRef();\n  var uuid = useUUID(id);\n  var isRtl = direction === 'rtl';\n\n  // ========================= Warn =========================\n  if (process.env.NODE_ENV !== 'production') {\n    warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');\n  }\n\n  // ========================= Open =========================\n  var _useMergedState = useMergedState(defaultOpenKeys, {\n      value: openKeys,\n      postState: function postState(keys) {\n        return keys || EMPTY_LIST;\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedOpenKeys = _useMergedState2[0],\n    setMergedOpenKeys = _useMergedState2[1];\n\n  // React 18 will merge mouse event which means we open key will not sync\n  // ref: https://github.com/ant-design/ant-design/issues/38818\n  var triggerOpenKeys = function triggerOpenKeys(keys) {\n    var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    function doUpdate() {\n      setMergedOpenKeys(keys);\n      onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);\n    }\n    if (forceFlush) {\n      flushSync(doUpdate);\n    } else {\n      doUpdate();\n    }\n  };\n\n  // >>>>> Cache & Reset open keys when inlineCollapsed changed\n  var _React$useState3 = React.useState(mergedOpenKeys),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    inlineCacheOpenKeys = _React$useState4[0],\n    setInlineCacheOpenKeys = _React$useState4[1];\n  var mountRef = React.useRef(false);\n\n  // ========================= Mode =========================\n  var _React$useMemo3 = React.useMemo(function () {\n      if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {\n        return ['vertical', inlineCollapsed];\n      }\n      return [mode, false];\n    }, [mode, inlineCollapsed]),\n    _React$useMemo4 = _slicedToArray(_React$useMemo3, 2),\n    mergedMode = _React$useMemo4[0],\n    mergedInlineCollapsed = _React$useMemo4[1];\n  var isInlineMode = mergedMode === 'inline';\n  var _React$useState5 = React.useState(mergedMode),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    internalMode = _React$useState6[0],\n    setInternalMode = _React$useState6[1];\n  var _React$useState7 = React.useState(mergedInlineCollapsed),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    internalInlineCollapsed = _React$useState8[0],\n    setInternalInlineCollapsed = _React$useState8[1];\n  React.useEffect(function () {\n    setInternalMode(mergedMode);\n    setInternalInlineCollapsed(mergedInlineCollapsed);\n    if (!mountRef.current) {\n      return;\n    }\n    // Synchronously update MergedOpenKeys\n    if (isInlineMode) {\n      setMergedOpenKeys(inlineCacheOpenKeys);\n    } else {\n      // Trigger open event in case its in control\n      triggerOpenKeys(EMPTY_LIST);\n    }\n  }, [mergedMode, mergedInlineCollapsed]);\n\n  // ====================== Responsive ======================\n  var _React$useState9 = React.useState(0),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    lastVisibleIndex = _React$useState10[0],\n    setLastVisibleIndex = _React$useState10[1];\n  var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;\n\n  // Cache\n  React.useEffect(function () {\n    if (isInlineMode) {\n      setInlineCacheOpenKeys(mergedOpenKeys);\n    }\n  }, [mergedOpenKeys]);\n  React.useEffect(function () {\n    mountRef.current = true;\n    return function () {\n      mountRef.current = false;\n    };\n  }, []);\n\n  // ========================= Path =========================\n  var _useKeyRecords = useKeyRecords(),\n    registerPath = _useKeyRecords.registerPath,\n    unregisterPath = _useKeyRecords.unregisterPath,\n    refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,\n    isSubPathKey = _useKeyRecords.isSubPathKey,\n    getKeyPath = _useKeyRecords.getKeyPath,\n    getKeys = _useKeyRecords.getKeys,\n    getSubPathKeys = _useKeyRecords.getSubPathKeys;\n  var registerPathContext = React.useMemo(function () {\n    return {\n      registerPath: registerPath,\n      unregisterPath: unregisterPath\n    };\n  }, [registerPath, unregisterPath]);\n  var pathUserContext = React.useMemo(function () {\n    return {\n      isSubPathKey: isSubPathKey\n    };\n  }, [isSubPathKey]);\n  React.useEffect(function () {\n    refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {\n      return child.key;\n    }));\n  }, [lastVisibleIndex, allVisible]);\n\n  // ======================== Active ========================\n  var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {\n      value: activeKey\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    mergedActiveKey = _useMergedState4[0],\n    setMergedActiveKey = _useMergedState4[1];\n  var onActive = useMemoCallback(function (key) {\n    setMergedActiveKey(key);\n  });\n  var onInactive = useMemoCallback(function () {\n    setMergedActiveKey(undefined);\n  });\n  useImperativeHandle(ref, function () {\n    return {\n      list: containerRef.current,\n      focus: function focus(options) {\n        var _childList$find;\n        var keys = getKeys();\n        var _refreshElements = refreshElements(keys, uuid),\n          elements = _refreshElements.elements,\n          key2element = _refreshElements.key2element,\n          element2key = _refreshElements.element2key;\n        var focusableElements = getFocusableElements(containerRef.current, elements);\n        var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {\n          return !node.props.disabled;\n        })) === null || _childList$find === void 0 ? void 0 : _childList$find.key;\n        var elementToFocus = key2element.get(shouldFocusKey);\n        if (shouldFocusKey && elementToFocus) {\n          var _elementToFocus$focus;\n          elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);\n        }\n      }\n    };\n  });\n\n  // ======================== Select ========================\n  // >>>>> Select keys\n  var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {\n      value: selectedKeys,\n      // Legacy convert key to array\n      postState: function postState(keys) {\n        if (Array.isArray(keys)) {\n          return keys;\n        }\n        if (keys === null || keys === undefined) {\n          return EMPTY_LIST;\n        }\n        return [keys];\n      }\n    }),\n    _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n    mergedSelectKeys = _useMergedState6[0],\n    setMergedSelectKeys = _useMergedState6[1];\n\n  // >>>>> Trigger select\n  var triggerSelection = function triggerSelection(info) {\n    if (selectable) {\n      // Insert or Remove\n      var targetKey = info.key;\n      var exist = mergedSelectKeys.includes(targetKey);\n      var newSelectKeys;\n      if (multiple) {\n        if (exist) {\n          newSelectKeys = mergedSelectKeys.filter(function (key) {\n            return key !== targetKey;\n          });\n        } else {\n          newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);\n        }\n      } else {\n        newSelectKeys = [targetKey];\n      }\n      setMergedSelectKeys(newSelectKeys);\n\n      // Trigger event\n      var selectInfo = _objectSpread(_objectSpread({}, info), {}, {\n        selectedKeys: newSelectKeys\n      });\n      if (exist) {\n        onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);\n      } else {\n        onSelect === null || onSelect === void 0 || onSelect(selectInfo);\n      }\n    }\n\n    // Whatever selectable, always close it\n    if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {\n      triggerOpenKeys(EMPTY_LIST);\n    }\n  };\n\n  // ========================= Open =========================\n  /**\n   * Click for item. SubMenu do not have selection status\n   */\n  var onInternalClick = useMemoCallback(function (info) {\n    onClick === null || onClick === void 0 || onClick(warnItemProp(info));\n    triggerSelection(info);\n  });\n  var onInternalOpenChange = useMemoCallback(function (key, open) {\n    var newOpenKeys = mergedOpenKeys.filter(function (k) {\n      return k !== key;\n    });\n    if (open) {\n      newOpenKeys.push(key);\n    } else if (internalMode !== 'inline') {\n      // We need find all related popup to close\n      var subPathKeys = getSubPathKeys(key);\n      newOpenKeys = newOpenKeys.filter(function (k) {\n        return !subPathKeys.has(k);\n      });\n    }\n    if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {\n      triggerOpenKeys(newOpenKeys, true);\n    }\n  });\n\n  // ==================== Accessibility =====================\n  var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {\n    var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);\n    onInternalOpenChange(key, nextOpen);\n  };\n  var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);\n\n  // ======================== Effect ========================\n  React.useEffect(function () {\n    setMounted(true);\n  }, []);\n\n  // ======================= Context ========================\n  var privateContext = React.useMemo(function () {\n    return {\n      _internalRenderMenuItem: _internalRenderMenuItem,\n      _internalRenderSubMenuItem: _internalRenderSubMenuItem\n    };\n  }, [_internalRenderMenuItem, _internalRenderSubMenuItem]);\n\n  // ======================== Render ========================\n\n  // >>>>> Children\n  var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :\n  // Need wrap for overflow dropdown that do not response for open\n  childList.map(function (child, index) {\n    return (\n      /*#__PURE__*/\n      // Always wrap provider to avoid sub node re-mount\n      React.createElement(MenuContextProvider, {\n        key: child.key,\n        overflowDisabled: index > lastVisibleIndex\n      }, child)\n    );\n  });\n\n  // >>>>> Container\n  var container = /*#__PURE__*/React.createElement(Overflow, _extends({\n    id: id,\n    ref: containerRef,\n    prefixCls: \"\".concat(prefixCls, \"-overflow\"),\n    component: \"ul\",\n    itemComponent: MenuItem,\n    className: classNames(prefixCls, \"\".concat(prefixCls, \"-root\"), \"\".concat(prefixCls, \"-\").concat(internalMode), className, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-inline-collapsed\"), internalInlineCollapsed), \"\".concat(prefixCls, \"-rtl\"), isRtl), rootClassName),\n    dir: direction,\n    style: style,\n    role: \"menu\",\n    tabIndex: tabIndex,\n    data: wrappedChildList,\n    renderRawItem: function renderRawItem(node) {\n      return node;\n    },\n    renderRawRest: function renderRawRest(omitItems) {\n      // We use origin list since wrapped list use context to prevent open\n      var len = omitItems.length;\n      var originOmitItems = len ? childList.slice(-len) : null;\n      return /*#__PURE__*/React.createElement(SubMenu, {\n        eventKey: OVERFLOW_KEY,\n        title: overflowedIndicator,\n        disabled: allVisible,\n        internalPopupClose: len === 0,\n        popupClassName: overflowedIndicatorPopupClassName\n      }, originOmitItems);\n    },\n    maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,\n    ssr: \"full\",\n    \"data-menu-list\": true,\n    onVisibleChange: function onVisibleChange(newLastIndex) {\n      setLastVisibleIndex(newLastIndex);\n    },\n    onKeyDown: onInternalKeyDown\n  }, restProps));\n\n  // >>>>> Render\n  return /*#__PURE__*/React.createElement(PrivateContext.Provider, {\n    value: privateContext\n  }, /*#__PURE__*/React.createElement(IdContext.Provider, {\n    value: uuid\n  }, /*#__PURE__*/React.createElement(MenuContextProvider, {\n    prefixCls: prefixCls,\n    rootClassName: rootClassName,\n    mode: internalMode,\n    openKeys: mergedOpenKeys,\n    rtl: isRtl\n    // Disabled\n    ,\n    disabled: disabled\n    // Motion\n    ,\n    motion: mounted ? motion : null,\n    defaultMotions: mounted ? defaultMotions : null\n    // Active\n    ,\n    activeKey: mergedActiveKey,\n    onActive: onActive,\n    onInactive: onInactive\n    // Selection\n    ,\n    selectedKeys: mergedSelectKeys\n    // Level\n    ,\n    inlineIndent: inlineIndent\n    // Popup\n    ,\n    subMenuOpenDelay: subMenuOpenDelay,\n    subMenuCloseDelay: subMenuCloseDelay,\n    forceSubMenuRender: forceSubMenuRender,\n    builtinPlacements: builtinPlacements,\n    triggerSubMenuAction: triggerSubMenuAction,\n    getPopupContainer: getPopupContainer\n    // Icon\n    ,\n    itemIcon: itemIcon,\n    expandIcon: expandIcon\n    // Events\n    ,\n    onItemClick: onInternalClick,\n    onOpenChange: onInternalOpenChange\n  }, /*#__PURE__*/React.createElement(PathUserContext.Provider, {\n    value: pathUserContext\n  }, container), /*#__PURE__*/React.createElement(\"div\", {\n    style: {\n      display: 'none'\n    },\n    \"aria-hidden\": true\n  }, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {\n    value: registerPathContext\n  }, measureChildList)))));\n});\nexport default Menu;","import Menu from \"./Menu\";\nimport MenuItem from \"./MenuItem\";\nimport SubMenu from \"./SubMenu\";\nimport MenuItemGroup from \"./MenuItemGroup\";\nimport { useFullPath } from \"./context/PathContext\";\nimport Divider from \"./Divider\";\nexport { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */\nuseFullPath };\nvar ExportMenu = Menu;\nExportMenu.Item = MenuItem;\nExportMenu.SubMenu = SubMenu;\nExportMenu.ItemGroup = MenuItemGroup;\nExportMenu.Divider = Divider;\nexport default ExportMenu;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport BarsOutlined from \"@ant-design/icons/es/icons/BarsOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport { LayoutContext } from './context';\nimport useStyle from './style/sider';\nconst dimensionMaxMap = {\n  xs: '479.98px',\n  sm: '575.98px',\n  md: '767.98px',\n  lg: '991.98px',\n  xl: '1199.98px',\n  xxl: '1599.98px'\n};\nconst isNumeric = value => !Number.isNaN(Number.parseFloat(value)) && isFinite(value);\nexport const SiderContext = /*#__PURE__*/React.createContext({});\nconst generateId = (() => {\n  let i = 0;\n  return function () {\n    let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n    i += 1;\n    return `${prefix}${i}`;\n  };\n})();\nconst Sider = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      trigger,\n      children,\n      defaultCollapsed = false,\n      theme = 'dark',\n      style = {},\n      collapsible = false,\n      reverseArrow = false,\n      width = 200,\n      collapsedWidth = 80,\n      zeroWidthTriggerStyle,\n      breakpoint,\n      onCollapse,\n      onBreakpoint\n    } = props,\n    otherProps = __rest(props, [\"prefixCls\", \"className\", \"trigger\", \"children\", \"defaultCollapsed\", \"theme\", \"style\", \"collapsible\", \"reverseArrow\", \"width\", \"collapsedWidth\", \"zeroWidthTriggerStyle\", \"breakpoint\", \"onCollapse\", \"onBreakpoint\"]);\n  const {\n    siderHook\n  } = useContext(LayoutContext);\n  const [collapsed, setCollapsed] = useState('collapsed' in props ? props.collapsed : defaultCollapsed);\n  const [below, setBelow] = useState(false);\n  useEffect(() => {\n    if ('collapsed' in props) {\n      setCollapsed(props.collapsed);\n    }\n  }, [props.collapsed]);\n  const handleSetCollapsed = (value, type) => {\n    if (!('collapsed' in props)) {\n      setCollapsed(value);\n    }\n    onCollapse === null || onCollapse === void 0 ? void 0 : onCollapse(value, type);\n  };\n  // =========================== Prefix ===========================\n  const {\n    getPrefixCls,\n    direction\n  } = useContext(ConfigContext);\n  const prefixCls = getPrefixCls('layout-sider', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  // ========================= Responsive =========================\n  const responsiveHandlerRef = useRef(null);\n  responsiveHandlerRef.current = mql => {\n    setBelow(mql.matches);\n    onBreakpoint === null || onBreakpoint === void 0 ? void 0 : onBreakpoint(mql.matches);\n    if (collapsed !== mql.matches) {\n      handleSetCollapsed(mql.matches, 'responsive');\n    }\n  };\n  useEffect(() => {\n    function responsiveHandler(mql) {\n      return responsiveHandlerRef.current(mql);\n    }\n    let mql;\n    if (typeof window !== 'undefined') {\n      const {\n        matchMedia\n      } = window;\n      if (matchMedia && breakpoint && breakpoint in dimensionMaxMap) {\n        mql = matchMedia(`screen and (max-width: ${dimensionMaxMap[breakpoint]})`);\n        try {\n          mql.addEventListener('change', responsiveHandler);\n        } catch (_a) {\n          mql.addListener(responsiveHandler);\n        }\n        responsiveHandler(mql);\n      }\n    }\n    return () => {\n      try {\n        mql === null || mql === void 0 ? void 0 : mql.removeEventListener('change', responsiveHandler);\n      } catch (_a) {\n        mql === null || mql === void 0 ? void 0 : mql.removeListener(responsiveHandler);\n      }\n    };\n  }, [breakpoint]); // in order to accept dynamic 'breakpoint' property, we need to add 'breakpoint' into dependency array.\n  useEffect(() => {\n    const uniqueId = generateId('ant-sider-');\n    siderHook.addSider(uniqueId);\n    return () => siderHook.removeSider(uniqueId);\n  }, []);\n  const toggle = () => {\n    handleSetCollapsed(!collapsed, 'clickTrigger');\n  };\n  const divProps = omit(otherProps, ['collapsed']);\n  const rawWidth = collapsed ? collapsedWidth : width;\n  // use \"px\" as fallback unit for width\n  const siderWidth = isNumeric(rawWidth) ? `${rawWidth}px` : String(rawWidth);\n  // special trigger when collapsedWidth == 0\n  const zeroWidthTrigger = parseFloat(String(collapsedWidth || 0)) === 0 ? (/*#__PURE__*/React.createElement(\"span\", {\n    onClick: toggle,\n    className: classNames(`${prefixCls}-zero-width-trigger`, `${prefixCls}-zero-width-trigger-${reverseArrow ? 'right' : 'left'}`),\n    style: zeroWidthTriggerStyle\n  }, trigger || /*#__PURE__*/React.createElement(BarsOutlined, null))) : null;\n  const reverseIcon = direction === 'rtl' === !reverseArrow;\n  const iconObj = {\n    expanded: reverseIcon ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null),\n    collapsed: reverseIcon ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null)\n  };\n  const status = collapsed ? 'collapsed' : 'expanded';\n  const defaultTrigger = iconObj[status];\n  const triggerDom = trigger !== null ? zeroWidthTrigger || (/*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-trigger`,\n    onClick: toggle,\n    style: {\n      width: siderWidth\n    }\n  }, trigger || defaultTrigger)) : null;\n  const divStyle = Object.assign(Object.assign({}, style), {\n    flex: `0 0 ${siderWidth}`,\n    maxWidth: siderWidth,\n    minWidth: siderWidth,\n    width: siderWidth\n  });\n  const siderCls = classNames(prefixCls, `${prefixCls}-${theme}`, {\n    [`${prefixCls}-collapsed`]: !!collapsed,\n    [`${prefixCls}-has-trigger`]: collapsible && trigger !== null && !zeroWidthTrigger,\n    [`${prefixCls}-below`]: !!below,\n    [`${prefixCls}-zero-width`]: parseFloat(siderWidth) === 0\n  }, className, hashId, cssVarCls);\n  const contextValue = React.useMemo(() => ({\n    siderCollapsed: collapsed\n  }), [collapsed]);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(SiderContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(\"aside\", Object.assign({\n    className: siderCls\n  }, divProps, {\n    style: divStyle,\n    ref: ref\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-children`\n  }, children), collapsible || below && zeroWidthTrigger ? triggerDom : null)));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Sider.displayName = 'Sider';\n}\nexport default Sider;","// This icon file is generated automatically.\nvar EllipsisOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"ellipsis\", \"theme\": \"outlined\" };\nexport default EllipsisOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport EllipsisOutlinedSvg from \"@ant-design/icons-svg/es/asn/EllipsisOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar EllipsisOutlined = function EllipsisOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: EllipsisOutlinedSvg\n  }));\n};\n\n/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(EllipsisOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'EllipsisOutlined';\n}\nexport default RefIcon;","import { defaultPrefixCls } from '../config-provider';\n// ================== Collapse Motion ==================\nconst getCollapsedHeight = () => ({\n  height: 0,\n  opacity: 0\n});\nconst getRealHeight = node => {\n  const {\n    scrollHeight\n  } = node;\n  return {\n    height: scrollHeight,\n    opacity: 1\n  };\n};\nconst getCurrentHeight = node => ({\n  height: node ? node.offsetHeight : 0\n});\nconst skipOpacityTransition = (_, event) => (event === null || event === void 0 ? void 0 : event.deadline) === true || event.propertyName === 'height';\nconst initCollapseMotion = function () {\n  let rootCls = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultPrefixCls;\n  return {\n    motionName: `${rootCls}-motion-collapse`,\n    onAppearStart: getCollapsedHeight,\n    onEnterStart: getCollapsedHeight,\n    onAppearActive: getRealHeight,\n    onEnterActive: getRealHeight,\n    onLeaveStart: getCurrentHeight,\n    onLeaveActive: getCollapsedHeight,\n    onAppearEnd: skipOpacityTransition,\n    onEnterEnd: skipOpacityTransition,\n    onLeaveEnd: skipOpacityTransition,\n    motionDeadline: 500\n  };\n};\nconst _SelectPlacements = ['bottomLeft', 'bottomRight', 'topLeft', 'topRight'];\nconst getTransitionName = (rootPrefixCls, motion, transitionName) => {\n  if (transitionName !== undefined) {\n    return transitionName;\n  }\n  return `${rootPrefixCls}-${motion}`;\n};\nexport { getTransitionName };\nexport default initCollapseMotion;","import { useToken } from '../../theme/internal';\n/**\n * This hook is only for cssVar to add root className for components.\n * If root ClassName is needed, this hook could be refactored with `-root`\n * @param prefixCls\n */\nconst useCSSVarCls = prefixCls => {\n  const [,,,, cssVar] = useToken();\n  return cssVar ? `${prefixCls}-css-var` : '';\n};\nexport default useCSSVarCls;","\"use client\";\n\nimport { createContext } from 'react';\nconst MenuContext = /*#__PURE__*/createContext({\n  prefixCls: '',\n  firstLevel: true,\n  inlineCollapsed: false\n});\nexport default MenuContext;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Divider } from 'rc-menu';\nimport { ConfigContext } from '../config-provider';\nconst MenuDivider = props => {\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      dashed\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"dashed\"]);\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('menu', customizePrefixCls);\n  const classString = classNames({\n    [`${prefixCls}-item-divider-dashed`]: !!dashed\n  }, className);\n  return /*#__PURE__*/React.createElement(Divider, Object.assign({\n    className: classString\n  }, restProps));\n};\nexport default MenuDivider;","import classNames from 'classnames';\nimport * as React from 'react';\nexport default function Popup(props) {\n  var children = props.children,\n    prefixCls = props.prefixCls,\n    id = props.id,\n    innerStyle = props.overlayInnerStyle,\n    bodyClassName = props.bodyClassName,\n    className = props.className,\n    style = props.style;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-content\"), className),\n    style: style\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(\"\".concat(prefixCls, \"-inner\"), bodyClassName),\n    id: id,\n    role: \"tooltip\",\n    style: innerStyle\n  }, typeof children === 'function' ? children() : children));\n}","var autoAdjustOverflowTopBottom = {\n  shiftX: 64,\n  adjustY: 1\n};\nvar autoAdjustOverflowLeftRight = {\n  adjustX: 1,\n  shiftY: true\n};\nvar targetOffset = [0, 0];\nexport var placements = {\n  left: {\n    points: ['cr', 'cl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  },\n  right: {\n    points: ['cl', 'cr'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  top: {\n    points: ['bc', 'tc'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  bottom: {\n    points: ['tc', 'bc'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  topLeft: {\n    points: ['bl', 'tl'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  leftTop: {\n    points: ['tr', 'tl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  },\n  topRight: {\n    points: ['br', 'tr'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, -4],\n    targetOffset: targetOffset\n  },\n  rightTop: {\n    points: ['tl', 'tr'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  bottomRight: {\n    points: ['tr', 'br'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  rightBottom: {\n    points: ['bl', 'br'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [4, 0],\n    targetOffset: targetOffset\n  },\n  bottomLeft: {\n    points: ['tl', 'bl'],\n    overflow: autoAdjustOverflowTopBottom,\n    offset: [0, 4],\n    targetOffset: targetOffset\n  },\n  leftBottom: {\n    points: ['br', 'bl'],\n    overflow: autoAdjustOverflowLeftRight,\n    offset: [-4, 0],\n    targetOffset: targetOffset\n  }\n};\nexport default placements;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"overlayClassName\", \"trigger\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"prefixCls\", \"children\", \"onVisibleChange\", \"afterVisibleChange\", \"transitionName\", \"animation\", \"motion\", \"placement\", \"align\", \"destroyTooltipOnHide\", \"defaultVisible\", \"getTooltipContainer\", \"overlayInnerStyle\", \"arrowContent\", \"overlay\", \"id\", \"showArrow\", \"classNames\", \"styles\"];\nimport Trigger from '@rc-component/trigger';\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { placements } from \"./placements\";\nimport Popup from \"./Popup\";\nimport classNames from 'classnames';\nvar Tooltip = function Tooltip(props, ref) {\n  var overlayClassName = props.overlayClassName,\n    _props$trigger = props.trigger,\n    trigger = _props$trigger === void 0 ? ['hover'] : _props$trigger,\n    _props$mouseEnterDela = props.mouseEnterDelay,\n    mouseEnterDelay = _props$mouseEnterDela === void 0 ? 0 : _props$mouseEnterDela,\n    _props$mouseLeaveDela = props.mouseLeaveDelay,\n    mouseLeaveDelay = _props$mouseLeaveDela === void 0 ? 0.1 : _props$mouseLeaveDela,\n    overlayStyle = props.overlayStyle,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-tooltip' : _props$prefixCls,\n    children = props.children,\n    onVisibleChange = props.onVisibleChange,\n    afterVisibleChange = props.afterVisibleChange,\n    transitionName = props.transitionName,\n    animation = props.animation,\n    motion = props.motion,\n    _props$placement = props.placement,\n    placement = _props$placement === void 0 ? 'right' : _props$placement,\n    _props$align = props.align,\n    align = _props$align === void 0 ? {} : _props$align,\n    _props$destroyTooltip = props.destroyTooltipOnHide,\n    destroyTooltipOnHide = _props$destroyTooltip === void 0 ? false : _props$destroyTooltip,\n    defaultVisible = props.defaultVisible,\n    getTooltipContainer = props.getTooltipContainer,\n    overlayInnerStyle = props.overlayInnerStyle,\n    arrowContent = props.arrowContent,\n    overlay = props.overlay,\n    id = props.id,\n    _props$showArrow = props.showArrow,\n    showArrow = _props$showArrow === void 0 ? true : _props$showArrow,\n    tooltipClassNames = props.classNames,\n    tooltipStyles = props.styles,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var triggerRef = useRef(null);\n  useImperativeHandle(ref, function () {\n    return triggerRef.current;\n  });\n  var extraProps = _objectSpread({}, restProps);\n  if ('visible' in props) {\n    extraProps.popupVisible = props.visible;\n  }\n  var getPopupElement = function getPopupElement() {\n    return /*#__PURE__*/React.createElement(Popup, {\n      key: \"content\",\n      prefixCls: prefixCls,\n      id: id,\n      bodyClassName: tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.body,\n      overlayInnerStyle: _objectSpread(_objectSpread({}, overlayInnerStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.body)\n    }, overlay);\n  };\n  return /*#__PURE__*/React.createElement(Trigger, _extends({\n    popupClassName: classNames(overlayClassName, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.root),\n    prefixCls: prefixCls,\n    popup: getPopupElement,\n    action: trigger,\n    builtinPlacements: placements,\n    popupPlacement: placement,\n    ref: triggerRef,\n    popupAlign: align,\n    getPopupContainer: getTooltipContainer,\n    onPopupVisibleChange: onVisibleChange,\n    afterPopupVisibleChange: afterVisibleChange,\n    popupTransitionName: transitionName,\n    popupAnimation: animation,\n    popupMotion: motion,\n    defaultPopupVisible: defaultVisible,\n    autoDestroy: destroyTooltipOnHide,\n    mouseLeaveDelay: mouseLeaveDelay,\n    popupStyle: _objectSpread(_objectSpread({}, overlayStyle), tooltipStyles === null || tooltipStyles === void 0 ? void 0 : tooltipStyles.root),\n    mouseEnterDelay: mouseEnterDelay,\n    arrow: showArrow\n  }, extraProps), children);\n};\nexport default /*#__PURE__*/forwardRef(Tooltip);","import Popup from \"./Popup\";\nimport Tooltip from \"./Tooltip\";\nexport { Popup };\nexport default Tooltip;","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n  warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n  getFieldValue: warningFunc,\n  getFieldsValue: warningFunc,\n  getFieldError: warningFunc,\n  getFieldWarning: warningFunc,\n  getFieldsError: warningFunc,\n  isFieldsTouched: warningFunc,\n  isFieldTouched: warningFunc,\n  isFieldValidating: warningFunc,\n  isFieldsValidating: warningFunc,\n  resetFields: warningFunc,\n  setFields: warningFunc,\n  setFieldValue: warningFunc,\n  setFieldsValue: warningFunc,\n  validateFields: warningFunc,\n  submit: warningFunc,\n  getInternalHooks: function getInternalHooks() {\n    warningFunc();\n    return {\n      dispatch: warningFunc,\n      initEntityValue: warningFunc,\n      registerField: warningFunc,\n      useSubscribe: warningFunc,\n      setInitialValues: warningFunc,\n      destroyForm: warningFunc,\n      setCallbacks: warningFunc,\n      registerWatch: warningFunc,\n      getFields: warningFunc,\n      setValidateMessages: warningFunc,\n      setPreserve: warningFunc,\n      getInitialValue: warningFunc\n    };\n  }\n});\nexport default Context;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","export function toArray(value) {\n  if (value === undefined || value === null) {\n    return [];\n  }\n  return Array.isArray(value) ? value : [value];\n}\nexport function isFormInstance(form) {\n  return form && !!form._init;\n}","export function newMessages() {\n  return {\n    default: 'Validation error on field %s',\n    required: '%s is required',\n    enum: '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid'\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s'\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters'\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s'\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length'\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s'\n    },\n    clone: function clone() {\n      var cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    }\n  };\n}\nexport var messages = newMessages();","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n  var r = \"function\" == typeof Map ? new Map() : void 0;\n  return _wrapNativeSuper = function _wrapNativeSuper(t) {\n    if (null === t || !isNativeFunction(t)) return t;\n    if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n    if (void 0 !== r) {\n      if (r.has(t)) return r.get(t);\n      r.set(t, Wrapper);\n    }\n    function Wrapper() {\n      return construct(t, arguments, getPrototypeOf(this).constructor);\n    }\n    return Wrapper.prototype = Object.create(t.prototype, {\n      constructor: {\n        value: Wrapper,\n        enumerable: !1,\n        writable: !0,\n        configurable: !0\n      }\n    }), setPrototypeOf(Wrapper, t);\n  }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n  try {\n    return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n  } catch (n) {\n    return \"function\" == typeof t;\n  }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _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}\nexport { _construct as default };","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _wrapNativeSuper from \"@babel/runtime/helpers/esm/wrapNativeSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\n/* eslint no-console:0 */\n\nvar formatRegExp = /%[sdj%]/g;\nexport var warning = function warning() {};\n\n// don't print warning message when in production env or node runtime\nif (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {\n  warning = function warning(type, errors) {\n    if (typeof console !== 'undefined' && console.warn && typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined') {\n      if (errors.every(function (e) {\n        return typeof e === 'string';\n      })) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\nexport function convertFieldsError(errors) {\n  if (!errors || !errors.length) return null;\n  var fields = {};\n  errors.forEach(function (error) {\n    var field = error.field;\n    fields[field] = fields[field] || [];\n    fields[field].push(error);\n  });\n  return fields;\n}\nexport function format(template) {\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  var i = 0;\n  var len = args.length;\n  if (typeof template === 'function') {\n    // eslint-disable-next-line prefer-spread\n    return template.apply(null, args);\n  }\n  if (typeof template === 'string') {\n    var str = template.replace(formatRegExp, function (x) {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return Number(args[i++]);\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    return str;\n  }\n  return template;\n}\nfunction isNativeStringType(type) {\n  return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'date' || type === 'pattern';\n}\nexport function isEmptyValue(value, type) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\nfunction asyncParallelArray(arr, func, callback) {\n  var results = [];\n  var total = 0;\n  var arrLength = arr.length;\n  function count(errors) {\n    results.push.apply(results, _toConsumableArray(errors || []));\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n  arr.forEach(function (a) {\n    func(a, count);\n  });\n}\nfunction asyncSerialArray(arr, func, callback) {\n  var index = 0;\n  var arrLength = arr.length;\n  function next(errors) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    var original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n  next([]);\n}\nfunction flattenObjArr(objArr) {\n  var ret = [];\n  Object.keys(objArr).forEach(function (k) {\n    ret.push.apply(ret, _toConsumableArray(objArr[k] || []));\n  });\n  return ret;\n}\nexport var AsyncValidationError = /*#__PURE__*/function (_Error) {\n  _inherits(AsyncValidationError, _Error);\n  var _super = _createSuper(AsyncValidationError);\n  function AsyncValidationError(errors, fields) {\n    var _this;\n    _classCallCheck(this, AsyncValidationError);\n    _this = _super.call(this, 'Async Validation Error');\n    _defineProperty(_assertThisInitialized(_this), \"errors\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"fields\", void 0);\n    _this.errors = errors;\n    _this.fields = fields;\n    return _this;\n  }\n  return _createClass(AsyncValidationError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\nexport function asyncMap(objArr, option, func, callback, source) {\n  if (option.first) {\n    var _pending = new Promise(function (resolve, reject) {\n      var next = function next(errors) {\n        callback(errors);\n        return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source);\n      };\n      var flattenArr = flattenObjArr(objArr);\n      asyncSerialArray(flattenArr, func, next);\n    });\n    _pending.catch(function (e) {\n      return e;\n    });\n    return _pending;\n  }\n  var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || [];\n  var objArrKeys = Object.keys(objArr);\n  var objArrLength = objArrKeys.length;\n  var total = 0;\n  var results = [];\n  var pending = new Promise(function (resolve, reject) {\n    var next = function next(errors) {\n      // eslint-disable-next-line prefer-spread\n      results.push.apply(results, errors);\n      total++;\n      if (total === objArrLength) {\n        callback(results);\n        return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source);\n      }\n    };\n    if (!objArrKeys.length) {\n      callback(results);\n      resolve(source);\n    }\n    objArrKeys.forEach(function (key) {\n      var arr = objArr[key];\n      if (firstFields.indexOf(key) !== -1) {\n        asyncSerialArray(arr, func, next);\n      } else {\n        asyncParallelArray(arr, func, next);\n      }\n    });\n  });\n  pending.catch(function (e) {\n    return e;\n  });\n  return pending;\n}\nfunction isErrorObj(obj) {\n  return !!(obj && obj.message !== undefined);\n}\nfunction getValue(value, path) {\n  var v = value;\n  for (var i = 0; i < path.length; i++) {\n    if (v == undefined) {\n      return v;\n    }\n    v = v[path[i]];\n  }\n  return v;\n}\nexport function complementError(rule, source) {\n  return function (oe) {\n    var fieldValue;\n    if (rule.fullFields) {\n      fieldValue = getValue(source, rule.fullFields);\n    } else {\n      fieldValue = source[oe.field || rule.fullField];\n    }\n    if (isErrorObj(oe)) {\n      oe.field = oe.field || rule.fullField;\n      oe.fieldValue = fieldValue;\n      return oe;\n    }\n    return {\n      message: typeof oe === 'function' ? oe() : oe,\n      fieldValue: fieldValue,\n      field: oe.field || rule.fullField\n    };\n  };\n}\nexport function deepMerge(target, source) {\n  if (source) {\n    for (var s in source) {\n      if (source.hasOwnProperty(s)) {\n        var value = source[s];\n        if (_typeof(value) === 'object' && _typeof(target[s]) === 'object') {\n          target[s] = _objectSpread(_objectSpread({}, target[s]), value);\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}","import { format } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, source, errors, options) {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));\n  }\n};\nexport default enumerable;","import { format } from \"../util\";\nvar pattern = function pattern(rule, value, source, errors, options) {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    } else if (typeof rule.pattern === 'string') {\n      var _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));\n      }\n    }\n  }\n};\nexport default pattern;","import { format } from \"../util\";\nvar range = function range(rule, value, source, errors, options) {\n  var len = typeof rule.len === 'number';\n  var min = typeof rule.min === 'number';\n  var max = typeof rule.max === 'number';\n  // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n  var spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  var val = value;\n  var key = null;\n  var num = typeof value === 'number';\n  var str = typeof value === 'string';\n  var arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".length !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max));\n  }\n};\nexport default range;","import { format, isEmptyValue } from \"../util\";\nvar required = function required(rule, value, source, errors, options, type) {\n  if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) {\n    errors.push(format(options.messages.required, rule.fullField));\n  }\n};\nexport default required;","// https://github.com/kevva/url-regex/blob/master/index.js\nvar urlReg;\nexport default (function () {\n  if (urlReg) {\n    return urlReg;\n  }\n  var word = '[a-fA-F\\\\d:]';\n  var b = function b(options) {\n    return options && options.includeBoundaries ? \"(?:(?<=\\\\s|^)(?=\".concat(word, \")|(?<=\").concat(word, \")(?=\\\\s|$))\") : '';\n  };\n  var v4 = '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n  var v6seg = '[a-fA-F\\\\d]{1,4}';\n  var v6List = [\"(?:\".concat(v6seg, \":){7}(?:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n  \"(?:\".concat(v6seg, \":){6}(?:\").concat(v4, \"|:\").concat(v6seg, \"|:)\"), // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::\n  \"(?:\".concat(v6seg, \":){5}(?::\").concat(v4, \"|(?::\").concat(v6seg, \"){1,2}|:)\"), // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::\n  \"(?:\".concat(v6seg, \":){4}(?:(?::\").concat(v6seg, \"){0,1}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,3}|:)\"), // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::\n  \"(?:\".concat(v6seg, \":){3}(?:(?::\").concat(v6seg, \"){0,2}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,4}|:)\"), // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::\n  \"(?:\".concat(v6seg, \":){2}(?:(?::\").concat(v6seg, \"){0,3}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,5}|:)\"), // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::\n  \"(?:\".concat(v6seg, \":){1}(?:(?::\").concat(v6seg, \"){0,4}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,6}|:)\"), // 1::              1::3:4:5:6:7:8   1::8            1::\n  \"(?::(?:(?::\".concat(v6seg, \"){0,5}:\").concat(v4, \"|(?::\").concat(v6seg, \"){1,7}|:))\") // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::\n  ];\n  var v6Eth0 = \"(?:%[0-9a-zA-Z]{1,})?\"; // %eth0            %1\n\n  var v6 = \"(?:\".concat(v6List.join('|'), \")\").concat(v6Eth0);\n\n  // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n  var v46Exact = new RegExp(\"(?:^\".concat(v4, \"$)|(?:^\").concat(v6, \"$)\"));\n  var v4exact = new RegExp(\"^\".concat(v4, \"$\"));\n  var v6exact = new RegExp(\"^\".concat(v6, \"$\"));\n  var ip = function ip(options) {\n    return options && options.exact ? v46Exact : new RegExp(\"(?:\".concat(b(options)).concat(v4).concat(b(options), \")|(?:\").concat(b(options)).concat(v6).concat(b(options), \")\"), 'g');\n  };\n  ip.v4 = function (options) {\n    return options && options.exact ? v4exact : new RegExp(\"\".concat(b(options)).concat(v4).concat(b(options)), 'g');\n  };\n  ip.v6 = function (options) {\n    return options && options.exact ? v6exact : new RegExp(\"\".concat(b(options)).concat(v6).concat(b(options)), 'g');\n  };\n  var protocol = \"(?:(?:[a-z]+:)?//)\";\n  var auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n  var ipv4 = ip.v4().source;\n  var ipv6 = ip.v6().source;\n  var host = \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\";\n  var domain = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\";\n  var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n  var port = '(?::\\\\d{2,5})?';\n  var path = '(?:[/?#][^\\\\s\"]*)?';\n  var regex = \"(?:\".concat(protocol, \"|www\\\\.)\").concat(auth, \"(?:localhost|\").concat(ipv4, \"|\").concat(ipv6, \"|\").concat(host).concat(domain).concat(tld, \")\").concat(port).concat(path);\n  urlReg = new RegExp(\"(?:^\".concat(regex, \"$)\"), 'i');\n  return urlReg;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { format } from \"../util\";\nimport required from \"./required\";\nimport getUrlRegex from \"./url\";\n/* eslint max-len:0 */\n\nvar pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n  // url: new RegExp(\n  //   '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n  //   'i',\n  // ),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i\n};\nvar types = {\n  integer: function integer(value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float: function float(value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array: function array(value) {\n    return Array.isArray(value);\n  },\n  regexp: function regexp(value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date: function date(value) {\n    return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function' && !isNaN(value.getTime());\n  },\n  number: function number(value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object: function object(value) {\n    return _typeof(value) === 'object' && !types.array(value);\n  },\n  method: function method(value) {\n    return typeof value === 'function';\n  },\n  email: function email(value) {\n    return typeof value === 'string' && value.length <= 320 && !!value.match(pattern.email);\n  },\n  url: function url(value) {\n    return typeof value === 'string' && value.length <= 2048 && !!value.match(getUrlRegex());\n  },\n  hex: function hex(value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  }\n};\nvar type = function type(rule, value, source, errors, options) {\n  if (rule.required && value === undefined) {\n    required(rule, value, source, errors, options);\n    return;\n  }\n  var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];\n  var ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n    }\n    // straight typeof check\n  } else if (ruleType && _typeof(value) !== rule.type) {\n    errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type));\n  }\n};\nexport default type;","import { format } from \"../util\";\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nvar whitespace = function whitespace(rule, value, source, errors, options) {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(format(options.messages.whitespace, rule.fullField));\n  }\n};\nexport default whitespace;","import enumRule from \"./enum\";\nimport pattern from \"./pattern\";\nimport range from \"./range\";\nimport required from \"./required\";\nimport type from \"./type\";\nimport whitespace from \"./whitespace\";\nexport default {\n  required: required,\n  whitespace: whitespace,\n  type: type,\n  range: range,\n  enum: enumRule,\n  pattern: pattern\n};","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar any = function any(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n  }\n  callback(errors);\n};\nexport default any;","import rules from \"../rule/index\";\nvar array = function array(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if ((value === undefined || value === null) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'array');\n    if (value !== undefined && value !== null) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default array;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar boolean = function boolean(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default boolean;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar date = function date(rule, value, callback, source, options) {\n  // console.log('integer rule called %j', rule);\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (isEmptyValue(value, 'date') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'date')) {\n      var dateObject;\n      if (value instanceof Date) {\n        dateObject = value;\n      } else {\n        dateObject = new Date(value);\n      }\n      rules.type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\nexport default date;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar ENUM = 'enum';\nvar enumerable = function enumerable(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default enumerable;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar floatFn = function floatFn(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default floatFn;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar integer = function integer(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default integer;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar method = function method(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default method;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar number = function number(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (value === '') {\n      // eslint-disable-next-line no-param-reassign\n      value = undefined;\n    }\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default number;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar object = function object(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default object;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar pattern = function pattern(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default pattern;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar regexp = function regexp(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default regexp;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport rules from \"../rule\";\nvar required = function required(rule, value, callback, source, options) {\n  var errors = [];\n  var type = Array.isArray(value) ? 'array' : _typeof(value);\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n};\nexport default required;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar string = function string(rule, value, callback, source, options) {\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'string');\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\nexport default string;","import rules from \"../rule\";\nimport { isEmptyValue } from \"../util\";\nvar type = function type(rule, value, callback, source, options) {\n  var ruleType = rule.type;\n  var errors = [];\n  var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, ruleType);\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\nexport default type;","import any from \"./any\";\nimport array from \"./array\";\nimport boolean from \"./boolean\";\nimport date from \"./date\";\nimport enumValidator from \"./enum\";\nimport float from \"./float\";\nimport integer from \"./integer\";\nimport method from \"./method\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport pattern from \"./pattern\";\nimport regexp from \"./regexp\";\nimport required from \"./required\";\nimport string from \"./string\";\nimport type from \"./type\";\nexport default {\n  string: string,\n  method: method,\n  number: number,\n  boolean: boolean,\n  regexp: regexp,\n  integer: integer,\n  float: float,\n  array: array,\n  object: object,\n  enum: enumValidator,\n  pattern: pattern,\n  date: date,\n  url: type,\n  hex: type,\n  email: type,\n  required: required,\n  any: any\n};","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { messages as defaultMessages, newMessages } from \"./messages\";\nimport { asyncMap, complementError, convertFieldsError, deepMerge, format, warning } from \"./util\";\nimport validators from \"./validator/index\";\nexport * from \"./interface\";\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nvar Schema = /*#__PURE__*/function () {\n  function Schema(descriptor) {\n    _classCallCheck(this, Schema);\n    // ======================== Instance ========================\n    _defineProperty(this, \"rules\", null);\n    _defineProperty(this, \"_messages\", defaultMessages);\n    this.define(descriptor);\n  }\n  _createClass(Schema, [{\n    key: \"define\",\n    value: function define(rules) {\n      var _this = this;\n      if (!rules) {\n        throw new Error('Cannot configure a schema with no rules');\n      }\n      if (_typeof(rules) !== 'object' || Array.isArray(rules)) {\n        throw new Error('Rules must be an object');\n      }\n      this.rules = {};\n      Object.keys(rules).forEach(function (name) {\n        var item = rules[name];\n        _this.rules[name] = Array.isArray(item) ? item : [item];\n      });\n    }\n  }, {\n    key: \"messages\",\n    value: function messages(_messages) {\n      if (_messages) {\n        this._messages = deepMerge(newMessages(), _messages);\n      }\n      return this._messages;\n    }\n  }, {\n    key: \"validate\",\n    value: function validate(source_) {\n      var _this2 = this;\n      var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n      var source = source_;\n      var options = o;\n      var callback = oc;\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      if (!this.rules || Object.keys(this.rules).length === 0) {\n        if (callback) {\n          callback(null, source);\n        }\n        return Promise.resolve(source);\n      }\n      function complete(results) {\n        var errors = [];\n        var fields = {};\n        function add(e) {\n          if (Array.isArray(e)) {\n            var _errors;\n            errors = (_errors = errors).concat.apply(_errors, _toConsumableArray(e));\n          } else {\n            errors.push(e);\n          }\n        }\n        for (var i = 0; i < results.length; i++) {\n          add(results[i]);\n        }\n        if (!errors.length) {\n          callback(null, source);\n        } else {\n          fields = convertFieldsError(errors);\n          callback(errors, fields);\n        }\n      }\n      if (options.messages) {\n        var messages = this.messages();\n        if (messages === defaultMessages) {\n          messages = newMessages();\n        }\n        deepMerge(messages, options.messages);\n        options.messages = messages;\n      } else {\n        options.messages = this.messages();\n      }\n      var series = {};\n      var keys = options.keys || Object.keys(this.rules);\n      keys.forEach(function (z) {\n        var arr = _this2.rules[z];\n        var value = source[z];\n        arr.forEach(function (r) {\n          var rule = r;\n          if (typeof rule.transform === 'function') {\n            if (source === source_) {\n              source = _objectSpread({}, source);\n            }\n            value = source[z] = rule.transform(value);\n            if (value !== undefined && value !== null) {\n              rule.type = rule.type || (Array.isArray(value) ? 'array' : _typeof(value));\n            }\n          }\n          if (typeof rule === 'function') {\n            rule = {\n              validator: rule\n            };\n          } else {\n            rule = _objectSpread({}, rule);\n          }\n\n          // Fill validator. Skip if nothing need to validate\n          rule.validator = _this2.getValidationMethod(rule);\n          if (!rule.validator) {\n            return;\n          }\n          rule.field = z;\n          rule.fullField = rule.fullField || z;\n          rule.type = _this2.getType(rule);\n          series[z] = series[z] || [];\n          series[z].push({\n            rule: rule,\n            value: value,\n            source: source,\n            field: z\n          });\n        });\n      });\n      var errorFields = {};\n      return asyncMap(series, options, function (data, doIt) {\n        var rule = data.rule;\n        var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');\n        deep = deep && (rule.required || !rule.required && data.value);\n        rule.field = data.field;\n        function addFullField(key, schema) {\n          return _objectSpread(_objectSpread({}, schema), {}, {\n            fullField: \"\".concat(rule.fullField, \".\").concat(key),\n            fullFields: rule.fullFields ? [].concat(_toConsumableArray(rule.fullFields), [key]) : [key]\n          });\n        }\n        function cb() {\n          var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n          var errorList = Array.isArray(e) ? e : [e];\n          if (!options.suppressWarning && errorList.length) {\n            Schema.warning('async-validator:', errorList);\n          }\n          if (errorList.length && rule.message !== undefined) {\n            errorList = [].concat(rule.message);\n          }\n\n          // Fill error info\n          var filledErrors = errorList.map(complementError(rule, source));\n          if (options.first && filledErrors.length) {\n            errorFields[rule.field] = 1;\n            return doIt(filledErrors);\n          }\n          if (!deep) {\n            doIt(filledErrors);\n          } else {\n            // if rule is required but the target object\n            // does not exist fail at the rule level and don't\n            // go deeper\n            if (rule.required && !data.value) {\n              if (rule.message !== undefined) {\n                filledErrors = [].concat(rule.message).map(complementError(rule, source));\n              } else if (options.error) {\n                filledErrors = [options.error(rule, format(options.messages.required, rule.field))];\n              }\n              return doIt(filledErrors);\n            }\n            var fieldsSchema = {};\n            if (rule.defaultField) {\n              Object.keys(data.value).map(function (key) {\n                fieldsSchema[key] = rule.defaultField;\n              });\n            }\n            fieldsSchema = _objectSpread(_objectSpread({}, fieldsSchema), data.rule.fields);\n            var paredFieldsSchema = {};\n            Object.keys(fieldsSchema).forEach(function (field) {\n              var fieldSchema = fieldsSchema[field];\n              var fieldSchemaList = Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema];\n              paredFieldsSchema[field] = fieldSchemaList.map(addFullField.bind(null, field));\n            });\n            var schema = new Schema(paredFieldsSchema);\n            schema.messages(options.messages);\n            if (data.rule.options) {\n              data.rule.options.messages = options.messages;\n              data.rule.options.error = options.error;\n            }\n            schema.validate(data.value, data.rule.options || options, function (errs) {\n              var finalErrors = [];\n              if (filledErrors && filledErrors.length) {\n                finalErrors.push.apply(finalErrors, _toConsumableArray(filledErrors));\n              }\n              if (errs && errs.length) {\n                finalErrors.push.apply(finalErrors, _toConsumableArray(errs));\n              }\n              doIt(finalErrors.length ? finalErrors : null);\n            });\n          }\n        }\n        var res;\n        if (rule.asyncValidator) {\n          res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n        } else if (rule.validator) {\n          try {\n            res = rule.validator(rule, data.value, cb, data.source, options);\n          } catch (error) {\n            var _console$error, _console;\n            (_console$error = (_console = console).error) === null || _console$error === void 0 || _console$error.call(_console, error);\n            // rethrow to report error\n            if (!options.suppressValidatorError) {\n              setTimeout(function () {\n                throw error;\n              }, 0);\n            }\n            cb(error.message);\n          }\n          if (res === true) {\n            cb();\n          } else if (res === false) {\n            cb(typeof rule.message === 'function' ? rule.message(rule.fullField || rule.field) : rule.message || \"\".concat(rule.fullField || rule.field, \" fails\"));\n          } else if (res instanceof Array) {\n            cb(res);\n          } else if (res instanceof Error) {\n            cb(res.message);\n          }\n        }\n        if (res && res.then) {\n          res.then(function () {\n            return cb();\n          }, function (e) {\n            return cb(e);\n          });\n        }\n      }, function (results) {\n        complete(results);\n      }, source);\n    }\n  }, {\n    key: \"getType\",\n    value: function getType(rule) {\n      if (rule.type === undefined && rule.pattern instanceof RegExp) {\n        rule.type = 'pattern';\n      }\n      if (typeof rule.validator !== 'function' && rule.type && !validators.hasOwnProperty(rule.type)) {\n        throw new Error(format('Unknown rule type %s', rule.type));\n      }\n      return rule.type || 'string';\n    }\n  }, {\n    key: \"getValidationMethod\",\n    value: function getValidationMethod(rule) {\n      if (typeof rule.validator === 'function') {\n        return rule.validator;\n      }\n      var keys = Object.keys(rule);\n      var messageIndex = keys.indexOf('message');\n      if (messageIndex !== -1) {\n        keys.splice(messageIndex, 1);\n      }\n      if (keys.length === 1 && keys[0] === 'required') {\n        return validators.required;\n      }\n      return validators[this.getType(rule)] || undefined;\n    }\n  }]);\n  return Schema;\n}();\n// ========================= Static =========================\n_defineProperty(Schema, \"register\", function register(type, validator) {\n  if (typeof validator !== 'function') {\n    throw new Error('Cannot register a validator by type, validator is not a function');\n  }\n  validators[type] = validator;\n});\n_defineProperty(Schema, \"warning\", warning);\n_defineProperty(Schema, \"messages\", defaultMessages);\n_defineProperty(Schema, \"validators\", validators);\nexport default Schema;","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n  default: \"Validation error on field '${name}'\",\n  required: \"'${name}' is required\",\n  enum: \"'${name}' must be one of [${enum}]\",\n  whitespace: \"'${name}' cannot be empty\",\n  date: {\n    format: \"'${name}' is invalid for format date\",\n    parse: \"'${name}' could not be parsed as date\",\n    invalid: \"'${name}' is invalid date\"\n  },\n  types: {\n    string: typeTemplate,\n    method: typeTemplate,\n    array: typeTemplate,\n    object: typeTemplate,\n    number: typeTemplate,\n    date: typeTemplate,\n    boolean: typeTemplate,\n    integer: typeTemplate,\n    float: typeTemplate,\n    regexp: typeTemplate,\n    email: typeTemplate,\n    url: typeTemplate,\n    hex: typeTemplate\n  },\n  string: {\n    len: \"'${name}' must be exactly ${len} characters\",\n    min: \"'${name}' must be at least ${min} characters\",\n    max: \"'${name}' cannot be longer than ${max} characters\",\n    range: \"'${name}' must be between ${min} and ${max} characters\"\n  },\n  number: {\n    len: \"'${name}' must equal ${len}\",\n    min: \"'${name}' cannot be less than ${min}\",\n    max: \"'${name}' cannot be greater than ${max}\",\n    range: \"'${name}' must be between ${min} and ${max}\"\n  },\n  array: {\n    len: \"'${name}' must be exactly ${len} in length\",\n    min: \"'${name}' cannot be less than ${min} in length\",\n    max: \"'${name}' cannot be greater than ${max} in length\",\n    range: \"'${name}' must be between ${min} and ${max} in length\"\n  },\n  pattern: {\n    mismatch: \"'${name}' does not match pattern ${pattern}\"\n  }\n};","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from '@rc-component/async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from \"./messages\";\nimport { merge } from \"rc-util/es/utils/set\";\n\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n\n/**\n * Replace with template.\n *   `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n  return template.replace(/\\\\?\\$\\{\\w+\\}/g, function (str) {\n    if (str.startsWith('\\\\')) {\n      return str.slice(1);\n    }\n    var key = str.slice(2, -1);\n    return kv[key];\n  });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n  return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n  _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n    var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) switch (_context2.prev = _context2.next) {\n        case 0:\n          cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n          // https://github.com/react-component/field-form/issues/316\n          // https://github.com/react-component/field-form/issues/313\n          delete cloneRule.ruleIndex;\n\n          // https://github.com/ant-design/ant-design/issues/40497#issuecomment-1422282378\n          AsyncValidator.warning = function () {\n            return void 0;\n          };\n          if (cloneRule.validator) {\n            originValidator = cloneRule.validator;\n            cloneRule.validator = function () {\n              try {\n                return originValidator.apply(void 0, arguments);\n              } catch (error) {\n                console.error(error);\n                return Promise.reject(CODE_LOGIC_ERROR);\n              }\n            };\n          }\n\n          // We should special handle array validate\n          subRuleField = null;\n          if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n            subRuleField = cloneRule.defaultField;\n            delete cloneRule.defaultField;\n          }\n          validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n          messages = merge(defaultValidateMessages, options.validateMessages);\n          validator.messages(messages);\n          result = [];\n          _context2.prev = 10;\n          _context2.next = 13;\n          return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n        case 13:\n          _context2.next = 18;\n          break;\n        case 15:\n          _context2.prev = 15;\n          _context2.t0 = _context2[\"catch\"](10);\n          if (_context2.t0.errors) {\n            result = _context2.t0.errors.map(function (_ref4, index) {\n              var message = _ref4.message;\n              var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n              return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n              /*#__PURE__*/\n              // Wrap ReactNode with `key`\n              React.cloneElement(mergedMessage, {\n                key: \"error_\".concat(index)\n              }) : mergedMessage;\n            });\n          }\n        case 18:\n          if (!(!result.length && subRuleField)) {\n            _context2.next = 23;\n            break;\n          }\n          _context2.next = 21;\n          return Promise.all(value.map(function (subValue, i) {\n            return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n          }));\n        case 21:\n          subResults = _context2.sent;\n          return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n            return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n          }, []));\n        case 23:\n          // Replace message with variables\n          kv = _objectSpread(_objectSpread({}, rule), {}, {\n            name: name,\n            enum: (rule.enum || []).join(', ')\n          }, messageVariables);\n          fillVariableResult = result.map(function (error) {\n            if (typeof error === 'string') {\n              return replaceMessage(error, kv);\n            }\n            return error;\n          });\n          return _context2.abrupt(\"return\", fillVariableResult);\n        case 26:\n        case \"end\":\n          return _context2.stop();\n      }\n    }, _callee2, null, [[10, 15]]);\n  }));\n  return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n  var name = namePath.join('.');\n\n  // Fill rule with context\n  var filledRules = rules.map(function (currentRule, ruleIndex) {\n    var originValidatorFunc = currentRule.validator;\n    var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n      ruleIndex: ruleIndex\n    });\n\n    // Replace validator if needed\n    if (originValidatorFunc) {\n      cloneRule.validator = function (rule, val, callback) {\n        var hasPromise = false;\n\n        // Wrap callback only accept when promise not provided\n        var wrappedCallback = function wrappedCallback() {\n          for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n            args[_key] = arguments[_key];\n          }\n          // Wait a tick to make sure return type is a promise\n          Promise.resolve().then(function () {\n            warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n            if (!hasPromise) {\n              callback.apply(void 0, args);\n            }\n          });\n        };\n\n        // Get promise\n        var promise = originValidatorFunc(rule, val, wrappedCallback);\n        hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n\n        /**\n         * 1. Use promise as the first priority.\n         * 2. If promise not exist, use callback with warning instead\n         */\n        warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n        if (hasPromise) {\n          promise.then(function () {\n            callback();\n          }).catch(function (err) {\n            callback(err || ' ');\n          });\n        }\n      };\n    }\n    return cloneRule;\n  }).sort(function (_ref, _ref2) {\n    var w1 = _ref.warningOnly,\n      i1 = _ref.ruleIndex;\n    var w2 = _ref2.warningOnly,\n      i2 = _ref2.ruleIndex;\n    if (!!w1 === !!w2) {\n      // Let keep origin order\n      return i1 - i2;\n    }\n    if (w1) {\n      return 1;\n    }\n    return -1;\n  });\n\n  // Do validate rules\n  var summaryPromise;\n  if (validateFirst === true) {\n    // >>>>> Validate by serialization\n    summaryPromise = new Promise( /*#__PURE__*/function () {\n      var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n        var i, rule, errors;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              i = 0;\n            case 1:\n              if (!(i < filledRules.length)) {\n                _context.next = 12;\n                break;\n              }\n              rule = filledRules[i];\n              _context.next = 5;\n              return validateRule(name, value, rule, options, messageVariables);\n            case 5:\n              errors = _context.sent;\n              if (!errors.length) {\n                _context.next = 9;\n                break;\n              }\n              reject([{\n                errors: errors,\n                rule: rule\n              }]);\n              return _context.abrupt(\"return\");\n            case 9:\n              i += 1;\n              _context.next = 1;\n              break;\n            case 12:\n              /* eslint-enable */\n\n              resolve([]);\n            case 13:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function (_x6, _x7) {\n        return _ref3.apply(this, arguments);\n      };\n    }());\n  } else {\n    // >>>>> Validate by parallel\n    var rulePromises = filledRules.map(function (rule) {\n      return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n        return {\n          errors: errors,\n          rule: rule\n        };\n      });\n    });\n    summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n      // Always change to rejection for Field to catch\n      return Promise.reject(errors);\n    });\n  }\n\n  // Internal catch error to avoid console error log.\n  summaryPromise.catch(function (e) {\n    return e;\n  });\n  return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n  _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n    return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n      while (1) switch (_context3.prev = _context3.next) {\n        case 0:\n          return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n            var _ref5;\n            var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n            return errors;\n          }));\n        case 1:\n        case \"end\":\n          return _context3.stop();\n      }\n    }, _callee3);\n  }));\n  return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n  return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n  _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n    var count;\n    return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n      while (1) switch (_context4.prev = _context4.next) {\n        case 0:\n          count = 0;\n          return _context4.abrupt(\"return\", new Promise(function (resolve) {\n            rulePromises.forEach(function (promise) {\n              promise.then(function (ruleError) {\n                if (ruleError.errors.length) {\n                  resolve([ruleError]);\n                }\n                count += 1;\n                if (count === rulePromises.length) {\n                  resolve([]);\n                }\n              });\n            });\n          }));\n        case 2:\n        case \"end\":\n          return _context4.stop();\n      }\n    }, _callee4);\n  }));\n  return _finishOnFirstFailed.apply(this, arguments);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport getValue from \"rc-util/es/utils/get\";\nimport setValue from \"rc-util/es/utils/set\";\nimport { toArray } from \"./typeUtil\";\nexport { getValue, setValue };\n\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n  return toArray(path);\n}\nexport function cloneByNamePathList(store, namePathList) {\n  var newStore = {};\n  namePathList.forEach(function (namePath) {\n    var value = getValue(store, namePath);\n    newStore = setValue(newStore, namePath, value);\n  });\n  return newStore;\n}\n\n/**\n * Check if `namePathList` includes `namePath`.\n * @param namePathList A list of `InternalNamePath[]`\n * @param namePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function containsNamePath(namePathList, namePath) {\n  var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  return namePathList && namePathList.some(function (path) {\n    return matchNamePath(namePath, path, partialMatch);\n  });\n}\n\n/**\n * Check if `namePath` is super set or equal of `subNamePath`.\n * @param namePath A list of `InternalNamePath[]`\n * @param subNamePath Compare `InternalNamePath`\n * @param partialMatch True will make `[a, b]` match `[a, b, c]`\n */\nexport function matchNamePath(namePath, subNamePath) {\n  var partialMatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  if (!namePath || !subNamePath) {\n    return false;\n  }\n  if (!partialMatch && namePath.length !== subNamePath.length) {\n    return false;\n  }\n  return subNamePath.every(function (nameUnit, i) {\n    return namePath[i] === nameUnit;\n  });\n}\n\n// Like `shallowEqual`, but we not check the data which may cause re-render\n\nexport function isSimilar(source, target) {\n  if (source === target) {\n    return true;\n  }\n  if (!source && target || source && !target) {\n    return false;\n  }\n  if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n    return false;\n  }\n  var sourceKeys = Object.keys(source);\n  var targetKeys = Object.keys(target);\n  var keys = new Set([].concat(sourceKeys, targetKeys));\n  return _toConsumableArray(keys).every(function (key) {\n    var sourceValue = source[key];\n    var targetValue = target[key];\n    if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n      return true;\n    }\n    return sourceValue === targetValue;\n  });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n  var event = arguments.length <= 1 ? undefined : arguments[1];\n  if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n    return event.target[valuePropName];\n  }\n  return event;\n}\n\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array         Array in which to move an item.         (required)\n * @param moveIndex     The index of the item to move.          (required)\n * @param toIndex       The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n  var length = array.length;\n  if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n    return array;\n  }\n  var item = array[moveIndex];\n  var diff = moveIndex - toIndex;\n  if (diff > 0) {\n    // move left\n    return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n  }\n  if (diff < 0) {\n    // move right\n    return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n  }\n  return array;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport { toArray } from \"./utils/typeUtil\";\nimport { validateRules } from \"./utils/validateUtil\";\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from \"./utils/valueUtil\";\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n  if (typeof shouldUpdate === 'function') {\n    return shouldUpdate(prev, next, 'source' in info ? {\n      source: info.source\n    } : {});\n  }\n  return prevValue !== nextValue;\n}\n\n// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n  _inherits(Field, _React$Component);\n  var _super = _createSuper(Field);\n  // ============================== Subscriptions ==============================\n  function Field(props) {\n    var _this;\n    _classCallCheck(this, Field);\n    _this = _super.call(this, props);\n\n    // Register on init\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      resetCount: 0\n    });\n    _defineProperty(_assertThisInitialized(_this), \"cancelRegisterFunc\", null);\n    _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n    /**\n     * Follow state should not management in State since it will async update by React.\n     * This makes first render of form can not get correct state value.\n     */\n    _defineProperty(_assertThisInitialized(_this), \"touched\", false);\n    /**\n     * Mark when touched & validated. Currently only used for `dependencies`.\n     * Note that we do not think field with `initialValue` is dirty\n     * but this will be by `isFieldDirty` func.\n     */\n    _defineProperty(_assertThisInitialized(_this), \"dirty\", false);\n    _defineProperty(_assertThisInitialized(_this), \"validatePromise\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"prevValidating\", void 0);\n    _defineProperty(_assertThisInitialized(_this), \"errors\", EMPTY_ERRORS);\n    _defineProperty(_assertThisInitialized(_this), \"warnings\", EMPTY_ERRORS);\n    _defineProperty(_assertThisInitialized(_this), \"cancelRegister\", function () {\n      var _this$props = _this.props,\n        preserve = _this$props.preserve,\n        isListField = _this$props.isListField,\n        name = _this$props.name;\n      if (_this.cancelRegisterFunc) {\n        _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n      }\n      _this.cancelRegisterFunc = null;\n    });\n    // ================================== Utils ==================================\n    _defineProperty(_assertThisInitialized(_this), \"getNamePath\", function () {\n      var _this$props2 = _this.props,\n        name = _this$props2.name,\n        fieldContext = _this$props2.fieldContext;\n      var _fieldContext$prefixN = fieldContext.prefixName,\n        prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n      return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getRules\", function () {\n      var _this$props3 = _this.props,\n        _this$props3$rules = _this$props3.rules,\n        rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n        fieldContext = _this$props3.fieldContext;\n      return rules.map(function (rule) {\n        if (typeof rule === 'function') {\n          return rule(fieldContext);\n        }\n        return rule;\n      });\n    });\n    _defineProperty(_assertThisInitialized(_this), \"refresh\", function () {\n      if (!_this.mounted) return;\n\n      /**\n       * Clean up current node.\n       */\n      _this.setState(function (_ref) {\n        var resetCount = _ref.resetCount;\n        return {\n          resetCount: resetCount + 1\n        };\n      });\n    });\n    // Event should only trigger when meta changed\n    _defineProperty(_assertThisInitialized(_this), \"metaCache\", null);\n    _defineProperty(_assertThisInitialized(_this), \"triggerMetaEvent\", function (destroy) {\n      var onMetaChange = _this.props.onMetaChange;\n      if (onMetaChange) {\n        var _meta = _objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n          destroy: destroy\n        });\n        if (!isEqual(_this.metaCache, _meta)) {\n          onMetaChange(_meta);\n        }\n        _this.metaCache = _meta;\n      } else {\n        _this.metaCache = null;\n      }\n    });\n    // ========================= Field Entity Interfaces =========================\n    // Trigger by store update. Check if need update the component\n    _defineProperty(_assertThisInitialized(_this), \"onStoreChange\", function (prevStore, namePathList, info) {\n      var _this$props4 = _this.props,\n        shouldUpdate = _this$props4.shouldUpdate,\n        _this$props4$dependen = _this$props4.dependencies,\n        dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n        onReset = _this$props4.onReset;\n      var store = info.store;\n      var namePath = _this.getNamePath();\n      var prevValue = _this.getValue(prevStore);\n      var curValue = _this.getValue(store);\n      var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n\n      // `setFieldsValue` is a quick access to update related status\n      if (info.type === 'valueUpdate' && info.source === 'external' && !isEqual(prevValue, curValue)) {\n        _this.touched = true;\n        _this.dirty = true;\n        _this.validatePromise = null;\n        _this.errors = EMPTY_ERRORS;\n        _this.warnings = EMPTY_ERRORS;\n        _this.triggerMetaEvent();\n      }\n      switch (info.type) {\n        case 'reset':\n          if (!namePathList || namePathMatch) {\n            // Clean up state\n            _this.touched = false;\n            _this.dirty = false;\n            _this.validatePromise = undefined;\n            _this.errors = EMPTY_ERRORS;\n            _this.warnings = EMPTY_ERRORS;\n            _this.triggerMetaEvent();\n            onReset === null || onReset === void 0 || onReset();\n            _this.refresh();\n            return;\n          }\n          break;\n\n        /**\n         * In case field with `preserve = false` nest deps like:\n         * - A = 1 => show B\n         * - B = 1 => show C\n         * - Reset A, need clean B, C\n         */\n        case 'remove':\n          {\n            if (shouldUpdate && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'setField':\n          {\n            var data = info.data;\n            if (namePathMatch) {\n              if ('touched' in data) {\n                _this.touched = data.touched;\n              }\n              if ('validating' in data && !('originRCField' in data)) {\n                _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n              }\n              if ('errors' in data) {\n                _this.errors = data.errors || EMPTY_ERRORS;\n              }\n              if ('warnings' in data) {\n                _this.warnings = data.warnings || EMPTY_ERRORS;\n              }\n              _this.dirty = true;\n              _this.triggerMetaEvent();\n              _this.reRender();\n              return;\n            } else if ('value' in data && containsNamePath(namePathList, namePath, true)) {\n              // Contains path with value should also check\n              _this.reRender();\n              return;\n            }\n\n            // Handle update by `setField` with `shouldUpdate`\n            if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        case 'dependenciesUpdate':\n          {\n            /**\n             * Trigger when marked `dependencies` updated. Related fields will all update\n             */\n            var dependencyList = dependencies.map(getNamePath);\n            // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n            // emitted earlier and they will work there\n            // If set it may cause unnecessary twice rerendering\n            if (dependencyList.some(function (dependency) {\n              return containsNamePath(info.relatedFields, dependency);\n            })) {\n              _this.reRender();\n              return;\n            }\n            break;\n          }\n        default:\n          // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n          //      For example <List name=\"list\"><Field name={['list', 0]}></List>\n          //      If `namePathList` is [['list']] (List value update), Field should be updated\n          //      If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n          // 2.\n          //   2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n          //       don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n          //       is not provided\n          //   2.2 If `shouldUpdate` provided, use customize logic to update the field\n          //       else to check if value changed\n          if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n            _this.reRender();\n            return;\n          }\n          break;\n      }\n      if (shouldUpdate === true) {\n        _this.reRender();\n      }\n    });\n    _defineProperty(_assertThisInitialized(_this), \"validateRules\", function (options) {\n      // We should fixed namePath & value to avoid developer change then by form function\n      var namePath = _this.getNamePath();\n      var currentValue = _this.getValue();\n      var _ref2 = options || {},\n        triggerName = _ref2.triggerName,\n        _ref2$validateOnly = _ref2.validateOnly,\n        validateOnly = _ref2$validateOnly === void 0 ? false : _ref2$validateOnly;\n\n      // Force change to async to avoid rule OOD under renderProps field\n      var rootPromise = Promise.resolve().then( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n        var _this$props5, _this$props5$validate, validateFirst, messageVariables, validateDebounce, filteredRules, promise;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              if (_this.mounted) {\n                _context.next = 2;\n                break;\n              }\n              return _context.abrupt(\"return\", []);\n            case 2:\n              _this$props5 = _this.props, _this$props5$validate = _this$props5.validateFirst, validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate, messageVariables = _this$props5.messageVariables, validateDebounce = _this$props5.validateDebounce; // Start validate\n              filteredRules = _this.getRules();\n              if (triggerName) {\n                filteredRules = filteredRules.filter(function (rule) {\n                  return rule;\n                }).filter(function (rule) {\n                  var validateTrigger = rule.validateTrigger;\n                  if (!validateTrigger) {\n                    return true;\n                  }\n                  var triggerList = toArray(validateTrigger);\n                  return triggerList.includes(triggerName);\n                });\n              }\n\n              // Wait for debounce. Skip if no `triggerName` since its from `validateFields / submit`\n              if (!(validateDebounce && triggerName)) {\n                _context.next = 10;\n                break;\n              }\n              _context.next = 8;\n              return new Promise(function (resolve) {\n                setTimeout(resolve, validateDebounce);\n              });\n            case 8:\n              if (!(_this.validatePromise !== rootPromise)) {\n                _context.next = 10;\n                break;\n              }\n              return _context.abrupt(\"return\", []);\n            case 10:\n              promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n              promise.catch(function (e) {\n                return e;\n              }).then(function () {\n                var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n                if (_this.validatePromise === rootPromise) {\n                  var _ruleErrors$forEach;\n                  _this.validatePromise = null;\n\n                  // Get errors & warnings\n                  var nextErrors = [];\n                  var nextWarnings = [];\n                  (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref4) {\n                    var warningOnly = _ref4.rule.warningOnly,\n                      _ref4$errors = _ref4.errors,\n                      errors = _ref4$errors === void 0 ? EMPTY_ERRORS : _ref4$errors;\n                    if (warningOnly) {\n                      nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n                    } else {\n                      nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n                    }\n                  });\n                  _this.errors = nextErrors;\n                  _this.warnings = nextWarnings;\n                  _this.triggerMetaEvent();\n                  _this.reRender();\n                }\n              });\n              return _context.abrupt(\"return\", promise);\n            case 13:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      })));\n      if (validateOnly) {\n        return rootPromise;\n      }\n      _this.validatePromise = rootPromise;\n      _this.dirty = true;\n      _this.errors = EMPTY_ERRORS;\n      _this.warnings = EMPTY_ERRORS;\n      _this.triggerMetaEvent();\n\n      // Force trigger re-render since we need sync renderProps with new meta\n      _this.reRender();\n      return rootPromise;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldValidating\", function () {\n      return !!_this.validatePromise;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldTouched\", function () {\n      return _this.touched;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isFieldDirty\", function () {\n      // Touched or validate or has initialValue\n      if (_this.dirty || _this.props.initialValue !== undefined) {\n        return true;\n      }\n\n      // Form set initialValue\n      var fieldContext = _this.props.fieldContext;\n      var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n        getInitialValue = _fieldContext$getInte.getInitialValue;\n      if (getInitialValue(_this.getNamePath()) !== undefined) {\n        return true;\n      }\n      return false;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getErrors\", function () {\n      return _this.errors;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getWarnings\", function () {\n      return _this.warnings;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isListField\", function () {\n      return _this.props.isListField;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isList\", function () {\n      return _this.props.isList;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"isPreserve\", function () {\n      return _this.props.preserve;\n    });\n    // ============================= Child Component =============================\n    _defineProperty(_assertThisInitialized(_this), \"getMeta\", function () {\n      // Make error & validating in cache to save perf\n      _this.prevValidating = _this.isFieldValidating();\n      var meta = {\n        touched: _this.isFieldTouched(),\n        validating: _this.prevValidating,\n        errors: _this.errors,\n        warnings: _this.warnings,\n        name: _this.getNamePath(),\n        validated: _this.validatePromise === null\n      };\n      return meta;\n    });\n    // Only return validate child node. If invalidate, will do nothing about field.\n    _defineProperty(_assertThisInitialized(_this), \"getOnlyChild\", function (children) {\n      // Support render props\n      if (typeof children === 'function') {\n        var _meta2 = _this.getMeta();\n        return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), _meta2, _this.props.fieldContext))), {}, {\n          isFunction: true\n        });\n      }\n\n      // Filed element only\n      var childList = toChildrenArray(children);\n      if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n        return {\n          child: childList,\n          isFunction: false\n        };\n      }\n      return {\n        child: childList[0],\n        isFunction: false\n      };\n    });\n    // ============================== Field Control ==============================\n    _defineProperty(_assertThisInitialized(_this), \"getValue\", function (store) {\n      var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n      var namePath = _this.getNamePath();\n      return getValue(store || getFieldsValue(true), namePath);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"getControlled\", function () {\n      var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var _this$props6 = _this.props,\n        name = _this$props6.name,\n        trigger = _this$props6.trigger,\n        validateTrigger = _this$props6.validateTrigger,\n        getValueFromEvent = _this$props6.getValueFromEvent,\n        normalize = _this$props6.normalize,\n        valuePropName = _this$props6.valuePropName,\n        getValueProps = _this$props6.getValueProps,\n        fieldContext = _this$props6.fieldContext;\n      var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n      var namePath = _this.getNamePath();\n      var getInternalHooks = fieldContext.getInternalHooks,\n        getFieldsValue = fieldContext.getFieldsValue;\n      var _getInternalHooks = getInternalHooks(HOOK_MARK),\n        dispatch = _getInternalHooks.dispatch;\n      var value = _this.getValue();\n      var mergedGetValueProps = getValueProps || function (val) {\n        return _defineProperty({}, valuePropName, val);\n      };\n      var originTriggerFunc = childProps[trigger];\n      var valueProps = name !== undefined ? mergedGetValueProps(value) : {};\n\n      // warning when prop value is function\n      if (process.env.NODE_ENV !== 'production' && valueProps) {\n        Object.keys(valueProps).forEach(function (key) {\n          warning(typeof valueProps[key] !== 'function', \"It's not recommended to generate dynamic function prop by `getValueProps`. Please pass it to child component directly (prop: \".concat(key, \")\"));\n        });\n      }\n      var control = _objectSpread(_objectSpread({}, childProps), valueProps);\n\n      // Add trigger\n      control[trigger] = function () {\n        // Mark as touched\n        _this.touched = true;\n        _this.dirty = true;\n        _this.triggerMetaEvent();\n        var newValue;\n        for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n          args[_key] = arguments[_key];\n        }\n        if (getValueFromEvent) {\n          newValue = getValueFromEvent.apply(void 0, args);\n        } else {\n          newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n        }\n        if (normalize) {\n          newValue = normalize(newValue, value, getFieldsValue(true));\n        }\n        if (newValue !== value) {\n          dispatch({\n            type: 'updateValue',\n            namePath: namePath,\n            value: newValue\n          });\n        }\n        if (originTriggerFunc) {\n          originTriggerFunc.apply(void 0, args);\n        }\n      };\n\n      // Add validateTrigger\n      var validateTriggerList = toArray(mergedValidateTrigger || []);\n      validateTriggerList.forEach(function (triggerName) {\n        // Wrap additional function of component, so that we can get latest value from store\n        var originTrigger = control[triggerName];\n        control[triggerName] = function () {\n          if (originTrigger) {\n            originTrigger.apply(void 0, arguments);\n          }\n\n          // Always use latest rules\n          var rules = _this.props.rules;\n          if (rules && rules.length) {\n            // We dispatch validate to root,\n            // since it will update related data with other field with same name\n            dispatch({\n              type: 'validateField',\n              namePath: namePath,\n              triggerName: triggerName\n            });\n          }\n        };\n      });\n      return control;\n    });\n    if (props.fieldContext) {\n      var getInternalHooks = props.fieldContext.getInternalHooks;\n      var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n        initEntityValue = _getInternalHooks2.initEntityValue;\n      initEntityValue(_assertThisInitialized(_this));\n    }\n    return _this;\n  }\n  _createClass(Field, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this$props7 = this.props,\n        shouldUpdate = _this$props7.shouldUpdate,\n        fieldContext = _this$props7.fieldContext;\n      this.mounted = true;\n\n      // Register on init\n      if (fieldContext) {\n        var getInternalHooks = fieldContext.getInternalHooks;\n        var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n          registerField = _getInternalHooks3.registerField;\n        this.cancelRegisterFunc = registerField(this);\n      }\n\n      // One more render for component in case fields not ready\n      if (shouldUpdate === true) {\n        this.reRender();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.cancelRegister();\n      this.triggerMetaEvent(true);\n      this.mounted = false;\n    }\n  }, {\n    key: \"reRender\",\n    value: function reRender() {\n      if (!this.mounted) return;\n      this.forceUpdate();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var resetCount = this.state.resetCount;\n      var children = this.props.children;\n      var _this$getOnlyChild = this.getOnlyChild(children),\n        child = _this$getOnlyChild.child,\n        isFunction = _this$getOnlyChild.isFunction;\n\n      // Not need to `cloneElement` since user can handle this in render function self\n      var returnChildNode;\n      if (isFunction) {\n        returnChildNode = child;\n      } else if ( /*#__PURE__*/React.isValidElement(child)) {\n        returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n      } else {\n        warning(!child, '`children` of Field is not validate ReactElement.');\n        returnChildNode = child;\n      }\n      return /*#__PURE__*/React.createElement(React.Fragment, {\n        key: resetCount\n      }, returnChildNode);\n    }\n  }]);\n  return Field;\n}(React.Component);\n_defineProperty(Field, \"contextType\", FieldContext);\n_defineProperty(Field, \"defaultProps\", {\n  trigger: 'onChange',\n  valuePropName: 'value'\n});\nfunction WrapperField(_ref6) {\n  var _restProps$isListFiel;\n  var name = _ref6.name,\n    restProps = _objectWithoutProperties(_ref6, _excluded);\n  var fieldContext = React.useContext(FieldContext);\n  var listContext = React.useContext(ListContext);\n  var namePath = name !== undefined ? getNamePath(name) : undefined;\n  var isMergedListField = (_restProps$isListFiel = restProps.isListField) !== null && _restProps$isListFiel !== void 0 ? _restProps$isListFiel : !!listContext;\n  var key = 'keep';\n  if (!isMergedListField) {\n    key = \"_\".concat((namePath || []).join('_'));\n  }\n\n  // Warning if it's a directly list field.\n  // We can still support multiple level field preserve.\n  if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && isMergedListField && namePath.length <= 1) {\n    warning(false, '`preserve` should not apply on Form.List fields.');\n  }\n  return /*#__PURE__*/React.createElement(Field, _extends({\n    key: key,\n    name: namePath,\n    isListField: isMergedListField\n  }, restProps, {\n    fieldContext: fieldContext\n  }));\n}\nexport default WrapperField;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from \"./FieldContext\";\nimport Field from \"./Field\";\nimport { move as _move, getNamePath } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nfunction List(_ref) {\n  var name = _ref.name,\n    initialValue = _ref.initialValue,\n    children = _ref.children,\n    rules = _ref.rules,\n    validateTrigger = _ref.validateTrigger,\n    isListField = _ref.isListField;\n  var context = React.useContext(FieldContext);\n  var wrapperListContext = React.useContext(ListContext);\n  var keyRef = React.useRef({\n    keys: [],\n    id: 0\n  });\n  var keyManager = keyRef.current;\n  var prefixName = React.useMemo(function () {\n    var parentPrefixName = getNamePath(context.prefixName) || [];\n    return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n  }, [context.prefixName, name]);\n  var fieldContext = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, context), {}, {\n      prefixName: prefixName\n    });\n  }, [context, prefixName]);\n\n  // List context\n  var listContext = React.useMemo(function () {\n    return {\n      getKey: function getKey(namePath) {\n        var len = prefixName.length;\n        var pathName = namePath[len];\n        return [keyManager.keys[pathName], namePath.slice(len + 1)];\n      }\n    };\n  }, [prefixName]);\n\n  // User should not pass `children` as other type.\n  if (typeof children !== 'function') {\n    warning(false, 'Form.List only accepts function as children.');\n    return null;\n  }\n  var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n    var source = _ref2.source;\n    if (source === 'internal') {\n      return false;\n    }\n    return prevValue !== nextValue;\n  };\n  return /*#__PURE__*/React.createElement(ListContext.Provider, {\n    value: listContext\n  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: fieldContext\n  }, /*#__PURE__*/React.createElement(Field, {\n    name: [],\n    shouldUpdate: shouldUpdate,\n    rules: rules,\n    validateTrigger: validateTrigger,\n    initialValue: initialValue,\n    isList: true,\n    isListField: isListField !== null && isListField !== void 0 ? isListField : !!wrapperListContext\n  }, function (_ref3, meta) {\n    var _ref3$value = _ref3.value,\n      value = _ref3$value === void 0 ? [] : _ref3$value,\n      onChange = _ref3.onChange;\n    var getFieldValue = context.getFieldValue;\n    var getNewValue = function getNewValue() {\n      var values = getFieldValue(prefixName || []);\n      return values || [];\n    };\n    /**\n     * Always get latest value in case user update fields by `form` api.\n     */\n    var operations = {\n      add: function add(defaultValue, index) {\n        // Mapping keys\n        var newValue = getNewValue();\n        if (index >= 0 && index <= newValue.length) {\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n          onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n        } else {\n          if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n            warning(false, 'The second parameter of the add function should be a valid positive number.');\n          }\n          keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n          onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n        }\n        keyManager.id += 1;\n      },\n      remove: function remove(index) {\n        var newValue = getNewValue();\n        var indexSet = new Set(Array.isArray(index) ? index : [index]);\n        if (indexSet.size <= 0) {\n          return;\n        }\n        keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n          return !indexSet.has(keysIndex);\n        });\n\n        // Trigger store change\n        onChange(newValue.filter(function (_, valueIndex) {\n          return !indexSet.has(valueIndex);\n        }));\n      },\n      move: function move(from, to) {\n        if (from === to) {\n          return;\n        }\n        var newValue = getNewValue();\n\n        // Do not handle out of range\n        if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n          return;\n        }\n        keyManager.keys = _move(keyManager.keys, from, to);\n\n        // Trigger store change\n        onChange(_move(newValue, from, to));\n      }\n    };\n    var listValue = value || [];\n    if (!Array.isArray(listValue)) {\n      listValue = [];\n      if (process.env.NODE_ENV !== 'production') {\n        warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n      }\n    }\n    return children(listValue.map(function (__, index) {\n      var key = keyManager.keys[index];\n      if (key === undefined) {\n        keyManager.keys[index] = keyManager.id;\n        key = keyManager.keys[index];\n        keyManager.id += 1;\n      }\n      return {\n        name: index,\n        key: key,\n        isListField: true\n      };\n    }), operations, meta);\n  })));\n}\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n  return namePath.map(function (cell) {\n    return \"\".concat(_typeof(cell), \":\").concat(cell);\n  })\n  // Magic split\n  .join(SPLIT);\n}\n\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n  function NameMap() {\n    _classCallCheck(this, NameMap);\n    _defineProperty(this, \"kvs\", new Map());\n  }\n  _createClass(NameMap, [{\n    key: \"set\",\n    value: function set(key, value) {\n      this.kvs.set(normalize(key), value);\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.kvs.get(normalize(key));\n    }\n  }, {\n    key: \"update\",\n    value: function update(key, updater) {\n      var origin = this.get(key);\n      var next = updater(origin);\n      if (!next) {\n        this.delete(key);\n      } else {\n        this.set(key, next);\n      }\n    }\n  }, {\n    key: \"delete\",\n    value: function _delete(key) {\n      this.kvs.delete(normalize(key));\n    }\n\n    // Since we only use this in test, let simply realize this\n  }, {\n    key: \"map\",\n    value: function map(callback) {\n      return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n          key = _ref2[0],\n          value = _ref2[1];\n        var cells = key.split(SPLIT);\n        return callback({\n          key: cells.map(function (cell) {\n            var _cell$match = cell.match(/^([^:]*):(.*)$/),\n              _cell$match2 = _slicedToArray(_cell$match, 3),\n              type = _cell$match2[1],\n              unit = _cell$match2[2];\n            return type === 'number' ? Number(unit) : unit;\n          }),\n          value: value\n        });\n      });\n    }\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = {};\n      this.map(function (_ref3) {\n        var key = _ref3.key,\n          value = _ref3.value;\n        json[key.join('.')] = value;\n        return null;\n      });\n      return json;\n    }\n  }]);\n  return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"name\"];\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from \"./FieldContext\";\nimport { allPromiseFinish } from \"./utils/asyncUtil\";\nimport { defaultValidateMessages } from \"./utils/messages\";\nimport NameMap from \"./utils/NameMap\";\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue } from \"./utils/valueUtil\";\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n  var _this = this;\n  _classCallCheck(this, FormStore);\n  _defineProperty(this, \"formHooked\", false);\n  _defineProperty(this, \"forceRootUpdate\", void 0);\n  _defineProperty(this, \"subscribable\", true);\n  _defineProperty(this, \"store\", {});\n  _defineProperty(this, \"fieldEntities\", []);\n  _defineProperty(this, \"initialValues\", {});\n  _defineProperty(this, \"callbacks\", {});\n  _defineProperty(this, \"validateMessages\", null);\n  _defineProperty(this, \"preserve\", null);\n  _defineProperty(this, \"lastValidatePromise\", null);\n  _defineProperty(this, \"getForm\", function () {\n    return {\n      getFieldValue: _this.getFieldValue,\n      getFieldsValue: _this.getFieldsValue,\n      getFieldError: _this.getFieldError,\n      getFieldWarning: _this.getFieldWarning,\n      getFieldsError: _this.getFieldsError,\n      isFieldsTouched: _this.isFieldsTouched,\n      isFieldTouched: _this.isFieldTouched,\n      isFieldValidating: _this.isFieldValidating,\n      isFieldsValidating: _this.isFieldsValidating,\n      resetFields: _this.resetFields,\n      setFields: _this.setFields,\n      setFieldValue: _this.setFieldValue,\n      setFieldsValue: _this.setFieldsValue,\n      validateFields: _this.validateFields,\n      submit: _this.submit,\n      _init: true,\n      getInternalHooks: _this.getInternalHooks\n    };\n  });\n  // ======================== Internal Hooks ========================\n  _defineProperty(this, \"getInternalHooks\", function (key) {\n    if (key === HOOK_MARK) {\n      _this.formHooked = true;\n      return {\n        dispatch: _this.dispatch,\n        initEntityValue: _this.initEntityValue,\n        registerField: _this.registerField,\n        useSubscribe: _this.useSubscribe,\n        setInitialValues: _this.setInitialValues,\n        destroyForm: _this.destroyForm,\n        setCallbacks: _this.setCallbacks,\n        setValidateMessages: _this.setValidateMessages,\n        getFields: _this.getFields,\n        setPreserve: _this.setPreserve,\n        getInitialValue: _this.getInitialValue,\n        registerWatch: _this.registerWatch\n      };\n    }\n    warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n    return null;\n  });\n  _defineProperty(this, \"useSubscribe\", function (subscribable) {\n    _this.subscribable = subscribable;\n  });\n  /**\n   * Record prev Form unmount fieldEntities which config preserve false.\n   * This need to be refill with initialValues instead of store value.\n   */\n  _defineProperty(this, \"prevWithoutPreserves\", null);\n  /**\n   * First time `setInitialValues` should update store with initial value\n   */\n  _defineProperty(this, \"setInitialValues\", function (initialValues, init) {\n    _this.initialValues = initialValues || {};\n    if (init) {\n      var _this$prevWithoutPres;\n      var nextStore = merge(initialValues, _this.store);\n\n      // We will take consider prev form unmount fields.\n      // When the field is not `preserve`, we need fill this with initialValues instead of store.\n      // eslint-disable-next-line array-callback-return\n      (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 || _this$prevWithoutPres.map(function (_ref) {\n        var namePath = _ref.key;\n        nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n      });\n      _this.prevWithoutPreserves = null;\n      _this.updateStore(nextStore);\n    }\n  });\n  _defineProperty(this, \"destroyForm\", function (clearOnDestroy) {\n    if (clearOnDestroy) {\n      // destroy form reset store\n      _this.updateStore({});\n    } else {\n      // Fill preserve fields\n      var prevWithoutPreserves = new NameMap();\n      _this.getFieldEntities(true).forEach(function (entity) {\n        if (!_this.isMergedPreserve(entity.isPreserve())) {\n          prevWithoutPreserves.set(entity.getNamePath(), true);\n        }\n      });\n      _this.prevWithoutPreserves = prevWithoutPreserves;\n    }\n  });\n  _defineProperty(this, \"getInitialValue\", function (namePath) {\n    var initValue = getValue(_this.initialValues, namePath);\n\n    // Not cloneDeep when without `namePath`\n    return namePath.length ? merge(initValue) : initValue;\n  });\n  _defineProperty(this, \"setCallbacks\", function (callbacks) {\n    _this.callbacks = callbacks;\n  });\n  _defineProperty(this, \"setValidateMessages\", function (validateMessages) {\n    _this.validateMessages = validateMessages;\n  });\n  _defineProperty(this, \"setPreserve\", function (preserve) {\n    _this.preserve = preserve;\n  });\n  // ============================= Watch ============================\n  _defineProperty(this, \"watchList\", []);\n  _defineProperty(this, \"registerWatch\", function (callback) {\n    _this.watchList.push(callback);\n    return function () {\n      _this.watchList = _this.watchList.filter(function (fn) {\n        return fn !== callback;\n      });\n    };\n  });\n  _defineProperty(this, \"notifyWatch\", function () {\n    var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    // No need to cost perf when nothing need to watch\n    if (_this.watchList.length) {\n      var values = _this.getFieldsValue();\n      var allValues = _this.getFieldsValue(true);\n      _this.watchList.forEach(function (callback) {\n        callback(values, allValues, namePath);\n      });\n    }\n  });\n  // ========================== Dev Warning =========================\n  _defineProperty(this, \"timeoutId\", null);\n  _defineProperty(this, \"warningUnhooked\", function () {\n    if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n      _this.timeoutId = setTimeout(function () {\n        _this.timeoutId = null;\n        if (!_this.formHooked) {\n          warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n        }\n      });\n    }\n  });\n  // ============================ Store =============================\n  _defineProperty(this, \"updateStore\", function (nextStore) {\n    _this.store = nextStore;\n  });\n  // ============================ Fields ============================\n  /**\n   * Get registered field entities.\n   * @param pure Only return field which has a `name`. Default: false\n   */\n  _defineProperty(this, \"getFieldEntities\", function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (!pure) {\n      return _this.fieldEntities;\n    }\n    return _this.fieldEntities.filter(function (field) {\n      return field.getNamePath().length;\n    });\n  });\n  _defineProperty(this, \"getFieldsMap\", function () {\n    var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    var cache = new NameMap();\n    _this.getFieldEntities(pure).forEach(function (field) {\n      var namePath = field.getNamePath();\n      cache.set(namePath, field);\n    });\n    return cache;\n  });\n  _defineProperty(this, \"getFieldEntitiesForNamePathList\", function (nameList) {\n    if (!nameList) {\n      return _this.getFieldEntities(true);\n    }\n    var cache = _this.getFieldsMap(true);\n    return nameList.map(function (name) {\n      var namePath = getNamePath(name);\n      return cache.get(namePath) || {\n        INVALIDATE_NAME_PATH: getNamePath(name)\n      };\n    });\n  });\n  _defineProperty(this, \"getFieldsValue\", function (nameList, filterFunc) {\n    _this.warningUnhooked();\n\n    // Fill args\n    var mergedNameList;\n    var mergedFilterFunc;\n    var mergedStrict;\n    if (nameList === true || Array.isArray(nameList)) {\n      mergedNameList = nameList;\n      mergedFilterFunc = filterFunc;\n    } else if (nameList && _typeof(nameList) === 'object') {\n      mergedStrict = nameList.strict;\n      mergedFilterFunc = nameList.filter;\n    }\n    if (mergedNameList === true && !mergedFilterFunc) {\n      return _this.store;\n    }\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(mergedNameList) ? mergedNameList : null);\n    var filteredNameList = [];\n    fieldEntities.forEach(function (entity) {\n      var _isListField, _ref3;\n      var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n\n      // Ignore when it's a list item and not specific the namePath,\n      // since parent field is already take in count\n      if (mergedStrict) {\n        var _isList, _ref2;\n        if ((_isList = (_ref2 = entity).isList) !== null && _isList !== void 0 && _isList.call(_ref2)) {\n          return;\n        }\n      } else if (!mergedNameList && (_isListField = (_ref3 = entity).isListField) !== null && _isListField !== void 0 && _isListField.call(_ref3)) {\n        return;\n      }\n      if (!mergedFilterFunc) {\n        filteredNameList.push(namePath);\n      } else {\n        var meta = 'getMeta' in entity ? entity.getMeta() : null;\n        if (mergedFilterFunc(meta)) {\n          filteredNameList.push(namePath);\n        }\n      }\n    });\n    return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n  });\n  _defineProperty(this, \"getFieldValue\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    return getValue(_this.store, namePath);\n  });\n  _defineProperty(this, \"getFieldsError\", function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n    return fieldEntities.map(function (entity, index) {\n      if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n        return {\n          name: entity.getNamePath(),\n          errors: entity.getErrors(),\n          warnings: entity.getWarnings()\n        };\n      }\n      return {\n        name: getNamePath(nameList[index]),\n        errors: [],\n        warnings: []\n      };\n    });\n  });\n  _defineProperty(this, \"getFieldError\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.errors;\n  });\n  _defineProperty(this, \"getFieldWarning\", function (name) {\n    _this.warningUnhooked();\n    var namePath = getNamePath(name);\n    var fieldError = _this.getFieldsError([namePath])[0];\n    return fieldError.warnings;\n  });\n  _defineProperty(this, \"isFieldsTouched\", function () {\n    _this.warningUnhooked();\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    var arg0 = args[0],\n      arg1 = args[1];\n    var namePathList;\n    var isAllFieldsTouched = false;\n    if (args.length === 0) {\n      namePathList = null;\n    } else if (args.length === 1) {\n      if (Array.isArray(arg0)) {\n        namePathList = arg0.map(getNamePath);\n        isAllFieldsTouched = false;\n      } else {\n        namePathList = null;\n        isAllFieldsTouched = arg0;\n      }\n    } else {\n      namePathList = arg0.map(getNamePath);\n      isAllFieldsTouched = arg1;\n    }\n    var fieldEntities = _this.getFieldEntities(true);\n    var isFieldTouched = function isFieldTouched(field) {\n      return field.isFieldTouched();\n    };\n\n    // ===== Will get fully compare when not config namePathList =====\n    if (!namePathList) {\n      return isAllFieldsTouched ? fieldEntities.every(function (entity) {\n        return isFieldTouched(entity) || entity.isList();\n      }) : fieldEntities.some(isFieldTouched);\n    }\n\n    // Generate a nest tree for validate\n    var map = new NameMap();\n    namePathList.forEach(function (shortNamePath) {\n      map.set(shortNamePath, []);\n    });\n    fieldEntities.forEach(function (field) {\n      var fieldNamePath = field.getNamePath();\n\n      // Find matched entity and put into list\n      namePathList.forEach(function (shortNamePath) {\n        if (shortNamePath.every(function (nameUnit, i) {\n          return fieldNamePath[i] === nameUnit;\n        })) {\n          map.update(shortNamePath, function (list) {\n            return [].concat(_toConsumableArray(list), [field]);\n          });\n        }\n      });\n    });\n\n    // Check if NameMap value is touched\n    var isNamePathListTouched = function isNamePathListTouched(entities) {\n      return entities.some(isFieldTouched);\n    };\n    var namePathListEntities = map.map(function (_ref4) {\n      var value = _ref4.value;\n      return value;\n    });\n    return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n  });\n  _defineProperty(this, \"isFieldTouched\", function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsTouched([name]);\n  });\n  _defineProperty(this, \"isFieldsValidating\", function (nameList) {\n    _this.warningUnhooked();\n    var fieldEntities = _this.getFieldEntities();\n    if (!nameList) {\n      return fieldEntities.some(function (testField) {\n        return testField.isFieldValidating();\n      });\n    }\n    var namePathList = nameList.map(getNamePath);\n    return fieldEntities.some(function (testField) {\n      var fieldNamePath = testField.getNamePath();\n      return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n    });\n  });\n  _defineProperty(this, \"isFieldValidating\", function (name) {\n    _this.warningUnhooked();\n    return _this.isFieldsValidating([name]);\n  });\n  /**\n   * Reset Field with field `initialValue` prop.\n   * Can pass `entities` or `namePathList` or just nothing.\n   */\n  _defineProperty(this, \"resetWithFieldInitialValue\", function () {\n    var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    // Create cache\n    var cache = new NameMap();\n    var fieldEntities = _this.getFieldEntities(true);\n    fieldEntities.forEach(function (field) {\n      var initialValue = field.props.initialValue;\n      var namePath = field.getNamePath();\n\n      // Record only if has `initialValue`\n      if (initialValue !== undefined) {\n        var records = cache.get(namePath) || new Set();\n        records.add({\n          entity: field,\n          value: initialValue\n        });\n        cache.set(namePath, records);\n      }\n    });\n\n    // Reset\n    var resetWithFields = function resetWithFields(entities) {\n      entities.forEach(function (field) {\n        var initialValue = field.props.initialValue;\n        if (initialValue !== undefined) {\n          var namePath = field.getNamePath();\n          var formInitialValue = _this.getInitialValue(namePath);\n          if (formInitialValue !== undefined) {\n            // Warning if conflict with form initialValues and do not modify value\n            warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n          } else {\n            var records = cache.get(namePath);\n            if (records && records.size > 1) {\n              // Warning if multiple field set `initialValue`and do not modify value\n              warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n            } else if (records) {\n              var originValue = _this.getFieldValue(namePath);\n              var isListField = field.isListField();\n\n              // Set `initialValue`\n              if (!isListField && (!info.skipExist || originValue === undefined)) {\n                _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n              }\n            }\n          }\n        }\n      });\n    };\n    var requiredFieldEntities;\n    if (info.entities) {\n      requiredFieldEntities = info.entities;\n    } else if (info.namePathList) {\n      requiredFieldEntities = [];\n      info.namePathList.forEach(function (namePath) {\n        var records = cache.get(namePath);\n        if (records) {\n          var _requiredFieldEntitie;\n          (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n            return r.entity;\n          })));\n        }\n      });\n    } else {\n      requiredFieldEntities = fieldEntities;\n    }\n    resetWithFields(requiredFieldEntities);\n  });\n  _defineProperty(this, \"resetFields\", function (nameList) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (!nameList) {\n      _this.updateStore(merge(_this.initialValues));\n      _this.resetWithFieldInitialValue();\n      _this.notifyObservers(prevStore, null, {\n        type: 'reset'\n      });\n      _this.notifyWatch();\n      return;\n    }\n\n    // Reset by `nameList`\n    var namePathList = nameList.map(getNamePath);\n    namePathList.forEach(function (namePath) {\n      var initialValue = _this.getInitialValue(namePath);\n      _this.updateStore(setValue(_this.store, namePath, initialValue));\n    });\n    _this.resetWithFieldInitialValue({\n      namePathList: namePathList\n    });\n    _this.notifyObservers(prevStore, namePathList, {\n      type: 'reset'\n    });\n    _this.notifyWatch(namePathList);\n  });\n  _defineProperty(this, \"setFields\", function (fields) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    var namePathList = [];\n    fields.forEach(function (fieldData) {\n      var name = fieldData.name,\n        data = _objectWithoutProperties(fieldData, _excluded);\n      var namePath = getNamePath(name);\n      namePathList.push(namePath);\n\n      // Value\n      if ('value' in data) {\n        _this.updateStore(setValue(_this.store, namePath, data.value));\n      }\n      _this.notifyObservers(prevStore, [namePath], {\n        type: 'setField',\n        data: fieldData\n      });\n    });\n    _this.notifyWatch(namePathList);\n  });\n  _defineProperty(this, \"getFields\", function () {\n    var entities = _this.getFieldEntities(true);\n    var fields = entities.map(function (field) {\n      var namePath = field.getNamePath();\n      var meta = field.getMeta();\n      var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n        name: namePath,\n        value: _this.getFieldValue(namePath)\n      });\n      Object.defineProperty(fieldData, 'originRCField', {\n        value: true\n      });\n      return fieldData;\n    });\n    return fields;\n  });\n  // =========================== Observer ===========================\n  /**\n   * This only trigger when a field is on constructor to avoid we get initialValue too late\n   */\n  _defineProperty(this, \"initEntityValue\", function (entity) {\n    var initialValue = entity.props.initialValue;\n    if (initialValue !== undefined) {\n      var namePath = entity.getNamePath();\n      var prevValue = getValue(_this.store, namePath);\n      if (prevValue === undefined) {\n        _this.updateStore(setValue(_this.store, namePath, initialValue));\n      }\n    }\n  });\n  _defineProperty(this, \"isMergedPreserve\", function (fieldPreserve) {\n    var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n    return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n  });\n  _defineProperty(this, \"registerField\", function (entity) {\n    _this.fieldEntities.push(entity);\n    var namePath = entity.getNamePath();\n    _this.notifyWatch([namePath]);\n\n    // Set initial values\n    if (entity.props.initialValue !== undefined) {\n      var prevStore = _this.store;\n      _this.resetWithFieldInitialValue({\n        entities: [entity],\n        skipExist: true\n      });\n      _this.notifyObservers(prevStore, [entity.getNamePath()], {\n        type: 'valueUpdate',\n        source: 'internal'\n      });\n    }\n\n    // un-register field callback\n    return function (isListField, preserve) {\n      var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n      _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n        return item !== entity;\n      });\n\n      // Clean up store value if not preserve\n      if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n        var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n        if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n          return (\n            // Only reset when no namePath exist\n            !matchNamePath(field.getNamePath(), namePath)\n          );\n        })) {\n          var _prevStore = _this.store;\n          _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n\n          // Notify that field is unmount\n          _this.notifyObservers(_prevStore, [namePath], {\n            type: 'remove'\n          });\n\n          // Dependencies update\n          _this.triggerDependenciesUpdate(_prevStore, namePath);\n        }\n      }\n      _this.notifyWatch([namePath]);\n    };\n  });\n  _defineProperty(this, \"dispatch\", function (action) {\n    switch (action.type) {\n      case 'updateValue':\n        {\n          var namePath = action.namePath,\n            value = action.value;\n          _this.updateValue(namePath, value);\n          break;\n        }\n      case 'validateField':\n        {\n          var _namePath = action.namePath,\n            triggerName = action.triggerName;\n          _this.validateFields([_namePath], {\n            triggerName: triggerName\n          });\n          break;\n        }\n      default:\n      // Currently we don't have other action. Do nothing.\n    }\n  });\n  _defineProperty(this, \"notifyObservers\", function (prevStore, namePathList, info) {\n    if (_this.subscribable) {\n      var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n        store: _this.getFieldsValue(true)\n      });\n      _this.getFieldEntities().forEach(function (_ref5) {\n        var onStoreChange = _ref5.onStoreChange;\n        onStoreChange(prevStore, namePathList, mergedInfo);\n      });\n    } else {\n      _this.forceRootUpdate();\n    }\n  });\n  /**\n   * Notify dependencies children with parent update\n   * We need delay to trigger validate in case Field is under render props\n   */\n  _defineProperty(this, \"triggerDependenciesUpdate\", function (prevStore, namePath) {\n    var childrenFields = _this.getDependencyChildrenFields(namePath);\n    if (childrenFields.length) {\n      _this.validateFields(childrenFields);\n    }\n    _this.notifyObservers(prevStore, childrenFields, {\n      type: 'dependenciesUpdate',\n      relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n    });\n    return childrenFields;\n  });\n  _defineProperty(this, \"updateValue\", function (name, value) {\n    var namePath = getNamePath(name);\n    var prevStore = _this.store;\n    _this.updateStore(setValue(_this.store, namePath, value));\n    _this.notifyObservers(prevStore, [namePath], {\n      type: 'valueUpdate',\n      source: 'internal'\n    });\n    _this.notifyWatch([namePath]);\n\n    // Dependencies update\n    var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n\n    // trigger callback function\n    var onValuesChange = _this.callbacks.onValuesChange;\n    if (onValuesChange) {\n      var changedValues = cloneByNamePathList(_this.store, [namePath]);\n      onValuesChange(changedValues, _this.getFieldsValue());\n    }\n    _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n  });\n  // Let all child Field get update.\n  _defineProperty(this, \"setFieldsValue\", function (store) {\n    _this.warningUnhooked();\n    var prevStore = _this.store;\n    if (store) {\n      var nextStore = merge(_this.store, store);\n      _this.updateStore(nextStore);\n    }\n    _this.notifyObservers(prevStore, null, {\n      type: 'valueUpdate',\n      source: 'external'\n    });\n    _this.notifyWatch();\n  });\n  _defineProperty(this, \"setFieldValue\", function (name, value) {\n    _this.setFields([{\n      name: name,\n      value: value,\n      errors: [],\n      warnings: []\n    }]);\n  });\n  _defineProperty(this, \"getDependencyChildrenFields\", function (rootNamePath) {\n    var children = new Set();\n    var childrenFields = [];\n    var dependencies2fields = new NameMap();\n\n    /**\n     * Generate maps\n     * Can use cache to save perf if user report performance issue with this\n     */\n    _this.getFieldEntities().forEach(function (field) {\n      var dependencies = field.props.dependencies;\n      (dependencies || []).forEach(function (dependency) {\n        var dependencyNamePath = getNamePath(dependency);\n        dependencies2fields.update(dependencyNamePath, function () {\n          var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n          fields.add(field);\n          return fields;\n        });\n      });\n    });\n    var fillChildren = function fillChildren(namePath) {\n      var fields = dependencies2fields.get(namePath) || new Set();\n      fields.forEach(function (field) {\n        if (!children.has(field)) {\n          children.add(field);\n          var fieldNamePath = field.getNamePath();\n          if (field.isFieldDirty() && fieldNamePath.length) {\n            childrenFields.push(fieldNamePath);\n            fillChildren(fieldNamePath);\n          }\n        }\n      });\n    };\n    fillChildren(rootNamePath);\n    return childrenFields;\n  });\n  _defineProperty(this, \"triggerOnFieldsChange\", function (namePathList, filedErrors) {\n    var onFieldsChange = _this.callbacks.onFieldsChange;\n    if (onFieldsChange) {\n      var fields = _this.getFields();\n\n      /**\n       * Fill errors since `fields` may be replaced by controlled fields\n       */\n      if (filedErrors) {\n        var cache = new NameMap();\n        filedErrors.forEach(function (_ref6) {\n          var name = _ref6.name,\n            errors = _ref6.errors;\n          cache.set(name, errors);\n        });\n        fields.forEach(function (field) {\n          // eslint-disable-next-line no-param-reassign\n          field.errors = cache.get(field.name) || field.errors;\n        });\n      }\n      var changedFields = fields.filter(function (_ref7) {\n        var fieldName = _ref7.name;\n        return containsNamePath(namePathList, fieldName);\n      });\n      if (changedFields.length) {\n        onFieldsChange(changedFields, fields);\n      }\n    }\n  });\n  // =========================== Validate ===========================\n  _defineProperty(this, \"validateFields\", function (arg1, arg2) {\n    _this.warningUnhooked();\n    var nameList;\n    var options;\n    if (Array.isArray(arg1) || typeof arg1 === 'string' || typeof arg2 === 'string') {\n      nameList = arg1;\n      options = arg2;\n    } else {\n      options = arg1;\n    }\n    var provideNameList = !!nameList;\n    var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n\n    // Collect result in promise list\n    var promiseList = [];\n\n    // We temp save the path which need trigger for `onFieldsChange`\n    var TMP_SPLIT = String(Date.now());\n    var validateNamePathList = new Set();\n    var _ref8 = options || {},\n      recursive = _ref8.recursive,\n      dirty = _ref8.dirty;\n    _this.getFieldEntities(true).forEach(function (field) {\n      // Add field if not provide `nameList`\n      if (!provideNameList) {\n        namePathList.push(field.getNamePath());\n      }\n\n      // Skip if without rule\n      if (!field.props.rules || !field.props.rules.length) {\n        return;\n      }\n\n      // Skip if only validate dirty field\n      if (dirty && !field.isFieldDirty()) {\n        return;\n      }\n      var fieldNamePath = field.getNamePath();\n      validateNamePathList.add(fieldNamePath.join(TMP_SPLIT));\n\n      // Add field validate rule in to promise list\n      if (!provideNameList || containsNamePath(namePathList, fieldNamePath, recursive)) {\n        var promise = field.validateRules(_objectSpread({\n          validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n        }, options));\n\n        // Wrap promise with field\n        promiseList.push(promise.then(function () {\n          return {\n            name: fieldNamePath,\n            errors: [],\n            warnings: []\n          };\n        }).catch(function (ruleErrors) {\n          var _ruleErrors$forEach;\n          var mergedErrors = [];\n          var mergedWarnings = [];\n          (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 || _ruleErrors$forEach.call(ruleErrors, function (_ref9) {\n            var warningOnly = _ref9.rule.warningOnly,\n              errors = _ref9.errors;\n            if (warningOnly) {\n              mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n            } else {\n              mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n            }\n          });\n          if (mergedErrors.length) {\n            return Promise.reject({\n              name: fieldNamePath,\n              errors: mergedErrors,\n              warnings: mergedWarnings\n            });\n          }\n          return {\n            name: fieldNamePath,\n            errors: mergedErrors,\n            warnings: mergedWarnings\n          };\n        }));\n      }\n    });\n    var summaryPromise = allPromiseFinish(promiseList);\n    _this.lastValidatePromise = summaryPromise;\n\n    // Notify fields with rule that validate has finished and need update\n    summaryPromise.catch(function (results) {\n      return results;\n    }).then(function (results) {\n      var resultNamePathList = results.map(function (_ref10) {\n        var name = _ref10.name;\n        return name;\n      });\n      _this.notifyObservers(_this.store, resultNamePathList, {\n        type: 'validateFinish'\n      });\n      _this.triggerOnFieldsChange(resultNamePathList, results);\n    });\n    var returnPromise = summaryPromise.then(function () {\n      if (_this.lastValidatePromise === summaryPromise) {\n        return Promise.resolve(_this.getFieldsValue(namePathList));\n      }\n      return Promise.reject([]);\n    }).catch(function (results) {\n      var errorList = results.filter(function (result) {\n        return result && result.errors.length;\n      });\n      return Promise.reject({\n        values: _this.getFieldsValue(namePathList),\n        errorFields: errorList,\n        outOfDate: _this.lastValidatePromise !== summaryPromise\n      });\n    });\n\n    // Do not throw in console\n    returnPromise.catch(function (e) {\n      return e;\n    });\n\n    // `validating` changed. Trigger `onFieldsChange`\n    var triggerNamePathList = namePathList.filter(function (namePath) {\n      return validateNamePathList.has(namePath.join(TMP_SPLIT));\n    });\n    _this.triggerOnFieldsChange(triggerNamePathList);\n    return returnPromise;\n  });\n  // ============================ Submit ============================\n  _defineProperty(this, \"submit\", function () {\n    _this.warningUnhooked();\n    _this.validateFields().then(function (values) {\n      var onFinish = _this.callbacks.onFinish;\n      if (onFinish) {\n        try {\n          onFinish(values);\n        } catch (err) {\n          // Should print error if user `onFinish` callback failed\n          console.error(err);\n        }\n      }\n    }).catch(function (e) {\n      var onFinishFailed = _this.callbacks.onFinishFailed;\n      if (onFinishFailed) {\n        onFinishFailed(e);\n      }\n    });\n  });\n  this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n  var formRef = React.useRef();\n  var _React$useState = React.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    forceUpdate = _React$useState2[1];\n  if (!formRef.current) {\n    if (form) {\n      formRef.current = form;\n    } else {\n      // Create a new FormStore if not provided\n      var forceReRender = function forceReRender() {\n        forceUpdate({});\n      };\n      var formStore = new FormStore(forceReRender);\n      formRef.current = formStore.getForm();\n    }\n  }\n  return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n  var hasError = false;\n  var count = promiseList.length;\n  var results = [];\n  if (!promiseList.length) {\n    return Promise.resolve([]);\n  }\n  return new Promise(function (resolve, reject) {\n    promiseList.forEach(function (promise, index) {\n      promise.catch(function (e) {\n        hasError = true;\n        return e;\n      }).then(function (result) {\n        count -= 1;\n        results[index] = result;\n        if (count > 0) {\n          return;\n        }\n        if (hasError) {\n          reject(results);\n        }\n        resolve(results);\n      });\n    });\n  });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n  triggerFormChange: function triggerFormChange() {},\n  triggerFormFinish: function triggerFormFinish() {},\n  registerForm: function registerForm() {},\n  unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n  var validateMessages = _ref.validateMessages,\n    onFormChange = _ref.onFormChange,\n    onFormFinish = _ref.onFormFinish,\n    children = _ref.children;\n  var formContext = React.useContext(FormContext);\n  var formsRef = React.useRef({});\n  return /*#__PURE__*/React.createElement(FormContext.Provider, {\n    value: _objectSpread(_objectSpread({}, formContext), {}, {\n      validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n      // =========================================================\n      // =                  Global Form Control                  =\n      // =========================================================\n      triggerFormChange: function triggerFormChange(name, changedFields) {\n        if (onFormChange) {\n          onFormChange(name, {\n            changedFields: changedFields,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormChange(name, changedFields);\n      },\n      triggerFormFinish: function triggerFormFinish(name, values) {\n        if (onFormFinish) {\n          onFormFinish(name, {\n            values: values,\n            forms: formsRef.current\n          });\n        }\n        formContext.triggerFormFinish(name, values);\n      },\n      registerForm: function registerForm(name, form) {\n        if (name) {\n          formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n        }\n        formContext.registerForm(name, form);\n      },\n      unregisterForm: function unregisterForm(name) {\n        var newForms = _objectSpread({}, formsRef.current);\n        delete newForms[name];\n        formsRef.current = newForms;\n        formContext.unregisterForm(name);\n      }\n    })\n  }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\", \"clearOnDestroy\"];\nimport * as React from 'react';\nimport useForm from \"./useForm\";\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport FormContext from \"./FormContext\";\nimport { isSimilar } from \"./utils/valueUtil\";\nimport ListContext from \"./ListContext\";\nvar Form = function Form(_ref, ref) {\n  var name = _ref.name,\n    initialValues = _ref.initialValues,\n    fields = _ref.fields,\n    form = _ref.form,\n    preserve = _ref.preserve,\n    children = _ref.children,\n    _ref$component = _ref.component,\n    Component = _ref$component === void 0 ? 'form' : _ref$component,\n    validateMessages = _ref.validateMessages,\n    _ref$validateTrigger = _ref.validateTrigger,\n    validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n    onValuesChange = _ref.onValuesChange,\n    _onFieldsChange = _ref.onFieldsChange,\n    _onFinish = _ref.onFinish,\n    onFinishFailed = _ref.onFinishFailed,\n    clearOnDestroy = _ref.clearOnDestroy,\n    restProps = _objectWithoutProperties(_ref, _excluded);\n  var nativeElementRef = React.useRef(null);\n  var formContext = React.useContext(FormContext);\n\n  // We customize handle event since Context will makes all the consumer re-render:\n  // https://reactjs.org/docs/context.html#contextprovider\n  var _useForm = useForm(form),\n    _useForm2 = _slicedToArray(_useForm, 1),\n    formInstance = _useForm2[0];\n  var _getInternalHooks = formInstance.getInternalHooks(HOOK_MARK),\n    useSubscribe = _getInternalHooks.useSubscribe,\n    setInitialValues = _getInternalHooks.setInitialValues,\n    setCallbacks = _getInternalHooks.setCallbacks,\n    setValidateMessages = _getInternalHooks.setValidateMessages,\n    setPreserve = _getInternalHooks.setPreserve,\n    destroyForm = _getInternalHooks.destroyForm;\n\n  // Pass ref with form instance\n  React.useImperativeHandle(ref, function () {\n    return _objectSpread(_objectSpread({}, formInstance), {}, {\n      nativeElement: nativeElementRef.current\n    });\n  });\n\n  // Register form into Context\n  React.useEffect(function () {\n    formContext.registerForm(name, formInstance);\n    return function () {\n      formContext.unregisterForm(name);\n    };\n  }, [formContext, formInstance, name]);\n\n  // Pass props to store\n  setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n  setCallbacks({\n    onValuesChange: onValuesChange,\n    onFieldsChange: function onFieldsChange(changedFields) {\n      formContext.triggerFormChange(name, changedFields);\n      if (_onFieldsChange) {\n        for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          rest[_key - 1] = arguments[_key];\n        }\n        _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n      }\n    },\n    onFinish: function onFinish(values) {\n      formContext.triggerFormFinish(name, values);\n      if (_onFinish) {\n        _onFinish(values);\n      }\n    },\n    onFinishFailed: onFinishFailed\n  });\n  setPreserve(preserve);\n\n  // Set initial value, init store value when first mount\n  var mountRef = React.useRef(null);\n  setInitialValues(initialValues, !mountRef.current);\n  if (!mountRef.current) {\n    mountRef.current = true;\n  }\n  React.useEffect(function () {\n    return function () {\n      return destroyForm(clearOnDestroy);\n    };\n  },\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  []);\n\n  // Prepare children by `children` type\n  var childrenNode;\n  var childrenRenderProps = typeof children === 'function';\n  if (childrenRenderProps) {\n    var _values = formInstance.getFieldsValue(true);\n    childrenNode = children(_values, formInstance);\n  } else {\n    childrenNode = children;\n  }\n\n  // Not use subscribe when using render props\n  useSubscribe(!childrenRenderProps);\n\n  // Listen if fields provided. We use ref to save prev data here to avoid additional render\n  var prevFieldsRef = React.useRef();\n  React.useEffect(function () {\n    if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n      formInstance.setFields(fields || []);\n    }\n    prevFieldsRef.current = fields;\n  }, [fields, formInstance]);\n  var formContextValue = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, formInstance), {}, {\n      validateTrigger: validateTrigger\n    });\n  }, [formInstance, validateTrigger]);\n  var wrapperNode = /*#__PURE__*/React.createElement(ListContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n    value: formContextValue\n  }, childrenNode));\n  if (Component === false) {\n    return wrapperNode;\n  }\n  return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n    ref: nativeElementRef,\n    onSubmit: function onSubmit(event) {\n      event.preventDefault();\n      event.stopPropagation();\n      formInstance.submit();\n    },\n    onReset: function onReset(event) {\n      var _restProps$onReset;\n      event.preventDefault();\n      formInstance.resetFields();\n      (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 || _restProps$onReset.call(restProps, event);\n    }\n  }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport warning from \"rc-util/es/warning\";\nimport { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport FieldContext, { HOOK_MARK } from \"./FieldContext\";\nimport { isFormInstance } from \"./utils/typeUtil\";\nimport { getNamePath, getValue } from \"./utils/valueUtil\";\nexport function stringify(value) {\n  try {\n    return JSON.stringify(value);\n  } catch (err) {\n    return Math.random();\n  }\n}\nvar useWatchWarning = process.env.NODE_ENV !== 'production' ? function (namePath) {\n  var fullyStr = namePath.join('__RC_FIELD_FORM_SPLIT__');\n  var nameStrRef = useRef(fullyStr);\n  warning(nameStrRef.current === fullyStr, '`useWatch` is not support dynamic `namePath`. Please provide static instead.');\n} : function () {};\n\n// ------- selector type -------\n\n// ------- selector type end -------\n\nfunction useWatch() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  var dependencies = args[0],\n    _args$ = args[1],\n    _form = _args$ === void 0 ? {} : _args$;\n  var options = isFormInstance(_form) ? {\n    form: _form\n  } : _form;\n  var form = options.form;\n  var _useState = useState(),\n    _useState2 = _slicedToArray(_useState, 2),\n    value = _useState2[0],\n    setValue = _useState2[1];\n  var valueStr = useMemo(function () {\n    return stringify(value);\n  }, [value]);\n  var valueStrRef = useRef(valueStr);\n  valueStrRef.current = valueStr;\n  var fieldContext = useContext(FieldContext);\n  var formInstance = form || fieldContext;\n  var isValidForm = formInstance && formInstance._init;\n\n  // Warning if not exist form instance\n  if (process.env.NODE_ENV !== 'production') {\n    warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n  }\n  var namePath = getNamePath(dependencies);\n  var namePathRef = useRef(namePath);\n  namePathRef.current = namePath;\n  useWatchWarning(namePath);\n  useEffect(function () {\n    // Skip if not exist form instance\n    if (!isValidForm) {\n      return;\n    }\n    var getFieldsValue = formInstance.getFieldsValue,\n      getInternalHooks = formInstance.getInternalHooks;\n    var _getInternalHooks = getInternalHooks(HOOK_MARK),\n      registerWatch = _getInternalHooks.registerWatch;\n    var getWatchValue = function getWatchValue(values, allValues) {\n      var watchValue = options.preserve ? allValues : values;\n      return typeof dependencies === 'function' ? dependencies(watchValue) : getValue(watchValue, namePathRef.current);\n    };\n    var cancelRegister = registerWatch(function (values, allValues) {\n      var newValue = getWatchValue(values, allValues);\n      var nextValueStr = stringify(newValue);\n\n      // Compare stringify in case it's nest object\n      if (valueStrRef.current !== nextValueStr) {\n        valueStrRef.current = nextValueStr;\n        setValue(newValue);\n      }\n    });\n\n    // TODO: We can improve this perf in future\n    var initialValue = getWatchValue(getFieldsValue(), getFieldsValue(true));\n\n    // React 18 has the bug that will queue update twice even the value is not changed\n    // ref: https://github.com/facebook/react/issues/27213\n    if (value !== initialValue) {\n      setValue(initialValue);\n    }\n    return cancelRegister;\n  },\n  // We do not need re-register since namePath content is the same\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  [isValidForm]);\n  return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from \"./Field\";\nimport List from \"./List\";\nimport useForm from \"./useForm\";\nimport FieldForm from \"./Form\";\nimport { FormProvider } from \"./FormContext\";\nimport FieldContext from \"./FieldContext\";\nimport ListContext from \"./ListContext\";\nimport useWatch from \"./useWatch\";\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","\"use client\";\n\nimport * as React from 'react';\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport omit from \"rc-util/es/omit\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n  labelAlign: 'right',\n  vertical: false,\n  itemRef: () => {}\n});\nexport const NoStyleItemContext = /*#__PURE__*/React.createContext(null);\nexport const FormProvider = props => {\n  const providerProps = omit(props, ['prefixCls']);\n  return /*#__PURE__*/React.createElement(RcFormProvider, Object.assign({}, providerProps));\n};\nexport const FormItemPrefixContext = /*#__PURE__*/React.createContext({\n  prefixCls: ''\n});\nexport const FormItemInputContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n  FormItemInputContext.displayName = 'FormItemInputContext';\n}\nexport const NoFormStyle = _ref => {\n  let {\n    children,\n    status,\n    override\n  } = _ref;\n  const formItemInputContext = React.useContext(FormItemInputContext);\n  const newFormItemInputContext = React.useMemo(() => {\n    const newContext = Object.assign({}, formItemInputContext);\n    if (override) {\n      delete newContext.isFormItemInput;\n    }\n    if (status) {\n      delete newContext.status;\n      delete newContext.hasFeedback;\n      delete newContext.feedbackIcon;\n    }\n    return newContext;\n  }, [status, override, formItemInputContext]);\n  return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n    value: newFormItemInputContext\n  }, children);\n};\nexport const VariantContext = /*#__PURE__*/React.createContext(undefined);","\"use client\";\n\nimport React from 'react';\nimport { NoFormStyle } from '../form/context';\nimport { NoCompactStyle } from '../space/Compact';\nconst ContextIsolator = props => {\n  const {\n    space,\n    form,\n    children\n  } = props;\n  if (children === undefined || children === null) {\n    return null;\n  }\n  let result = children;\n  if (form) {\n    result = /*#__PURE__*/React.createElement(NoFormStyle, {\n      override: true,\n      status: true\n    }, result);\n  }\n  if (space) {\n    result = /*#__PURE__*/React.createElement(NoCompactStyle, null, result);\n  }\n  return result;\n};\nexport default ContextIsolator;","import React from 'react';\nconst zIndexContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n  zIndexContext.displayName = 'zIndexContext';\n}\nexport default zIndexContext;","import React from 'react';\nimport useToken from '../../theme/useToken';\nimport { devUseWarning } from '../warning';\nimport zIndexContext from '../zindexContext';\n// Z-Index control range\n// Container: 1000 + offset 100 (max base + 10 * offset = 2000)\n// Popover: offset 50\n// Notification: Container Max zIndex + componentOffset\nconst CONTAINER_OFFSET = 100;\nconst CONTAINER_OFFSET_MAX_COUNT = 10;\nexport const CONTAINER_MAX_OFFSET = CONTAINER_OFFSET * CONTAINER_OFFSET_MAX_COUNT;\n/**\n * Static function will default be the `CONTAINER_MAX_OFFSET`.\n * But it still may have children component like Select, Dropdown.\n * So the warning zIndex should exceed the `CONTAINER_MAX_OFFSET`.\n */\nconst CONTAINER_MAX_OFFSET_WITH_CHILDREN = CONTAINER_MAX_OFFSET + CONTAINER_OFFSET;\nexport const containerBaseZIndexOffset = {\n  Modal: CONTAINER_OFFSET,\n  Drawer: CONTAINER_OFFSET,\n  Popover: CONTAINER_OFFSET,\n  Popconfirm: CONTAINER_OFFSET,\n  Tooltip: CONTAINER_OFFSET,\n  Tour: CONTAINER_OFFSET,\n  FloatButton: CONTAINER_OFFSET\n};\nexport const consumerBaseZIndexOffset = {\n  SelectLike: 50,\n  Dropdown: 50,\n  DatePicker: 50,\n  Menu: 50,\n  ImagePreview: 1\n};\nfunction isContainerType(type) {\n  return type in containerBaseZIndexOffset;\n}\nexport const useZIndex = (componentType, customZIndex) => {\n  const [, token] = useToken();\n  const parentZIndex = React.useContext(zIndexContext);\n  const isContainer = isContainerType(componentType);\n  let result;\n  if (customZIndex !== undefined) {\n    result = [customZIndex, customZIndex];\n  } else {\n    let zIndex = parentZIndex !== null && parentZIndex !== void 0 ? parentZIndex : 0;\n    if (isContainer) {\n      zIndex +=\n      // Use preset token zIndex by default but not stack when has parent container\n      (parentZIndex ? 0 : token.zIndexPopupBase) +\n      // Container offset\n      containerBaseZIndexOffset[componentType];\n    } else {\n      zIndex += consumerBaseZIndexOffset[componentType];\n    }\n    result = [parentZIndex === undefined ? customZIndex : zIndex, zIndex];\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning(componentType);\n    const maxZIndex = token.zIndexPopupBase + CONTAINER_MAX_OFFSET_WITH_CHILDREN;\n    const currentZIndex = result[0] || 0;\n    process.env.NODE_ENV !== \"production\" ? warning(customZIndex !== undefined || currentZIndex <= maxZIndex, 'usage', '`zIndex` is over design token `zIndexPopupBase` too much. It may cause unexpected override.') : void 0;\n  }\n  return result;\n};","import { unit } from '@ant-design/cssinjs';\nexport function getArrowToken(token) {\n  const {\n    sizePopupArrow,\n    borderRadiusXS,\n    borderRadiusOuter\n  } = token;\n  const unitWidth = sizePopupArrow / 2;\n  const ax = 0;\n  const ay = unitWidth;\n  const bx = borderRadiusOuter * 1 / Math.sqrt(2);\n  const by = unitWidth - borderRadiusOuter * (1 - 1 / Math.sqrt(2));\n  const cx = unitWidth - borderRadiusXS * (1 / Math.sqrt(2));\n  const cy = borderRadiusOuter * (Math.sqrt(2) - 1) + borderRadiusXS * (1 / Math.sqrt(2));\n  const dx = 2 * unitWidth - cx;\n  const dy = cy;\n  const ex = 2 * unitWidth - bx;\n  const ey = by;\n  const fx = 2 * unitWidth - ax;\n  const fy = ay;\n  const shadowWidth = unitWidth * Math.sqrt(2) + borderRadiusOuter * (Math.sqrt(2) - 2);\n  const polygonOffset = borderRadiusOuter * (Math.sqrt(2) - 1);\n  const arrowPolygon = `polygon(${polygonOffset}px 100%, 50% ${polygonOffset}px, ${2 * unitWidth - polygonOffset}px 100%, ${polygonOffset}px 100%)`;\n  const arrowPath = `path('M ${ax} ${ay} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${bx} ${by} L ${cx} ${cy} A ${borderRadiusXS} ${borderRadiusXS} 0 0 1 ${dx} ${dy} L ${ex} ${ey} A ${borderRadiusOuter} ${borderRadiusOuter} 0 0 0 ${fx} ${fy} Z')`;\n  return {\n    arrowShadowWidth: shadowWidth,\n    arrowPath,\n    arrowPolygon\n  };\n}\nexport const genRoundedArrow = (token, bgColor, boxShadow) => {\n  const {\n    sizePopupArrow,\n    arrowPolygon,\n    arrowPath,\n    arrowShadowWidth,\n    borderRadiusXS,\n    calc\n  } = token;\n  return {\n    pointerEvents: 'none',\n    width: sizePopupArrow,\n    height: sizePopupArrow,\n    overflow: 'hidden',\n    '&::before': {\n      position: 'absolute',\n      bottom: 0,\n      insetInlineStart: 0,\n      width: sizePopupArrow,\n      height: calc(sizePopupArrow).div(2).equal(),\n      background: bgColor,\n      clipPath: {\n        _multi_value_: true,\n        value: [arrowPolygon, arrowPath]\n      },\n      content: '\"\"'\n    },\n    '&::after': {\n      content: '\"\"',\n      position: 'absolute',\n      width: arrowShadowWidth,\n      height: arrowShadowWidth,\n      bottom: 0,\n      insetInline: 0,\n      margin: 'auto',\n      borderRadius: {\n        _skip_check_: true,\n        value: `0 0 ${unit(borderRadiusXS)} 0`\n      },\n      transform: 'translateY(50%) rotate(-135deg)',\n      boxShadow,\n      zIndex: 0,\n      background: 'transparent'\n    }\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { genRoundedArrow } from './roundedArrow';\nexport const MAX_VERTICAL_CONTENT_RADIUS = 8;\nexport function getArrowOffsetToken(options) {\n  const {\n    contentRadius,\n    limitVerticalRadius\n  } = options;\n  const arrowOffset = contentRadius > 12 ? contentRadius + 2 : 12;\n  const arrowOffsetVertical = limitVerticalRadius ? MAX_VERTICAL_CONTENT_RADIUS : arrowOffset;\n  return {\n    arrowOffsetHorizontal: arrowOffset,\n    arrowOffsetVertical\n  };\n}\nfunction isInject(valid, code) {\n  if (!valid) {\n    return {};\n  }\n  return code;\n}\nexport default function getArrowStyle(token, colorBg, options) {\n  const {\n    componentCls,\n    boxShadowPopoverArrow,\n    arrowOffsetVertical,\n    arrowOffsetHorizontal\n  } = token;\n  const {\n    arrowDistance = 0,\n    arrowPlacement = {\n      left: true,\n      right: true,\n      top: true,\n      bottom: true\n    }\n  } = options || {};\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({\n      // ============================ Basic ============================\n      [`${componentCls}-arrow`]: [Object.assign(Object.assign({\n        position: 'absolute',\n        zIndex: 1,\n        display: 'block'\n      }, genRoundedArrow(token, colorBg, boxShadowPopoverArrow)), {\n        '&:before': {\n          background: colorBg\n        }\n      })]\n    }, isInject(!!arrowPlacement.top, {\n      [[`&-placement-top > ${componentCls}-arrow`, `&-placement-topLeft > ${componentCls}-arrow`, `&-placement-topRight > ${componentCls}-arrow`].join(',')]: {\n        bottom: arrowDistance,\n        transform: 'translateY(100%) rotate(180deg)'\n      },\n      [`&-placement-top > ${componentCls}-arrow`]: {\n        left: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateX(-50%) translateY(100%) rotate(180deg)'\n      },\n      '&-placement-topLeft': {\n        '--arrow-offset-horizontal': arrowOffsetHorizontal,\n        [`> ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      },\n      '&-placement-topRight': {\n        '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n        [`> ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      }\n    })), isInject(!!arrowPlacement.bottom, {\n      [[`&-placement-bottom > ${componentCls}-arrow`, `&-placement-bottomLeft > ${componentCls}-arrow`, `&-placement-bottomRight > ${componentCls}-arrow`].join(',')]: {\n        top: arrowDistance,\n        transform: `translateY(-100%)`\n      },\n      [`&-placement-bottom > ${componentCls}-arrow`]: {\n        left: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: `translateX(-50%) translateY(-100%)`\n      },\n      '&-placement-bottomLeft': {\n        '--arrow-offset-horizontal': arrowOffsetHorizontal,\n        [`> ${componentCls}-arrow`]: {\n          left: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      },\n      '&-placement-bottomRight': {\n        '--arrow-offset-horizontal': `calc(100% - ${unit(arrowOffsetHorizontal)})`,\n        [`> ${componentCls}-arrow`]: {\n          right: {\n            _skip_check_: true,\n            value: arrowOffsetHorizontal\n          }\n        }\n      }\n    })), isInject(!!arrowPlacement.left, {\n      [[`&-placement-left > ${componentCls}-arrow`, `&-placement-leftTop > ${componentCls}-arrow`, `&-placement-leftBottom > ${componentCls}-arrow`].join(',')]: {\n        right: {\n          _skip_check_: true,\n          value: arrowDistance\n        },\n        transform: 'translateX(100%) rotate(90deg)'\n      },\n      [`&-placement-left > ${componentCls}-arrow`]: {\n        top: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateY(-50%) translateX(100%) rotate(90deg)'\n      },\n      [`&-placement-leftTop > ${componentCls}-arrow`]: {\n        top: arrowOffsetVertical\n      },\n      [`&-placement-leftBottom > ${componentCls}-arrow`]: {\n        bottom: arrowOffsetVertical\n      }\n    })), isInject(!!arrowPlacement.right, {\n      [[`&-placement-right > ${componentCls}-arrow`, `&-placement-rightTop > ${componentCls}-arrow`, `&-placement-rightBottom > ${componentCls}-arrow`].join(',')]: {\n        left: {\n          _skip_check_: true,\n          value: arrowDistance\n        },\n        transform: 'translateX(-100%) rotate(-90deg)'\n      },\n      [`&-placement-right > ${componentCls}-arrow`]: {\n        top: {\n          _skip_check_: true,\n          value: '50%'\n        },\n        transform: 'translateY(-50%) translateX(-100%) rotate(-90deg)'\n      },\n      [`&-placement-rightTop > ${componentCls}-arrow`]: {\n        top: arrowOffsetVertical\n      },\n      [`&-placement-rightBottom > ${componentCls}-arrow`]: {\n        bottom: arrowOffsetVertical\n      }\n    }))\n  };\n}","import { getArrowOffsetToken } from '../style/placementArrow';\nexport function getOverflowOptions(placement, arrowOffset, arrowWidth, autoAdjustOverflow) {\n  if (autoAdjustOverflow === false) {\n    return {\n      adjustX: false,\n      adjustY: false\n    };\n  }\n  const overflow = autoAdjustOverflow && typeof autoAdjustOverflow === 'object' ? autoAdjustOverflow : {};\n  const baseOverflow = {};\n  switch (placement) {\n    case 'top':\n    case 'bottom':\n      baseOverflow.shiftX = arrowOffset.arrowOffsetHorizontal * 2 + arrowWidth;\n      baseOverflow.shiftY = true;\n      baseOverflow.adjustY = true;\n      break;\n    case 'left':\n    case 'right':\n      baseOverflow.shiftY = arrowOffset.arrowOffsetVertical * 2 + arrowWidth;\n      baseOverflow.shiftX = true;\n      baseOverflow.adjustX = true;\n      break;\n  }\n  const mergedOverflow = Object.assign(Object.assign({}, baseOverflow), overflow);\n  // Support auto shift\n  if (!mergedOverflow.shiftX) {\n    mergedOverflow.adjustX = true;\n  }\n  if (!mergedOverflow.shiftY) {\n    mergedOverflow.adjustY = true;\n  }\n  return mergedOverflow;\n}\nconst PlacementAlignMap = {\n  left: {\n    points: ['cr', 'cl']\n  },\n  right: {\n    points: ['cl', 'cr']\n  },\n  top: {\n    points: ['bc', 'tc']\n  },\n  bottom: {\n    points: ['tc', 'bc']\n  },\n  topLeft: {\n    points: ['bl', 'tl']\n  },\n  leftTop: {\n    points: ['tr', 'tl']\n  },\n  topRight: {\n    points: ['br', 'tr']\n  },\n  rightTop: {\n    points: ['tl', 'tr']\n  },\n  bottomRight: {\n    points: ['tr', 'br']\n  },\n  rightBottom: {\n    points: ['bl', 'br']\n  },\n  bottomLeft: {\n    points: ['tl', 'bl']\n  },\n  leftBottom: {\n    points: ['br', 'bl']\n  }\n};\nconst ArrowCenterPlacementAlignMap = {\n  topLeft: {\n    points: ['bl', 'tc']\n  },\n  leftTop: {\n    points: ['tr', 'cl']\n  },\n  topRight: {\n    points: ['br', 'tc']\n  },\n  rightTop: {\n    points: ['tl', 'cr']\n  },\n  bottomRight: {\n    points: ['tr', 'bc']\n  },\n  rightBottom: {\n    points: ['bl', 'cr']\n  },\n  bottomLeft: {\n    points: ['tl', 'bc']\n  },\n  leftBottom: {\n    points: ['br', 'cl']\n  }\n};\nconst DisableAutoArrowList = new Set(['topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']);\nexport default function getPlacements(config) {\n  const {\n    arrowWidth,\n    autoAdjustOverflow,\n    arrowPointAtCenter,\n    offset,\n    borderRadius,\n    visibleFirst\n  } = config;\n  const halfArrowWidth = arrowWidth / 2;\n  const placementMap = {};\n  Object.keys(PlacementAlignMap).forEach(key => {\n    const template = arrowPointAtCenter && ArrowCenterPlacementAlignMap[key] || PlacementAlignMap[key];\n    const placementInfo = Object.assign(Object.assign({}, template), {\n      offset: [0, 0],\n      dynamicInset: true\n    });\n    placementMap[key] = placementInfo;\n    // Disable autoArrow since design is fixed position\n    if (DisableAutoArrowList.has(key)) {\n      placementInfo.autoArrow = false;\n    }\n    // Static offset\n    switch (key) {\n      case 'top':\n      case 'topLeft':\n      case 'topRight':\n        placementInfo.offset[1] = -halfArrowWidth - offset;\n        break;\n      case 'bottom':\n      case 'bottomLeft':\n      case 'bottomRight':\n        placementInfo.offset[1] = halfArrowWidth + offset;\n        break;\n      case 'left':\n      case 'leftTop':\n      case 'leftBottom':\n        placementInfo.offset[0] = -halfArrowWidth - offset;\n        break;\n      case 'right':\n      case 'rightTop':\n      case 'rightBottom':\n        placementInfo.offset[0] = halfArrowWidth + offset;\n        break;\n    }\n    // Dynamic offset\n    const arrowOffset = getArrowOffsetToken({\n      contentRadius: borderRadius,\n      limitVerticalRadius: true\n    });\n    if (arrowPointAtCenter) {\n      switch (key) {\n        case 'topLeft':\n        case 'bottomLeft':\n          placementInfo.offset[0] = -arrowOffset.arrowOffsetHorizontal - halfArrowWidth;\n          break;\n        case 'topRight':\n        case 'bottomRight':\n          placementInfo.offset[0] = arrowOffset.arrowOffsetHorizontal + halfArrowWidth;\n          break;\n        case 'leftTop':\n        case 'rightTop':\n          placementInfo.offset[1] = -arrowOffset.arrowOffsetHorizontal * 2 + halfArrowWidth;\n          break;\n        case 'leftBottom':\n        case 'rightBottom':\n          placementInfo.offset[1] = arrowOffset.arrowOffsetHorizontal * 2 - halfArrowWidth;\n          break;\n      }\n    }\n    // Overflow\n    placementInfo.overflow = getOverflowOptions(key, arrowOffset, arrowWidth, autoAdjustOverflow);\n    // VisibleFirst\n    if (visibleFirst) {\n      placementInfo.htmlRegion = 'visibleFirst';\n    }\n  });\n  return placementMap;\n}","import * as React from 'react';\nimport rcWarning, { resetWarned as rcResetWarned } from \"rc-util/es/warning\";\nexport function noop() {}\nlet deprecatedWarnList = null;\nexport function resetWarned() {\n  deprecatedWarnList = null;\n  rcResetWarned();\n}\n// eslint-disable-next-line import/no-mutable-exports\nlet warning = noop;\nif (process.env.NODE_ENV !== 'production') {\n  warning = (valid, component, message) => {\n    rcWarning(valid, `[antd: ${component}] ${message}`);\n    // StrictMode will inject console which will not throw warning in React 17.\n    if (process.env.NODE_ENV === 'test') {\n      resetWarned();\n    }\n  };\n}\nexport const WarningContext = /*#__PURE__*/React.createContext({});\n/**\n * This is a hook but we not named as `useWarning`\n * since this is only used in development.\n * We should always wrap this in `if (process.env.NODE_ENV !== 'production')` condition\n */\nexport const devUseWarning = process.env.NODE_ENV !== 'production' ? component => {\n  const {\n    strict\n  } = React.useContext(WarningContext);\n  const typeWarning = (valid, type, message) => {\n    if (!valid) {\n      if (strict === false && type === 'deprecated') {\n        const existWarning = deprecatedWarnList;\n        if (!deprecatedWarnList) {\n          deprecatedWarnList = {};\n        }\n        deprecatedWarnList[component] = deprecatedWarnList[component] || [];\n        if (!deprecatedWarnList[component].includes(message || '')) {\n          deprecatedWarnList[component].push(message || '');\n        }\n        // Warning for the first time\n        if (!existWarning) {\n          console.warn('[antd] There exists deprecated usage in your code:', deprecatedWarnList);\n        }\n      } else {\n        process.env.NODE_ENV !== \"production\" ? warning(valid, component, message) : void 0;\n      }\n    }\n  };\n  typeWarning.deprecated = (valid, oldProp, newProp, message) => {\n    typeWarning(valid, 'deprecated', `\\`${oldProp}\\` is deprecated. Please use \\`${newProp}\\` instead.${message ? ` ${message}` : ''}`);\n  };\n  return typeWarning;\n} : () => {\n  const noopWarning = () => {};\n  noopWarning.deprecated = noop;\n  return noopWarning;\n};\nexport default warning;","const initMotionCommon = duration => ({\n  animationDuration: duration,\n  animationFillMode: 'both'\n});\n// FIXME: origin less code seems same as initMotionCommon. Maybe we can safe remove\nconst initMotionCommonLeave = duration => ({\n  animationDuration: duration,\n  animationFillMode: 'both'\n});\nexport const initMotion = function (motionCls, inKeyframes, outKeyframes, duration) {\n  let sameLevel = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n  const sameLevelPrefix = sameLevel ? '&' : '';\n  return {\n    [`\n      ${sameLevelPrefix}${motionCls}-enter,\n      ${sameLevelPrefix}${motionCls}-appear\n    `]: Object.assign(Object.assign({}, initMotionCommon(duration)), {\n      animationPlayState: 'paused'\n    }),\n    [`${sameLevelPrefix}${motionCls}-leave`]: Object.assign(Object.assign({}, initMotionCommonLeave(duration)), {\n      animationPlayState: 'paused'\n    }),\n    [`\n      ${sameLevelPrefix}${motionCls}-enter${motionCls}-enter-active,\n      ${sameLevelPrefix}${motionCls}-appear${motionCls}-appear-active\n    `]: {\n      animationName: inKeyframes,\n      animationPlayState: 'running'\n    },\n    [`${sameLevelPrefix}${motionCls}-leave${motionCls}-leave-active`]: {\n      animationName: outKeyframes,\n      animationPlayState: 'running',\n      pointerEvents: 'none'\n    }\n  };\n};","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const zoomIn = new Keyframes('antZoomIn', {\n  '0%': {\n    transform: 'scale(0.2)',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    opacity: 1\n  }\n});\nexport const zoomOut = new Keyframes('antZoomOut', {\n  '0%': {\n    transform: 'scale(1)'\n  },\n  '100%': {\n    transform: 'scale(0.2)',\n    opacity: 0\n  }\n});\nexport const zoomBigIn = new Keyframes('antZoomBigIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    opacity: 1\n  }\n});\nexport const zoomBigOut = new Keyframes('antZoomBigOut', {\n  '0%': {\n    transform: 'scale(1)'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    opacity: 0\n  }\n});\nexport const zoomUpIn = new Keyframes('antZoomUpIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 0%'\n  }\n});\nexport const zoomUpOut = new Keyframes('antZoomUpOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 0%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 0%',\n    opacity: 0\n  }\n});\nexport const zoomLeftIn = new Keyframes('antZoomLeftIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '0% 50%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '0% 50%'\n  }\n});\nexport const zoomLeftOut = new Keyframes('antZoomLeftOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '0% 50%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '0% 50%',\n    opacity: 0\n  }\n});\nexport const zoomRightIn = new Keyframes('antZoomRightIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '100% 50%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '100% 50%'\n  }\n});\nexport const zoomRightOut = new Keyframes('antZoomRightOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '100% 50%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '100% 50%',\n    opacity: 0\n  }\n});\nexport const zoomDownIn = new Keyframes('antZoomDownIn', {\n  '0%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 100%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 100%'\n  }\n});\nexport const zoomDownOut = new Keyframes('antZoomDownOut', {\n  '0%': {\n    transform: 'scale(1)',\n    transformOrigin: '50% 100%'\n  },\n  '100%': {\n    transform: 'scale(0.8)',\n    transformOrigin: '50% 100%',\n    opacity: 0\n  }\n});\nconst zoomMotion = {\n  zoom: {\n    inKeyframes: zoomIn,\n    outKeyframes: zoomOut\n  },\n  'zoom-big': {\n    inKeyframes: zoomBigIn,\n    outKeyframes: zoomBigOut\n  },\n  'zoom-big-fast': {\n    inKeyframes: zoomBigIn,\n    outKeyframes: zoomBigOut\n  },\n  'zoom-left': {\n    inKeyframes: zoomLeftIn,\n    outKeyframes: zoomLeftOut\n  },\n  'zoom-right': {\n    inKeyframes: zoomRightIn,\n    outKeyframes: zoomRightOut\n  },\n  'zoom-up': {\n    inKeyframes: zoomUpIn,\n    outKeyframes: zoomUpOut\n  },\n  'zoom-down': {\n    inKeyframes: zoomDownIn,\n    outKeyframes: zoomDownOut\n  }\n};\nexport const initZoomMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = zoomMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, motionName === 'zoom-big-fast' ? token.motionDurationFast : token.motionDurationMid), {\n    [`\n        ${motionCls}-enter,\n        ${motionCls}-appear\n      `]: {\n      transform: 'scale(0)',\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutCirc,\n      '&-prepare': {\n        transform: 'none'\n      }\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInOutCirc\n    }\n  }];\n};","import { PresetColors } from '../interface';\nexport default function genPresetColor(token, genCss) {\n  return PresetColors.reduce((prev, colorKey) => {\n    const lightColor = token[`${colorKey}1`];\n    const lightBorderColor = token[`${colorKey}3`];\n    const darkColor = token[`${colorKey}6`];\n    const textColor = token[`${colorKey}7`];\n    return Object.assign(Object.assign({}, prev), genCss(colorKey, {\n      lightColor,\n      lightBorderColor,\n      darkColor,\n      textColor\n    }));\n  }, {});\n}","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { initZoomMotion } from '../../style/motion';\nimport getArrowStyle, { getArrowOffsetToken, MAX_VERTICAL_CONTENT_RADIUS } from '../../style/placementArrow';\nimport { getArrowToken } from '../../style/roundedArrow';\nimport { genPresetColor, genStyleHooks, mergeToken } from '../../theme/internal';\nconst genTooltipStyle = token => {\n  const {\n    calc,\n    componentCls,\n    // ant-tooltip\n    tooltipMaxWidth,\n    tooltipColor,\n    tooltipBg,\n    tooltipBorderRadius,\n    zIndexPopup,\n    controlHeight,\n    boxShadowSecondary,\n    paddingSM,\n    paddingXS,\n    arrowOffsetHorizontal,\n    sizePopupArrow\n  } = token;\n  // arrowOffsetHorizontal + arrowWidth + borderRadius\n  const edgeAlignMinWidth = calc(tooltipBorderRadius).add(sizePopupArrow).add(arrowOffsetHorizontal).equal();\n  // borderRadius * 2 + arrowWidth\n  const centerAlignMinWidth = calc(tooltipBorderRadius).mul(2).add(sizePopupArrow).equal();\n  return [{\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'absolute',\n      zIndex: zIndexPopup,\n      display: 'block',\n      width: 'max-content',\n      maxWidth: tooltipMaxWidth,\n      visibility: 'visible',\n      // When use `autoArrow`, origin will follow the arrow position\n      '--valid-offset-x': 'var(--arrow-offset-horizontal, var(--arrow-x))',\n      transformOrigin: [`var(--valid-offset-x, 50%)`, `var(--arrow-y, 50%)`].join(' '),\n      '&-hidden': {\n        display: 'none'\n      },\n      '--antd-arrow-background-color': tooltipBg,\n      // Wrapper for the tooltip content\n      [`${componentCls}-inner`]: {\n        minWidth: centerAlignMinWidth,\n        minHeight: controlHeight,\n        padding: `${unit(token.calc(paddingSM).div(2).equal())} ${unit(paddingXS)}`,\n        color: tooltipColor,\n        textAlign: 'start',\n        textDecoration: 'none',\n        wordWrap: 'break-word',\n        backgroundColor: tooltipBg,\n        borderRadius: tooltipBorderRadius,\n        boxShadow: boxShadowSecondary,\n        boxSizing: 'border-box'\n      },\n      // Align placement should have another min width\n      [[`&-placement-topLeft`, `&-placement-topRight`, `&-placement-bottomLeft`, `&-placement-bottomRight`].join(',')]: {\n        minWidth: edgeAlignMinWidth\n      },\n      // Limit left and right placement radius\n      [[`&-placement-left`, `&-placement-leftTop`, `&-placement-leftBottom`, `&-placement-right`, `&-placement-rightTop`, `&-placement-rightBottom`].join(',')]: {\n        [`${componentCls}-inner`]: {\n          borderRadius: token.min(tooltipBorderRadius, MAX_VERTICAL_CONTENT_RADIUS)\n        }\n      },\n      [`${componentCls}-content`]: {\n        position: 'relative'\n      }\n    }), genPresetColor(token, (colorKey, _ref) => {\n      let {\n        darkColor\n      } = _ref;\n      return {\n        [`&${componentCls}-${colorKey}`]: {\n          [`${componentCls}-inner`]: {\n            backgroundColor: darkColor\n          },\n          [`${componentCls}-arrow`]: {\n            '--antd-arrow-background-color': darkColor\n          }\n        }\n      };\n    })), {\n      // RTL\n      '&-rtl': {\n        direction: 'rtl'\n      }\n    })\n  },\n  // Arrow Style\n  getArrowStyle(token, 'var(--antd-arrow-background-color)'),\n  // Pure Render\n  {\n    [`${componentCls}-pure`]: {\n      position: 'relative',\n      maxWidth: 'none',\n      margin: token.sizePopupArrow\n    }\n  }];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => Object.assign(Object.assign({\n  zIndexPopup: token.zIndexPopupBase + 70\n}, getArrowOffsetToken({\n  contentRadius: token.borderRadius,\n  limitVerticalRadius: true\n})), getArrowToken(mergeToken(token, {\n  borderRadiusOuter: Math.min(token.borderRadiusOuter, 4)\n})));\nexport default (function (prefixCls) {\n  let injectStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  const useStyle = genStyleHooks('Tooltip', token => {\n    const {\n      borderRadius,\n      colorTextLightSolid,\n      colorBgSpotlight\n    } = token;\n    const TooltipToken = mergeToken(token, {\n      // default variables\n      tooltipMaxWidth: 250,\n      tooltipColor: colorTextLightSolid,\n      tooltipBorderRadius: borderRadius,\n      tooltipBg: colorBgSpotlight\n    });\n    return [genTooltipStyle(TooltipToken), initZoomMotion(token, 'zoom-big-fast')];\n  }, prepareComponentToken, {\n    resetStyle: false,\n    // Popover use Tooltip as internal component. We do not need to handle this.\n    injectStyle\n  });\n  return useStyle(prefixCls);\n});","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { PresetColors } from '../theme/interface';\nconst inverseColors = PresetColors.map(color => `${color}-inverse`);\nexport const PresetStatusColorTypes = ['success', 'processing', 'error', 'default', 'warning'];\n/**\n * determine if the color keyword belongs to the `Ant Design` {@link PresetColors}.\n * @param color color to be judged\n * @param includeInverse whether to include reversed colors\n */\nexport function isPresetColor(color) {\n  let includeInverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  if (includeInverse) {\n    return [].concat(_toConsumableArray(inverseColors), _toConsumableArray(PresetColors)).includes(color);\n  }\n  return PresetColors.includes(color);\n}\nexport function isPresetStatusColor(color) {\n  return PresetStatusColorTypes.includes(color);\n}","import classNames from 'classnames';\nimport { isPresetColor } from '../_util/colors';\nexport function parseColor(prefixCls, color) {\n  const isInternalColor = isPresetColor(color);\n  const className = classNames({\n    [`${prefixCls}-${color}`]: color && isInternalColor\n  });\n  const overlayStyle = {};\n  const arrowStyle = {};\n  if (color && !isInternalColor) {\n    overlayStyle.background = color;\n    // @ts-ignore\n    arrowStyle['--antd-arrow-background-color'] = color;\n  }\n  return {\n    className,\n    overlayStyle,\n    arrowStyle\n  };\n}","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Popup } from 'rc-tooltip';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nimport { parseColor } from './util';\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n  const {\n    prefixCls: customizePrefixCls,\n    className,\n    placement = 'top',\n    title,\n    color,\n    overlayInnerStyle\n  } = props;\n  const {\n    getPrefixCls\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  // Color\n  const colorInfo = parseColor(prefixCls, color);\n  const arrowContentStyle = colorInfo.arrowStyle;\n  const formattedOverlayInnerStyle = Object.assign(Object.assign({}, overlayInnerStyle), colorInfo.overlayStyle);\n  const cls = classNames(hashId, cssVarCls, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, colorInfo.className);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: cls,\n    style: arrowContentStyle\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: `${prefixCls}-arrow`\n  }), /*#__PURE__*/React.createElement(Popup, Object.assign({}, props, {\n    className: hashId,\n    prefixCls: prefixCls,\n    overlayInnerStyle: formattedOverlayInnerStyle\n  }), title)));\n};\nexport default PurePanel;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcTooltip from 'rc-tooltip';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ContextIsolator from '../_util/ContextIsolator';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport getPlacements from '../_util/placements';\nimport { cloneElement, isFragment } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport zIndexContext from '../_util/zindexContext';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport PurePanel from './PurePanel';\nimport useStyle from './style';\nimport { parseColor } from './util';\nconst InternalTooltip = /*#__PURE__*/React.forwardRef((props, ref) => {\n  var _a, _b, _c, _d, _e, _f;\n  const {\n      prefixCls: customizePrefixCls,\n      openClassName,\n      getTooltipContainer,\n      color,\n      overlayInnerStyle,\n      children,\n      afterOpenChange,\n      afterVisibleChange,\n      destroyTooltipOnHide,\n      arrow = true,\n      title,\n      overlay,\n      builtinPlacements,\n      arrowPointAtCenter = false,\n      autoAdjustOverflow = true,\n      motion,\n      getPopupContainer,\n      placement = 'top',\n      mouseEnterDelay = 0.1,\n      mouseLeaveDelay = 0.1,\n      overlayStyle,\n      rootClassName,\n      overlayClassName,\n      styles,\n      classNames: tooltipClassNames\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"openClassName\", \"getTooltipContainer\", \"color\", \"overlayInnerStyle\", \"children\", \"afterOpenChange\", \"afterVisibleChange\", \"destroyTooltipOnHide\", \"arrow\", \"title\", \"overlay\", \"builtinPlacements\", \"arrowPointAtCenter\", \"autoAdjustOverflow\", \"motion\", \"getPopupContainer\", \"placement\", \"mouseEnterDelay\", \"mouseLeaveDelay\", \"overlayStyle\", \"rootClassName\", \"overlayClassName\", \"styles\", \"classNames\"]);\n  const mergedShowArrow = !!arrow;\n  const [, token] = useToken();\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    direction,\n    tooltip\n  } = React.useContext(ConfigContext);\n  // ============================== Ref ===============================\n  const warning = devUseWarning('Tooltip');\n  const tooltipRef = React.useRef(null);\n  const forceAlign = () => {\n    var _a;\n    (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.forceAlign();\n  };\n  React.useImperativeHandle(ref, () => {\n    var _a;\n    return {\n      forceAlign,\n      forcePopupAlign: () => {\n        warning.deprecated(false, 'forcePopupAlign', 'forceAlign');\n        forceAlign();\n      },\n      nativeElement: (_a = tooltipRef.current) === null || _a === void 0 ? void 0 : _a.nativeElement\n    };\n  });\n  // ============================== Warn ==============================\n  if (process.env.NODE_ENV !== 'production') {\n    [['visible', 'open'], ['defaultVisible', 'defaultOpen'], ['onVisibleChange', 'onOpenChange'], ['afterVisibleChange', 'afterOpenChange'], ['arrowPointAtCenter', 'arrow={{ pointAtCenter: true }}'], ['overlayStyle', 'styles={{ root: {} }}'], ['overlayInnerStyle', 'styles={{ body: {} }}'], ['overlayClassName', 'classNames={{ root: {} }}']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n    process.env.NODE_ENV !== \"production\" ? warning(!destroyTooltipOnHide || typeof destroyTooltipOnHide === 'boolean', 'usage', '`destroyTooltipOnHide` no need config `keepParent` anymore. Please use `boolean` value directly.') : void 0;\n    process.env.NODE_ENV !== \"production\" ? warning(!arrow || typeof arrow === 'boolean' || !('arrowPointAtCenter' in arrow), 'deprecated', '`arrowPointAtCenter` in `arrow` is deprecated. Please use `pointAtCenter` instead.') : void 0;\n  }\n  // ============================== Open ==============================\n  const [open, setOpen] = useMergedState(false, {\n    value: (_a = props.open) !== null && _a !== void 0 ? _a : props.visible,\n    defaultValue: (_b = props.defaultOpen) !== null && _b !== void 0 ? _b : props.defaultVisible\n  });\n  const noTitle = !title && !overlay && title !== 0; // overlay for old version compatibility\n  const onOpenChange = vis => {\n    var _a, _b;\n    setOpen(noTitle ? false : vis);\n    if (!noTitle) {\n      (_a = props.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(props, vis);\n      (_b = props.onVisibleChange) === null || _b === void 0 ? void 0 : _b.call(props, vis);\n    }\n  };\n  const tooltipPlacements = React.useMemo(() => {\n    var _a, _b;\n    let mergedArrowPointAtCenter = arrowPointAtCenter;\n    if (typeof arrow === 'object') {\n      mergedArrowPointAtCenter = (_b = (_a = arrow.pointAtCenter) !== null && _a !== void 0 ? _a : arrow.arrowPointAtCenter) !== null && _b !== void 0 ? _b : arrowPointAtCenter;\n    }\n    return builtinPlacements || getPlacements({\n      arrowPointAtCenter: mergedArrowPointAtCenter,\n      autoAdjustOverflow,\n      arrowWidth: mergedShowArrow ? token.sizePopupArrow : 0,\n      borderRadius: token.borderRadius,\n      offset: token.marginXXS,\n      visibleFirst: true\n    });\n  }, [arrowPointAtCenter, arrow, builtinPlacements, token]);\n  const memoOverlay = React.useMemo(() => {\n    if (title === 0) {\n      return title;\n    }\n    return overlay || title || '';\n  }, [overlay, title]);\n  const memoOverlayWrapper = /*#__PURE__*/React.createElement(ContextIsolator, {\n    space: true\n  }, typeof memoOverlay === 'function' ? memoOverlay() : memoOverlay);\n  const prefixCls = getPrefixCls('tooltip', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const injectFromPopover = props['data-popover-inject'];\n  let tempOpen = open;\n  // Hide tooltip when there is no title\n  if (!('open' in props) && !('visible' in props) && noTitle) {\n    tempOpen = false;\n  }\n  // ============================= Render =============================\n  const child = /*#__PURE__*/React.isValidElement(children) && !isFragment(children) ? children : /*#__PURE__*/React.createElement(\"span\", null, children);\n  const childProps = child.props;\n  const childCls = !childProps.className || typeof childProps.className === 'string' ? classNames(childProps.className, openClassName || `${prefixCls}-open`) : childProps.className;\n  // Style\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, !injectFromPopover);\n  // Color\n  const colorInfo = parseColor(prefixCls, color);\n  const arrowContentStyle = colorInfo.arrowStyle;\n  const rootClassNames = classNames(overlayClassName, {\n    [`${prefixCls}-rtl`]: direction === 'rtl'\n  }, colorInfo.className, rootClassName, hashId, cssVarCls, tooltip === null || tooltip === void 0 ? void 0 : tooltip.className, (_c = tooltip === null || tooltip === void 0 ? void 0 : tooltip.classNames) === null || _c === void 0 ? void 0 : _c.root, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.root);\n  const bodyClassNames = classNames((_d = tooltip === null || tooltip === void 0 ? void 0 : tooltip.classNames) === null || _d === void 0 ? void 0 : _d.body, tooltipClassNames === null || tooltipClassNames === void 0 ? void 0 : tooltipClassNames.body);\n  // ============================ zIndex ============================\n  const [zIndex, contextZIndex] = useZIndex('Tooltip', restProps.zIndex);\n  const content = /*#__PURE__*/React.createElement(RcTooltip, Object.assign({}, restProps, {\n    zIndex: zIndex,\n    showArrow: mergedShowArrow,\n    placement: placement,\n    mouseEnterDelay: mouseEnterDelay,\n    mouseLeaveDelay: mouseLeaveDelay,\n    prefixCls: prefixCls,\n    classNames: {\n      root: rootClassNames,\n      body: bodyClassNames\n    },\n    styles: {\n      root: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, arrowContentStyle), (_e = tooltip === null || tooltip === void 0 ? void 0 : tooltip.styles) === null || _e === void 0 ? void 0 : _e.root), tooltip === null || tooltip === void 0 ? void 0 : tooltip.style), overlayStyle), styles === null || styles === void 0 ? void 0 : styles.root),\n      body: Object.assign(Object.assign(Object.assign(Object.assign({}, (_f = tooltip === null || tooltip === void 0 ? void 0 : tooltip.styles) === null || _f === void 0 ? void 0 : _f.body), overlayInnerStyle), styles === null || styles === void 0 ? void 0 : styles.body), colorInfo.overlayStyle)\n    },\n    getTooltipContainer: getPopupContainer || getTooltipContainer || getContextPopupContainer,\n    ref: tooltipRef,\n    builtinPlacements: tooltipPlacements,\n    overlay: memoOverlayWrapper,\n    visible: tempOpen,\n    onVisibleChange: onOpenChange,\n    afterVisibleChange: afterOpenChange !== null && afterOpenChange !== void 0 ? afterOpenChange : afterVisibleChange,\n    arrowContent: /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-arrow-content`\n    }),\n    motion: {\n      motionName: getTransitionName(rootPrefixCls, 'zoom-big-fast', props.transitionName),\n      motionDeadline: 1000\n    },\n    destroyTooltipOnHide: !!destroyTooltipOnHide\n  }), tempOpen ? cloneElement(child, {\n    className: childCls\n  }) : child);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(zIndexContext.Provider, {\n    value: contextZIndex\n  }, content));\n});\nconst Tooltip = InternalTooltip;\nif (process.env.NODE_ENV !== 'production') {\n  Tooltip.displayName = 'Tooltip';\n}\nTooltip._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nexport default Tooltip;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Item } from 'rc-menu';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport { cloneElement } from '../_util/reactNode';\nimport { SiderContext } from '../layout/Sider';\nimport Tooltip from '../tooltip';\nimport MenuContext from './MenuContext';\nconst MenuItem = props => {\n  var _a;\n  const {\n    className,\n    children,\n    icon,\n    title,\n    danger,\n    extra\n  } = props;\n  const {\n    prefixCls,\n    firstLevel,\n    direction,\n    disableMenuItemTitleTooltip,\n    inlineCollapsed: isInlineCollapsed\n  } = React.useContext(MenuContext);\n  const renderItemChildren = inlineCollapsed => {\n    const label = children === null || children === void 0 ? void 0 : children[0];\n    const wrapNode = /*#__PURE__*/React.createElement(\"span\", {\n      className: classNames(`${prefixCls}-title-content`, {\n        [`${prefixCls}-title-content-with-extra`]: !!extra || extra === 0\n      })\n    }, children);\n    // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n    // ref: https://github.com/ant-design/ant-design/pull/23456\n    if (!icon || /*#__PURE__*/React.isValidElement(children) && children.type === 'span') {\n      if (children && inlineCollapsed && firstLevel && typeof label === 'string') {\n        return /*#__PURE__*/React.createElement(\"div\", {\n          className: `${prefixCls}-inline-collapsed-noicon`\n        }, label.charAt(0));\n      }\n    }\n    return wrapNode;\n  };\n  const {\n    siderCollapsed\n  } = React.useContext(SiderContext);\n  let tooltipTitle = title;\n  if (typeof title === 'undefined') {\n    tooltipTitle = firstLevel ? children : '';\n  } else if (title === false) {\n    tooltipTitle = '';\n  }\n  const tooltipProps = {\n    title: tooltipTitle\n  };\n  if (!siderCollapsed && !isInlineCollapsed) {\n    tooltipProps.title = null;\n    // Reset `open` to fix control mode tooltip display not correct\n    // ref: https://github.com/ant-design/ant-design/issues/16742\n    tooltipProps.open = false;\n  }\n  const childrenLength = toArray(children).length;\n  let returnNode = /*#__PURE__*/React.createElement(Item, Object.assign({}, omit(props, ['title', 'icon', 'danger']), {\n    className: classNames({\n      [`${prefixCls}-item-danger`]: danger,\n      [`${prefixCls}-item-only-child`]: (icon ? childrenLength + 1 : childrenLength) === 1\n    }, className),\n    title: typeof title === 'string' ? title : undefined\n  }), cloneElement(icon, {\n    className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n  }), renderItemChildren(isInlineCollapsed));\n  if (!disableMenuItemTitleTooltip) {\n    returnNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps, {\n      placement: direction === 'rtl' ? 'left' : 'right',\n      classNames: {\n        root: `${prefixCls}-inline-collapsed-tooltip`\n      }\n    }), returnNode);\n  }\n  return returnNode;\n};\nexport default MenuItem;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { getNodeRef, supportNodeRef, useComposeRef } from \"rc-util/es/ref\";\nimport ContextIsolator from '../_util/ContextIsolator';\nconst OverrideContext = /*#__PURE__*/React.createContext(null);\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport const OverrideProvider = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      children\n    } = props,\n    restProps = __rest(props, [\"children\"]);\n  const override = React.useContext(OverrideContext);\n  const context = React.useMemo(() => Object.assign(Object.assign({}, override), restProps), [override, restProps.prefixCls,\n  // restProps.expandIcon, Not mark as deps since this is a ReactNode\n  restProps.mode, restProps.selectable, restProps.rootClassName\n  // restProps.validator, Not mark as deps since this is a function\n  ]);\n  const canRef = supportNodeRef(children);\n  const mergedRef = useComposeRef(ref, canRef ? getNodeRef(children) : null);\n  return /*#__PURE__*/React.createElement(OverrideContext.Provider, {\n    value: context\n  }, /*#__PURE__*/React.createElement(ContextIsolator, {\n    space: true\n  }, canRef ? /*#__PURE__*/React.cloneElement(children, {\n    ref: mergedRef\n  }) : children));\n});\n/** @internal Only used for Dropdown component. Do not use this in your production. */\nexport default OverrideContext;","const genCollapseMotion = token => ({\n  [token.componentCls]: {\n    // For common/openAnimation\n    [`${token.antCls}-motion-collapse-legacy`]: {\n      overflow: 'hidden',\n      '&-active': {\n        transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n        opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n      }\n    },\n    [`${token.antCls}-motion-collapse`]: {\n      overflow: 'hidden',\n      transition: `height ${token.motionDurationMid} ${token.motionEaseInOut},\n        opacity ${token.motionDurationMid} ${token.motionEaseInOut} !important`\n    }\n  }\n});\nexport default genCollapseMotion;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const slideUpIn = new Keyframes('antSlideUpIn', {\n  '0%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  }\n});\nexport const slideUpOut = new Keyframes('antSlideUpOut', {\n  '0%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  }\n});\nexport const slideDownIn = new Keyframes('antSlideDownIn', {\n  '0%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '100% 100%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '100% 100%',\n    opacity: 1\n  }\n});\nexport const slideDownOut = new Keyframes('antSlideDownOut', {\n  '0%': {\n    transform: 'scaleY(1)',\n    transformOrigin: '100% 100%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleY(0.8)',\n    transformOrigin: '100% 100%',\n    opacity: 0\n  }\n});\nexport const slideLeftIn = new Keyframes('antSlideLeftIn', {\n  '0%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  }\n});\nexport const slideLeftOut = new Keyframes('antSlideLeftOut', {\n  '0%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '0% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '0% 0%',\n    opacity: 0\n  }\n});\nexport const slideRightIn = new Keyframes('antSlideRightIn', {\n  '0%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '100% 0%',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '100% 0%',\n    opacity: 1\n  }\n});\nexport const slideRightOut = new Keyframes('antSlideRightOut', {\n  '0%': {\n    transform: 'scaleX(1)',\n    transformOrigin: '100% 0%',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'scaleX(0.8)',\n    transformOrigin: '100% 0%',\n    opacity: 0\n  }\n});\nconst slideMotion = {\n  'slide-up': {\n    inKeyframes: slideUpIn,\n    outKeyframes: slideUpOut\n  },\n  'slide-down': {\n    inKeyframes: slideDownIn,\n    outKeyframes: slideDownOut\n  },\n  'slide-left': {\n    inKeyframes: slideLeftIn,\n    outKeyframes: slideLeftOut\n  },\n  'slide-right': {\n    inKeyframes: slideRightIn,\n    outKeyframes: slideRightOut\n  }\n};\nexport const initSlideMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = slideMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n    [`\n      ${motionCls}-enter,\n      ${motionCls}-appear\n    `]: {\n      transform: 'scale(0)',\n      transformOrigin: '0% 0%',\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutQuint,\n      '&-prepare': {\n        transform: 'scale(1)'\n      }\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInQuint\n    }\n  }];\n};","import { unit } from '@ant-design/cssinjs';\nconst getHorizontalStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    horizontalLineHeight,\n    colorSplit,\n    lineWidth,\n    lineType,\n    itemPaddingInline\n  } = token;\n  return {\n    [`${componentCls}-horizontal`]: {\n      lineHeight: horizontalLineHeight,\n      border: 0,\n      borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n      boxShadow: 'none',\n      '&::after': {\n        display: 'block',\n        clear: 'both',\n        height: 0,\n        content: '\"\\\\20\"'\n      },\n      // ======================= Item =======================\n      [`${componentCls}-item, ${componentCls}-submenu`]: {\n        position: 'relative',\n        display: 'inline-block',\n        verticalAlign: 'bottom',\n        paddingInline: itemPaddingInline\n      },\n      [`> ${componentCls}-item:hover,\n        > ${componentCls}-item-active,\n        > ${componentCls}-submenu ${componentCls}-submenu-title:hover`]: {\n        backgroundColor: 'transparent'\n      },\n      [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n        transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`].join(',')\n      },\n      // ===================== Sub Menu =====================\n      [`${componentCls}-submenu-arrow`]: {\n        display: 'none'\n      }\n    }\n  };\n};\nexport default getHorizontalStyle;","import { unit } from '@ant-design/cssinjs';\nconst getRTLStyle = _ref => {\n  let {\n    componentCls,\n    menuArrowOffset,\n    calc\n  } = _ref;\n  return {\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl'\n    },\n    [`${componentCls}-submenu-rtl`]: {\n      transformOrigin: '100% 0'\n    },\n    // Vertical Arrow\n    [`${componentCls}-rtl${componentCls}-vertical,\n    ${componentCls}-submenu-rtl ${componentCls}-vertical`]: {\n      [`${componentCls}-submenu-arrow`]: {\n        '&::before': {\n          transform: `rotate(-45deg) translateY(${unit(calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::after': {\n          transform: `rotate(45deg) translateY(${unit(menuArrowOffset)})`\n        }\n      }\n    }\n  };\n};\nexport default getRTLStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline } from '../../style';\nconst accessibilityFocus = token => Object.assign({}, genFocusOutline(token));\nconst getThemeStyle = (token, themeSuffix) => {\n  const {\n    componentCls,\n    itemColor,\n    itemSelectedColor,\n    subMenuItemSelectedColor,\n    groupTitleColor,\n    itemBg,\n    subMenuItemBg,\n    itemSelectedBg,\n    activeBarHeight,\n    activeBarWidth,\n    activeBarBorderWidth,\n    motionDurationSlow,\n    motionEaseInOut,\n    motionEaseOut,\n    itemPaddingInline,\n    motionDurationMid,\n    itemHoverColor,\n    lineType,\n    colorSplit,\n    // Disabled\n    itemDisabledColor,\n    // Danger\n    dangerItemColor,\n    dangerItemHoverColor,\n    dangerItemSelectedColor,\n    dangerItemActiveBg,\n    dangerItemSelectedBg,\n    // Bg\n    popupBg,\n    itemHoverBg,\n    itemActiveBg,\n    menuSubMenuBg,\n    // Horizontal\n    horizontalItemSelectedColor,\n    horizontalItemSelectedBg,\n    horizontalItemBorderRadius,\n    horizontalItemHoverBg\n  } = token;\n  return {\n    [`${componentCls}-${themeSuffix}, ${componentCls}-${themeSuffix} > ${componentCls}`]: {\n      color: itemColor,\n      background: itemBg,\n      [`&${componentCls}-root:focus-visible`]: Object.assign({}, accessibilityFocus(token)),\n      // ======================== Item ========================\n      [`${componentCls}-item`]: {\n        '&-group-title, &-extra': {\n          color: groupTitleColor\n        }\n      },\n      [`${componentCls}-submenu-selected > ${componentCls}-submenu-title`]: {\n        color: subMenuItemSelectedColor\n      },\n      [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n        color: itemColor,\n        [`&:not(${componentCls}-item-disabled):focus-visible`]: Object.assign({}, accessibilityFocus(token))\n      },\n      // Disabled\n      [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n        color: `${itemDisabledColor} !important`\n      },\n      // Hover\n      [`${componentCls}-item:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n        [`&:hover, > ${componentCls}-submenu-title:hover`]: {\n          color: itemHoverColor\n        }\n      },\n      [`&:not(${componentCls}-horizontal)`]: {\n        [`${componentCls}-item:not(${componentCls}-item-selected)`]: {\n          '&:hover': {\n            backgroundColor: itemHoverBg\n          },\n          '&:active': {\n            backgroundColor: itemActiveBg\n          }\n        },\n        [`${componentCls}-submenu-title`]: {\n          '&:hover': {\n            backgroundColor: itemHoverBg\n          },\n          '&:active': {\n            backgroundColor: itemActiveBg\n          }\n        }\n      },\n      // Danger - only Item has\n      [`${componentCls}-item-danger`]: {\n        color: dangerItemColor,\n        [`&${componentCls}-item:hover`]: {\n          [`&:not(${componentCls}-item-selected):not(${componentCls}-submenu-selected)`]: {\n            color: dangerItemHoverColor\n          }\n        },\n        [`&${componentCls}-item:active`]: {\n          background: dangerItemActiveBg\n        }\n      },\n      [`${componentCls}-item a`]: {\n        '&, &:hover': {\n          color: 'inherit'\n        }\n      },\n      [`${componentCls}-item-selected`]: {\n        color: itemSelectedColor,\n        // Danger\n        [`&${componentCls}-item-danger`]: {\n          color: dangerItemSelectedColor\n        },\n        'a, a:hover': {\n          color: 'inherit'\n        }\n      },\n      [`& ${componentCls}-item-selected`]: {\n        backgroundColor: itemSelectedBg,\n        // Danger\n        [`&${componentCls}-item-danger`]: {\n          backgroundColor: dangerItemSelectedBg\n        }\n      },\n      [`&${componentCls}-submenu > ${componentCls}`]: {\n        backgroundColor: menuSubMenuBg\n      },\n      // ===== 设置浮层的颜色 =======\n      // !dark 模式会被popupBg 会被rest 为 darkPopupBg\n      [`&${componentCls}-popup > ${componentCls}`]: {\n        backgroundColor: popupBg\n      },\n      [`&${componentCls}-submenu-popup > ${componentCls}`]: {\n        backgroundColor: popupBg\n      },\n      // ===== 设置浮层的颜色 end =======\n      // ====================== Horizontal ======================\n      [`&${componentCls}-horizontal`]: Object.assign(Object.assign({}, themeSuffix === 'dark' ? {\n        borderBottom: 0\n      } : {}), {\n        [`> ${componentCls}-item, > ${componentCls}-submenu`]: {\n          top: activeBarBorderWidth,\n          marginTop: token.calc(activeBarBorderWidth).mul(-1).equal(),\n          marginBottom: 0,\n          borderRadius: horizontalItemBorderRadius,\n          '&::after': {\n            position: 'absolute',\n            insetInline: itemPaddingInline,\n            bottom: 0,\n            borderBottom: `${unit(activeBarHeight)} solid transparent`,\n            transition: `border-color ${motionDurationSlow} ${motionEaseInOut}`,\n            content: '\"\"'\n          },\n          '&:hover, &-active, &-open': {\n            background: horizontalItemHoverBg,\n            '&::after': {\n              borderBottomWidth: activeBarHeight,\n              borderBottomColor: horizontalItemSelectedColor\n            }\n          },\n          '&-selected': {\n            color: horizontalItemSelectedColor,\n            backgroundColor: horizontalItemSelectedBg,\n            '&:hover': {\n              backgroundColor: horizontalItemSelectedBg\n            },\n            '&::after': {\n              borderBottomWidth: activeBarHeight,\n              borderBottomColor: horizontalItemSelectedColor\n            }\n          }\n        }\n      }),\n      // ================== Inline & Vertical ===================\n      //\n      [`&${componentCls}-root`]: {\n        [`&${componentCls}-inline, &${componentCls}-vertical`]: {\n          borderInlineEnd: `${unit(activeBarBorderWidth)} ${lineType} ${colorSplit}`\n        }\n      },\n      // ======================== Inline ========================\n      [`&${componentCls}-inline`]: {\n        // Sub\n        [`${componentCls}-sub${componentCls}-inline`]: {\n          background: subMenuItemBg\n        },\n        [`${componentCls}-item`]: {\n          position: 'relative',\n          '&::after': {\n            position: 'absolute',\n            insetBlock: 0,\n            insetInlineEnd: 0,\n            borderInlineEnd: `${unit(activeBarWidth)} solid ${itemSelectedColor}`,\n            transform: 'scaleY(0.0001)',\n            opacity: 0,\n            transition: [`transform ${motionDurationMid} ${motionEaseOut}`, `opacity ${motionDurationMid} ${motionEaseOut}`].join(','),\n            content: '\"\"'\n          },\n          // Danger\n          [`&${componentCls}-item-danger`]: {\n            '&::after': {\n              borderInlineEndColor: dangerItemSelectedColor\n            }\n          }\n        },\n        [`${componentCls}-selected, ${componentCls}-item-selected`]: {\n          '&::after': {\n            transform: 'scaleY(1)',\n            opacity: 1,\n            transition: [`transform ${motionDurationMid} ${motionEaseInOut}`, `opacity ${motionDurationMid} ${motionEaseInOut}`].join(',')\n          }\n        }\n      }\n    }\n  };\n};\nexport default getThemeStyle;","import { unit } from '@ant-design/cssinjs';\nimport { textEllipsis } from '../../style';\nconst getVerticalInlineStyle = token => {\n  const {\n    componentCls,\n    itemHeight,\n    itemMarginInline,\n    padding,\n    menuArrowSize,\n    marginXS,\n    itemMarginBlock,\n    itemWidth,\n    itemPaddingInline\n  } = token;\n  const paddingWithArrow = token.calc(menuArrowSize).add(padding).add(marginXS).equal();\n  return {\n    [`${componentCls}-item`]: {\n      position: 'relative',\n      overflow: 'hidden'\n    },\n    [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n      height: itemHeight,\n      lineHeight: unit(itemHeight),\n      paddingInline: itemPaddingInline,\n      overflow: 'hidden',\n      textOverflow: 'ellipsis',\n      marginInline: itemMarginInline,\n      marginBlock: itemMarginBlock,\n      width: itemWidth\n    },\n    [`> ${componentCls}-item,\n            > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n      height: itemHeight,\n      lineHeight: unit(itemHeight)\n    },\n    [`${componentCls}-item-group-list ${componentCls}-submenu-title,\n            ${componentCls}-submenu-title`]: {\n      paddingInlineEnd: paddingWithArrow\n    }\n  };\n};\nconst getVerticalStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    itemHeight,\n    colorTextLightSolid,\n    dropdownWidth,\n    controlHeightLG,\n    motionEaseOut,\n    paddingXL,\n    itemMarginInline,\n    fontSizeLG,\n    motionDurationFast,\n    motionDurationSlow,\n    paddingXS,\n    boxShadowSecondary,\n    collapsedWidth,\n    collapsedIconSize\n  } = token;\n  const inlineItemStyle = {\n    height: itemHeight,\n    lineHeight: unit(itemHeight),\n    listStylePosition: 'inside',\n    listStyleType: 'disc'\n  };\n  return [{\n    [componentCls]: {\n      '&-inline, &-vertical': Object.assign({\n        [`&${componentCls}-root`]: {\n          boxShadow: 'none'\n        }\n      }, getVerticalInlineStyle(token))\n    },\n    [`${componentCls}-submenu-popup`]: {\n      [`${componentCls}-vertical`]: Object.assign(Object.assign({}, getVerticalInlineStyle(token)), {\n        boxShadow: boxShadowSecondary\n      })\n    }\n  },\n  // Vertical only\n  {\n    [`${componentCls}-submenu-popup ${componentCls}-vertical${componentCls}-sub`]: {\n      minWidth: dropdownWidth,\n      maxHeight: `calc(100vh - ${unit(token.calc(controlHeightLG).mul(2.5).equal())})`,\n      padding: '0',\n      overflow: 'hidden',\n      borderInlineEnd: 0,\n      // https://github.com/ant-design/ant-design/issues/22244\n      // https://github.com/ant-design/ant-design/issues/26812\n      \"&:not([class*='-active'])\": {\n        overflowX: 'hidden',\n        overflowY: 'auto'\n      }\n    }\n  },\n  // Inline Only\n  {\n    [`${componentCls}-inline`]: {\n      width: '100%',\n      // Motion enhance for first level\n      [`&${componentCls}-root`]: {\n        [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n          display: 'flex',\n          alignItems: 'center',\n          transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding ${motionDurationFast} ${motionEaseOut}`].join(','),\n          [`> ${componentCls}-title-content`]: {\n            flex: 'auto',\n            minWidth: 0,\n            overflow: 'hidden',\n            textOverflow: 'ellipsis'\n          },\n          '> *': {\n            flex: 'none'\n          }\n        }\n      },\n      // >>>>> Sub\n      [`${componentCls}-sub${componentCls}-inline`]: {\n        padding: 0,\n        border: 0,\n        borderRadius: 0,\n        boxShadow: 'none',\n        [`& > ${componentCls}-submenu > ${componentCls}-submenu-title`]: inlineItemStyle,\n        [`& ${componentCls}-item-group-title`]: {\n          paddingInlineStart: paddingXL\n        }\n      },\n      // >>>>> Item\n      [`${componentCls}-item`]: inlineItemStyle\n    }\n  },\n  // Inline Collapse Only\n  {\n    [`${componentCls}-inline-collapsed`]: {\n      width: collapsedWidth,\n      [`&${componentCls}-root`]: {\n        [`${componentCls}-item, ${componentCls}-submenu ${componentCls}-submenu-title`]: {\n          [`> ${componentCls}-inline-collapsed-noicon`]: {\n            fontSize: fontSizeLG,\n            textAlign: 'center'\n          }\n        }\n      },\n      [`> ${componentCls}-item,\n          > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-item,\n          > ${componentCls}-item-group > ${componentCls}-item-group-list > ${componentCls}-submenu > ${componentCls}-submenu-title,\n          > ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n        insetInlineStart: 0,\n        paddingInline: `calc(50% - ${unit(token.calc(collapsedIconSize).div(2).equal())} - ${unit(itemMarginInline)})`,\n        textOverflow: 'clip',\n        [`\n            ${componentCls}-submenu-arrow,\n            ${componentCls}-submenu-expand-icon\n          `]: {\n          opacity: 0\n        },\n        [`${componentCls}-item-icon, ${iconCls}`]: {\n          margin: 0,\n          fontSize: collapsedIconSize,\n          lineHeight: unit(itemHeight),\n          '+ span': {\n            display: 'inline-block',\n            opacity: 0\n          }\n        }\n      },\n      [`${componentCls}-item-icon, ${iconCls}`]: {\n        display: 'inline-block'\n      },\n      '&-tooltip': {\n        pointerEvents: 'none',\n        [`${componentCls}-item-icon, ${iconCls}`]: {\n          display: 'none'\n        },\n        'a, a:hover': {\n          color: colorTextLightSolid\n        }\n      },\n      [`${componentCls}-item-group-title`]: Object.assign(Object.assign({}, textEllipsis), {\n        paddingInline: paddingXS\n      })\n    }\n  }];\n};\nexport default getVerticalStyle;","import { unit } from '@ant-design/cssinjs';\nimport { FastColor } from '@ant-design/fast-color';\nimport { clearFix, resetComponent, resetIcon } from '../../style';\nimport { genCollapseMotion, initSlideMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport getHorizontalStyle from './horizontal';\nimport getRTLStyle from './rtl';\nimport getThemeStyle from './theme';\nimport getVerticalStyle from './vertical';\nconst genMenuItemStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    motionEaseOut,\n    iconCls,\n    iconSize,\n    iconMarginInlineEnd\n  } = token;\n  return {\n    // >>>>> Item\n    [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n      position: 'relative',\n      display: 'block',\n      margin: 0,\n      whiteSpace: 'nowrap',\n      cursor: 'pointer',\n      transition: [`border-color ${motionDurationSlow}`, `background ${motionDurationSlow}`, `padding calc(${motionDurationSlow} + 0.1s) ${motionEaseInOut}`].join(','),\n      [`${componentCls}-item-icon, ${iconCls}`]: {\n        minWidth: iconSize,\n        fontSize: iconSize,\n        transition: [`font-size ${motionDurationMid} ${motionEaseOut}`, `margin ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow}`].join(','),\n        '+ span': {\n          marginInlineStart: iconMarginInlineEnd,\n          opacity: 1,\n          transition: [`opacity ${motionDurationSlow} ${motionEaseInOut}`, `margin ${motionDurationSlow}`, `color ${motionDurationSlow}`].join(',')\n        }\n      },\n      [`${componentCls}-item-icon`]: Object.assign({}, resetIcon()),\n      [`&${componentCls}-item-only-child`]: {\n        [`> ${iconCls}, > ${componentCls}-item-icon`]: {\n          marginInlineEnd: 0\n        }\n      }\n    },\n    // Disabled state sets text to gray and nukes hover/tab effects\n    [`${componentCls}-item-disabled, ${componentCls}-submenu-disabled`]: {\n      background: 'none !important',\n      cursor: 'not-allowed',\n      '&::after': {\n        borderColor: 'transparent !important'\n      },\n      a: {\n        color: 'inherit !important',\n        cursor: 'not-allowed',\n        pointerEvents: 'none'\n      },\n      [`> ${componentCls}-submenu-title`]: {\n        color: 'inherit !important',\n        cursor: 'not-allowed'\n      }\n    }\n  };\n};\nconst genSubMenuArrowStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    motionEaseInOut,\n    borderRadius,\n    menuArrowSize,\n    menuArrowOffset\n  } = token;\n  return {\n    [`${componentCls}-submenu`]: {\n      '&-expand-icon, &-arrow': {\n        position: 'absolute',\n        top: '50%',\n        insetInlineEnd: token.margin,\n        width: menuArrowSize,\n        color: 'currentcolor',\n        transform: 'translateY(-50%)',\n        transition: `transform ${motionDurationSlow} ${motionEaseInOut}, opacity ${motionDurationSlow}`\n      },\n      '&-arrow': {\n        // →\n        '&::before, &::after': {\n          position: 'absolute',\n          width: token.calc(menuArrowSize).mul(0.6).equal(),\n          height: token.calc(menuArrowSize).mul(0.15).equal(),\n          backgroundColor: 'currentcolor',\n          borderRadius,\n          transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `transform ${motionDurationSlow} ${motionEaseInOut}`, `top ${motionDurationSlow} ${motionEaseInOut}`, `color ${motionDurationSlow} ${motionEaseInOut}`].join(','),\n          content: '\"\"'\n        },\n        '&::before': {\n          transform: `rotate(45deg) translateY(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::after': {\n          transform: `rotate(-45deg) translateY(${unit(menuArrowOffset)})`\n        }\n      }\n    }\n  };\n};\n// =============================== Base ===============================\nconst getBaseStyle = token => {\n  const {\n    antCls,\n    componentCls,\n    fontSize,\n    motionDurationSlow,\n    motionDurationMid,\n    motionEaseInOut,\n    paddingXS,\n    padding,\n    colorSplit,\n    lineWidth,\n    zIndexPopup,\n    borderRadiusLG,\n    subMenuItemBorderRadius,\n    menuArrowSize,\n    menuArrowOffset,\n    lineType,\n    groupTitleLineHeight,\n    groupTitleFontSize\n  } = token;\n  return [\n  // Misc\n  {\n    '': {\n      [componentCls]: Object.assign(Object.assign({}, clearFix()), {\n        // Hidden\n        '&-hidden': {\n          display: 'none'\n        }\n      })\n    },\n    [`${componentCls}-submenu-hidden`]: {\n      display: 'none'\n    }\n  }, {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), clearFix()), {\n      marginBottom: 0,\n      paddingInlineStart: 0,\n      // Override default ul/ol\n      fontSize,\n      lineHeight: 0,\n      listStyle: 'none',\n      outline: 'none',\n      // Magic cubic here but smooth transition\n      transition: `width ${motionDurationSlow} cubic-bezier(0.2, 0, 0, 1) 0s`,\n      'ul, ol': {\n        margin: 0,\n        padding: 0,\n        listStyle: 'none'\n      },\n      // Overflow ellipsis\n      '&-overflow': {\n        display: 'flex',\n        [`${componentCls}-item`]: {\n          flex: 'none'\n        }\n      },\n      [`${componentCls}-item, ${componentCls}-submenu, ${componentCls}-submenu-title`]: {\n        borderRadius: token.itemBorderRadius\n      },\n      [`${componentCls}-item-group-title`]: {\n        padding: `${unit(paddingXS)} ${unit(padding)}`,\n        fontSize: groupTitleFontSize,\n        lineHeight: groupTitleLineHeight,\n        transition: `all ${motionDurationSlow}`\n      },\n      [`&-horizontal ${componentCls}-submenu`]: {\n        transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-submenu, ${componentCls}-submenu-inline`]: {\n        transition: [`border-color ${motionDurationSlow} ${motionEaseInOut}`, `background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationMid} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-submenu ${componentCls}-sub`]: {\n        cursor: 'initial',\n        transition: [`background ${motionDurationSlow} ${motionEaseInOut}`, `padding ${motionDurationSlow} ${motionEaseInOut}`].join(',')\n      },\n      [`${componentCls}-title-content`]: {\n        transition: `color ${motionDurationSlow}`,\n        '&-with-extra': {\n          display: 'inline-flex',\n          alignItems: 'center',\n          width: '100%'\n        },\n        // https://github.com/ant-design/ant-design/issues/41143\n        [`> ${antCls}-typography-ellipsis-single-line`]: {\n          display: 'inline',\n          verticalAlign: 'unset'\n        },\n        [`${componentCls}-item-extra`]: {\n          marginInlineStart: 'auto',\n          paddingInlineStart: token.padding\n        }\n      },\n      [`${componentCls}-item a`]: {\n        '&::before': {\n          position: 'absolute',\n          inset: 0,\n          backgroundColor: 'transparent',\n          content: '\"\"'\n        }\n      },\n      // Removed a Badge related style seems it's safe\n      // https://github.com/ant-design/ant-design/issues/19809\n      // >>>>> Divider\n      [`${componentCls}-item-divider`]: {\n        overflow: 'hidden',\n        lineHeight: 0,\n        borderColor: colorSplit,\n        borderStyle: lineType,\n        borderWidth: 0,\n        borderTopWidth: lineWidth,\n        marginBlock: lineWidth,\n        padding: 0,\n        '&-dashed': {\n          borderStyle: 'dashed'\n        }\n      }\n    }), genMenuItemStyle(token)), {\n      [`${componentCls}-item-group`]: {\n        [`${componentCls}-item-group-list`]: {\n          margin: 0,\n          padding: 0,\n          [`${componentCls}-item, ${componentCls}-submenu-title`]: {\n            paddingInline: `${unit(token.calc(fontSize).mul(2).equal())} ${unit(padding)}`\n          }\n        }\n      },\n      // ======================= Sub Menu =======================\n      '&-submenu': {\n        '&-popup': {\n          position: 'absolute',\n          zIndex: zIndexPopup,\n          borderRadius: borderRadiusLG,\n          boxShadow: 'none',\n          transformOrigin: '0 0',\n          [`&${componentCls}-submenu`]: {\n            background: 'transparent'\n          },\n          // https://github.com/ant-design/ant-design/issues/13955\n          '&::before': {\n            position: 'absolute',\n            inset: 0,\n            zIndex: -1,\n            width: '100%',\n            height: '100%',\n            opacity: 0,\n            content: '\"\"'\n          },\n          [`> ${componentCls}`]: Object.assign(Object.assign(Object.assign({\n            borderRadius: borderRadiusLG\n          }, genMenuItemStyle(token)), genSubMenuArrowStyle(token)), {\n            [`${componentCls}-item, ${componentCls}-submenu > ${componentCls}-submenu-title`]: {\n              borderRadius: subMenuItemBorderRadius\n            },\n            [`${componentCls}-submenu-title::after`]: {\n              transition: `transform ${motionDurationSlow} ${motionEaseInOut}`\n            }\n          })\n        },\n        [`\n          &-placement-leftTop,\n          &-placement-bottomRight,\n          `]: {\n          transformOrigin: '100% 0'\n        },\n        [`\n          &-placement-leftBottom,\n          &-placement-topRight,\n          `]: {\n          transformOrigin: '100% 100%'\n        },\n        [`\n          &-placement-rightBottom,\n          &-placement-topLeft,\n          `]: {\n          transformOrigin: '0 100%'\n        },\n        [`\n          &-placement-bottomLeft,\n          &-placement-rightTop,\n          `]: {\n          transformOrigin: '0 0'\n        },\n        [`\n          &-placement-leftTop,\n          &-placement-leftBottom\n          `]: {\n          paddingInlineEnd: token.paddingXS\n        },\n        [`\n          &-placement-rightTop,\n          &-placement-rightBottom\n          `]: {\n          paddingInlineStart: token.paddingXS\n        },\n        [`\n          &-placement-topRight,\n          &-placement-topLeft\n          `]: {\n          paddingBottom: token.paddingXS\n        },\n        [`\n          &-placement-bottomRight,\n          &-placement-bottomLeft\n          `]: {\n          paddingTop: token.paddingXS\n        }\n      }\n    }), genSubMenuArrowStyle(token)), {\n      [`&-inline-collapsed ${componentCls}-submenu-arrow,\n        &-inline ${componentCls}-submenu-arrow`]: {\n        // ↓\n        '&::before': {\n          transform: `rotate(-45deg) translateX(${unit(menuArrowOffset)})`\n        },\n        '&::after': {\n          transform: `rotate(45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        }\n      },\n      [`${componentCls}-submenu-open${componentCls}-submenu-inline > ${componentCls}-submenu-title > ${componentCls}-submenu-arrow`]: {\n        // ↑\n        transform: `translateY(${unit(token.calc(menuArrowSize).mul(0.2).mul(-1).equal())})`,\n        '&::after': {\n          transform: `rotate(-45deg) translateX(${unit(token.calc(menuArrowOffset).mul(-1).equal())})`\n        },\n        '&::before': {\n          transform: `rotate(45deg) translateX(${unit(menuArrowOffset)})`\n        }\n      }\n    })\n  },\n  // Integration with header element so menu items have the same height\n  {\n    [`${antCls}-layout-header`]: {\n      [componentCls]: {\n        lineHeight: 'inherit'\n      }\n    }\n  }];\n};\nexport const prepareComponentToken = token => {\n  var _a, _b, _c;\n  const {\n    colorPrimary,\n    colorError,\n    colorTextDisabled,\n    colorErrorBg,\n    colorText,\n    colorTextDescription,\n    colorBgContainer,\n    colorFillAlter,\n    colorFillContent,\n    lineWidth,\n    lineWidthBold,\n    controlItemBgActive,\n    colorBgTextHover,\n    controlHeightLG,\n    lineHeight,\n    colorBgElevated,\n    marginXXS,\n    padding,\n    fontSize,\n    controlHeightSM,\n    fontSizeLG,\n    colorTextLightSolid,\n    colorErrorHover\n  } = token;\n  const activeBarWidth = (_a = token.activeBarWidth) !== null && _a !== void 0 ? _a : 0;\n  const activeBarBorderWidth = (_b = token.activeBarBorderWidth) !== null && _b !== void 0 ? _b : lineWidth;\n  const itemMarginInline = (_c = token.itemMarginInline) !== null && _c !== void 0 ? _c : token.marginXXS;\n  const colorTextDark = new FastColor(colorTextLightSolid).setA(0.65).toRgbString();\n  return {\n    dropdownWidth: 160,\n    zIndexPopup: token.zIndexPopupBase + 50,\n    radiusItem: token.borderRadiusLG,\n    itemBorderRadius: token.borderRadiusLG,\n    radiusSubMenuItem: token.borderRadiusSM,\n    subMenuItemBorderRadius: token.borderRadiusSM,\n    colorItemText: colorText,\n    itemColor: colorText,\n    colorItemTextHover: colorText,\n    itemHoverColor: colorText,\n    colorItemTextHoverHorizontal: colorPrimary,\n    horizontalItemHoverColor: colorPrimary,\n    colorGroupTitle: colorTextDescription,\n    groupTitleColor: colorTextDescription,\n    colorItemTextSelected: colorPrimary,\n    itemSelectedColor: colorPrimary,\n    subMenuItemSelectedColor: colorPrimary,\n    colorItemTextSelectedHorizontal: colorPrimary,\n    horizontalItemSelectedColor: colorPrimary,\n    colorItemBg: colorBgContainer,\n    itemBg: colorBgContainer,\n    colorItemBgHover: colorBgTextHover,\n    itemHoverBg: colorBgTextHover,\n    colorItemBgActive: colorFillContent,\n    itemActiveBg: controlItemBgActive,\n    colorSubItemBg: colorFillAlter,\n    subMenuItemBg: colorFillAlter,\n    colorItemBgSelected: controlItemBgActive,\n    itemSelectedBg: controlItemBgActive,\n    colorItemBgSelectedHorizontal: 'transparent',\n    horizontalItemSelectedBg: 'transparent',\n    colorActiveBarWidth: 0,\n    activeBarWidth,\n    colorActiveBarHeight: lineWidthBold,\n    activeBarHeight: lineWidthBold,\n    colorActiveBarBorderSize: lineWidth,\n    activeBarBorderWidth,\n    // Disabled\n    colorItemTextDisabled: colorTextDisabled,\n    itemDisabledColor: colorTextDisabled,\n    // Danger\n    colorDangerItemText: colorError,\n    dangerItemColor: colorError,\n    colorDangerItemTextHover: colorError,\n    dangerItemHoverColor: colorError,\n    colorDangerItemTextSelected: colorError,\n    dangerItemSelectedColor: colorError,\n    colorDangerItemBgActive: colorErrorBg,\n    dangerItemActiveBg: colorErrorBg,\n    colorDangerItemBgSelected: colorErrorBg,\n    dangerItemSelectedBg: colorErrorBg,\n    itemMarginInline,\n    horizontalItemBorderRadius: 0,\n    horizontalItemHoverBg: 'transparent',\n    itemHeight: controlHeightLG,\n    groupTitleLineHeight: lineHeight,\n    collapsedWidth: controlHeightLG * 2,\n    popupBg: colorBgElevated,\n    itemMarginBlock: marginXXS,\n    itemPaddingInline: padding,\n    horizontalLineHeight: `${controlHeightLG * 1.15}px`,\n    iconSize: fontSize,\n    iconMarginInlineEnd: controlHeightSM - fontSize,\n    collapsedIconSize: fontSizeLG,\n    groupTitleFontSize: fontSize,\n    // Disabled\n    darkItemDisabledColor: new FastColor(colorTextLightSolid).setA(0.25).toRgbString(),\n    // Dark\n    darkItemColor: colorTextDark,\n    darkDangerItemColor: colorError,\n    darkItemBg: '#001529',\n    darkPopupBg: '#001529',\n    darkSubMenuItemBg: '#000c17',\n    darkItemSelectedColor: colorTextLightSolid,\n    darkItemSelectedBg: colorPrimary,\n    darkDangerItemSelectedBg: colorError,\n    darkItemHoverBg: 'transparent',\n    darkGroupTitleColor: colorTextDark,\n    darkItemHoverColor: colorTextLightSolid,\n    darkDangerItemHoverColor: colorErrorHover,\n    darkDangerItemSelectedColor: colorTextLightSolid,\n    darkDangerItemActiveBg: colorError,\n    // internal\n    itemWidth: activeBarWidth ? `calc(100% + ${activeBarBorderWidth}px)` : `calc(100% - ${itemMarginInline * 2}px)`\n  };\n};\n// ============================== Export ==============================\nexport default (function (prefixCls) {\n  let rootCls = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : prefixCls;\n  let injectStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  const useStyle = genStyleHooks('Menu', token => {\n    const {\n      colorBgElevated,\n      controlHeightLG,\n      fontSize,\n      darkItemColor,\n      darkDangerItemColor,\n      darkItemBg,\n      darkSubMenuItemBg,\n      darkItemSelectedColor,\n      darkItemSelectedBg,\n      darkDangerItemSelectedBg,\n      darkItemHoverBg,\n      darkGroupTitleColor,\n      darkItemHoverColor,\n      darkItemDisabledColor,\n      darkDangerItemHoverColor,\n      darkDangerItemSelectedColor,\n      darkDangerItemActiveBg,\n      popupBg,\n      darkPopupBg\n    } = token;\n    const menuArrowSize = token.calc(fontSize).div(7).mul(5).equal();\n    // Menu Token\n    const menuToken = mergeToken(token, {\n      menuArrowSize,\n      menuHorizontalHeight: token.calc(controlHeightLG).mul(1.15).equal(),\n      menuArrowOffset: token.calc(menuArrowSize).mul(0.25).equal(),\n      menuSubMenuBg: colorBgElevated,\n      calc: token.calc,\n      popupBg\n    });\n    const menuDarkToken = mergeToken(menuToken, {\n      itemColor: darkItemColor,\n      itemHoverColor: darkItemHoverColor,\n      groupTitleColor: darkGroupTitleColor,\n      itemSelectedColor: darkItemSelectedColor,\n      itemBg: darkItemBg,\n      popupBg: darkPopupBg,\n      subMenuItemBg: darkSubMenuItemBg,\n      itemActiveBg: 'transparent',\n      itemSelectedBg: darkItemSelectedBg,\n      activeBarHeight: 0,\n      activeBarBorderWidth: 0,\n      itemHoverBg: darkItemHoverBg,\n      // Disabled\n      itemDisabledColor: darkItemDisabledColor,\n      // Danger\n      dangerItemColor: darkDangerItemColor,\n      dangerItemHoverColor: darkDangerItemHoverColor,\n      dangerItemSelectedColor: darkDangerItemSelectedColor,\n      dangerItemActiveBg: darkDangerItemActiveBg,\n      dangerItemSelectedBg: darkDangerItemSelectedBg,\n      menuSubMenuBg: darkSubMenuItemBg,\n      // Horizontal\n      horizontalItemSelectedColor: darkItemSelectedColor,\n      horizontalItemSelectedBg: darkItemSelectedBg\n    });\n    return [\n    // Basic\n    getBaseStyle(menuToken),\n    // Horizontal\n    getHorizontalStyle(menuToken),\n    // Hard code for some light style\n    // Vertical\n    getVerticalStyle(menuToken),\n    // Hard code for some light style\n    // Theme\n    getThemeStyle(menuToken, 'light'), getThemeStyle(menuDarkToken, 'dark'),\n    // RTL\n    getRTLStyle(menuToken),\n    // Motion\n    genCollapseMotion(menuToken), initSlideMotion(menuToken, 'slide-up'), initSlideMotion(menuToken, 'slide-down'), initZoomMotion(menuToken, 'zoom-big')];\n  }, prepareComponentToken, {\n    deprecatedTokens: [['colorGroupTitle', 'groupTitleColor'], ['radiusItem', 'itemBorderRadius'], ['radiusSubMenuItem', 'subMenuItemBorderRadius'], ['colorItemText', 'itemColor'], ['colorItemTextHover', 'itemHoverColor'], ['colorItemTextHoverHorizontal', 'horizontalItemHoverColor'], ['colorItemTextSelected', 'itemSelectedColor'], ['colorItemTextSelectedHorizontal', 'horizontalItemSelectedColor'], ['colorItemTextDisabled', 'itemDisabledColor'], ['colorDangerItemText', 'dangerItemColor'], ['colorDangerItemTextHover', 'dangerItemHoverColor'], ['colorDangerItemTextSelected', 'dangerItemSelectedColor'], ['colorDangerItemBgActive', 'dangerItemActiveBg'], ['colorDangerItemBgSelected', 'dangerItemSelectedBg'], ['colorItemBg', 'itemBg'], ['colorItemBgHover', 'itemHoverBg'], ['colorSubItemBg', 'subMenuItemBg'], ['colorItemBgActive', 'itemActiveBg'], ['colorItemBgSelectedHorizontal', 'horizontalItemSelectedBg'], ['colorActiveBarWidth', 'activeBarWidth'], ['colorActiveBarHeight', 'activeBarHeight'], ['colorActiveBarBorderSize', 'activeBarBorderWidth'], ['colorItemBgSelected', 'itemSelectedBg']],\n    // Dropdown will handle menu style self. We do not need to handle this.\n    injectStyle,\n    unitless: {\n      groupTitleLineHeight: true\n    }\n  });\n  return useStyle(prefixCls, rootCls);\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { SubMenu as RcSubMenu, useFullPath } from 'rc-menu';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { cloneElement } from '../_util/reactNode';\nimport MenuContext from './MenuContext';\nconst SubMenu = props => {\n  var _a;\n  const {\n    popupClassName,\n    icon,\n    title,\n    theme: customTheme\n  } = props;\n  const context = React.useContext(MenuContext);\n  const {\n    prefixCls,\n    inlineCollapsed,\n    theme: contextTheme\n  } = context;\n  const parentPath = useFullPath();\n  let titleNode;\n  if (!icon) {\n    titleNode = inlineCollapsed && !parentPath.length && title && typeof title === 'string' ? (/*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-inline-collapsed-noicon`\n    }, title.charAt(0))) : (/*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-title-content`\n    }, title));\n  } else {\n    // inline-collapsed.md demo 依赖 span 来隐藏文字,有 icon 属性,则内部包裹一个 span\n    // ref: https://github.com/ant-design/ant-design/pull/23456\n    const titleIsSpan = /*#__PURE__*/React.isValidElement(title) && title.type === 'span';\n    titleNode = /*#__PURE__*/React.createElement(React.Fragment, null, cloneElement(icon, {\n      className: classNames(/*#__PURE__*/React.isValidElement(icon) ? (_a = icon.props) === null || _a === void 0 ? void 0 : _a.className : '', `${prefixCls}-item-icon`)\n    }), titleIsSpan ? title : /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-title-content`\n    }, title));\n  }\n  const contextValue = React.useMemo(() => Object.assign(Object.assign({}, context), {\n    firstLevel: false\n  }), [context]);\n  // ============================ zIndex ============================\n  const [zIndex] = useZIndex('Menu');\n  return /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(RcSubMenu, Object.assign({}, omit(props, ['icon']), {\n    title: titleNode,\n    popupClassName: classNames(prefixCls, popupClassName, `${prefixCls}-${customTheme || contextTheme}`),\n    popupStyle: Object.assign({\n      zIndex\n    }, props.popupStyle)\n  })));\n};\nexport default SubMenu;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { forwardRef } from 'react';\nimport EllipsisOutlined from \"@ant-design/icons/es/icons/EllipsisOutlined\";\nimport classNames from 'classnames';\nimport RcMenu from 'rc-menu';\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport omit from \"rc-util/es/omit\";\nimport initCollapseMotion from '../_util/motion';\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport MenuContext from './MenuContext';\nimport Divider from './MenuDivider';\nimport MenuItem from './MenuItem';\nimport OverrideContext from './OverrideContext';\nimport useStyle from './style';\nimport SubMenu from './SubMenu';\nfunction isEmptyIcon(icon) {\n  return icon === null || icon === false;\n}\nconst MENU_COMPONENTS = {\n  item: MenuItem,\n  submenu: SubMenu,\n  divider: Divider\n};\nconst InternalMenu = /*#__PURE__*/forwardRef((props, ref) => {\n  var _a;\n  const override = React.useContext(OverrideContext);\n  const overrideObj = override || {};\n  const {\n    getPrefixCls,\n    getPopupContainer,\n    direction,\n    menu\n  } = React.useContext(ConfigContext);\n  const rootPrefixCls = getPrefixCls();\n  const {\n      prefixCls: customizePrefixCls,\n      className,\n      style,\n      theme = 'light',\n      expandIcon,\n      _internalDisableMenuItemTitleTooltip,\n      inlineCollapsed,\n      siderCollapsed,\n      rootClassName,\n      mode,\n      selectable,\n      onClick,\n      overflowedIndicatorPopupClassName\n    } = props,\n    restProps = __rest(props, [\"prefixCls\", \"className\", \"style\", \"theme\", \"expandIcon\", \"_internalDisableMenuItemTitleTooltip\", \"inlineCollapsed\", \"siderCollapsed\", \"rootClassName\", \"mode\", \"selectable\", \"onClick\", \"overflowedIndicatorPopupClassName\"]);\n  const passedProps = omit(restProps, ['collapsedWidth']);\n  // ======================== Warning ==========================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Menu');\n    process.env.NODE_ENV !== \"production\" ? warning(!('inlineCollapsed' in props && mode !== 'inline'), 'usage', '`inlineCollapsed` should only be used when `mode` is inline.') : void 0;\n    warning.deprecated('items' in props && !props.children, 'children', 'items');\n  }\n  (_a = overrideObj.validator) === null || _a === void 0 ? void 0 : _a.call(overrideObj, {\n    mode\n  });\n  // ========================== Click ==========================\n  // Tell dropdown that item clicked\n  const onItemClick = useEvent(function () {\n    var _a;\n    onClick === null || onClick === void 0 ? void 0 : onClick.apply(void 0, arguments);\n    (_a = overrideObj.onClick) === null || _a === void 0 ? void 0 : _a.call(overrideObj);\n  });\n  // ========================== Mode ===========================\n  const mergedMode = overrideObj.mode || mode;\n  // ======================= Selectable ========================\n  const mergedSelectable = selectable !== null && selectable !== void 0 ? selectable : overrideObj.selectable;\n  // ======================== Collapsed ========================\n  // Inline Collapsed\n  const mergedInlineCollapsed = inlineCollapsed !== null && inlineCollapsed !== void 0 ? inlineCollapsed : siderCollapsed;\n  const defaultMotions = {\n    horizontal: {\n      motionName: `${rootPrefixCls}-slide-up`\n    },\n    inline: initCollapseMotion(rootPrefixCls),\n    other: {\n      motionName: `${rootPrefixCls}-zoom-big`\n    }\n  };\n  const prefixCls = getPrefixCls('menu', customizePrefixCls || overrideObj.prefixCls);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls, !override);\n  const menuClassName = classNames(`${prefixCls}-${theme}`, menu === null || menu === void 0 ? void 0 : menu.className, className);\n  // ====================== ExpandIcon ========================\n  const mergedExpandIcon = React.useMemo(() => {\n    var _a, _b;\n    if (typeof expandIcon === 'function' || isEmptyIcon(expandIcon)) {\n      return expandIcon || null;\n    }\n    if (typeof overrideObj.expandIcon === 'function' || isEmptyIcon(overrideObj.expandIcon)) {\n      return overrideObj.expandIcon || null;\n    }\n    if (typeof (menu === null || menu === void 0 ? void 0 : menu.expandIcon) === 'function' || isEmptyIcon(menu === null || menu === void 0 ? void 0 : menu.expandIcon)) {\n      return (menu === null || menu === void 0 ? void 0 : menu.expandIcon) || null;\n    }\n    const mergedIcon = (_a = expandIcon !== null && expandIcon !== void 0 ? expandIcon : overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon) !== null && _a !== void 0 ? _a : menu === null || menu === void 0 ? void 0 : menu.expandIcon;\n    return cloneElement(mergedIcon, {\n      className: classNames(`${prefixCls}-submenu-expand-icon`, /*#__PURE__*/React.isValidElement(mergedIcon) ? (_b = mergedIcon.props) === null || _b === void 0 ? void 0 : _b.className : undefined)\n    });\n  }, [expandIcon, overrideObj === null || overrideObj === void 0 ? void 0 : overrideObj.expandIcon, menu === null || menu === void 0 ? void 0 : menu.expandIcon, prefixCls]);\n  // ======================== Context ==========================\n  const contextValue = React.useMemo(() => ({\n    prefixCls,\n    inlineCollapsed: mergedInlineCollapsed || false,\n    direction,\n    firstLevel: true,\n    theme,\n    mode: mergedMode,\n    disableMenuItemTitleTooltip: _internalDisableMenuItemTitleTooltip\n  }), [prefixCls, mergedInlineCollapsed, direction, _internalDisableMenuItemTitleTooltip, theme]);\n  // ========================= Render ==========================\n  return wrapCSSVar(/*#__PURE__*/React.createElement(OverrideContext.Provider, {\n    value: null\n  }, /*#__PURE__*/React.createElement(MenuContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(RcMenu, Object.assign({\n    getPopupContainer: getPopupContainer,\n    overflowedIndicator: /*#__PURE__*/React.createElement(EllipsisOutlined, null),\n    overflowedIndicatorPopupClassName: classNames(prefixCls, `${prefixCls}-${theme}`, overflowedIndicatorPopupClassName),\n    mode: mergedMode,\n    selectable: mergedSelectable,\n    onClick: onItemClick\n  }, passedProps, {\n    inlineCollapsed: mergedInlineCollapsed,\n    style: Object.assign(Object.assign({}, menu === null || menu === void 0 ? void 0 : menu.style), style),\n    className: menuClassName,\n    prefixCls: prefixCls,\n    direction: direction,\n    defaultMotions: defaultMotions,\n    expandIcon: mergedExpandIcon,\n    ref: ref,\n    rootClassName: classNames(rootClassName, hashId, overrideObj.rootClassName, cssVarCls, rootCls),\n    _internalComponents: MENU_COMPONENTS\n  })))));\n});\nexport default InternalMenu;","\"use client\";\n\nimport * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\nimport { ItemGroup } from 'rc-menu';\nimport { SiderContext } from '../layout/Sider';\nimport InternalMenu from './menu';\nimport MenuDivider from './MenuDivider';\nimport Item from './MenuItem';\nimport SubMenu from './SubMenu';\nconst Menu = /*#__PURE__*/forwardRef((props, ref) => {\n  const menuRef = useRef(null);\n  const context = React.useContext(SiderContext);\n  useImperativeHandle(ref, () => ({\n    menu: menuRef.current,\n    focus: options => {\n      var _a;\n      (_a = menuRef.current) === null || _a === void 0 ? void 0 : _a.focus(options);\n    }\n  }));\n  return /*#__PURE__*/React.createElement(InternalMenu, Object.assign({\n    ref: menuRef\n  }, props, context));\n});\nMenu.Item = Item;\nMenu.SubMenu = SubMenu;\nMenu.Divider = MenuDivider;\nMenu.ItemGroup = ItemGroup;\nif (process.env.NODE_ENV !== 'production') {\n  Menu.displayName = 'Menu';\n}\nexport default Menu;","// This icon file is generated automatically.\nvar HomeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z\" } }] }, \"name\": \"home\", \"theme\": \"outlined\" };\nexport default HomeOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport HomeOutlinedSvg from \"@ant-design/icons-svg/es/asn/HomeOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar HomeOutlined = function HomeOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: HomeOutlinedSvg\n  }));\n};\n\n/**![home](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk0Ni41IDUwNUw1NjAuMSAxMTguOGwtMjUuOS0yNS45YTMxLjUgMzEuNSAwIDAwLTQ0LjQgMEw3Ny41IDUwNWE2My45IDYzLjkgMCAwMC0xOC44IDQ2Yy40IDM1LjIgMjkuNyA2My4zIDY0LjkgNjMuM2g0Mi41Vjk0MGg2OTEuOFY2MTQuM2g0My40YzE3LjEgMCAzMy4yLTYuNyA0NS4zLTE4LjhhNjMuNiA2My42IDAgMDAxOC43LTQ1LjNjMC0xNy02LjctMzMuMS0xOC44LTQ1LjJ6TTU2OCA4NjhINDU2VjY2NGgxMTJ2MjA0em0yMTcuOS0zMjUuN1Y4NjhINjMyVjY0MGMwLTIyLjEtMTcuOS00MC00MC00MEg0MzJjLTIyLjEgMC00MCAxNy45LTQwIDQwdjIyOEgyMzguMVY1NDIuM2gtOTZsMzcwLTM2OS43IDIzLjEgMjMuMUw4ODIgNTQyLjNoLTk2LjF6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(HomeOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'HomeOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UserOutlined = function UserOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: UserOutlinedSvg\n  }));\n};\n\n/**![user](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC41IDc2My42YTM3NCAzNzQgMCAwMC04MC42LTExOS41IDM3NS42MyAzNzUuNjMgMCAwMC0xMTkuNS04MC42Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjUgNTE4IDc2MCA0NDQuNyA3NjAgMzYyYzAtMTM3LTExMS0yNDgtMjQ4LTI0OFMyNjQgMjI1IDI2NCAzNjJjMCA4Mi43IDQwLjUgMTU2IDEwMi44IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC44IDE4LjktODUgNDYtMTE5LjUgODAuNmEzNzUuNjMgMzc1LjYzIDAgMDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAwMTM2IDkwMS44YTggOCAwIDAwOCA4LjJoNjBjNC40IDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzMtMTQ5LjUgODcuOC0yMDQuMyA1Ni43LTU2LjcgMTMyLTg3LjkgMjEyLjItODcuOXMxNTUuNSAzMS4yIDIxMi4yIDg3LjlDNzc5IDc1Mi43IDgxMCA4MjUgODEyIDkwMi4yYy4xIDQuNCAzLjYgNy44IDggNy44aDYwYTggOCAwIDAwOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar ContainerOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 64H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V96c0-17.7-14.3-32-32-32zm-40 824H232V687h97.9c11.6 32.8 32 62.3 59.1 84.7 34.5 28.5 78.2 44.3 123 44.3s88.5-15.7 123-44.3c27.1-22.4 47.5-51.9 59.1-84.7H792v-63H643.6l-5.2 24.7C626.4 708.5 573.2 752 512 752s-114.4-43.5-126.5-103.3l-5.2-24.7H232V136h560v752zM320 341h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm0 160h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"container\", \"theme\": \"outlined\" };\nexport default ContainerOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ContainerOutlinedSvg from \"@ant-design/icons-svg/es/asn/ContainerOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ContainerOutlined = function ContainerOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: ContainerOutlinedSvg\n  }));\n};\n\n/**![container](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA2NEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWOTZjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00MCA4MjRIMjMyVjY4N2g5Ny45YzExLjYgMzIuOCAzMiA2Mi4zIDU5LjEgODQuNyAzNC41IDI4LjUgNzguMiA0NC4zIDEyMyA0NC4zczg4LjUtMTUuNyAxMjMtNDQuM2MyNy4xLTIyLjQgNDcuNS01MS45IDU5LjEtODQuN0g3OTJ2LTYzSDY0My42bC01LjIgMjQuN0M2MjYuNCA3MDguNSA1NzMuMiA3NTIgNTEyIDc1MnMtMTE0LjQtNDMuNS0xMjYuNS0xMDMuM2wtNS4yLTI0LjdIMjMyVjEzNmg1NjB2NzUyek0zMjAgMzQxaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6bTAgMTYwaDM4NGM0LjQgMCA4LTMuNiA4LTh2LTQ4YzAtNC40LTMuNi04LTgtOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDh6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ContainerOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'ContainerOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SettingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z\" } }] }, \"name\": \"setting\", \"theme\": \"outlined\" };\nexport default SettingOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SettingOutlinedSvg from \"@ant-design/icons-svg/es/asn/SettingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SettingOutlined = function SettingOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: SettingOutlinedSvg\n  }));\n};\n\n/**![setting](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNC44IDYyNS43bC02NS41LTU2YzMuMS0xOSA0LjctMzguNCA0LjctNTcuOHMtMS42LTM4LjgtNC43LTU3LjhsNjUuNS01NmEzMi4wMyAzMi4wMyAwIDAwOS4zLTM1LjJsLS45LTIuNmE0NDMuNzQgNDQzLjc0IDAgMDAtNzkuNy0xMzcuOWwtMS44LTIuMWEzMi4xMiAzMi4xMiAwIDAwLTM1LjEtOS41bC04MS4zIDI4LjljLTMwLTI0LjYtNjMuNS00NC05OS43LTU3LjZsLTE1LjctODVhMzIuMDUgMzIuMDUgMCAwMC0yNS44LTI1LjdsLTIuNy0uNWMtNTIuMS05LjQtMTA2LjktOS40LTE1OSAwbC0yLjcuNWEzMi4wNSAzMi4wNSAwIDAwLTI1LjggMjUuN2wtMTUuOCA4NS40YTM1MS44NiAzNTEuODYgMCAwMC05OSA1Ny40bC04MS45LTI5LjFhMzIgMzIgMCAwMC0zNS4xIDkuNWwtMS44IDIuMWE0NDYuMDIgNDQ2LjAyIDAgMDAtNzkuNyAxMzcuOWwtLjkgMi42Yy00LjUgMTIuNS0uOCAyNi41IDkuMyAzNS4ybDY2LjMgNTYuNmMtMy4xIDE4LjgtNC42IDM4LTQuNiA1Ny4xIDAgMTkuMiAxLjUgMzguNCA0LjYgNTcuMUw5OSA2MjUuNWEzMi4wMyAzMi4wMyAwIDAwLTkuMyAzNS4ybC45IDIuNmMxOC4xIDUwLjQgNDQuOSA5Ni45IDc5LjcgMTM3LjlsMS44IDIuMWEzMi4xMiAzMi4xMiAwIDAwMzUuMSA5LjVsODEuOS0yOS4xYzI5LjggMjQuNSA2My4xIDQzLjkgOTkgNTcuNGwxNS44IDg1LjRhMzIuMDUgMzIuMDUgMCAwMDI1LjggMjUuN2wyLjcuNWE0NDkuNCA0NDkuNCAwIDAwMTU5IDBsMi43LS41YTMyLjA1IDMyLjA1IDAgMDAyNS44LTI1LjdsMTUuNy04NWEzNTAgMzUwIDAgMDA5OS43LTU3LjZsODEuMyAyOC45YTMyIDMyIDAgMDAzNS4xLTkuNWwxLjgtMi4xYzM0LjgtNDEuMSA2MS42LTg3LjUgNzkuNy0xMzcuOWwuOS0yLjZjNC41LTEyLjMuOC0yNi4zLTkuMy0zNXpNNzg4LjMgNDY1LjljMi41IDE1LjEgMy44IDMwLjYgMy44IDQ2LjFzLTEuMyAzMS0zLjggNDYuMWwtNi42IDQwLjEgNzQuNyA2My45YTM3MC4wMyAzNzAuMDMgMCAwMS00Mi42IDczLjZMNzIxIDcwMi44bC0zMS40IDI1LjhjLTIzLjkgMTkuNi01MC41IDM1LTc5LjMgNDUuOGwtMzguMSAxNC4zLTE3LjkgOTdhMzc3LjUgMzc3LjUgMCAwMS04NSAwbC0xNy45LTk3LjItMzcuOC0xNC41Yy0yOC41LTEwLjgtNTUtMjYuMi03OC43LTQ1LjdsLTMxLjQtMjUuOS05My40IDMzLjJjLTE3LTIyLjktMzEuMi00Ny42LTQyLjYtNzMuNmw3NS41LTY0LjUtNi41LTQwYy0yLjQtMTQuOS0zLjctMzAuMy0zLjctNDUuNSAwLTE1LjMgMS4yLTMwLjYgMy43LTQ1LjVsNi41LTQwLTc1LjUtNjQuNWMxMS4zLTI2LjEgMjUuNi01MC43IDQyLjYtNzMuNmw5My40IDMzLjIgMzEuNC0yNS45YzIzLjctMTkuNSA1MC4yLTM0LjkgNzguNy00NS43bDM3LjktMTQuMyAxNy45LTk3LjJjMjguMS0zLjIgNTYuOC0zLjIgODUgMGwxNy45IDk3IDM4LjEgMTQuM2MyOC43IDEwLjggNTUuNCAyNi4yIDc5LjMgNDUuOGwzMS40IDI1LjggOTIuOC0zMi45YzE3IDIyLjkgMzEuMiA0Ny42IDQyLjYgNzMuNkw3ODEuOCA0MjZsNi41IDM5Ljl6TTUxMiAzMjZjLTk3LjIgMC0xNzYgNzguOC0xNzYgMTc2czc4LjggMTc2IDE3NiAxNzYgMTc2LTc4LjggMTc2LTE3Ni03OC44LTE3Ni0xNzYtMTc2em03OS4yIDI1NS4yQTExMS42IDExMS42IDAgMDE1MTIgNjE0Yy0yOS45IDAtNTgtMTEuNy03OS4yLTMyLjhBMTExLjYgMTExLjYgMCAwMTQwMCA1MDJjMC0yOS45IDExLjctNTggMzIuOC03OS4yQzQ1NCA0MDEuNiA0ODIuMSAzOTAgNTEyIDM5MGMyOS45IDAgNTggMTEuNiA3OS4yIDMyLjhBMTExLjYgMTExLjYgMCAwMTYyNCA1MDJjMCAyOS45LTExLjcgNTgtMzIuOCA3OS4yeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SettingOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'SettingOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar LogoutOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z\" } }] }, \"name\": \"logout\", \"theme\": \"outlined\" };\nexport default LogoutOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LogoutOutlinedSvg from \"@ant-design/icons-svg/es/asn/LogoutOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LogoutOutlined = function LogoutOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: LogoutOutlinedSvg\n  }));\n};\n\n/**![logout](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2OCA3MzJoLTcwLjNjLTQuOCAwLTkuMyAyLjEtMTIuMyA1LjgtNyA4LjUtMTQuNSAxNi43LTIyLjQgMjQuNWEzNTMuODQgMzUzLjg0IDAgMDEtMTEyLjcgNzUuOUEzNTIuOCAzNTIuOCAwIDAxNTEyLjQgODY2Yy00Ny45IDAtOTQuMy05LjQtMTM3LjktMjcuOGEzNTMuODQgMzUzLjg0IDAgMDEtMTEyLjctNzUuOSAzNTMuMjggMzUzLjI4IDAgMDEtNzYtMTEyLjVDMTY3LjMgNjA2LjIgMTU4IDU1OS45IDE1OCA1MTJzOS40LTk0LjIgMjcuOC0xMzcuOGMxNy44LTQyLjEgNDMuNC04MCA3Ni0xMTIuNXM3MC41LTU4LjEgMTEyLjctNzUuOWM0My42LTE4LjQgOTAtMjcuOCAxMzcuOS0yNy44IDQ3LjkgMCA5NC4zIDkuMyAxMzcuOSAyNy44IDQyLjIgMTcuOCA4MC4xIDQzLjQgMTEyLjcgNzUuOSA3LjkgNy45IDE1LjMgMTYuMSAyMi40IDI0LjUgMyAzLjcgNy42IDUuOCAxMi4zIDUuOEg4NjhjNi4zIDAgMTAuMi03IDYuNy0xMi4zQzc5OCAxNjAuNSA2NjMuOCA4MS42IDUxMS4zIDgyIDI3MS43IDgyLjYgNzkuNiAyNzcuMSA4MiA1MTYuNCA4NC40IDc1MS45IDI3Ni4yIDk0MiA1MTIuNCA5NDJjMTUyLjEgMCAyODUuNy03OC44IDM2Mi4zLTE5Ny43IDMuNC01LjMtLjQtMTIuMy02LjctMTIuM3ptODguOS0yMjYuM0w4MTUgMzkzLjdjLTUuMy00LjItMTMtLjQtMTMgNi4zdjc2SDQ4OGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOGgzMTR2NzZjMCA2LjcgNy44IDEwLjUgMTMgNi4zbDE0MS45LTExMmE4IDggMCAwMDAtMTIuNnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LogoutOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'LogoutOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PushpinFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3-15.4 12.3-16.6 35.4-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8z\" } }] }, \"name\": \"pushpin\", \"theme\": \"filled\" };\nexport default PushpinFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PushpinFilledSvg from \"@ant-design/icons-svg/es/asn/PushpinFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PushpinFilled = function PushpinFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: PushpinFilledSvg\n  }));\n};\n\n/**![pushpin](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjMtMTUuNCAxMi4zLTE2LjYgMzUuNC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PushpinFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'PushpinFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PushpinOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M878.3 392.1L631.9 145.7c-6.5-6.5-15-9.7-23.5-9.7s-17 3.2-23.5 9.7L423.8 306.9c-12.2-1.4-24.5-2-36.8-2-73.2 0-146.4 24.1-206.5 72.3a33.23 33.23 0 00-2.7 49.4l181.7 181.7-215.4 215.2a15.8 15.8 0 00-4.6 9.8l-3.4 37.2c-.9 9.4 6.6 17.4 15.9 17.4.5 0 1 0 1.5-.1l37.2-3.4c3.7-.3 7.2-2 9.8-4.6l215.4-215.4 181.7 181.7c6.5 6.5 15 9.7 23.5 9.7 9.7 0 19.3-4.2 25.9-12.4 56.3-70.3 79.7-158.3 70.2-243.4l161.1-161.1c12.9-12.8 12.9-33.8 0-46.8zM666.2 549.3l-24.5 24.5 3.8 34.4a259.92 259.92 0 01-30.4 153.9L262 408.8c12.9-7.1 26.3-13.1 40.3-17.9 27.2-9.4 55.7-14.1 84.7-14.1 9.6 0 19.3.5 28.9 1.6l34.4 3.8 24.5-24.5L608.5 224 800 415.5 666.2 549.3z\" } }] }, \"name\": \"pushpin\", \"theme\": \"outlined\" };\nexport default PushpinOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PushpinOutlinedSvg from \"@ant-design/icons-svg/es/asn/PushpinOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PushpinOutlined = function PushpinOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: PushpinOutlinedSvg\n  }));\n};\n\n/**![pushpin](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg3OC4zIDM5Mi4xTDYzMS45IDE0NS43Yy02LjUtNi41LTE1LTkuNy0yMy41LTkuN3MtMTcgMy4yLTIzLjUgOS43TDQyMy44IDMwNi45Yy0xMi4yLTEuNC0yNC41LTItMzYuOC0yLTczLjIgMC0xNDYuNCAyNC4xLTIwNi41IDcyLjNhMzMuMjMgMzMuMjMgMCAwMC0yLjcgNDkuNGwxODEuNyAxODEuNy0yMTUuNCAyMTUuMmExNS44IDE1LjggMCAwMC00LjYgOS44bC0zLjQgMzcuMmMtLjkgOS40IDYuNiAxNy40IDE1LjkgMTcuNC41IDAgMSAwIDEuNS0uMWwzNy4yLTMuNGMzLjctLjMgNy4yLTIgOS44LTQuNmwyMTUuNC0yMTUuNCAxODEuNyAxODEuN2M2LjUgNi41IDE1IDkuNyAyMy41IDkuNyA5LjcgMCAxOS4zLTQuMiAyNS45LTEyLjQgNTYuMy03MC4zIDc5LjctMTU4LjMgNzAuMi0yNDMuNGwxNjEuMS0xNjEuMWMxMi45LTEyLjggMTIuOS0zMy44IDAtNDYuOHpNNjY2LjIgNTQ5LjNsLTI0LjUgMjQuNSAzLjggMzQuNGEyNTkuOTIgMjU5LjkyIDAgMDEtMzAuNCAxNTMuOUwyNjIgNDA4LjhjMTIuOS03LjEgMjYuMy0xMy4xIDQwLjMtMTcuOSAyNy4yLTkuNCA1NS43LTE0LjEgODQuNy0xNC4xIDkuNiAwIDE5LjMuNSAyOC45IDEuNmwzNC40IDMuOCAyNC41LTI0LjVMNjA4LjUgMjI0IDgwMCA0MTUuNSA2NjYuMiA1NDkuM3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PushpinOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'PushpinOutlined';\n}\nexport default RefIcon;","import { React, useState, useEffect, useMemo } from \"react\";\nimport \"./sidebar.css\";\nimport { Menu, Button } from \"antd\";\nimport { clearUser } from \"../../features/slice\";\nimport { useSelector } from \"react-redux\";\n\nimport {\n  HomeOutlined,\n  UserOutlined,\n  ContainerOutlined,\n  SettingOutlined,\n  LogoutOutlined,\n  PushpinOutlined,\n  PushpinFilled,\n} from \"@ant-design/icons\";\nimport { NavLink, useLocation,useNavigate } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\n\nfunction Sidebar() {\n  const dispatch = useDispatch();\nconst navigate = useNavigate();\n  const [isPinned, setIsPinned] = useState(window.innerWidth > 768);\n  const location = useLocation();\n  const { token } = useSelector((state) => state.user);\n  const handleLogout=()=>{\n    dispatch(clearUser())\n    navigate(\"/\");\n  }\n\n  const menuItems = useMemo(\n    () => [\n      { key: \"admin\", label: \"Dashboard\", icon: <HomeOutlined />, path: \"/Admindashboard\" },\n      { key: \"profile\", label: \"Profile Verification\", icon: <UserOutlined />, path: \"/profileVerification\" },\n      { key: \"Report\", label: \"Reports & Complaints\", icon: <ContainerOutlined />, path: \"/Adminreport\" },\n      { key: \"settings\", label: \"Settings\", icon: <SettingOutlined />, path: `/Adminsettings/${token}` },\n      { key: \"signout\", label: \"Signout\", icon: <LogoutOutlined /> ,onClick:handleLogout},\n    ],\n    [token,handleLogout]\n  );\n\n  const pathKey = useMemo(() => {\n    const currentPath = location.pathname;\n    const matchingItem = menuItems.find(item => item.path === currentPath);\n    return matchingItem ? matchingItem.key : ''; // Default to 'admin' if no match\n  }, [location, menuItems]);\n\n  // Effect to handle screen resize\n  useEffect(() => {\n    const handleResize = () => {\n      if (window.innerWidth > 768) {\n        setIsPinned(true);\n      } else {\n        const savedState = JSON.parse(localStorage.getItem(\"isPinned\"));\n        if (savedState !== null) {\n          setIsPinned(savedState);\n        }\n      }\n    };\n\n    handleResize();\n    window.addEventListener(\"resize\", handleResize);\n    return () => window.removeEventListener(\"resize\", handleResize);\n  }, []);\n\n  const togglePin = () => {\n    if (window.innerWidth <= 768) {\n      setIsPinned((prev) => {\n        const newState = !prev;\n        localStorage.setItem(\"isPinned\", JSON.stringify(newState));\n        return newState;\n      });\n    }\n  };\n\n  return (\n    <div className=\"sidebar-container\">\n      <div className={`sidebar ${isPinned ? \"pinned\" : \"collapsed\"}`}>\n        <div className=\"sidebar-content\">\n          <div className=\"logo\"></div>\n          <div className=\"pin-pin\">\n            <Button\n              aria-label={isPinned ? \"Unpin Sidebar\" : \"Pin Sidebar\"}\n              className=\"pin-button\"\n              type=\"text\"\n              icon={isPinned ? <PushpinFilled /> : <PushpinOutlined />}\n              onClick={togglePin}\n              disabled={window.innerWidth > 768}\n            />\n          </div>\n          <Menu\n            className=\"menu\"\n            mode=\"vertical\"\n            selectedKeys={[pathKey]}\n          >\n            {menuItems.map(({ key, label, icon, path,onClick }) => (\n              <Menu.Item key={key} icon={icon} onClick={onClick}>\n                <NavLink to={path}>{isPinned && label}</NavLink>\n              </Menu.Item>\n            ))}\n          </Menu>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default Sidebar;","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport \"./profilebox.css\"\n\nfunction Profilebox({ data }) {\n\n  if (!data) return <p>No user data available</p>;\n\n  return (\n    <div className=\"main-container-profiles\">\n      <div className=\"profiles\">\n        <div className=\"profile-content\">\n          <div className=\"profile-names\">\n            <p>Name: {data.firstName || \"N/A\"}</p>\n          </div>\n          <div className=\"profiles-id\">\n            <p>ID: {data.userId || \"Unknown\"}</p>\n          </div>\n          <div className=\"profile-view\">\n            <Link to={`/Adminusersview/${data._id}`} className=\"custom-link\">\n              View\n            </Link>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default Profilebox;\n","import React, { useEffect, useState } from \"react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport \"./admindashboard.css\";\nimport verification from \"../../../assets/circle-check-regular.svg\";\nimport Sidebar from \"../../../component/sidebar/Sidebar.jsx\";\nimport axios from \"axios\";\nimport Profilebox from \"../components/Profilebox.jsx\";\nimport baseUrl from \"../../../baseUrl.js\";\n\nfunction Adimindashboard() {\n  const [userData, setUserData] = useState([]);\n  const showData=userData.slice(0,4)\n  const navigate =useNavigate()\n  useEffect(() => {\n    fetchUserData();\n  }, []);\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/userdetails`\n      );\n      setUserData(response.data.data);\n    } catch (error) {\n      console.error(\"Error fetching user details:\", error);\n    }\n  };\n\n  return (\n    <div>\n      <div className=\"admin-dashboard\">\n        <div className=\"container-main\">\n          <div className=\"nav\">\n            <Sidebar />\n          </div>\n          <div className=\"contents\">\n            <div className=\"first-part\">\n              <div className=\"dashborad-main\">\n                <div className=\"heading\">\n                  <h1>DASHBOARD</h1>\n                </div>\n              </div>\n              <div className=\"button-container\">\n                <div className=\"profile-verification-container\"onClick={()=>{\n                    navigate(\"/profileVerification\")\n                  }}>\n                  <div className=\"icon-container\">\n                    <img src={verification} alt=\"\" />\n                  </div>\n                  <div className=\"text-containers\">\n                    <p>\n                      Profile <br></br>Verification\n                    </p>\n                  </div>\n                </div>\n                <div className=\"profile-verification-container\" onClick={()=>{\n                    navigate(\"/Adminreport\")\n                  }}>\n                  <div className=\"icon-container\">\n                    <img src={verification} alt=\"\" />\n                  </div>\n                  <div className=\"text-containers\" >\n                    <p>Reports & Complaints</p>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div className=\"second-part\">\n              <div className=\"heading-container\">\n                <div className=\"heading\">\n                  <h1>Profiles</h1>\n                </div>\n              </div>\n              <div className=\"profiles-container\">\n                <div className=\"main-container-profiles\">\n                  <div className=\"profile-container\">\n                    {showData.length > 0 ? (\n                      showData.map((user) => {\n                        return <Profilebox key={user._id} data={user} />;\n                      })\n                    ) : (\n                      <p>No profiles available</p>\n                    )}\n                  </div>\n                </div>\n              </div>\n              <div className=\"see-all-link\">\n                <Link className=\"custom-link\" to={'/getFullUser'}>See all</Link>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default Adimindashboard;\n","import React from 'react'\nimport { Link } from \"react-router-dom\";\nimport \"./profilebox.css\"\n\nfunction ReportComponent({data}) {\n    \n  if (!data) return <p>No user data available</p>;\n  \n\n  return (\n    \n    <div className=\"main-container-profiles\">\n      <div className=\"profiles\">\n        <div className=\"profile-content\">\n          <div className=\"profile-names\">\n            <p>Name: {data.firstName || \"N/A\"}</p>\n          </div>\n          <div className=\"profiles-id\">\n            <p>ID: {data._id || \"Unknown\"}</p>\n          </div>\n          <div className=\"profile-view\">\n            <Link to={`/Adminreportview/${data._id}`} className=\"custom-link\">\n              View\n            </Link>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default ReportComponent\n","import React, { useState } from \"react\";\nimport \"./AdminReportPage.css\";\nimport Sidebar from \"../../../component/sidebar/Sidebar\";\nimport { Link } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { useEffect } from \"react\";\nimport Profilebox from \"../components/ReportComponent.jsx\";\nimport baseUrl from \"../../../baseUrl.js\";\n\n\nfunction AdminReportPage() {\n  const[UserData,setUserData]=useState([]);\n  \n   const fetchReportData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/getComplaint`\n      );\n      if(response.status===200){\n          setUserData(response.data.reportedUser || [])\n        \n      }else{\n        console.log(\"no users found\");\n        \n      }\n    } catch (error) {\n      console.log(error);\n      \n    }\n  };\n  useEffect(()=>{\n    fetchReportData()\n  },[])\n  return (\n    <div>\n      <div className=\"admin-dashboard\">\n        <div className=\"container-main\">\n          <div className=\"nav\">\n            <Sidebar />\n          </div>\n          <div className=\"contents\">\n            \n            <div className=\"second-part\">\n              <div className=\"heading-container\">\n                <div className=\"heading\">\n                  <h1>Reports And Complaints</h1>\n                </div>\n              </div>\n              <div className=\"profiles-container\">\n                <div className=\"main-container-profiles\">\n                  <div className=\"profile-container\">\n                  {UserData.length > 0 ? (\n                      UserData.map((user) => {\n                        return <Profilebox key={user._id} data={user} />;\n                       \n                        \n                      })\n                    ) : (\n                      <p>No profiles available</p>\n                    )}\n                  </div>\n                </div>\n              </div>\n              <div className=\"see-all-link\">\n                <Link className=\"custom-link\" to={\"/getFullReport\"}>\n                  See all\n                </Link>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default AdminReportPage;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <line\n      x1=\"200\"\n      y1=\"56\"\n      x2=\"56\"\n      y2=\"200\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"200\"\n      y1=\"200\"\n      x2=\"56\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <line\n      x1=\"200\"\n      y1=\"56\"\n      x2=\"56\"\n      y2=\"200\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"200\"\n      y1=\"200\"\n      x2=\"56\"\n      y2=\"56\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M139.3,128l66.4-66.3a8.1,8.1,0,0,0-11.4-11.4L128,116.7,61.7,50.3A8.1,8.1,0,0,0,50.3,61.7L116.7,128,50.3,194.3a8.1,8.1,0,0,0,0,11.4,8.2,8.2,0,0,0,11.4,0L128,139.3l66.3,66.4a8.2,8.2,0,0,0,11.4,0,8.1,8.1,0,0,0,0-11.4Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <line\n      x1=\"200\"\n      y1=\"56\"\n      x2=\"56\"\n      y2=\"200\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"200\"\n      y1=\"200\"\n      x2=\"56\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <line\n      x1=\"200\"\n      y1=\"56\"\n      x2=\"56\"\n      y2=\"200\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"200\"\n      y1=\"200\"\n      x2=\"56\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <line\n      x1=\"200\"\n      y1=\"56\"\n      x2=\"56\"\n      y2=\"200\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"200\"\n      y1=\"200\"\n      x2=\"56\"\n      y2=\"56\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst X = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nX.displayName = \"X\";\n\nexport default X;\n","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <line\n      x1=\"148\"\n      y1=\"172\"\n      x2=\"40\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"172\"\n      x2=\"188\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <circle\n      cx=\"168\"\n      cy=\"172\"\n      r=\"20\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"84\"\n      y1=\"84\"\n      x2=\"40\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"84\"\n      x2=\"124\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <circle\n      cx=\"104\"\n      cy=\"84\"\n      r=\"20\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <circle cx=\"104\" cy=\"84\" r=\"20\" opacity=\"0.2\" />\n    <line\n      x1=\"148\"\n      y1=\"172\"\n      x2=\"40\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"172\"\n      x2=\"188\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"168\"\n      cy=\"172\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"84\"\n      y1=\"84\"\n      x2=\"40\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"84\"\n      x2=\"124\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"104\"\n      cy=\"84\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M216,164H194.8a28,28,0,0,0-53.6,0H40a8,8,0,0,0,0,16H141.2a28,28,0,0,0,53.6,0H216a8,8,0,0,0,0-16Z\" />\n    <path d=\"M40,92H77.2a28,28,0,0,0,53.6,0H216a8,8,0,0,0,0-16H130.8a28,28,0,0,0-53.6,0H40a8,8,0,0,0,0,16Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <line\n      x1=\"148\"\n      y1=\"172\"\n      x2=\"40\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"172\"\n      x2=\"188\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <circle\n      cx=\"168\"\n      cy=\"172\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"84\"\n      y1=\"84\"\n      x2=\"40\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"84\"\n      x2=\"124\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <circle\n      cx=\"104\"\n      cy=\"84\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <line\n      x1=\"148\"\n      y1=\"172\"\n      x2=\"40\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"172\"\n      x2=\"188\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <circle\n      cx=\"168\"\n      cy=\"172\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"84\"\n      y1=\"84\"\n      x2=\"40\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"84\"\n      x2=\"124\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <circle\n      cx=\"104\"\n      cy=\"84\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <line\n      x1=\"148\"\n      y1=\"172\"\n      x2=\"40\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"172\"\n      x2=\"188\"\n      y2=\"172\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"168\"\n      cy=\"172\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"84\"\n      y1=\"84\"\n      x2=\"40\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"216\"\n      y1=\"84\"\n      x2=\"124\"\n      y2=\"84\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <circle\n      cx=\"104\"\n      cy=\"84\"\n      r=\"20\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst SlidersHorizontal = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nSlidersHorizontal.displayName = \"SlidersHorizontal\";\n\nexport default SlidersHorizontal;\n","// This icon file is generated automatically.\nvar DoubleLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\" } }] }, \"name\": \"double-left\", \"theme\": \"outlined\" };\nexport default DoubleLeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleLeftOutlined = function DoubleLeftOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DoubleLeftOutlinedSvg\n  }));\n};\n\n/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleLeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DoubleLeftOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DoubleRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\" } }] }, \"name\": \"double-right\", \"theme\": \"outlined\" };\nexport default DoubleRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DoubleRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/DoubleRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DoubleRightOutlined = function DoubleRightOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DoubleRightOutlinedSvg\n  }));\n};\n\n/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DoubleRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DoubleRightOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar LeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\" } }] }, \"name\": \"left\", \"theme\": \"outlined\" };\nexport default LeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/LeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LeftOutlined = function LeftOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: LeftOutlinedSvg\n  }));\n};\n\n/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'LeftOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexport default RightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RightOutlined = function RightOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: RightOutlinedSvg\n  }));\n};\n\n/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'RightOutlined';\n}\nexport default RefIcon;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar attributes = \"accept acceptCharset accessKey action allowFullScreen allowTransparency\\n    alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\\n    charSet checked classID className colSpan cols content contentEditable contextMenu\\n    controls coords crossOrigin data dateTime default defer dir disabled download draggable\\n    encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\\n    headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\\n    is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\\n    mediaGroup method min minLength multiple muted name noValidate nonce open\\n    optimum pattern placeholder poster preload radioGroup readOnly rel required\\n    reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\\n    shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\\n    summary tabIndex target title type useMap value width wmode wrap\";\nvar eventsName = \"onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\\n    onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\\n    onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\\n    onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\\n    onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\\n    onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\\n    onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError\";\nvar propList = \"\".concat(attributes, \" \").concat(eventsName).split(/[\\s\\n]+/);\n\n/* eslint-enable max-len */\nvar ariaPrefix = 'aria-';\nvar dataPrefix = 'data-';\nfunction match(key, prefix) {\n  return key.indexOf(prefix) === 0;\n}\n/**\n * Picker props from exist props with filter\n * @param props Passed props\n * @param ariaOnly boolean | { aria?: boolean; data?: boolean; attr?: boolean; } filter config\n */\nexport default function pickAttrs(props) {\n  var ariaOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var mergedConfig;\n  if (ariaOnly === false) {\n    mergedConfig = {\n      aria: true,\n      data: true,\n      attr: true\n    };\n  } else if (ariaOnly === true) {\n    mergedConfig = {\n      aria: true\n    };\n  } else {\n    mergedConfig = _objectSpread({}, ariaOnly);\n  }\n  var attrs = {};\n  Object.keys(props).forEach(function (key) {\n    if (\n    // Aria\n    mergedConfig.aria && (key === 'role' || match(key, ariaPrefix)) ||\n    // Data\n    mergedConfig.data && match(key, dataPrefix) ||\n    // Attr\n    mergedConfig.attr && propList.includes(key)) {\n      attrs[key] = props[key];\n    }\n  });\n  return attrs;\n}","var locale = {\n  // Options\n  items_per_page: '条/页',\n  jump_to: '跳至',\n  jump_to_confirm: '确定',\n  page: '页',\n  // Pagination\n  prev_page: '上一页',\n  next_page: '下一页',\n  prev_5: '向前 5 页',\n  next_5: '向后 5 页',\n  prev_3: '向前 3 页',\n  next_3: '向后 3 页',\n  page_size: '页码'\n};\nexport default locale;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport KEYCODE from \"rc-util/es/KeyCode\";\nimport React from 'react';\nvar defaultPageSizeOptions = [10, 20, 50, 100];\nvar Options = function Options(props) {\n  var _props$pageSizeOption = props.pageSizeOptions,\n    pageSizeOptions = _props$pageSizeOption === void 0 ? defaultPageSizeOptions : _props$pageSizeOption,\n    locale = props.locale,\n    changeSize = props.changeSize,\n    pageSize = props.pageSize,\n    goButton = props.goButton,\n    quickGo = props.quickGo,\n    rootPrefixCls = props.rootPrefixCls,\n    disabled = props.disabled,\n    buildOptionText = props.buildOptionText,\n    showSizeChanger = props.showSizeChanger,\n    sizeChangerRender = props.sizeChangerRender;\n  var _React$useState = React.useState(''),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    goInputText = _React$useState2[0],\n    setGoInputText = _React$useState2[1];\n  var getValidValue = function getValidValue() {\n    return !goInputText || Number.isNaN(goInputText) ? undefined : Number(goInputText);\n  };\n  var mergeBuildOptionText = typeof buildOptionText === 'function' ? buildOptionText : function (value) {\n    return \"\".concat(value, \" \").concat(locale.items_per_page);\n  };\n  var handleChange = function handleChange(e) {\n    setGoInputText(e.target.value);\n  };\n  var handleBlur = function handleBlur(e) {\n    if (goButton || goInputText === '') {\n      return;\n    }\n    setGoInputText('');\n    if (e.relatedTarget && (e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item-link\")) >= 0 || e.relatedTarget.className.indexOf(\"\".concat(rootPrefixCls, \"-item\")) >= 0)) {\n      return;\n    }\n    quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n  };\n  var go = function go(e) {\n    if (goInputText === '') {\n      return;\n    }\n    if (e.keyCode === KEYCODE.ENTER || e.type === 'click') {\n      setGoInputText('');\n      quickGo === null || quickGo === void 0 || quickGo(getValidValue());\n    }\n  };\n  var getPageSizeOptions = function getPageSizeOptions() {\n    if (pageSizeOptions.some(function (option) {\n      return option.toString() === pageSize.toString();\n    })) {\n      return pageSizeOptions;\n    }\n    return pageSizeOptions.concat([pageSize]).sort(function (a, b) {\n      var numberA = Number.isNaN(Number(a)) ? 0 : Number(a);\n      var numberB = Number.isNaN(Number(b)) ? 0 : Number(b);\n      return numberA - numberB;\n    });\n  };\n  // ============== cls ==============\n  var prefixCls = \"\".concat(rootPrefixCls, \"-options\");\n\n  // ============== render ==============\n\n  if (!showSizeChanger && !quickGo) {\n    return null;\n  }\n  var changeSelect = null;\n  var goInput = null;\n  var gotoButton = null;\n\n  // >>>>> Size Changer\n  if (showSizeChanger && sizeChangerRender) {\n    changeSelect = sizeChangerRender({\n      disabled: disabled,\n      size: pageSize,\n      onSizeChange: function onSizeChange(nextValue) {\n        changeSize === null || changeSize === void 0 || changeSize(Number(nextValue));\n      },\n      'aria-label': locale.page_size,\n      className: \"\".concat(prefixCls, \"-size-changer\"),\n      options: getPageSizeOptions().map(function (opt) {\n        return {\n          label: mergeBuildOptionText(opt),\n          value: opt\n        };\n      })\n    });\n  }\n\n  // >>>>> Quick Go\n  if (quickGo) {\n    if (goButton) {\n      gotoButton = typeof goButton === 'boolean' ? /*#__PURE__*/React.createElement(\"button\", {\n        type: \"button\",\n        onClick: go,\n        onKeyUp: go,\n        disabled: disabled,\n        className: \"\".concat(prefixCls, \"-quick-jumper-button\")\n      }, locale.jump_to_confirm) : /*#__PURE__*/React.createElement(\"span\", {\n        onClick: go,\n        onKeyUp: go\n      }, goButton);\n    }\n    goInput = /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(prefixCls, \"-quick-jumper\")\n    }, locale.jump_to, /*#__PURE__*/React.createElement(\"input\", {\n      disabled: disabled,\n      type: \"text\",\n      value: goInputText,\n      onChange: handleChange,\n      onKeyUp: go,\n      onBlur: handleBlur,\n      \"aria-label\": locale.page\n    }), locale.page, gotoButton);\n  }\n  return /*#__PURE__*/React.createElement(\"li\", {\n    className: prefixCls\n  }, changeSelect, goInput);\n};\nif (process.env.NODE_ENV !== 'production') {\n  Options.displayName = 'Options';\n}\nexport default Options;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types: 0 */\nimport classNames from 'classnames';\nimport React from 'react';\nvar Pager = function Pager(props) {\n  var _classNames;\n  var rootPrefixCls = props.rootPrefixCls,\n    page = props.page,\n    active = props.active,\n    className = props.className,\n    showTitle = props.showTitle,\n    onClick = props.onClick,\n    onKeyPress = props.onKeyPress,\n    itemRender = props.itemRender;\n  var prefixCls = \"\".concat(rootPrefixCls, \"-item\");\n  var cls = classNames(prefixCls, \"\".concat(prefixCls, \"-\").concat(page), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-active\"), active), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), !page), _classNames), className);\n  var handleClick = function handleClick() {\n    onClick(page);\n  };\n  var handleKeyPress = function handleKeyPress(e) {\n    onKeyPress(e, onClick, page);\n  };\n  var pager = itemRender(page, 'page', /*#__PURE__*/React.createElement(\"a\", {\n    rel: \"nofollow\"\n  }, page));\n  return pager ? /*#__PURE__*/React.createElement(\"li\", {\n    title: showTitle ? String(page) : null,\n    className: cls,\n    onClick: handleClick,\n    onKeyDown: handleKeyPress,\n    tabIndex: 0\n  }, pager) : null;\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pager.displayName = 'Pager';\n}\nexport default Pager;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport React, { useEffect } from 'react';\nimport zhCN from \"./locale/zh_CN\";\nimport Options from \"./Options\";\nimport Pager from \"./Pager\";\nvar defaultItemRender = function defaultItemRender(page, type, element) {\n  return element;\n};\nfunction noop() {}\nfunction isInteger(v) {\n  var value = Number(v);\n  return typeof value === 'number' && !Number.isNaN(value) && isFinite(value) && Math.floor(value) === value;\n}\nfunction calculatePage(p, pageSize, total) {\n  var _pageSize = typeof p === 'undefined' ? pageSize : p;\n  return Math.floor((total - 1) / _pageSize) + 1;\n}\nvar Pagination = function Pagination(props) {\n  var _classNames5;\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-pagination' : _props$prefixCls,\n    _props$selectPrefixCl = props.selectPrefixCls,\n    selectPrefixCls = _props$selectPrefixCl === void 0 ? 'rc-select' : _props$selectPrefixCl,\n    className = props.className,\n    currentProp = props.current,\n    _props$defaultCurrent = props.defaultCurrent,\n    defaultCurrent = _props$defaultCurrent === void 0 ? 1 : _props$defaultCurrent,\n    _props$total = props.total,\n    total = _props$total === void 0 ? 0 : _props$total,\n    pageSizeProp = props.pageSize,\n    _props$defaultPageSiz = props.defaultPageSize,\n    defaultPageSize = _props$defaultPageSiz === void 0 ? 10 : _props$defaultPageSiz,\n    _props$onChange = props.onChange,\n    onChange = _props$onChange === void 0 ? noop : _props$onChange,\n    hideOnSinglePage = props.hideOnSinglePage,\n    align = props.align,\n    _props$showPrevNextJu = props.showPrevNextJumpers,\n    showPrevNextJumpers = _props$showPrevNextJu === void 0 ? true : _props$showPrevNextJu,\n    showQuickJumper = props.showQuickJumper,\n    showLessItems = props.showLessItems,\n    _props$showTitle = props.showTitle,\n    showTitle = _props$showTitle === void 0 ? true : _props$showTitle,\n    _props$onShowSizeChan = props.onShowSizeChange,\n    onShowSizeChange = _props$onShowSizeChan === void 0 ? noop : _props$onShowSizeChan,\n    _props$locale = props.locale,\n    locale = _props$locale === void 0 ? zhCN : _props$locale,\n    style = props.style,\n    _props$totalBoundaryS = props.totalBoundaryShowSizeChanger,\n    totalBoundaryShowSizeChanger = _props$totalBoundaryS === void 0 ? 50 : _props$totalBoundaryS,\n    disabled = props.disabled,\n    simple = props.simple,\n    showTotal = props.showTotal,\n    _props$showSizeChange = props.showSizeChanger,\n    showSizeChanger = _props$showSizeChange === void 0 ? total > totalBoundaryShowSizeChanger : _props$showSizeChange,\n    sizeChangerRender = props.sizeChangerRender,\n    pageSizeOptions = props.pageSizeOptions,\n    _props$itemRender = props.itemRender,\n    itemRender = _props$itemRender === void 0 ? defaultItemRender : _props$itemRender,\n    jumpPrevIcon = props.jumpPrevIcon,\n    jumpNextIcon = props.jumpNextIcon,\n    prevIcon = props.prevIcon,\n    nextIcon = props.nextIcon;\n  var paginationRef = React.useRef(null);\n  var _useMergedState = useMergedState(10, {\n      value: pageSizeProp,\n      defaultValue: defaultPageSize\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    pageSize = _useMergedState2[0],\n    setPageSize = _useMergedState2[1];\n  var _useMergedState3 = useMergedState(1, {\n      value: currentProp,\n      defaultValue: defaultCurrent,\n      postState: function postState(c) {\n        return Math.max(1, Math.min(c, calculatePage(undefined, pageSize, total)));\n      }\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    current = _useMergedState4[0],\n    setCurrent = _useMergedState4[1];\n  var _React$useState = React.useState(current),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    internalInputVal = _React$useState2[0],\n    setInternalInputVal = _React$useState2[1];\n  useEffect(function () {\n    setInternalInputVal(current);\n  }, [current]);\n  var hasOnChange = onChange !== noop;\n  var hasCurrent = ('current' in props);\n  if (process.env.NODE_ENV !== 'production') {\n    warning(hasCurrent ? hasOnChange : true, 'You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.');\n  }\n  var jumpPrevPage = Math.max(1, current - (showLessItems ? 3 : 5));\n  var jumpNextPage = Math.min(calculatePage(undefined, pageSize, total), current + (showLessItems ? 3 : 5));\n  function getItemIcon(icon, label) {\n    var iconNode = icon || /*#__PURE__*/React.createElement(\"button\", {\n      type: \"button\",\n      \"aria-label\": label,\n      className: \"\".concat(prefixCls, \"-item-link\")\n    });\n    if (typeof icon === 'function') {\n      iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));\n    }\n    return iconNode;\n  }\n  function getValidValue(e) {\n    var inputValue = e.target.value;\n    var allPages = calculatePage(undefined, pageSize, total);\n    var value;\n    if (inputValue === '') {\n      value = inputValue;\n    } else if (Number.isNaN(Number(inputValue))) {\n      value = internalInputVal;\n    } else if (inputValue >= allPages) {\n      value = allPages;\n    } else {\n      value = Number(inputValue);\n    }\n    return value;\n  }\n  function isValid(page) {\n    return isInteger(page) && page !== current && isInteger(total) && total > 0;\n  }\n  var shouldDisplayQuickJumper = total > pageSize ? showQuickJumper : false;\n\n  /**\n   * prevent \"up arrow\" key reseting cursor position within textbox\n   * @see https://stackoverflow.com/a/1081114\n   */\n  function handleKeyDown(event) {\n    if (event.keyCode === KeyCode.UP || event.keyCode === KeyCode.DOWN) {\n      event.preventDefault();\n    }\n  }\n  function handleKeyUp(event) {\n    var value = getValidValue(event);\n    if (value !== internalInputVal) {\n      setInternalInputVal(value);\n    }\n    switch (event.keyCode) {\n      case KeyCode.ENTER:\n        handleChange(value);\n        break;\n      case KeyCode.UP:\n        handleChange(value - 1);\n        break;\n      case KeyCode.DOWN:\n        handleChange(value + 1);\n        break;\n      default:\n        break;\n    }\n  }\n  function handleBlur(event) {\n    handleChange(getValidValue(event));\n  }\n  function changePageSize(size) {\n    var newCurrent = calculatePage(size, pageSize, total);\n    var nextCurrent = current > newCurrent && newCurrent !== 0 ? newCurrent : current;\n    setPageSize(size);\n    setInternalInputVal(nextCurrent);\n    onShowSizeChange === null || onShowSizeChange === void 0 || onShowSizeChange(current, size);\n    setCurrent(nextCurrent);\n    onChange === null || onChange === void 0 || onChange(nextCurrent, size);\n  }\n  function handleChange(page) {\n    if (isValid(page) && !disabled) {\n      var currentPage = calculatePage(undefined, pageSize, total);\n      var newPage = page;\n      if (page > currentPage) {\n        newPage = currentPage;\n      } else if (page < 1) {\n        newPage = 1;\n      }\n      if (newPage !== internalInputVal) {\n        setInternalInputVal(newPage);\n      }\n      setCurrent(newPage);\n      onChange === null || onChange === void 0 || onChange(newPage, pageSize);\n      return newPage;\n    }\n    return current;\n  }\n  var hasPrev = current > 1;\n  var hasNext = current < calculatePage(undefined, pageSize, total);\n  function prevHandle() {\n    if (hasPrev) handleChange(current - 1);\n  }\n  function nextHandle() {\n    if (hasNext) handleChange(current + 1);\n  }\n  function jumpPrevHandle() {\n    handleChange(jumpPrevPage);\n  }\n  function jumpNextHandle() {\n    handleChange(jumpNextPage);\n  }\n  function runIfEnter(event, callback) {\n    if (event.key === 'Enter' || event.charCode === KeyCode.ENTER || event.keyCode === KeyCode.ENTER) {\n      for (var _len = arguments.length, restParams = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n        restParams[_key - 2] = arguments[_key];\n      }\n      callback.apply(void 0, restParams);\n    }\n  }\n  function runIfEnterPrev(event) {\n    runIfEnter(event, prevHandle);\n  }\n  function runIfEnterNext(event) {\n    runIfEnter(event, nextHandle);\n  }\n  function runIfEnterJumpPrev(event) {\n    runIfEnter(event, jumpPrevHandle);\n  }\n  function runIfEnterJumpNext(event) {\n    runIfEnter(event, jumpNextHandle);\n  }\n  function renderPrev(prevPage) {\n    var prevButton = itemRender(prevPage, 'prev', getItemIcon(prevIcon, 'prev page'));\n    return /*#__PURE__*/React.isValidElement(prevButton) ? /*#__PURE__*/React.cloneElement(prevButton, {\n      disabled: !hasPrev\n    }) : prevButton;\n  }\n  function renderNext(nextPage) {\n    var nextButton = itemRender(nextPage, 'next', getItemIcon(nextIcon, 'next page'));\n    return /*#__PURE__*/React.isValidElement(nextButton) ? /*#__PURE__*/React.cloneElement(nextButton, {\n      disabled: !hasNext\n    }) : nextButton;\n  }\n  function handleGoTO(event) {\n    if (event.type === 'click' || event.keyCode === KeyCode.ENTER) {\n      handleChange(internalInputVal);\n    }\n  }\n  var jumpPrev = null;\n  var dataOrAriaAttributeProps = pickAttrs(props, {\n    aria: true,\n    data: true\n  });\n  var totalText = showTotal && /*#__PURE__*/React.createElement(\"li\", {\n    className: \"\".concat(prefixCls, \"-total-text\")\n  }, showTotal(total, [total === 0 ? 0 : (current - 1) * pageSize + 1, current * pageSize > total ? total : current * pageSize]));\n  var jumpNext = null;\n  var allPages = calculatePage(undefined, pageSize, total);\n\n  // ================== Render ==================\n  // When hideOnSinglePage is true and there is only 1 page, hide the pager\n  if (hideOnSinglePage && total <= pageSize) {\n    return null;\n  }\n  var pagerList = [];\n  var pagerProps = {\n    rootPrefixCls: prefixCls,\n    onClick: handleChange,\n    onKeyPress: runIfEnter,\n    showTitle: showTitle,\n    itemRender: itemRender,\n    page: -1\n  };\n  var prevPage = current - 1 > 0 ? current - 1 : 0;\n  var nextPage = current + 1 < allPages ? current + 1 : allPages;\n  var goButton = showQuickJumper && showQuickJumper.goButton;\n\n  // ================== Simple ==================\n  // FIXME: ts type\n  var isReadOnly = _typeof(simple) === 'object' ? simple.readOnly : !simple;\n  var gotoButton = goButton;\n  var simplePager = null;\n  if (simple) {\n    // ====== Simple quick jump ======\n    if (goButton) {\n      if (typeof goButton === 'boolean') {\n        gotoButton = /*#__PURE__*/React.createElement(\"button\", {\n          type: \"button\",\n          onClick: handleGoTO,\n          onKeyUp: handleGoTO\n        }, locale.jump_to_confirm);\n      } else {\n        gotoButton = /*#__PURE__*/React.createElement(\"span\", {\n          onClick: handleGoTO,\n          onKeyUp: handleGoTO\n        }, goButton);\n      }\n      gotoButton = /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? \"\".concat(locale.jump_to).concat(current, \"/\").concat(allPages) : null,\n        className: \"\".concat(prefixCls, \"-simple-pager\")\n      }, gotoButton);\n    }\n    simplePager = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? \"\".concat(current, \"/\").concat(allPages) : null,\n      className: \"\".concat(prefixCls, \"-simple-pager\")\n    }, isReadOnly ? internalInputVal : /*#__PURE__*/React.createElement(\"input\", {\n      type: \"text\",\n      value: internalInputVal,\n      disabled: disabled,\n      onKeyDown: handleKeyDown,\n      onKeyUp: handleKeyUp,\n      onChange: handleKeyUp,\n      onBlur: handleBlur,\n      size: 3\n    }), /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-slash\")\n    }, \"/\"), allPages);\n  }\n\n  // ====================== Normal ======================\n  var pageBufferSize = showLessItems ? 1 : 2;\n  if (allPages <= 3 + pageBufferSize * 2) {\n    if (!allPages) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: \"noPager\",\n        page: 1,\n        className: \"\".concat(prefixCls, \"-item-disabled\")\n      })));\n    }\n    for (var i = 1; i <= allPages; i += 1) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: i,\n        page: i,\n        active: current === i\n      })));\n    }\n  } else {\n    var prevItemTitle = showLessItems ? locale.prev_3 : locale.prev_5;\n    var nextItemTitle = showLessItems ? locale.next_3 : locale.next_5;\n    var jumpPrevContent = itemRender(jumpPrevPage, 'jump-prev', getItemIcon(jumpPrevIcon, 'prev page'));\n    var jumpNextContent = itemRender(jumpNextPage, 'jump-next', getItemIcon(jumpNextIcon, 'next page'));\n    if (showPrevNextJumpers) {\n      jumpPrev = jumpPrevContent ? /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? prevItemTitle : null,\n        key: \"prev\",\n        onClick: jumpPrevHandle,\n        tabIndex: 0,\n        onKeyDown: runIfEnterJumpPrev,\n        className: classNames(\"\".concat(prefixCls, \"-jump-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-prev-custom-icon\"), !!jumpPrevIcon))\n      }, jumpPrevContent) : null;\n      jumpNext = jumpNextContent ? /*#__PURE__*/React.createElement(\"li\", {\n        title: showTitle ? nextItemTitle : null,\n        key: \"next\",\n        onClick: jumpNextHandle,\n        tabIndex: 0,\n        onKeyDown: runIfEnterJumpNext,\n        className: classNames(\"\".concat(prefixCls, \"-jump-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-jump-next-custom-icon\"), !!jumpNextIcon))\n      }, jumpNextContent) : null;\n    }\n    var left = Math.max(1, current - pageBufferSize);\n    var right = Math.min(current + pageBufferSize, allPages);\n    if (current - 1 <= pageBufferSize) {\n      right = 1 + pageBufferSize * 2;\n    }\n    if (allPages - current <= pageBufferSize) {\n      left = allPages - pageBufferSize * 2;\n    }\n    for (var _i = left; _i <= right; _i += 1) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: _i,\n        page: _i,\n        active: current === _i\n      })));\n    }\n    if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\n      pagerList[0] = /*#__PURE__*/React.cloneElement(pagerList[0], {\n        className: classNames(\"\".concat(prefixCls, \"-item-after-jump-prev\"), pagerList[0].props.className)\n      });\n      pagerList.unshift(jumpPrev);\n    }\n    if (allPages - current >= pageBufferSize * 2 && current !== allPages - 2) {\n      var lastOne = pagerList[pagerList.length - 1];\n      pagerList[pagerList.length - 1] = /*#__PURE__*/React.cloneElement(lastOne, {\n        className: classNames(\"\".concat(prefixCls, \"-item-before-jump-next\"), lastOne.props.className)\n      });\n      pagerList.push(jumpNext);\n    }\n    if (left !== 1) {\n      pagerList.unshift( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: 1,\n        page: 1\n      })));\n    }\n    if (right !== allPages) {\n      pagerList.push( /*#__PURE__*/React.createElement(Pager, _extends({}, pagerProps, {\n        key: allPages,\n        page: allPages\n      })));\n    }\n  }\n  var prev = renderPrev(prevPage);\n  if (prev) {\n    var prevDisabled = !hasPrev || !allPages;\n    prev = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? locale.prev_page : null,\n      onClick: prevHandle,\n      tabIndex: prevDisabled ? null : 0,\n      onKeyDown: runIfEnterPrev,\n      className: classNames(\"\".concat(prefixCls, \"-prev\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), prevDisabled)),\n      \"aria-disabled\": prevDisabled\n    }, prev);\n  }\n  var next = renderNext(nextPage);\n  if (next) {\n    var nextDisabled, nextTabIndex;\n    if (simple) {\n      nextDisabled = !hasNext;\n      nextTabIndex = hasPrev ? 0 : null;\n    } else {\n      nextDisabled = !hasNext || !allPages;\n      nextTabIndex = nextDisabled ? null : 0;\n    }\n    next = /*#__PURE__*/React.createElement(\"li\", {\n      title: showTitle ? locale.next_page : null,\n      onClick: nextHandle,\n      tabIndex: nextTabIndex,\n      onKeyDown: runIfEnterNext,\n      className: classNames(\"\".concat(prefixCls, \"-next\"), _defineProperty({}, \"\".concat(prefixCls, \"-disabled\"), nextDisabled)),\n      \"aria-disabled\": nextDisabled\n    }, next);\n  }\n  var cls = classNames(prefixCls, className, (_classNames5 = {}, _defineProperty(_classNames5, \"\".concat(prefixCls, \"-start\"), align === 'start'), _defineProperty(_classNames5, \"\".concat(prefixCls, \"-center\"), align === 'center'), _defineProperty(_classNames5, \"\".concat(prefixCls, \"-end\"), align === 'end'), _defineProperty(_classNames5, \"\".concat(prefixCls, \"-simple\"), simple), _defineProperty(_classNames5, \"\".concat(prefixCls, \"-disabled\"), disabled), _classNames5));\n  return /*#__PURE__*/React.createElement(\"ul\", _extends({\n    className: cls,\n    style: style,\n    ref: paginationRef\n  }, dataOrAriaAttributeProps), totalText, prev, simple ? simplePager : pagerList, next, /*#__PURE__*/React.createElement(Options, {\n    locale: locale,\n    rootPrefixCls: prefixCls,\n    disabled: disabled,\n    selectPrefixCls: selectPrefixCls,\n    changeSize: changePageSize,\n    pageSize: pageSize,\n    pageSizeOptions: pageSizeOptions,\n    quickGo: shouldDisplayQuickJumper ? handleChange : null,\n    goButton: gotoButton,\n    showSizeChanger: showSizeChanger,\n    sizeChangerRender: sizeChangerRender\n  }));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","var locale = {\n  // Options\n  items_per_page: '/ page',\n  jump_to: 'Go to',\n  jump_to_confirm: 'confirm',\n  page: 'Page',\n  // Pagination\n  prev_page: 'Previous Page',\n  next_page: 'Next Page',\n  prev_5: 'Previous 5 Pages',\n  next_5: 'Next 5 Pages',\n  prev_3: 'Previous 3 Pages',\n  next_3: 'Next 3 Pages',\n  page_size: 'Page Size'\n};\nexport default locale;","import React from 'react';\nimport { useToken } from '../theme/internal';\nexport const responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nconst getResponsiveMap = token => ({\n  xs: `(max-width: ${token.screenXSMax}px)`,\n  sm: `(min-width: ${token.screenSM}px)`,\n  md: `(min-width: ${token.screenMD}px)`,\n  lg: `(min-width: ${token.screenLG}px)`,\n  xl: `(min-width: ${token.screenXL}px)`,\n  xxl: `(min-width: ${token.screenXXL}px)`\n});\n/**\n * Ensures that the breakpoints token are valid, in good order\n * For each breakpoint : screenMin <= screen <= screenMax and screenMax <= nextScreenMin\n */\nconst validateBreakpoints = token => {\n  const indexableToken = token;\n  const revBreakpoints = [].concat(responsiveArray).reverse();\n  revBreakpoints.forEach((breakpoint, i) => {\n    const breakpointUpper = breakpoint.toUpperCase();\n    const screenMin = `screen${breakpointUpper}Min`;\n    const screen = `screen${breakpointUpper}`;\n    if (!(indexableToken[screenMin] <= indexableToken[screen])) {\n      throw new Error(`${screenMin}<=${screen} fails : !(${indexableToken[screenMin]}<=${indexableToken[screen]})`);\n    }\n    if (i < revBreakpoints.length - 1) {\n      const screenMax = `screen${breakpointUpper}Max`;\n      if (!(indexableToken[screen] <= indexableToken[screenMax])) {\n        throw new Error(`${screen}<=${screenMax} fails : !(${indexableToken[screen]}<=${indexableToken[screenMax]})`);\n      }\n      const nextBreakpointUpperMin = revBreakpoints[i + 1].toUpperCase();\n      const nextScreenMin = `screen${nextBreakpointUpperMin}Min`;\n      if (!(indexableToken[screenMax] <= indexableToken[nextScreenMin])) {\n        throw new Error(`${screenMax}<=${nextScreenMin} fails : !(${indexableToken[screenMax]}<=${indexableToken[nextScreenMin]})`);\n      }\n    }\n  });\n  return token;\n};\nexport default function useResponsiveObserver() {\n  const [, token] = useToken();\n  const responsiveMap = getResponsiveMap(validateBreakpoints(token));\n  // To avoid repeat create instance, we add `useMemo` here.\n  return React.useMemo(() => {\n    const subscribers = new Map();\n    let subUid = -1;\n    let screens = {};\n    return {\n      matchHandlers: {},\n      dispatch(pointMap) {\n        screens = pointMap;\n        subscribers.forEach(func => func(screens));\n        return subscribers.size >= 1;\n      },\n      subscribe(func) {\n        if (!subscribers.size) {\n          this.register();\n        }\n        subUid += 1;\n        subscribers.set(subUid, func);\n        func(screens);\n        return subUid;\n      },\n      unsubscribe(paramToken) {\n        subscribers.delete(paramToken);\n        if (!subscribers.size) {\n          this.unregister();\n        }\n      },\n      unregister() {\n        Object.keys(responsiveMap).forEach(screen => {\n          const matchMediaQuery = responsiveMap[screen];\n          const handler = this.matchHandlers[matchMediaQuery];\n          handler === null || handler === void 0 ? void 0 : handler.mql.removeListener(handler === null || handler === void 0 ? void 0 : handler.listener);\n        });\n        subscribers.clear();\n      },\n      register() {\n        Object.keys(responsiveMap).forEach(screen => {\n          const matchMediaQuery = responsiveMap[screen];\n          const listener = _ref => {\n            let {\n              matches\n            } = _ref;\n            this.dispatch(Object.assign(Object.assign({}, screens), {\n              [screen]: matches\n            }));\n          };\n          const mql = window.matchMedia(matchMediaQuery);\n          mql.addListener(listener);\n          this.matchHandlers[matchMediaQuery] = {\n            mql,\n            listener\n          };\n          listener(mql);\n        });\n      },\n      responsiveMap\n    };\n  }, [token]);\n}\nexport const matchScreen = (screens, screenSizes) => {\n  if (screenSizes && typeof screenSizes === 'object') {\n    for (let i = 0; i < responsiveArray.length; i++) {\n      const breakpoint = responsiveArray[i];\n      if (screens[breakpoint] && screenSizes[breakpoint] !== undefined) {\n        return screenSizes[breakpoint];\n      }\n    }\n  }\n};","\"use client\";\n\nimport { useRef } from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport useResponsiveObserver from '../../_util/responsiveObserver';\nfunction useBreakpoint() {\n  let refreshOnChange = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n  const screensRef = useRef({});\n  const forceUpdate = useForceUpdate();\n  const responsiveObserver = useResponsiveObserver();\n  useLayoutEffect(() => {\n    const token = responsiveObserver.subscribe(supportScreens => {\n      screensRef.current = supportScreens;\n      if (refreshOnChange) {\n        forceUpdate();\n      }\n    });\n    return () => responsiveObserver.unsubscribe(token);\n  }, []);\n  return screensRef.current;\n}\nexport default useBreakpoint;","import * as React from 'react';\nexport default function useForceUpdate() {\n  const [, forceUpdate] = React.useReducer(x => x + 1, 0);\n  return forceUpdate;\n}","import { createContext } from 'react';\nconst LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { commonLocale } from \"./common\";\nvar locale = _objectSpread(_objectSpread({}, commonLocale), {}, {\n  locale: 'en_US',\n  today: 'Today',\n  now: 'Now',\n  backToToday: 'Back to today',\n  ok: 'OK',\n  clear: 'Clear',\n  month: 'Month',\n  year: 'Year',\n  timeSelect: 'select time',\n  dateSelect: 'select date',\n  weekSelect: 'Choose a week',\n  monthSelect: 'Choose a month',\n  yearSelect: 'Choose a year',\n  decadeSelect: 'Choose a decade',\n  dateFormat: 'M/D/YYYY',\n  dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n  previousMonth: 'Previous month (PageUp)',\n  nextMonth: 'Next month (PageDown)',\n  previousYear: 'Last year (Control + left)',\n  nextYear: 'Next year (Control + right)',\n  previousDecade: 'Last decade',\n  nextDecade: 'Next decade',\n  previousCentury: 'Last century',\n  nextCentury: 'Next century'\n});\nexport default locale;","export var commonLocale = {\n  yearFormat: 'YYYY',\n  dayFormat: 'D',\n  cellMeridiemFormat: 'A',\n  monthBeforeYear: true\n};","const locale = {\n  placeholder: 'Select time',\n  rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nconst locale = {\n  lang: Object.assign({\n    placeholder: 'Select date',\n    yearPlaceholder: 'Select year',\n    quarterPlaceholder: 'Select quarter',\n    monthPlaceholder: 'Select month',\n    weekPlaceholder: 'Select week',\n    rangePlaceholder: ['Start date', 'End date'],\n    rangeYearPlaceholder: ['Start year', 'End year'],\n    rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n    rangeMonthPlaceholder: ['Start month', 'End month'],\n    rangeWeekPlaceholder: ['Start week', 'End week']\n  }, CalendarLocale),\n  timePickerLocale: Object.assign({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nconst typeTemplate = '${label} is not a valid ${type}';\nconst localeValues = {\n  locale: 'en',\n  Pagination,\n  DatePicker,\n  TimePicker,\n  Calendar,\n  global: {\n    placeholder: 'Please select'\n  },\n  Table: {\n    filterTitle: 'Filter menu',\n    filterConfirm: 'OK',\n    filterReset: 'Reset',\n    filterEmptyText: 'No filters',\n    filterCheckall: 'Select all items',\n    filterSearchPlaceholder: 'Search in filters',\n    emptyText: 'No data',\n    selectAll: 'Select current page',\n    selectInvert: 'Invert current page',\n    selectNone: 'Clear all data',\n    selectionAll: 'Select all data',\n    sortTitle: 'Sort',\n    expand: 'Expand row',\n    collapse: 'Collapse row',\n    triggerDesc: 'Click to sort descending',\n    triggerAsc: 'Click to sort ascending',\n    cancelSort: 'Click to cancel sorting'\n  },\n  Tour: {\n    Next: 'Next',\n    Previous: 'Previous',\n    Finish: 'Finish'\n  },\n  Modal: {\n    okText: 'OK',\n    cancelText: 'Cancel',\n    justOkText: 'OK'\n  },\n  Popconfirm: {\n    okText: 'OK',\n    cancelText: 'Cancel'\n  },\n  Transfer: {\n    titles: ['', ''],\n    searchPlaceholder: 'Search here',\n    itemUnit: 'item',\n    itemsUnit: 'items',\n    remove: 'Remove',\n    selectCurrent: 'Select current page',\n    removeCurrent: 'Remove current page',\n    selectAll: 'Select all data',\n    deselectAll: 'Deselect all data',\n    removeAll: 'Remove all data',\n    selectInvert: 'Invert current page'\n  },\n  Upload: {\n    uploading: 'Uploading...',\n    removeFile: 'Remove file',\n    uploadError: 'Upload error',\n    previewFile: 'Preview file',\n    downloadFile: 'Download file'\n  },\n  Empty: {\n    description: 'No data'\n  },\n  Icon: {\n    icon: 'icon'\n  },\n  Text: {\n    edit: 'Edit',\n    copy: 'Copy',\n    copied: 'Copied',\n    expand: 'Expand',\n    collapse: 'Collapse'\n  },\n  Form: {\n    optional: '(optional)',\n    defaultValidateMessages: {\n      default: 'Field validation error for ${label}',\n      required: 'Please enter ${label}',\n      enum: '${label} must be one of [${enum}]',\n      whitespace: '${label} cannot be a blank character',\n      date: {\n        format: '${label} date format is invalid',\n        parse: '${label} cannot be converted to a date',\n        invalid: '${label} is an invalid date'\n      },\n      types: {\n        string: typeTemplate,\n        method: typeTemplate,\n        array: typeTemplate,\n        object: typeTemplate,\n        number: typeTemplate,\n        date: typeTemplate,\n        boolean: typeTemplate,\n        integer: typeTemplate,\n        float: typeTemplate,\n        regexp: typeTemplate,\n        email: typeTemplate,\n        url: typeTemplate,\n        hex: typeTemplate\n      },\n      string: {\n        len: '${label} must be ${len} characters',\n        min: '${label} must be at least ${min} characters',\n        max: '${label} must be up to ${max} characters',\n        range: '${label} must be between ${min}-${max} characters'\n      },\n      number: {\n        len: '${label} must be equal to ${len}',\n        min: '${label} must be minimum ${min}',\n        max: '${label} must be maximum ${max}',\n        range: '${label} must be between ${min}-${max}'\n      },\n      array: {\n        len: 'Must be ${len} ${label}',\n        min: 'At least ${min} ${label}',\n        max: 'At most ${max} ${label}',\n        range: 'The amount of ${label} must be between ${min}-${max}'\n      },\n      pattern: {\n        mismatch: '${label} does not match the pattern ${pattern}'\n      }\n    }\n  },\n  Image: {\n    preview: 'Preview'\n  },\n  QRCode: {\n    expired: 'QR code expired',\n    refresh: 'Refresh',\n    scanned: 'Scanned'\n  },\n  ColorPicker: {\n    presetEmpty: 'Empty',\n    transparent: 'Transparent',\n    singleColor: 'Single',\n    gradientColor: 'Gradient'\n  }\n};\nexport default localeValues;","import * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './en_US';\nconst useLocale = (componentName, defaultLocale) => {\n  const fullLocale = React.useContext(LocaleContext);\n  const getLocale = React.useMemo(() => {\n    var _a;\n    const locale = defaultLocale || defaultLocaleData[componentName];\n    const localeFromContext = (_a = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n    return Object.assign(Object.assign({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n  }, [componentName, defaultLocale, fullLocale]);\n  const getLocaleCode = React.useMemo(() => {\n    const localeCode = fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.locale;\n    // Had use LocaleProvide but didn't set locale\n    if ((fullLocale === null || fullLocale === void 0 ? void 0 : fullLocale.exist) && !localeCode) {\n      return defaultLocaleData.locale;\n    }\n    return localeCode;\n  }, [fullLocale]);\n  return [getLocale, getLocaleCode];\n};\nexport default useLocale;","import * as React from 'react';\nimport classNames from 'classnames';\nvar TransBtn = function TransBtn(props) {\n  var className = props.className,\n    customizeIcon = props.customizeIcon,\n    customizeIconProps = props.customizeIconProps,\n    children = props.children,\n    _onMouseDown = props.onMouseDown,\n    onClick = props.onClick;\n  var icon = typeof customizeIcon === 'function' ? customizeIcon(customizeIconProps) : customizeIcon;\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: className,\n    onMouseDown: function onMouseDown(event) {\n      event.preventDefault();\n      _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(event);\n    },\n    style: {\n      userSelect: 'none',\n      WebkitUserSelect: 'none'\n    },\n    unselectable: \"on\",\n    onClick: onClick,\n    \"aria-hidden\": true\n  }, icon !== undefined ? icon : /*#__PURE__*/React.createElement(\"span\", {\n    className: classNames(className.split(/\\s+/).map(function (cls) {\n      return \"\".concat(cls, \"-icon\");\n    }))\n  }, children));\n};\nexport default TransBtn;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport TransBtn from \"../TransBtn\";\nimport React from 'react';\nexport var useAllowClear = function useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon) {\n  var disabled = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;\n  var mergedSearchValue = arguments.length > 6 ? arguments[6] : undefined;\n  var mode = arguments.length > 7 ? arguments[7] : undefined;\n  var mergedClearIcon = React.useMemo(function () {\n    if (_typeof(allowClear) === 'object') {\n      return allowClear.clearIcon;\n    }\n    if (clearIcon) {\n      return clearIcon;\n    }\n  }, [allowClear, clearIcon]);\n  var mergedAllowClear = React.useMemo(function () {\n    if (!disabled && !!allowClear && (displayValues.length || mergedSearchValue) && !(mode === 'combobox' && mergedSearchValue === '')) {\n      return true;\n    }\n    return false;\n  }, [allowClear, disabled, displayValues.length, mergedSearchValue, mode]);\n  return {\n    allowClear: mergedAllowClear,\n    clearIcon: /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(prefixCls, \"-clear\"),\n      onMouseDown: onClearMouseDown,\n      customizeIcon: mergedClearIcon\n    }, \"\\xD7\")\n  };\n};","/**\n * BaseSelect provide some parsed data into context.\n * You can use this hooks to get them.\n */\n\nimport * as React from 'react';\nexport var BaseSelectContext = /*#__PURE__*/React.createContext(null);\nexport default function useBaseProps() {\n  return React.useContext(BaseSelectContext);\n}","import * as React from 'react';\n\n/**\n * Locker return cached mark.\n * If set to `true`, will return `true` in a short time even if set `false`.\n * If set to `false` and then set to `true`, will change to `true`.\n * And after time duration, it will back to `null` automatically.\n */\nexport default function useLock() {\n  var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 250;\n  var lockRef = React.useRef(null);\n  var timeoutRef = React.useRef(null);\n\n  // Clean up\n  React.useEffect(function () {\n    return function () {\n      window.clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  function doLock(locked) {\n    if (locked || lockRef.current === null) {\n      lockRef.current = locked;\n    }\n    window.clearTimeout(timeoutRef.current);\n    timeoutRef.current = window.setTimeout(function () {\n      lockRef.current = null;\n    }, duration);\n  }\n  return [function () {\n    return lockRef.current;\n  }, doLock];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { warning } from \"rc-util/es/warning\";\nvar Input = function Input(props, ref) {\n  var _inputNode2;\n  var prefixCls = props.prefixCls,\n    id = props.id,\n    inputElement = props.inputElement,\n    disabled = props.disabled,\n    tabIndex = props.tabIndex,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    editable = props.editable,\n    activeDescendantId = props.activeDescendantId,\n    value = props.value,\n    maxLength = props.maxLength,\n    _onKeyDown = props.onKeyDown,\n    _onMouseDown = props.onMouseDown,\n    _onChange = props.onChange,\n    onPaste = props.onPaste,\n    _onCompositionStart = props.onCompositionStart,\n    _onCompositionEnd = props.onCompositionEnd,\n    _onBlur = props.onBlur,\n    open = props.open,\n    attrs = props.attrs;\n  var inputNode = inputElement || /*#__PURE__*/React.createElement(\"input\", null);\n  var _inputNode = inputNode,\n    originRef = _inputNode.ref,\n    originProps = _inputNode.props;\n  var onOriginKeyDown = originProps.onKeyDown,\n    onOriginChange = originProps.onChange,\n    onOriginMouseDown = originProps.onMouseDown,\n    onOriginCompositionStart = originProps.onCompositionStart,\n    onOriginCompositionEnd = originProps.onCompositionEnd,\n    onOriginBlur = originProps.onBlur,\n    style = originProps.style;\n  warning(!('maxLength' in inputNode.props), \"Passing 'maxLength' to input element directly may not work because input in BaseSelect is controlled.\");\n  inputNode = /*#__PURE__*/React.cloneElement(inputNode, _objectSpread(_objectSpread(_objectSpread({\n    type: 'search'\n  }, originProps), {}, {\n    // Override over origin props\n    id: id,\n    ref: composeRef(ref, originRef),\n    disabled: disabled,\n    tabIndex: tabIndex,\n    autoComplete: autoComplete || 'off',\n    autoFocus: autoFocus,\n    className: classNames(\"\".concat(prefixCls, \"-selection-search-input\"), (_inputNode2 = inputNode) === null || _inputNode2 === void 0 || (_inputNode2 = _inputNode2.props) === null || _inputNode2 === void 0 ? void 0 : _inputNode2.className),\n    role: 'combobox',\n    'aria-expanded': open || false,\n    'aria-haspopup': 'listbox',\n    'aria-owns': \"\".concat(id, \"_list\"),\n    'aria-autocomplete': 'list',\n    'aria-controls': \"\".concat(id, \"_list\"),\n    'aria-activedescendant': open ? activeDescendantId : undefined\n  }, attrs), {}, {\n    value: editable ? value : '',\n    maxLength: maxLength,\n    readOnly: !editable,\n    unselectable: !editable ? 'on' : null,\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      opacity: editable ? null : 0\n    }),\n    onKeyDown: function onKeyDown(event) {\n      _onKeyDown(event);\n      if (onOriginKeyDown) {\n        onOriginKeyDown(event);\n      }\n    },\n    onMouseDown: function onMouseDown(event) {\n      _onMouseDown(event);\n      if (onOriginMouseDown) {\n        onOriginMouseDown(event);\n      }\n    },\n    onChange: function onChange(event) {\n      _onChange(event);\n      if (onOriginChange) {\n        onOriginChange(event);\n      }\n    },\n    onCompositionStart: function onCompositionStart(event) {\n      _onCompositionStart(event);\n      if (onOriginCompositionStart) {\n        onOriginCompositionStart(event);\n      }\n    },\n    onCompositionEnd: function onCompositionEnd(event) {\n      _onCompositionEnd(event);\n      if (onOriginCompositionEnd) {\n        onOriginCompositionEnd(event);\n      }\n    },\n    onPaste: onPaste,\n    onBlur: function onBlur(event) {\n      _onBlur(event);\n      if (onOriginBlur) {\n        onOriginBlur(event);\n      }\n    }\n  }));\n  return inputNode;\n};\nvar RefInput = /*#__PURE__*/React.forwardRef(Input);\nif (process.env.NODE_ENV !== 'production') {\n  RefInput.displayName = 'Input';\n}\nexport default RefInput;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport function toArray(value) {\n  if (Array.isArray(value)) {\n    return value;\n  }\n  return value !== undefined ? [value] : [];\n}\nexport var isClient = typeof window !== 'undefined' && window.document && window.document.documentElement;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && isClient;\nexport function hasValue(value) {\n  return value !== undefined && value !== null;\n}\n\n/** combo mode no value judgment function */\nexport function isComboNoValue(value) {\n  return !value && value !== 0;\n}\nfunction isTitleType(title) {\n  return ['string', 'number'].includes(_typeof(title));\n}\nexport function getTitle(item) {\n  var title = undefined;\n  if (item) {\n    if (isTitleType(item.title)) {\n      title = item.title.toString();\n    } else if (isTitleType(item.label)) {\n      title = item.label.toString();\n    }\n  }\n  return title;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Overflow from 'rc-overflow';\nimport TransBtn from \"../TransBtn\";\nimport Input from \"./Input\";\nimport useLayoutEffect from \"../hooks/useLayoutEffect\";\nimport { getTitle } from \"../utils/commonUtil\";\nfunction itemKey(value) {\n  var _value$key;\n  return (_value$key = value.key) !== null && _value$key !== void 0 ? _value$key : value.value;\n}\nvar onPreventMouseDown = function onPreventMouseDown(event) {\n  event.preventDefault();\n  event.stopPropagation();\n};\nvar SelectSelector = function SelectSelector(props) {\n  var id = props.id,\n    prefixCls = props.prefixCls,\n    values = props.values,\n    open = props.open,\n    searchValue = props.searchValue,\n    autoClearSearchValue = props.autoClearSearchValue,\n    inputRef = props.inputRef,\n    placeholder = props.placeholder,\n    disabled = props.disabled,\n    mode = props.mode,\n    showSearch = props.showSearch,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    activeDescendantId = props.activeDescendantId,\n    tabIndex = props.tabIndex,\n    removeIcon = props.removeIcon,\n    maxTagCount = props.maxTagCount,\n    maxTagTextLength = props.maxTagTextLength,\n    _props$maxTagPlacehol = props.maxTagPlaceholder,\n    maxTagPlaceholder = _props$maxTagPlacehol === void 0 ? function (omittedValues) {\n      return \"+ \".concat(omittedValues.length, \" ...\");\n    } : _props$maxTagPlacehol,\n    tagRender = props.tagRender,\n    onToggleOpen = props.onToggleOpen,\n    onRemove = props.onRemove,\n    onInputChange = props.onInputChange,\n    onInputPaste = props.onInputPaste,\n    onInputKeyDown = props.onInputKeyDown,\n    onInputMouseDown = props.onInputMouseDown,\n    onInputCompositionStart = props.onInputCompositionStart,\n    onInputCompositionEnd = props.onInputCompositionEnd,\n    onInputBlur = props.onInputBlur;\n  var measureRef = React.useRef(null);\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    inputWidth = _useState2[0],\n    setInputWidth = _useState2[1];\n  var _useState3 = useState(false),\n    _useState4 = _slicedToArray(_useState3, 2),\n    focused = _useState4[0],\n    setFocused = _useState4[1];\n  var selectionPrefixCls = \"\".concat(prefixCls, \"-selection\");\n\n  // ===================== Search ======================\n  var inputValue = open || mode === 'multiple' && autoClearSearchValue === false || mode === 'tags' ? searchValue : '';\n  var inputEditable = mode === 'tags' || mode === 'multiple' && autoClearSearchValue === false || showSearch && (open || focused);\n\n  // We measure width and set to the input immediately\n  useLayoutEffect(function () {\n    setInputWidth(measureRef.current.scrollWidth);\n  }, [inputValue]);\n\n  // ===================== Render ======================\n  // >>> Render Selector Node. Includes Item & Rest\n  var defaultRenderSelector = function defaultRenderSelector(item, content, itemDisabled, closable, onClose) {\n    return /*#__PURE__*/React.createElement(\"span\", {\n      title: getTitle(item),\n      className: classNames(\"\".concat(selectionPrefixCls, \"-item\"), _defineProperty({}, \"\".concat(selectionPrefixCls, \"-item-disabled\"), itemDisabled))\n    }, /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(selectionPrefixCls, \"-item-content\")\n    }, content), closable && /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(selectionPrefixCls, \"-item-remove\"),\n      onMouseDown: onPreventMouseDown,\n      onClick: onClose,\n      customizeIcon: removeIcon\n    }, \"\\xD7\"));\n  };\n  var customizeRenderSelector = function customizeRenderSelector(value, content, itemDisabled, closable, onClose, isMaxTag) {\n    var onMouseDown = function onMouseDown(e) {\n      onPreventMouseDown(e);\n      onToggleOpen(!open);\n    };\n    return /*#__PURE__*/React.createElement(\"span\", {\n      onMouseDown: onMouseDown\n    }, tagRender({\n      label: content,\n      value: value,\n      disabled: itemDisabled,\n      closable: closable,\n      onClose: onClose,\n      isMaxTag: !!isMaxTag\n    }));\n  };\n  var renderItem = function renderItem(valueItem) {\n    var itemDisabled = valueItem.disabled,\n      label = valueItem.label,\n      value = valueItem.value;\n    var closable = !disabled && !itemDisabled;\n    var displayLabel = label;\n    if (typeof maxTagTextLength === 'number') {\n      if (typeof label === 'string' || typeof label === 'number') {\n        var strLabel = String(displayLabel);\n        if (strLabel.length > maxTagTextLength) {\n          displayLabel = \"\".concat(strLabel.slice(0, maxTagTextLength), \"...\");\n        }\n      }\n    }\n    var onClose = function onClose(event) {\n      if (event) {\n        event.stopPropagation();\n      }\n      onRemove(valueItem);\n    };\n    return typeof tagRender === 'function' ? customizeRenderSelector(value, displayLabel, itemDisabled, closable, onClose) : defaultRenderSelector(valueItem, displayLabel, itemDisabled, closable, onClose);\n  };\n  var renderRest = function renderRest(omittedValues) {\n    // https://github.com/ant-design/ant-design/issues/48930\n    if (!values.length) {\n      return null;\n    }\n    var content = typeof maxTagPlaceholder === 'function' ? maxTagPlaceholder(omittedValues) : maxTagPlaceholder;\n    return typeof tagRender === 'function' ? customizeRenderSelector(undefined, content, false, false, undefined, true) : defaultRenderSelector({\n      title: content\n    }, content, false);\n  };\n\n  // >>> Input Node\n  var inputNode = /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(selectionPrefixCls, \"-search\"),\n    style: {\n      width: inputWidth\n    },\n    onFocus: function onFocus() {\n      setFocused(true);\n    },\n    onBlur: function onBlur() {\n      setFocused(false);\n    }\n  }, /*#__PURE__*/React.createElement(Input, {\n    ref: inputRef,\n    open: open,\n    prefixCls: prefixCls,\n    id: id,\n    inputElement: null,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    activeDescendantId: activeDescendantId,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: onInputChange,\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    onBlur: onInputBlur,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true)\n  }), /*#__PURE__*/React.createElement(\"span\", {\n    ref: measureRef,\n    className: \"\".concat(selectionPrefixCls, \"-search-mirror\"),\n    \"aria-hidden\": true\n  }, inputValue, \"\\xA0\"));\n\n  // >>> Selections\n  var selectionNode = /*#__PURE__*/React.createElement(Overflow, {\n    prefixCls: \"\".concat(selectionPrefixCls, \"-overflow\"),\n    data: values,\n    renderItem: renderItem,\n    renderRest: renderRest,\n    suffix: inputNode,\n    itemKey: itemKey,\n    maxCount: maxTagCount\n  });\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(selectionPrefixCls, \"-wrap\")\n  }, selectionNode, !values.length && !inputValue && /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(selectionPrefixCls, \"-placeholder\")\n  }, placeholder));\n};\nexport default SelectSelector;","/* eslint-disable react-hooks/rules-of-hooks */\nimport * as React from 'react';\nimport { isBrowserClient } from \"../utils/commonUtil\";\n\n/**\n * Wrap `React.useLayoutEffect` which will not throw warning message in test env\n */\nexport default function useLayoutEffect(effect, deps) {\n  // Never happen in test env\n  if (isBrowserClient) {\n    /* istanbul ignore next */\n    React.useLayoutEffect(effect, deps);\n  } else {\n    React.useEffect(effect, deps);\n  }\n}\n/* eslint-enable */","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport Input from \"./Input\";\nimport { getTitle } from \"../utils/commonUtil\";\nvar SingleSelector = function SingleSelector(props) {\n  var inputElement = props.inputElement,\n    prefixCls = props.prefixCls,\n    id = props.id,\n    inputRef = props.inputRef,\n    disabled = props.disabled,\n    autoFocus = props.autoFocus,\n    autoComplete = props.autoComplete,\n    activeDescendantId = props.activeDescendantId,\n    mode = props.mode,\n    open = props.open,\n    values = props.values,\n    placeholder = props.placeholder,\n    tabIndex = props.tabIndex,\n    showSearch = props.showSearch,\n    searchValue = props.searchValue,\n    activeValue = props.activeValue,\n    maxLength = props.maxLength,\n    onInputKeyDown = props.onInputKeyDown,\n    onInputMouseDown = props.onInputMouseDown,\n    onInputChange = props.onInputChange,\n    onInputPaste = props.onInputPaste,\n    onInputCompositionStart = props.onInputCompositionStart,\n    onInputCompositionEnd = props.onInputCompositionEnd,\n    onInputBlur = props.onInputBlur,\n    title = props.title;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    inputChanged = _React$useState2[0],\n    setInputChanged = _React$useState2[1];\n  var combobox = mode === 'combobox';\n  var inputEditable = combobox || showSearch;\n  var item = values[0];\n  var inputValue = searchValue || '';\n  if (combobox && activeValue && !inputChanged) {\n    inputValue = activeValue;\n  }\n  React.useEffect(function () {\n    if (combobox) {\n      setInputChanged(false);\n    }\n  }, [combobox, activeValue]);\n\n  // Not show text when closed expect combobox mode\n  var hasTextInput = mode !== 'combobox' && !open && !showSearch ? false : !!inputValue;\n\n  // Get title of selection item\n  var selectionTitle = title === undefined ? getTitle(item) : title;\n  var placeholderNode = React.useMemo(function () {\n    if (item) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(\"span\", {\n      className: \"\".concat(prefixCls, \"-selection-placeholder\"),\n      style: hasTextInput ? {\n        visibility: 'hidden'\n      } : undefined\n    }, placeholder);\n  }, [item, hasTextInput, placeholder, prefixCls]);\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-wrap\")\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-search\")\n  }, /*#__PURE__*/React.createElement(Input, {\n    ref: inputRef,\n    prefixCls: prefixCls,\n    id: id,\n    open: open,\n    inputElement: inputElement,\n    disabled: disabled,\n    autoFocus: autoFocus,\n    autoComplete: autoComplete,\n    editable: inputEditable,\n    activeDescendantId: activeDescendantId,\n    value: inputValue,\n    onKeyDown: onInputKeyDown,\n    onMouseDown: onInputMouseDown,\n    onChange: function onChange(e) {\n      setInputChanged(true);\n      onInputChange(e);\n    },\n    onPaste: onInputPaste,\n    onCompositionStart: onInputCompositionStart,\n    onCompositionEnd: onInputCompositionEnd,\n    onBlur: onInputBlur,\n    tabIndex: tabIndex,\n    attrs: pickAttrs(props, true),\n    maxLength: combobox ? maxLength : undefined\n  })), !combobox && item ? /*#__PURE__*/React.createElement(\"span\", {\n    className: \"\".concat(prefixCls, \"-selection-item\"),\n    title: selectionTitle\n    // 当 Select 已经选中选项时,还需 selection 隐藏但留在原地占位\n    // https://github.com/ant-design/ant-design/issues/27688\n    // https://github.com/ant-design/ant-design/issues/41530\n    ,\n    style: hasTextInput ? {\n      visibility: 'hidden'\n    } : undefined\n  }, item.label) : null, placeholderNode);\n};\nexport default SingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/**\n * Cursor rule:\n * 1. Only `showSearch` enabled\n * 2. Only `open` is `true`\n * 3. When typing, set `open` to `true` which hit rule of 2\n *\n * Accessibility:\n * - https://www.w3.org/TR/wai-aria-practices/examples/combobox/aria1.1pattern/listbox-combo.html\n */\n\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport useLock from \"../hooks/useLock\";\nimport { isValidateOpenKey } from \"../utils/keyUtil\";\nimport MultipleSelector from \"./MultipleSelector\";\nimport SingleSelector from \"./SingleSelector\";\nvar Selector = function Selector(props, ref) {\n  var inputRef = useRef(null);\n  var compositionStatusRef = useRef(false);\n  var prefixCls = props.prefixCls,\n    open = props.open,\n    mode = props.mode,\n    showSearch = props.showSearch,\n    tokenWithEnter = props.tokenWithEnter,\n    disabled = props.disabled,\n    prefix = props.prefix,\n    autoClearSearchValue = props.autoClearSearchValue,\n    onSearch = props.onSearch,\n    onSearchSubmit = props.onSearchSubmit,\n    onToggleOpen = props.onToggleOpen,\n    onInputKeyDown = props.onInputKeyDown,\n    onInputBlur = props.onInputBlur,\n    domRef = props.domRef;\n\n  // ======================= Ref =======================\n  React.useImperativeHandle(ref, function () {\n    return {\n      focus: function focus(options) {\n        inputRef.current.focus(options);\n      },\n      blur: function blur() {\n        inputRef.current.blur();\n      }\n    };\n  });\n\n  // ====================== Input ======================\n  var _useLock = useLock(0),\n    _useLock2 = _slicedToArray(_useLock, 2),\n    getInputMouseDown = _useLock2[0],\n    setInputMouseDown = _useLock2[1];\n  var onInternalInputKeyDown = function onInternalInputKeyDown(event) {\n    var which = event.which;\n\n    // Compatible with multiple lines in TextArea\n    var isTextAreaElement = inputRef.current instanceof HTMLTextAreaElement;\n    if (!isTextAreaElement && open && (which === KeyCode.UP || which === KeyCode.DOWN)) {\n      event.preventDefault();\n    }\n    if (onInputKeyDown) {\n      onInputKeyDown(event);\n    }\n    if (which === KeyCode.ENTER && mode === 'tags' && !compositionStatusRef.current && !open) {\n      // When menu isn't open, OptionList won't trigger a value change\n      // So when enter is pressed, the tag's input value should be emitted here to let selector know\n      onSearchSubmit === null || onSearchSubmit === void 0 || onSearchSubmit(event.target.value);\n    }\n    // Move within the text box\n    if (isTextAreaElement && !open && ~[KeyCode.UP, KeyCode.DOWN, KeyCode.LEFT, KeyCode.RIGHT].indexOf(which)) {\n      return;\n    }\n    if (isValidateOpenKey(which)) {\n      onToggleOpen(true);\n    }\n  };\n\n  /**\n   * We can not use `findDOMNode` sine it will get warning,\n   * have to use timer to check if is input element.\n   */\n  var onInternalInputMouseDown = function onInternalInputMouseDown() {\n    setInputMouseDown(true);\n  };\n\n  // When paste come, ignore next onChange\n  var pastedTextRef = useRef(null);\n  var triggerOnSearch = function triggerOnSearch(value) {\n    if (onSearch(value, true, compositionStatusRef.current) !== false) {\n      onToggleOpen(true);\n    }\n  };\n  var onInputCompositionStart = function onInputCompositionStart() {\n    compositionStatusRef.current = true;\n  };\n  var onInputCompositionEnd = function onInputCompositionEnd(e) {\n    compositionStatusRef.current = false;\n\n    // Trigger search again to support `tokenSeparators` with typewriting\n    if (mode !== 'combobox') {\n      triggerOnSearch(e.target.value);\n    }\n  };\n  var onInputChange = function onInputChange(event) {\n    var value = event.target.value;\n\n    // Pasted text should replace back to origin content\n    if (tokenWithEnter && pastedTextRef.current && /[\\r\\n]/.test(pastedTextRef.current)) {\n      // CRLF will be treated as a single space for input element\n      var replacedText = pastedTextRef.current.replace(/[\\r\\n]+$/, '').replace(/\\r\\n/g, ' ').replace(/[\\r\\n]/g, ' ');\n      value = value.replace(replacedText, pastedTextRef.current);\n    }\n    pastedTextRef.current = null;\n    triggerOnSearch(value);\n  };\n  var onInputPaste = function onInputPaste(e) {\n    var clipboardData = e.clipboardData;\n    var value = clipboardData === null || clipboardData === void 0 ? void 0 : clipboardData.getData('text');\n    pastedTextRef.current = value || '';\n  };\n  var onClick = function onClick(_ref) {\n    var target = _ref.target;\n    if (target !== inputRef.current) {\n      // Should focus input if click the selector\n      var isIE = document.body.style.msTouchAction !== undefined;\n      if (isIE) {\n        setTimeout(function () {\n          inputRef.current.focus();\n        });\n      } else {\n        inputRef.current.focus();\n      }\n    }\n  };\n  var onMouseDown = function onMouseDown(event) {\n    var inputMouseDown = getInputMouseDown();\n\n    // when mode is combobox and it is disabled, don't prevent default behavior\n    // https://github.com/ant-design/ant-design/issues/37320\n    // https://github.com/ant-design/ant-design/issues/48281\n    if (event.target !== inputRef.current && !inputMouseDown && !(mode === 'combobox' && disabled)) {\n      event.preventDefault();\n    }\n    if (mode !== 'combobox' && (!showSearch || !inputMouseDown) || !open) {\n      if (open && autoClearSearchValue !== false) {\n        onSearch('', true, false);\n      }\n      onToggleOpen();\n    }\n  };\n\n  // ================= Inner Selector ==================\n  var sharedProps = {\n    inputRef: inputRef,\n    onInputKeyDown: onInternalInputKeyDown,\n    onInputMouseDown: onInternalInputMouseDown,\n    onInputChange: onInputChange,\n    onInputPaste: onInputPaste,\n    onInputCompositionStart: onInputCompositionStart,\n    onInputCompositionEnd: onInputCompositionEnd,\n    onInputBlur: onInputBlur\n  };\n  var selectNode = mode === 'multiple' || mode === 'tags' ? /*#__PURE__*/React.createElement(MultipleSelector, _extends({}, props, sharedProps)) : /*#__PURE__*/React.createElement(SingleSelector, _extends({}, props, sharedProps));\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: domRef,\n    className: \"\".concat(prefixCls, \"-selector\"),\n    onClick: onClick,\n    onMouseDown: onMouseDown\n  }, prefix && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"\".concat(prefixCls, \"-prefix\")\n  }, prefix), selectNode);\n};\nvar ForwardSelector = /*#__PURE__*/React.forwardRef(Selector);\nif (process.env.NODE_ENV !== 'production') {\n  ForwardSelector.displayName = 'Selector';\n}\nexport default ForwardSelector;","import KeyCode from \"rc-util/es/KeyCode\";\n\n/** keyCode Judgment function */\nexport function isValidateOpenKey(currentKeyCode) {\n  return (\n    // Undefined for Edge bug:\n    // https://github.com/ant-design/ant-design/issues/51292\n    currentKeyCode &&\n    // Other keys\n    ![\n    // System function button\n    KeyCode.ESC, KeyCode.SHIFT, KeyCode.BACKSPACE, KeyCode.TAB, KeyCode.WIN_KEY, KeyCode.ALT, KeyCode.META, KeyCode.WIN_KEY_RIGHT, KeyCode.CTRL, KeyCode.SEMICOLON, KeyCode.EQUALS, KeyCode.CAPS_LOCK, KeyCode.CONTEXT_MENU,\n    // F1-F12\n    KeyCode.F1, KeyCode.F2, KeyCode.F3, KeyCode.F4, KeyCode.F5, KeyCode.F6, KeyCode.F7, KeyCode.F8, KeyCode.F9, KeyCode.F10, KeyCode.F11, KeyCode.F12].includes(currentKeyCode)\n  );\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"disabled\", \"visible\", \"children\", \"popupElement\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"direction\", \"placement\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"getPopupContainer\", \"empty\", \"getTriggerDOMNode\", \"onPopupVisibleChange\", \"onPopupMouseEnter\"];\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar getBuiltInPlacements = function getBuiltInPlacements(dropdownMatchSelectWidth) {\n  // Enable horizontal overflow auto-adjustment when a custom dropdown width is provided\n  var adjustX = dropdownMatchSelectWidth === true ? 0 : 1;\n  return {\n    bottomLeft: {\n      points: ['tl', 'bl'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    bottomRight: {\n      points: ['tr', 'br'],\n      offset: [0, 4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    topLeft: {\n      points: ['bl', 'tl'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    },\n    topRight: {\n      points: ['br', 'tr'],\n      offset: [0, -4],\n      overflow: {\n        adjustX: adjustX,\n        adjustY: 1\n      },\n      htmlRegion: 'scroll'\n    }\n  };\n};\nvar SelectTrigger = function SelectTrigger(props, ref) {\n  var prefixCls = props.prefixCls,\n    disabled = props.disabled,\n    visible = props.visible,\n    children = props.children,\n    popupElement = props.popupElement,\n    animation = props.animation,\n    transitionName = props.transitionName,\n    dropdownStyle = props.dropdownStyle,\n    dropdownClassName = props.dropdownClassName,\n    _props$direction = props.direction,\n    direction = _props$direction === void 0 ? 'ltr' : _props$direction,\n    placement = props.placement,\n    builtinPlacements = props.builtinPlacements,\n    dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n    dropdownRender = props.dropdownRender,\n    dropdownAlign = props.dropdownAlign,\n    getPopupContainer = props.getPopupContainer,\n    empty = props.empty,\n    getTriggerDOMNode = props.getTriggerDOMNode,\n    onPopupVisibleChange = props.onPopupVisibleChange,\n    onPopupMouseEnter = props.onPopupMouseEnter,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n  var popupNode = popupElement;\n  if (dropdownRender) {\n    popupNode = dropdownRender(popupElement);\n  }\n  var mergedBuiltinPlacements = React.useMemo(function () {\n    return builtinPlacements || getBuiltInPlacements(dropdownMatchSelectWidth);\n  }, [builtinPlacements, dropdownMatchSelectWidth]);\n\n  // ===================== Motion ======================\n  var mergedTransitionName = animation ? \"\".concat(dropdownPrefixCls, \"-\").concat(animation) : transitionName;\n\n  // =================== Popup Width ===================\n  var isNumberPopupWidth = typeof dropdownMatchSelectWidth === 'number';\n  var stretch = React.useMemo(function () {\n    if (isNumberPopupWidth) {\n      return null;\n    }\n    return dropdownMatchSelectWidth === false ? 'minWidth' : 'width';\n  }, [dropdownMatchSelectWidth, isNumberPopupWidth]);\n  var popupStyle = dropdownStyle;\n  if (isNumberPopupWidth) {\n    popupStyle = _objectSpread(_objectSpread({}, popupStyle), {}, {\n      width: dropdownMatchSelectWidth\n    });\n  }\n\n  // ======================= Ref =======================\n  var triggerPopupRef = React.useRef(null);\n  React.useImperativeHandle(ref, function () {\n    return {\n      getPopupElement: function getPopupElement() {\n        var _triggerPopupRef$curr;\n        return (_triggerPopupRef$curr = triggerPopupRef.current) === null || _triggerPopupRef$curr === void 0 ? void 0 : _triggerPopupRef$curr.popupElement;\n      }\n    };\n  });\n  return /*#__PURE__*/React.createElement(Trigger, _extends({}, restProps, {\n    showAction: onPopupVisibleChange ? ['click'] : [],\n    hideAction: onPopupVisibleChange ? ['click'] : [],\n    popupPlacement: placement || (direction === 'rtl' ? 'bottomRight' : 'bottomLeft'),\n    builtinPlacements: mergedBuiltinPlacements,\n    prefixCls: dropdownPrefixCls,\n    popupTransitionName: mergedTransitionName,\n    popup: /*#__PURE__*/React.createElement(\"div\", {\n      onMouseEnter: onPopupMouseEnter\n    }, popupNode),\n    ref: triggerPopupRef,\n    stretch: stretch,\n    popupAlign: dropdownAlign,\n    popupVisible: visible,\n    getPopupContainer: getPopupContainer,\n    popupClassName: classNames(dropdownClassName, _defineProperty({}, \"\".concat(dropdownPrefixCls, \"-empty\"), empty)),\n    popupStyle: popupStyle,\n    getTriggerDOMNode: getTriggerDOMNode,\n    onPopupVisibleChange: onPopupVisibleChange\n  }), children);\n};\nvar RefSelectTrigger = /*#__PURE__*/React.forwardRef(SelectTrigger);\nif (process.env.NODE_ENV !== 'production') {\n  RefSelectTrigger.displayName = 'SelectTrigger';\n}\nexport default RefSelectTrigger;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport warning from \"rc-util/es/warning\";\nfunction getKey(data, index) {\n  var key = data.key;\n  var value;\n  if ('value' in data) {\n    value = data.value;\n  }\n  if (key !== null && key !== undefined) {\n    return key;\n  }\n  if (value !== undefined) {\n    return value;\n  }\n  return \"rc-index-key-\".concat(index);\n}\nexport function isValidCount(value) {\n  return typeof value !== 'undefined' && !Number.isNaN(value);\n}\nexport function fillFieldNames(fieldNames, childrenAsData) {\n  var _ref = fieldNames || {},\n    label = _ref.label,\n    value = _ref.value,\n    options = _ref.options,\n    groupLabel = _ref.groupLabel;\n  var mergedLabel = label || (childrenAsData ? 'children' : 'label');\n  return {\n    label: mergedLabel,\n    value: value || 'value',\n    options: options || 'options',\n    groupLabel: groupLabel || mergedLabel\n  };\n}\n\n/**\n * Flat options into flatten list.\n * We use `optionOnly` here is aim to avoid user use nested option group.\n * Here is simply set `key` to the index if not provided.\n */\nexport function flattenOptions(options) {\n  var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n    fieldNames = _ref2.fieldNames,\n    childrenAsData = _ref2.childrenAsData;\n  var flattenList = [];\n  var _fillFieldNames = fillFieldNames(fieldNames, false),\n    fieldLabel = _fillFieldNames.label,\n    fieldValue = _fillFieldNames.value,\n    fieldOptions = _fillFieldNames.options,\n    groupLabel = _fillFieldNames.groupLabel;\n  function dig(list, isGroupOption) {\n    if (!Array.isArray(list)) {\n      return;\n    }\n    list.forEach(function (data) {\n      if (isGroupOption || !(fieldOptions in data)) {\n        var value = data[fieldValue];\n\n        // Option\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          groupOption: isGroupOption,\n          data: data,\n          label: data[fieldLabel],\n          value: value\n        });\n      } else {\n        var grpLabel = data[groupLabel];\n        if (grpLabel === undefined && childrenAsData) {\n          grpLabel = data.label;\n        }\n\n        // Option Group\n        flattenList.push({\n          key: getKey(data, flattenList.length),\n          group: true,\n          data: data,\n          label: grpLabel\n        });\n        dig(data[fieldOptions], true);\n      }\n    });\n  }\n  dig(options, false);\n  return flattenList;\n}\n\n/**\n * Inject `props` into `option` for legacy usage\n */\nexport function injectPropsWithOption(option) {\n  var newOption = _objectSpread({}, option);\n  if (!('props' in newOption)) {\n    Object.defineProperty(newOption, 'props', {\n      get: function get() {\n        warning(false, 'Return type is option instead of Option instance. Please read value directly instead of reading from `props`.');\n        return newOption;\n      }\n    });\n  }\n  return newOption;\n}\nexport var getSeparatedContent = function getSeparatedContent(text, tokens, end) {\n  if (!tokens || !tokens.length) {\n    return null;\n  }\n  var match = false;\n  var separate = function separate(str, _ref3) {\n    var _ref4 = _toArray(_ref3),\n      token = _ref4[0],\n      restTokens = _ref4.slice(1);\n    if (!token) {\n      return [str];\n    }\n    var list = str.split(token);\n    match = match || list.length > 1;\n    return list.reduce(function (prevList, unitStr) {\n      return [].concat(_toConsumableArray(prevList), _toConsumableArray(separate(unitStr, restTokens)));\n    }, []).filter(Boolean);\n  };\n  var list = separate(text, tokens);\n  if (match) {\n    return typeof end !== 'undefined' ? list.slice(0, end) : list;\n  } else {\n    return null;\n  }\n};","import * as React from 'react';\n\n// Use any here since we do not get the type during compilation\n\nvar SelectContext = /*#__PURE__*/React.createContext(null);\nexport default SelectContext;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nexport default function Polite(props) {\n  var visible = props.visible,\n    values = props.values;\n  if (!visible) {\n    return null;\n  }\n\n  // Only cut part of values since it's a screen reader\n  var MAX_COUNT = 50;\n  return /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-live\": \"polite\",\n    style: {\n      width: 0,\n      height: 0,\n      position: 'absolute',\n      overflow: 'hidden',\n      opacity: 0\n    }\n  }, \"\".concat(values.slice(0, MAX_COUNT).map(function (_ref) {\n    var label = _ref.label,\n      value = _ref.value;\n    return ['number', 'string'].includes(_typeof(label)) ? label : value;\n  }).join(', ')), values.length > MAX_COUNT ? ', ...' : null);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"className\", \"showSearch\", \"tagRender\", \"direction\", \"omitDomProps\", \"displayValues\", \"onDisplayValuesChange\", \"emptyOptions\", \"notFoundContent\", \"onClear\", \"mode\", \"disabled\", \"loading\", \"getInputElement\", \"getRawInputElement\", \"open\", \"defaultOpen\", \"onDropdownVisibleChange\", \"activeValue\", \"onActiveValueChange\", \"activeDescendantId\", \"searchValue\", \"autoClearSearchValue\", \"onSearch\", \"onSearchSplit\", \"tokenSeparators\", \"allowClear\", \"prefix\", \"suffixIcon\", \"clearIcon\", \"OptionList\", \"animation\", \"transitionName\", \"dropdownStyle\", \"dropdownClassName\", \"dropdownMatchSelectWidth\", \"dropdownRender\", \"dropdownAlign\", \"placement\", \"builtinPlacements\", \"getPopupContainer\", \"showAction\", \"onFocus\", \"onBlur\", \"onKeyUp\", \"onKeyDown\", \"onMouseDown\"];\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport isMobile from \"rc-util/es/isMobile\";\nimport { useComposeRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useAllowClear } from \"../hooks/useAllowClear\";\nimport { BaseSelectContext } from \"../hooks/useBaseProps\";\nimport useDelayReset from \"../hooks/useDelayReset\";\nimport useLock from \"../hooks/useLock\";\nimport useSelectTriggerControl from \"../hooks/useSelectTriggerControl\";\nimport Selector from \"../Selector\";\nimport SelectTrigger from \"../SelectTrigger\";\nimport TransBtn from \"../TransBtn\";\nimport { getSeparatedContent, isValidCount } from \"../utils/valueUtil\";\nimport SelectContext from \"../SelectContext\";\nimport Polite from \"./Polite\";\nvar DEFAULT_OMIT_PROPS = ['value', 'onChange', 'removeIcon', 'placeholder', 'autoFocus', 'maxTagCount', 'maxTagTextLength', 'maxTagPlaceholder', 'choiceTransitionName', 'onInputKeyDown', 'onPopupScroll', 'tabIndex'];\nexport var isMultiple = function isMultiple(mode) {\n  return mode === 'tags' || mode === 'multiple';\n};\nvar BaseSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var _customizeRawInputEle;\n  var id = props.id,\n    prefixCls = props.prefixCls,\n    className = props.className,\n    showSearch = props.showSearch,\n    tagRender = props.tagRender,\n    direction = props.direction,\n    omitDomProps = props.omitDomProps,\n    displayValues = props.displayValues,\n    onDisplayValuesChange = props.onDisplayValuesChange,\n    emptyOptions = props.emptyOptions,\n    _props$notFoundConten = props.notFoundContent,\n    notFoundContent = _props$notFoundConten === void 0 ? 'Not Found' : _props$notFoundConten,\n    onClear = props.onClear,\n    mode = props.mode,\n    disabled = props.disabled,\n    loading = props.loading,\n    getInputElement = props.getInputElement,\n    getRawInputElement = props.getRawInputElement,\n    open = props.open,\n    defaultOpen = props.defaultOpen,\n    onDropdownVisibleChange = props.onDropdownVisibleChange,\n    activeValue = props.activeValue,\n    onActiveValueChange = props.onActiveValueChange,\n    activeDescendantId = props.activeDescendantId,\n    searchValue = props.searchValue,\n    autoClearSearchValue = props.autoClearSearchValue,\n    onSearch = props.onSearch,\n    onSearchSplit = props.onSearchSplit,\n    tokenSeparators = props.tokenSeparators,\n    allowClear = props.allowClear,\n    prefix = props.prefix,\n    suffixIcon = props.suffixIcon,\n    clearIcon = props.clearIcon,\n    OptionList = props.OptionList,\n    animation = props.animation,\n    transitionName = props.transitionName,\n    dropdownStyle = props.dropdownStyle,\n    dropdownClassName = props.dropdownClassName,\n    dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n    dropdownRender = props.dropdownRender,\n    dropdownAlign = props.dropdownAlign,\n    placement = props.placement,\n    builtinPlacements = props.builtinPlacements,\n    getPopupContainer = props.getPopupContainer,\n    _props$showAction = props.showAction,\n    showAction = _props$showAction === void 0 ? [] : _props$showAction,\n    onFocus = props.onFocus,\n    onBlur = props.onBlur,\n    onKeyUp = props.onKeyUp,\n    onKeyDown = props.onKeyDown,\n    onMouseDown = props.onMouseDown,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // ============================== MISC ==============================\n  var multiple = isMultiple(mode);\n  var mergedShowSearch = (showSearch !== undefined ? showSearch : multiple) || mode === 'combobox';\n  var domProps = _objectSpread({}, restProps);\n  DEFAULT_OMIT_PROPS.forEach(function (propName) {\n    delete domProps[propName];\n  });\n  omitDomProps === null || omitDomProps === void 0 || omitDomProps.forEach(function (propName) {\n    delete domProps[propName];\n  });\n\n  // ============================= Mobile =============================\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    mobile = _React$useState2[0],\n    setMobile = _React$useState2[1];\n  React.useEffect(function () {\n    // Only update on the client side\n    setMobile(isMobile());\n  }, []);\n\n  // ============================== Refs ==============================\n  var containerRef = React.useRef(null);\n  var selectorDomRef = React.useRef(null);\n  var triggerRef = React.useRef(null);\n  var selectorRef = React.useRef(null);\n  var listRef = React.useRef(null);\n  var blurRef = React.useRef(false);\n\n  /** Used for component focused management */\n  var _useDelayReset = useDelayReset(),\n    _useDelayReset2 = _slicedToArray(_useDelayReset, 3),\n    mockFocused = _useDelayReset2[0],\n    setMockFocused = _useDelayReset2[1],\n    cancelSetMockFocused = _useDelayReset2[2];\n\n  // =========================== Imperative ===========================\n  React.useImperativeHandle(ref, function () {\n    var _selectorRef$current, _selectorRef$current2;\n    return {\n      focus: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.focus,\n      blur: (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 ? void 0 : _selectorRef$current2.blur,\n      scrollTo: function scrollTo(arg) {\n        var _listRef$current;\n        return (_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : _listRef$current.scrollTo(arg);\n      },\n      nativeElement: containerRef.current || selectorDomRef.current\n    };\n  });\n\n  // ========================== Search Value ==========================\n  var mergedSearchValue = React.useMemo(function () {\n    var _displayValues$;\n    if (mode !== 'combobox') {\n      return searchValue;\n    }\n    var val = (_displayValues$ = displayValues[0]) === null || _displayValues$ === void 0 ? void 0 : _displayValues$.value;\n    return typeof val === 'string' || typeof val === 'number' ? String(val) : '';\n  }, [searchValue, mode, displayValues]);\n\n  // ========================== Custom Input ==========================\n  // Only works in `combobox`\n  var customizeInputElement = mode === 'combobox' && typeof getInputElement === 'function' && getInputElement() || null;\n\n  // Used for customize replacement for `rc-cascader`\n  var customizeRawInputElement = typeof getRawInputElement === 'function' && getRawInputElement();\n  var customizeRawInputRef = useComposeRef(selectorDomRef, customizeRawInputElement === null || customizeRawInputElement === void 0 || (_customizeRawInputEle = customizeRawInputElement.props) === null || _customizeRawInputEle === void 0 ? void 0 : _customizeRawInputEle.ref);\n\n  // ============================== Open ==============================\n  // SSR not support Portal which means we need delay `open` for the first time render\n  var _React$useState3 = React.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    rendered = _React$useState4[0],\n    setRendered = _React$useState4[1];\n  useLayoutEffect(function () {\n    setRendered(true);\n  }, []);\n  var _useMergedState = useMergedState(false, {\n      defaultValue: defaultOpen,\n      value: open\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    innerOpen = _useMergedState2[0],\n    setInnerOpen = _useMergedState2[1];\n  var mergedOpen = rendered ? innerOpen : false;\n\n  // Not trigger `open` in `combobox` when `notFoundContent` is empty\n  var emptyListContent = !notFoundContent && emptyOptions;\n  if (disabled || emptyListContent && mergedOpen && mode === 'combobox') {\n    mergedOpen = false;\n  }\n  var triggerOpen = emptyListContent ? false : mergedOpen;\n  var onToggleOpen = React.useCallback(function (newOpen) {\n    var nextOpen = newOpen !== undefined ? newOpen : !mergedOpen;\n    if (!disabled) {\n      setInnerOpen(nextOpen);\n      if (mergedOpen !== nextOpen) {\n        onDropdownVisibleChange === null || onDropdownVisibleChange === void 0 || onDropdownVisibleChange(nextOpen);\n      }\n    }\n  }, [disabled, mergedOpen, setInnerOpen, onDropdownVisibleChange]);\n\n  // ============================= Search =============================\n  var tokenWithEnter = React.useMemo(function () {\n    return (tokenSeparators || []).some(function (tokenSeparator) {\n      return ['\\n', '\\r\\n'].includes(tokenSeparator);\n    });\n  }, [tokenSeparators]);\n  var _ref = React.useContext(SelectContext) || {},\n    maxCount = _ref.maxCount,\n    rawValues = _ref.rawValues;\n  var onInternalSearch = function onInternalSearch(searchText, fromTyping, isCompositing) {\n    if (multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount) {\n      return;\n    }\n    var ret = true;\n    var newSearchText = searchText;\n    onActiveValueChange === null || onActiveValueChange === void 0 || onActiveValueChange(null);\n    var separatedList = getSeparatedContent(searchText, tokenSeparators, isValidCount(maxCount) ? maxCount - rawValues.size : undefined);\n\n    // Check if match the `tokenSeparators`\n    var patchLabels = isCompositing ? null : separatedList;\n\n    // Ignore combobox since it's not split-able\n    if (mode !== 'combobox' && patchLabels) {\n      newSearchText = '';\n      onSearchSplit === null || onSearchSplit === void 0 || onSearchSplit(patchLabels);\n\n      // Should close when paste finish\n      onToggleOpen(false);\n\n      // Tell Selector that break next actions\n      ret = false;\n    }\n    if (onSearch && mergedSearchValue !== newSearchText) {\n      onSearch(newSearchText, {\n        source: fromTyping ? 'typing' : 'effect'\n      });\n    }\n    return ret;\n  };\n\n  // Only triggered when menu is closed & mode is tags\n  // If menu is open, OptionList will take charge\n  // If mode isn't tags, press enter is not meaningful when you can't see any option\n  var onInternalSearchSubmit = function onInternalSearchSubmit(searchText) {\n    // prevent empty tags from appearing when you click the Enter button\n    if (!searchText || !searchText.trim()) {\n      return;\n    }\n    onSearch(searchText, {\n      source: 'submit'\n    });\n  };\n\n  // Close will clean up single mode search text\n  React.useEffect(function () {\n    if (!mergedOpen && !multiple && mode !== 'combobox') {\n      onInternalSearch('', false, false);\n    }\n  }, [mergedOpen]);\n\n  // ============================ Disabled ============================\n  // Close dropdown & remove focus state when disabled change\n  React.useEffect(function () {\n    if (innerOpen && disabled) {\n      setInnerOpen(false);\n    }\n\n    // After onBlur is triggered, the focused does not need to be reset\n    if (disabled && !blurRef.current) {\n      setMockFocused(false);\n    }\n  }, [disabled]);\n\n  // ============================ Keyboard ============================\n  /**\n   * We record input value here to check if can press to clean up by backspace\n   * - null: Key is not down, this is reset by key up\n   * - true: Search text is empty when first time backspace down\n   * - false: Search text is not empty when first time backspace down\n   */\n  var _useLock = useLock(),\n    _useLock2 = _slicedToArray(_useLock, 2),\n    getClearLock = _useLock2[0],\n    setClearLock = _useLock2[1];\n  var keyLockRef = React.useRef(false);\n\n  // KeyDown\n  var onInternalKeyDown = function onInternalKeyDown(event) {\n    var clearLock = getClearLock();\n    var key = event.key;\n    var isEnterKey = key === 'Enter';\n    if (isEnterKey) {\n      // Do not submit form when type in the input\n      if (mode !== 'combobox') {\n        event.preventDefault();\n      }\n\n      // We only manage open state here, close logic should handle by list component\n      if (!mergedOpen) {\n        onToggleOpen(true);\n      }\n    }\n    setClearLock(!!mergedSearchValue);\n\n    // Remove value by `backspace`\n    if (key === 'Backspace' && !clearLock && multiple && !mergedSearchValue && displayValues.length) {\n      var cloneDisplayValues = _toConsumableArray(displayValues);\n      var removedDisplayValue = null;\n      for (var i = cloneDisplayValues.length - 1; i >= 0; i -= 1) {\n        var current = cloneDisplayValues[i];\n        if (!current.disabled) {\n          cloneDisplayValues.splice(i, 1);\n          removedDisplayValue = current;\n          break;\n        }\n      }\n      if (removedDisplayValue) {\n        onDisplayValuesChange(cloneDisplayValues, {\n          type: 'remove',\n          values: [removedDisplayValue]\n        });\n      }\n    }\n    for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      rest[_key - 1] = arguments[_key];\n    }\n    if (mergedOpen && (!isEnterKey || !keyLockRef.current)) {\n      var _listRef$current2;\n      // Lock the Enter key after it is pressed to avoid repeated triggering of the onChange event.\n      if (isEnterKey) {\n        keyLockRef.current = true;\n      }\n      (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.onKeyDown.apply(_listRef$current2, [event].concat(rest));\n    }\n    onKeyDown === null || onKeyDown === void 0 || onKeyDown.apply(void 0, [event].concat(rest));\n  };\n\n  // KeyUp\n  var onInternalKeyUp = function onInternalKeyUp(event) {\n    for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      rest[_key2 - 1] = arguments[_key2];\n    }\n    if (mergedOpen) {\n      var _listRef$current3;\n      (_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 || _listRef$current3.onKeyUp.apply(_listRef$current3, [event].concat(rest));\n    }\n    if (event.key === 'Enter') {\n      keyLockRef.current = false;\n    }\n    onKeyUp === null || onKeyUp === void 0 || onKeyUp.apply(void 0, [event].concat(rest));\n  };\n\n  // ============================ Selector ============================\n  var onSelectorRemove = function onSelectorRemove(val) {\n    var newValues = displayValues.filter(function (i) {\n      return i !== val;\n    });\n    onDisplayValuesChange(newValues, {\n      type: 'remove',\n      values: [val]\n    });\n  };\n  var onInputBlur = function onInputBlur() {\n    // Unlock the Enter key after the input blur; otherwise, the Enter key needs to be pressed twice to trigger the correct effect.\n    keyLockRef.current = false;\n  };\n\n  // ========================== Focus / Blur ==========================\n  /** Record real focus status */\n  var focusRef = React.useRef(false);\n  var onContainerFocus = function onContainerFocus() {\n    setMockFocused(true);\n    if (!disabled) {\n      if (onFocus && !focusRef.current) {\n        onFocus.apply(void 0, arguments);\n      }\n\n      // `showAction` should handle `focus` if set\n      if (showAction.includes('focus')) {\n        onToggleOpen(true);\n      }\n    }\n    focusRef.current = true;\n  };\n  var onContainerBlur = function onContainerBlur() {\n    blurRef.current = true;\n    setMockFocused(false, function () {\n      focusRef.current = false;\n      blurRef.current = false;\n      onToggleOpen(false);\n    });\n    if (disabled) {\n      return;\n    }\n    if (mergedSearchValue) {\n      // `tags` mode should move `searchValue` into values\n      if (mode === 'tags') {\n        onSearch(mergedSearchValue, {\n          source: 'submit'\n        });\n      } else if (mode === 'multiple') {\n        // `multiple` mode only clean the search value but not trigger event\n        onSearch('', {\n          source: 'blur'\n        });\n      }\n    }\n    if (onBlur) {\n      onBlur.apply(void 0, arguments);\n    }\n  };\n\n  // Give focus back of Select\n  var activeTimeoutIds = [];\n  React.useEffect(function () {\n    return function () {\n      activeTimeoutIds.forEach(function (timeoutId) {\n        return clearTimeout(timeoutId);\n      });\n      activeTimeoutIds.splice(0, activeTimeoutIds.length);\n    };\n  }, []);\n  var onInternalMouseDown = function onInternalMouseDown(event) {\n    var _triggerRef$current;\n    var target = event.target;\n    var popupElement = (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.getPopupElement();\n\n    // We should give focus back to selector if clicked item is not focusable\n    if (popupElement && popupElement.contains(target)) {\n      var timeoutId = setTimeout(function () {\n        var index = activeTimeoutIds.indexOf(timeoutId);\n        if (index !== -1) {\n          activeTimeoutIds.splice(index, 1);\n        }\n        cancelSetMockFocused();\n        if (!mobile && !popupElement.contains(document.activeElement)) {\n          var _selectorRef$current3;\n          (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 || _selectorRef$current3.focus();\n        }\n      });\n      activeTimeoutIds.push(timeoutId);\n    }\n    for (var _len3 = arguments.length, restArgs = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      restArgs[_key3 - 1] = arguments[_key3];\n    }\n    onMouseDown === null || onMouseDown === void 0 || onMouseDown.apply(void 0, [event].concat(restArgs));\n  };\n\n  // ============================ Dropdown ============================\n  var _React$useState5 = React.useState({}),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    forceUpdate = _React$useState6[1];\n  // We need force update here since popup dom is render async\n  function onPopupMouseEnter() {\n    forceUpdate({});\n  }\n\n  // Used for raw custom input trigger\n  var onTriggerVisibleChange;\n  if (customizeRawInputElement) {\n    onTriggerVisibleChange = function onTriggerVisibleChange(newOpen) {\n      onToggleOpen(newOpen);\n    };\n  }\n\n  // Close when click on non-select element\n  useSelectTriggerControl(function () {\n    var _triggerRef$current2;\n    return [containerRef.current, (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.getPopupElement()];\n  }, triggerOpen, onToggleOpen, !!customizeRawInputElement);\n\n  // ============================ Context =============================\n  var baseSelectContext = React.useMemo(function () {\n    return _objectSpread(_objectSpread({}, props), {}, {\n      notFoundContent: notFoundContent,\n      open: mergedOpen,\n      triggerOpen: triggerOpen,\n      id: id,\n      showSearch: mergedShowSearch,\n      multiple: multiple,\n      toggleOpen: onToggleOpen\n    });\n  }, [props, notFoundContent, triggerOpen, mergedOpen, id, mergedShowSearch, multiple, onToggleOpen]);\n\n  // ==================================================================\n  // ==                            Render                            ==\n  // ==================================================================\n\n  // ============================= Arrow ==============================\n  var showSuffixIcon = !!suffixIcon || loading;\n  var arrowNode;\n  if (showSuffixIcon) {\n    arrowNode = /*#__PURE__*/React.createElement(TransBtn, {\n      className: classNames(\"\".concat(prefixCls, \"-arrow\"), _defineProperty({}, \"\".concat(prefixCls, \"-arrow-loading\"), loading)),\n      customizeIcon: suffixIcon,\n      customizeIconProps: {\n        loading: loading,\n        searchValue: mergedSearchValue,\n        open: mergedOpen,\n        focused: mockFocused,\n        showSearch: mergedShowSearch\n      }\n    });\n  }\n\n  // ============================= Clear ==============================\n  var onClearMouseDown = function onClearMouseDown() {\n    var _selectorRef$current4;\n    onClear === null || onClear === void 0 || onClear();\n    (_selectorRef$current4 = selectorRef.current) === null || _selectorRef$current4 === void 0 || _selectorRef$current4.focus();\n    onDisplayValuesChange([], {\n      type: 'clear',\n      values: displayValues\n    });\n    onInternalSearch('', false, false);\n  };\n  var _useAllowClear = useAllowClear(prefixCls, onClearMouseDown, displayValues, allowClear, clearIcon, disabled, mergedSearchValue, mode),\n    mergedAllowClear = _useAllowClear.allowClear,\n    clearNode = _useAllowClear.clearIcon;\n\n  // =========================== OptionList ===========================\n  var optionList = /*#__PURE__*/React.createElement(OptionList, {\n    ref: listRef\n  });\n\n  // ============================= Select =============================\n  var mergedClassName = classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), mockFocused), \"\".concat(prefixCls, \"-multiple\"), multiple), \"\".concat(prefixCls, \"-single\"), !multiple), \"\".concat(prefixCls, \"-allow-clear\"), allowClear), \"\".concat(prefixCls, \"-show-arrow\"), showSuffixIcon), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-loading\"), loading), \"\".concat(prefixCls, \"-open\"), mergedOpen), \"\".concat(prefixCls, \"-customize-input\"), customizeInputElement), \"\".concat(prefixCls, \"-show-search\"), mergedShowSearch));\n\n  // >>> Selector\n  var selectorNode = /*#__PURE__*/React.createElement(SelectTrigger, {\n    ref: triggerRef,\n    disabled: disabled,\n    prefixCls: prefixCls,\n    visible: triggerOpen,\n    popupElement: optionList,\n    animation: animation,\n    transitionName: transitionName,\n    dropdownStyle: dropdownStyle,\n    dropdownClassName: dropdownClassName,\n    direction: direction,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n    dropdownRender: dropdownRender,\n    dropdownAlign: dropdownAlign,\n    placement: placement,\n    builtinPlacements: builtinPlacements,\n    getPopupContainer: getPopupContainer,\n    empty: emptyOptions,\n    getTriggerDOMNode: function getTriggerDOMNode(node) {\n      return (\n        // TODO: This is workaround and should be removed in `rc-select`\n        // And use new standard `nativeElement` for ref.\n        // But we should update `rc-resize-observer` first.\n        selectorDomRef.current || node\n      );\n    },\n    onPopupVisibleChange: onTriggerVisibleChange,\n    onPopupMouseEnter: onPopupMouseEnter\n  }, customizeRawInputElement ? ( /*#__PURE__*/React.cloneElement(customizeRawInputElement, {\n    ref: customizeRawInputRef\n  })) : /*#__PURE__*/React.createElement(Selector, _extends({}, props, {\n    domRef: selectorDomRef,\n    prefixCls: prefixCls,\n    inputElement: customizeInputElement,\n    ref: selectorRef,\n    id: id,\n    prefix: prefix,\n    showSearch: mergedShowSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    mode: mode,\n    activeDescendantId: activeDescendantId,\n    tagRender: tagRender,\n    values: displayValues,\n    open: mergedOpen,\n    onToggleOpen: onToggleOpen,\n    activeValue: activeValue,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    onSearchSubmit: onInternalSearchSubmit,\n    onRemove: onSelectorRemove,\n    tokenWithEnter: tokenWithEnter,\n    onInputBlur: onInputBlur\n  })));\n\n  // >>> Render\n  var renderNode;\n\n  // Render raw\n  if (customizeRawInputElement) {\n    renderNode = selectorNode;\n  } else {\n    renderNode = /*#__PURE__*/React.createElement(\"div\", _extends({\n      className: mergedClassName\n    }, domProps, {\n      ref: containerRef,\n      onMouseDown: onInternalMouseDown,\n      onKeyDown: onInternalKeyDown,\n      onKeyUp: onInternalKeyUp,\n      onFocus: onContainerFocus,\n      onBlur: onContainerBlur\n    }), /*#__PURE__*/React.createElement(Polite, {\n      visible: mockFocused && !mergedOpen,\n      values: displayValues\n    }), selectorNode, arrowNode, mergedAllowClear && clearNode);\n  }\n  return /*#__PURE__*/React.createElement(BaseSelectContext.Provider, {\n    value: baseSelectContext\n  }, renderNode);\n});\n\n// Set display name for dev\nif (process.env.NODE_ENV !== 'production') {\n  BaseSelect.displayName = 'BaseSelect';\n}\nexport default BaseSelect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Similar with `useLock`, but this hook will always execute last value.\n * When set to `true`, it will keep `true` for a short time even if `false` is set.\n */\nexport default function useDelayReset() {\n  var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    bool = _React$useState2[0],\n    setBool = _React$useState2[1];\n  var delayRef = React.useRef(null);\n  var cancelLatest = function cancelLatest() {\n    window.clearTimeout(delayRef.current);\n  };\n  React.useEffect(function () {\n    return cancelLatest;\n  }, []);\n  var delaySetBool = function delaySetBool(value, callback) {\n    cancelLatest();\n    delayRef.current = window.setTimeout(function () {\n      setBool(value);\n      if (callback) {\n        callback();\n      }\n    }, timeout);\n  };\n  return [bool, delaySetBool, cancelLatest];\n}","import * as React from 'react';\nexport default function useSelectTriggerControl(elements, open, triggerOpen, customizedTrigger) {\n  var propsRef = React.useRef(null);\n  propsRef.current = {\n    open: open,\n    triggerOpen: triggerOpen,\n    customizedTrigger: customizedTrigger\n  };\n  React.useEffect(function () {\n    function onGlobalMouseDown(event) {\n      var _propsRef$current;\n      // If trigger is customized, Trigger will take control of popupVisible\n      if ((_propsRef$current = propsRef.current) !== null && _propsRef$current !== void 0 && _propsRef$current.customizedTrigger) {\n        return;\n      }\n      var target = event.target;\n      if (target.shadowRoot && event.composed) {\n        target = event.composedPath()[0] || target;\n      }\n      if (propsRef.current.open && elements().filter(function (element) {\n        return element;\n      }).every(function (element) {\n        return !element.contains(target) && element !== target;\n      })) {\n        // Should trigger close\n        propsRef.current.triggerOpen(false);\n      }\n    }\n    window.addEventListener('mousedown', onGlobalMouseDown);\n    return function () {\n      return window.removeEventListener('mousedown', onGlobalMouseDown);\n    };\n  }, []);\n}","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar OptGroup = function OptGroup() {\n  return null;\n};\nOptGroup.isSelectOptGroup = true;\nexport default OptGroup;","/* istanbul ignore file */\n\n/** This is a placeholder, not real render in dom */\nvar Option = function Option() {\n  return null;\n};\nOption.isSelectOption = true;\nexport default Option;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport classNames from 'classnames';\n/**\n * Fill component to provided the scroll content real height.\n */\nvar Filler = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n  var height = _ref.height,\n    offsetY = _ref.offsetY,\n    offsetX = _ref.offsetX,\n    children = _ref.children,\n    prefixCls = _ref.prefixCls,\n    onInnerResize = _ref.onInnerResize,\n    innerProps = _ref.innerProps,\n    rtl = _ref.rtl,\n    extra = _ref.extra;\n  var outerStyle = {};\n  var innerStyle = {\n    display: 'flex',\n    flexDirection: 'column'\n  };\n  if (offsetY !== undefined) {\n    // Not set `width` since this will break `sticky: right`\n    outerStyle = {\n      height: height,\n      position: 'relative',\n      overflow: 'hidden'\n    };\n    innerStyle = _objectSpread(_objectSpread({}, innerStyle), {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({\n      transform: \"translateY(\".concat(offsetY, \"px)\")\n    }, rtl ? 'marginRight' : 'marginLeft', -offsetX), \"position\", 'absolute'), \"left\", 0), \"right\", 0), \"top\", 0));\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    style: outerStyle\n  }, /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: function onResize(_ref2) {\n      var offsetHeight = _ref2.offsetHeight;\n      if (offsetHeight && onInnerResize) {\n        onInnerResize();\n      }\n    }\n  }, /*#__PURE__*/React.createElement(\"div\", _extends({\n    style: innerStyle,\n    className: classNames(_defineProperty({}, \"\".concat(prefixCls, \"-holder-inner\"), prefixCls)),\n    ref: ref\n  }, innerProps), children, extra)));\n});\nFiller.displayName = 'Filler';\nexport default Filler;","import * as React from 'react';\nexport function Item(_ref) {\n  var children = _ref.children,\n    setRef = _ref.setRef;\n  var refFunc = React.useCallback(function (node) {\n    setRef(node);\n  }, []);\n  return /*#__PURE__*/React.cloneElement(children, {\n    ref: refFunc\n  });\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { findListDiffIndex } from \"../utils/algorithmUtil\";\nexport default function useDiffItem(data, getKey, onDiff) {\n  var _React$useState = React.useState(data),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    prevData = _React$useState2[0],\n    setPrevData = _React$useState2[1];\n  var _React$useState3 = React.useState(null),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    diffItem = _React$useState4[0],\n    setDiffItem = _React$useState4[1];\n  React.useEffect(function () {\n    var diff = findListDiffIndex(prevData || [], data || [], getKey);\n    if ((diff === null || diff === void 0 ? void 0 : diff.index) !== undefined) {\n      onDiff === null || onDiff === void 0 || onDiff(diff.index);\n      setDiffItem(data[diff.index]);\n    }\n    setPrevData(data);\n  }, [data]);\n  return [diffItem];\n}","/**\n * Get index with specific start index one by one. e.g.\n * min: 3, max: 9, start: 6\n *\n * Return index is:\n * [0]: 6\n * [1]: 7\n * [2]: 5\n * [3]: 8\n * [4]: 4\n * [5]: 9\n * [6]: 3\n */\nexport function getIndexByStartLoc(min, max, start, index) {\n  var beforeCount = start - min;\n  var afterCount = max - start;\n  var balanceCount = Math.min(beforeCount, afterCount) * 2;\n\n  // Balance\n  if (index <= balanceCount) {\n    var stepIndex = Math.floor(index / 2);\n    if (index % 2) {\n      return start + stepIndex + 1;\n    }\n    return start - stepIndex;\n  }\n\n  // One is out of range\n  if (beforeCount > afterCount) {\n    return start - (index - afterCount);\n  }\n  return start + (index - beforeCount);\n}\n\n/**\n * We assume that 2 list has only 1 item diff and others keeping the order.\n * So we can use dichotomy algorithm to find changed one.\n */\nexport function findListDiffIndex(originList, targetList, getKey) {\n  var originLen = originList.length;\n  var targetLen = targetList.length;\n  var shortList;\n  var longList;\n  if (originLen === 0 && targetLen === 0) {\n    return null;\n  }\n  if (originLen < targetLen) {\n    shortList = originList;\n    longList = targetList;\n  } else {\n    shortList = targetList;\n    longList = originList;\n  }\n  var notExistKey = {\n    __EMPTY_ITEM__: true\n  };\n  function getItemKey(item) {\n    if (item !== undefined) {\n      return getKey(item);\n    }\n    return notExistKey;\n  }\n\n  // Loop to find diff one\n  var diffIndex = null;\n  var multiple = Math.abs(originLen - targetLen) !== 1;\n  for (var i = 0; i < longList.length; i += 1) {\n    var shortKey = getItemKey(shortList[i]);\n    var longKey = getItemKey(longList[i]);\n    if (shortKey !== longKey) {\n      diffIndex = i;\n      multiple = multiple || shortKey !== getItemKey(longList[i + 1]);\n      break;\n    }\n  }\n  return diffIndex === null ? null : {\n    index: diffIndex,\n    multiple: multiple\n  };\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar isFF = (typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && /Firefox/i.test(navigator.userAgent);\nexport default isFF;","import { useRef } from 'react';\nexport default (function (isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight) {\n  // Do lock for a wheel when scrolling\n  var lockRef = useRef(false);\n  var lockTimeoutRef = useRef(null);\n  function lockScroll() {\n    clearTimeout(lockTimeoutRef.current);\n    lockRef.current = true;\n    lockTimeoutRef.current = setTimeout(function () {\n      lockRef.current = false;\n    }, 50);\n  }\n\n  // Pass to ref since global add is in closure\n  var scrollPingRef = useRef({\n    top: isScrollAtTop,\n    bottom: isScrollAtBottom,\n    left: isScrollAtLeft,\n    right: isScrollAtRight\n  });\n  scrollPingRef.current.top = isScrollAtTop;\n  scrollPingRef.current.bottom = isScrollAtBottom;\n  scrollPingRef.current.left = isScrollAtLeft;\n  scrollPingRef.current.right = isScrollAtRight;\n  return function (isHorizontal, delta) {\n    var smoothOffset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n    var originScroll = isHorizontal ?\n    // Pass origin wheel when on the left\n    delta < 0 && scrollPingRef.current.left ||\n    // Pass origin wheel when on the right\n    delta > 0 && scrollPingRef.current.right // Pass origin wheel when on the top\n    : delta < 0 && scrollPingRef.current.top ||\n    // Pass origin wheel when on the bottom\n    delta > 0 && scrollPingRef.current.bottom;\n    if (smoothOffset && originScroll) {\n      // No need lock anymore when it's smooth offset from touchMove interval\n      clearTimeout(lockTimeoutRef.current);\n      lockRef.current = false;\n    } else if (!originScroll || lockRef.current) {\n      lockScroll();\n    }\n    return !lockRef.current && originScroll;\n  };\n});","import raf from \"rc-util/es/raf\";\nimport { useRef } from 'react';\nimport isFF from \"../utils/isFirefox\";\nimport useOriginScroll from \"./useOriginScroll\";\nexport default function useFrameWheel(inVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, horizontalScroll,\n/***\n * Return `true` when you need to prevent default event\n */\nonWheelDelta) {\n  var offsetRef = useRef(0);\n  var nextFrameRef = useRef(null);\n\n  // Firefox patch\n  var wheelValueRef = useRef(null);\n  var isMouseScrollRef = useRef(false);\n\n  // Scroll status sync\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n  function onWheelY(e, deltaY) {\n    raf.cancel(nextFrameRef.current);\n\n    // Do nothing when scroll at the edge, Skip check when is in scroll\n    if (originScroll(false, deltaY)) return;\n\n    // Skip if nest List has handled this event\n    var event = e;\n    if (!event._virtualHandled) {\n      event._virtualHandled = true;\n    } else {\n      return;\n    }\n    offsetRef.current += deltaY;\n    wheelValueRef.current = deltaY;\n\n    // Proxy of scroll events\n    if (!isFF) {\n      event.preventDefault();\n    }\n    nextFrameRef.current = raf(function () {\n      // Patch a multiple for Firefox to fix wheel number too small\n      // ref: https://github.com/ant-design/ant-design/issues/26372#issuecomment-679460266\n      var patchMultiple = isMouseScrollRef.current ? 10 : 1;\n      onWheelDelta(offsetRef.current * patchMultiple, false);\n      offsetRef.current = 0;\n    });\n  }\n  function onWheelX(event, deltaX) {\n    onWheelDelta(deltaX, true);\n    if (!isFF) {\n      event.preventDefault();\n    }\n  }\n\n  // Check for which direction does wheel do. `sx` means `shift + wheel`\n  var wheelDirectionRef = useRef(null);\n  var wheelDirectionCleanRef = useRef(null);\n  function onWheel(event) {\n    if (!inVirtual) return;\n\n    // Wait for 2 frame to clean direction\n    raf.cancel(wheelDirectionCleanRef.current);\n    wheelDirectionCleanRef.current = raf(function () {\n      wheelDirectionRef.current = null;\n    }, 2);\n    var deltaX = event.deltaX,\n      deltaY = event.deltaY,\n      shiftKey = event.shiftKey;\n    var mergedDeltaX = deltaX;\n    var mergedDeltaY = deltaY;\n    if (wheelDirectionRef.current === 'sx' || !wheelDirectionRef.current && (shiftKey || false) && deltaY && !deltaX) {\n      mergedDeltaX = deltaY;\n      mergedDeltaY = 0;\n      wheelDirectionRef.current = 'sx';\n    }\n    var absX = Math.abs(mergedDeltaX);\n    var absY = Math.abs(mergedDeltaY);\n    if (wheelDirectionRef.current === null) {\n      wheelDirectionRef.current = horizontalScroll && absX > absY ? 'x' : 'y';\n    }\n    if (wheelDirectionRef.current === 'y') {\n      onWheelY(event, mergedDeltaY);\n    } else {\n      onWheelX(event, mergedDeltaX);\n    }\n  }\n\n  // A patch for firefox\n  function onFireFoxScroll(event) {\n    if (!inVirtual) return;\n    isMouseScrollRef.current = event.detail === wheelValueRef.current;\n  }\n  return [onWheel, onFireFoxScroll];\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// Firefox has low performance of map.\nvar CacheMap = /*#__PURE__*/function () {\n  function CacheMap() {\n    _classCallCheck(this, CacheMap);\n    _defineProperty(this, \"maps\", void 0);\n    // Used for cache key\n    // `useMemo` no need to update if `id` not change\n    _defineProperty(this, \"id\", 0);\n    _defineProperty(this, \"diffKeys\", new Set());\n    this.maps = Object.create(null);\n  }\n  _createClass(CacheMap, [{\n    key: \"set\",\n    value: function set(key, value) {\n      this.maps[key] = value;\n      this.id += 1;\n      this.diffKeys.add(key);\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      return this.maps[key];\n    }\n\n    /**\n     * CacheMap will record the key changed.\n     * To help to know what's update in the next render.\n     */\n  }, {\n    key: \"resetRecord\",\n    value: function resetRecord() {\n      this.diffKeys.clear();\n    }\n  }, {\n    key: \"getRecord\",\n    value: function getRecord() {\n      return this.diffKeys;\n    }\n  }]);\n  return CacheMap;\n}();\nexport default CacheMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport * as React from 'react';\nimport { useEffect, useRef } from 'react';\nimport CacheMap from \"../utils/CacheMap\";\nfunction parseNumber(value) {\n  var num = parseFloat(value);\n  return isNaN(num) ? 0 : num;\n}\nexport default function useHeights(getKey, onItemAdd, onItemRemove) {\n  var _React$useState = React.useState(0),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    updatedMark = _React$useState2[0],\n    setUpdatedMark = _React$useState2[1];\n  var instanceRef = useRef(new Map());\n  var heightsRef = useRef(new CacheMap());\n  var promiseIdRef = useRef(0);\n  function cancelRaf() {\n    promiseIdRef.current += 1;\n  }\n  function collectHeight() {\n    var sync = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    cancelRaf();\n    var doCollect = function doCollect() {\n      var changed = false;\n      instanceRef.current.forEach(function (element, key) {\n        if (element && element.offsetParent) {\n          var htmlElement = findDOMNode(element);\n          var offsetHeight = htmlElement.offsetHeight;\n          var _getComputedStyle = getComputedStyle(htmlElement),\n            marginTop = _getComputedStyle.marginTop,\n            marginBottom = _getComputedStyle.marginBottom;\n          var marginTopNum = parseNumber(marginTop);\n          var marginBottomNum = parseNumber(marginBottom);\n          var totalHeight = offsetHeight + marginTopNum + marginBottomNum;\n          if (heightsRef.current.get(key) !== totalHeight) {\n            heightsRef.current.set(key, totalHeight);\n            changed = true;\n          }\n        }\n      });\n\n      // Always trigger update mark to tell parent that should re-calculate heights when resized\n      if (changed) {\n        setUpdatedMark(function (c) {\n          return c + 1;\n        });\n      }\n    };\n    if (sync) {\n      doCollect();\n    } else {\n      promiseIdRef.current += 1;\n      var id = promiseIdRef.current;\n      Promise.resolve().then(function () {\n        if (id === promiseIdRef.current) {\n          doCollect();\n        }\n      });\n    }\n  }\n  function setInstanceRef(item, instance) {\n    var key = getKey(item);\n    var origin = instanceRef.current.get(key);\n    if (instance) {\n      instanceRef.current.set(key, instance);\n      collectHeight();\n    } else {\n      instanceRef.current.delete(key);\n    }\n\n    // Instance changed\n    if (!origin !== !instance) {\n      if (instance) {\n        onItemAdd === null || onItemAdd === void 0 || onItemAdd(item);\n      } else {\n        onItemRemove === null || onItemRemove === void 0 || onItemRemove(item);\n      }\n    }\n  }\n  useEffect(function () {\n    return cancelRaf;\n  }, []);\n  return [setInstanceRef, collectHeight, heightsRef.current, updatedMark];\n}","import useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { useRef } from 'react';\nvar SMOOTH_PTG = 14 / 15;\nexport default function useMobileTouchMove(inVirtual, listRef, callback) {\n  var touchedRef = useRef(false);\n  var touchXRef = useRef(0);\n  var touchYRef = useRef(0);\n  var elementRef = useRef(null);\n\n  // Smooth scroll\n  var intervalRef = useRef(null);\n\n  /* eslint-disable prefer-const */\n  var cleanUpEvents;\n  var onTouchMove = function onTouchMove(e) {\n    if (touchedRef.current) {\n      var currentX = Math.ceil(e.touches[0].pageX);\n      var currentY = Math.ceil(e.touches[0].pageY);\n      var offsetX = touchXRef.current - currentX;\n      var offsetY = touchYRef.current - currentY;\n      var _isHorizontal = Math.abs(offsetX) > Math.abs(offsetY);\n      if (_isHorizontal) {\n        touchXRef.current = currentX;\n      } else {\n        touchYRef.current = currentY;\n      }\n      var scrollHandled = callback(_isHorizontal, _isHorizontal ? offsetX : offsetY, false, e);\n      if (scrollHandled) {\n        e.preventDefault();\n      }\n\n      // Smooth interval\n      clearInterval(intervalRef.current);\n      if (scrollHandled) {\n        intervalRef.current = setInterval(function () {\n          if (_isHorizontal) {\n            offsetX *= SMOOTH_PTG;\n          } else {\n            offsetY *= SMOOTH_PTG;\n          }\n          var offset = Math.floor(_isHorizontal ? offsetX : offsetY);\n          if (!callback(_isHorizontal, offset, true) || Math.abs(offset) <= 0.1) {\n            clearInterval(intervalRef.current);\n          }\n        }, 16);\n      }\n    }\n  };\n  var onTouchEnd = function onTouchEnd() {\n    touchedRef.current = false;\n    cleanUpEvents();\n  };\n  var onTouchStart = function onTouchStart(e) {\n    cleanUpEvents();\n    if (e.touches.length === 1 && !touchedRef.current) {\n      touchedRef.current = true;\n      touchXRef.current = Math.ceil(e.touches[0].pageX);\n      touchYRef.current = Math.ceil(e.touches[0].pageY);\n      elementRef.current = e.target;\n      elementRef.current.addEventListener('touchmove', onTouchMove, {\n        passive: false\n      });\n      elementRef.current.addEventListener('touchend', onTouchEnd, {\n        passive: true\n      });\n    }\n  };\n  cleanUpEvents = function cleanUpEvents() {\n    if (elementRef.current) {\n      elementRef.current.removeEventListener('touchmove', onTouchMove);\n      elementRef.current.removeEventListener('touchend', onTouchEnd);\n    }\n  };\n  useLayoutEffect(function () {\n    if (inVirtual) {\n      listRef.current.addEventListener('touchstart', onTouchStart, {\n        passive: true\n      });\n    }\n    return function () {\n      var _listRef$current;\n      (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.removeEventListener('touchstart', onTouchStart);\n      cleanUpEvents();\n      clearInterval(intervalRef.current);\n    };\n  }, [inVirtual]);\n}","import raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nfunction smoothScrollOffset(offset) {\n  return Math.floor(Math.pow(offset, 0.5));\n}\nexport function getPageXY(e, horizontal) {\n  var obj = 'touches' in e ? e.touches[0] : e;\n  return obj[horizontal ? 'pageX' : 'pageY'] - window[horizontal ? 'scrollX' : 'scrollY'];\n}\nexport default function useScrollDrag(inVirtual, componentRef, onScrollOffset) {\n  React.useEffect(function () {\n    var ele = componentRef.current;\n    if (inVirtual && ele) {\n      var mouseDownLock = false;\n      var rafId;\n      var _offset;\n      var stopScroll = function stopScroll() {\n        raf.cancel(rafId);\n      };\n      var continueScroll = function continueScroll() {\n        stopScroll();\n        rafId = raf(function () {\n          onScrollOffset(_offset);\n          continueScroll();\n        });\n      };\n      var onMouseDown = function onMouseDown(e) {\n        // Skip if nest List has handled this event\n        var event = e;\n        if (!event._virtualHandled) {\n          event._virtualHandled = true;\n          mouseDownLock = true;\n        }\n      };\n      var onMouseUp = function onMouseUp() {\n        mouseDownLock = false;\n        stopScroll();\n      };\n      var onMouseMove = function onMouseMove(e) {\n        if (mouseDownLock) {\n          var mouseY = getPageXY(e, false);\n          var _ele$getBoundingClien = ele.getBoundingClientRect(),\n            top = _ele$getBoundingClien.top,\n            bottom = _ele$getBoundingClien.bottom;\n          if (mouseY <= top) {\n            var diff = top - mouseY;\n            _offset = -smoothScrollOffset(diff);\n            continueScroll();\n          } else if (mouseY >= bottom) {\n            var _diff = mouseY - bottom;\n            _offset = smoothScrollOffset(_diff);\n            continueScroll();\n          } else {\n            stopScroll();\n          }\n        }\n      };\n      ele.addEventListener('mousedown', onMouseDown);\n      ele.ownerDocument.addEventListener('mouseup', onMouseUp);\n      ele.ownerDocument.addEventListener('mousemove', onMouseMove);\n      return function () {\n        ele.removeEventListener('mousedown', onMouseDown);\n        ele.ownerDocument.removeEventListener('mouseup', onMouseUp);\n        ele.ownerDocument.removeEventListener('mousemove', onMouseMove);\n        stopScroll();\n      };\n    }\n  }, [inVirtual]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { getPageXY } from \"./hooks/useScrollDrag\";\nvar ScrollBar = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var prefixCls = props.prefixCls,\n    rtl = props.rtl,\n    scrollOffset = props.scrollOffset,\n    scrollRange = props.scrollRange,\n    onStartMove = props.onStartMove,\n    onStopMove = props.onStopMove,\n    onScroll = props.onScroll,\n    horizontal = props.horizontal,\n    spinSize = props.spinSize,\n    containerSize = props.containerSize,\n    style = props.style,\n    propsThumbStyle = props.thumbStyle,\n    showScrollBar = props.showScrollBar;\n  var _React$useState = React.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    dragging = _React$useState2[0],\n    setDragging = _React$useState2[1];\n  var _React$useState3 = React.useState(null),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    pageXY = _React$useState4[0],\n    setPageXY = _React$useState4[1];\n  var _React$useState5 = React.useState(null),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    startTop = _React$useState6[0],\n    setStartTop = _React$useState6[1];\n  var isLTR = !rtl;\n\n  // ========================= Refs =========================\n  var scrollbarRef = React.useRef();\n  var thumbRef = React.useRef();\n\n  // ======================= Visible ========================\n  var _React$useState7 = React.useState(showScrollBar),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    visible = _React$useState8[0],\n    setVisible = _React$useState8[1];\n  var visibleTimeoutRef = React.useRef();\n  var delayHidden = function delayHidden() {\n    if (showScrollBar === true || showScrollBar === false) return;\n    clearTimeout(visibleTimeoutRef.current);\n    setVisible(true);\n    visibleTimeoutRef.current = setTimeout(function () {\n      setVisible(false);\n    }, 3000);\n  };\n\n  // ======================== Range =========================\n  var enableScrollRange = scrollRange - containerSize || 0;\n  var enableOffsetRange = containerSize - spinSize || 0;\n\n  // ========================= Top ==========================\n  var top = React.useMemo(function () {\n    if (scrollOffset === 0 || enableScrollRange === 0) {\n      return 0;\n    }\n    var ptg = scrollOffset / enableScrollRange;\n    return ptg * enableOffsetRange;\n  }, [scrollOffset, enableScrollRange, enableOffsetRange]);\n\n  // ====================== Container =======================\n  var onContainerMouseDown = function onContainerMouseDown(e) {\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  // ======================== Thumb =========================\n  var stateRef = React.useRef({\n    top: top,\n    dragging: dragging,\n    pageY: pageXY,\n    startTop: startTop\n  });\n  stateRef.current = {\n    top: top,\n    dragging: dragging,\n    pageY: pageXY,\n    startTop: startTop\n  };\n  var onThumbMouseDown = function onThumbMouseDown(e) {\n    setDragging(true);\n    setPageXY(getPageXY(e, horizontal));\n    setStartTop(stateRef.current.top);\n    onStartMove();\n    e.stopPropagation();\n    e.preventDefault();\n  };\n\n  // ======================== Effect ========================\n\n  // React make event as passive, but we need to preventDefault\n  // Add event on dom directly instead.\n  // ref: https://github.com/facebook/react/issues/9809\n  React.useEffect(function () {\n    var onScrollbarTouchStart = function onScrollbarTouchStart(e) {\n      e.preventDefault();\n    };\n    var scrollbarEle = scrollbarRef.current;\n    var thumbEle = thumbRef.current;\n    scrollbarEle.addEventListener('touchstart', onScrollbarTouchStart, {\n      passive: false\n    });\n    thumbEle.addEventListener('touchstart', onThumbMouseDown, {\n      passive: false\n    });\n    return function () {\n      scrollbarEle.removeEventListener('touchstart', onScrollbarTouchStart);\n      thumbEle.removeEventListener('touchstart', onThumbMouseDown);\n    };\n  }, []);\n\n  // Pass to effect\n  var enableScrollRangeRef = React.useRef();\n  enableScrollRangeRef.current = enableScrollRange;\n  var enableOffsetRangeRef = React.useRef();\n  enableOffsetRangeRef.current = enableOffsetRange;\n  React.useEffect(function () {\n    if (dragging) {\n      var moveRafId;\n      var onMouseMove = function onMouseMove(e) {\n        var _stateRef$current = stateRef.current,\n          stateDragging = _stateRef$current.dragging,\n          statePageY = _stateRef$current.pageY,\n          stateStartTop = _stateRef$current.startTop;\n        raf.cancel(moveRafId);\n        var rect = scrollbarRef.current.getBoundingClientRect();\n        var scale = containerSize / (horizontal ? rect.width : rect.height);\n        if (stateDragging) {\n          var offset = (getPageXY(e, horizontal) - statePageY) * scale;\n          var newTop = stateStartTop;\n          if (!isLTR && horizontal) {\n            newTop -= offset;\n          } else {\n            newTop += offset;\n          }\n          var tmpEnableScrollRange = enableScrollRangeRef.current;\n          var tmpEnableOffsetRange = enableOffsetRangeRef.current;\n          var ptg = tmpEnableOffsetRange ? newTop / tmpEnableOffsetRange : 0;\n          var newScrollTop = Math.ceil(ptg * tmpEnableScrollRange);\n          newScrollTop = Math.max(newScrollTop, 0);\n          newScrollTop = Math.min(newScrollTop, tmpEnableScrollRange);\n          moveRafId = raf(function () {\n            onScroll(newScrollTop, horizontal);\n          });\n        }\n      };\n      var onMouseUp = function onMouseUp() {\n        setDragging(false);\n        onStopMove();\n      };\n      window.addEventListener('mousemove', onMouseMove, {\n        passive: true\n      });\n      window.addEventListener('touchmove', onMouseMove, {\n        passive: true\n      });\n      window.addEventListener('mouseup', onMouseUp, {\n        passive: true\n      });\n      window.addEventListener('touchend', onMouseUp, {\n        passive: true\n      });\n      return function () {\n        window.removeEventListener('mousemove', onMouseMove);\n        window.removeEventListener('touchmove', onMouseMove);\n        window.removeEventListener('mouseup', onMouseUp);\n        window.removeEventListener('touchend', onMouseUp);\n        raf.cancel(moveRafId);\n      };\n    }\n  }, [dragging]);\n  React.useEffect(function () {\n    delayHidden();\n    return function () {\n      clearTimeout(visibleTimeoutRef.current);\n    };\n  }, [scrollOffset]);\n\n  // ====================== Imperative ======================\n  React.useImperativeHandle(ref, function () {\n    return {\n      delayHidden: delayHidden\n    };\n  });\n\n  // ======================== Render ========================\n  var scrollbarPrefixCls = \"\".concat(prefixCls, \"-scrollbar\");\n  var containerStyle = {\n    position: 'absolute',\n    visibility: visible ? null : 'hidden'\n  };\n  var thumbStyle = {\n    position: 'absolute',\n    background: 'rgba(0, 0, 0, 0.5)',\n    borderRadius: 99,\n    cursor: 'pointer',\n    userSelect: 'none'\n  };\n  if (horizontal) {\n    // Container\n    containerStyle.height = 8;\n    containerStyle.left = 0;\n    containerStyle.right = 0;\n    containerStyle.bottom = 0;\n\n    // Thumb\n    thumbStyle.height = '100%';\n    thumbStyle.width = spinSize;\n    if (isLTR) {\n      thumbStyle.left = top;\n    } else {\n      thumbStyle.right = top;\n    }\n  } else {\n    // Container\n    containerStyle.width = 8;\n    containerStyle.top = 0;\n    containerStyle.bottom = 0;\n    if (isLTR) {\n      containerStyle.right = 0;\n    } else {\n      containerStyle.left = 0;\n    }\n\n    // Thumb\n    thumbStyle.width = '100%';\n    thumbStyle.height = spinSize;\n    thumbStyle.top = top;\n  }\n  return /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollbarRef,\n    className: classNames(scrollbarPrefixCls, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-horizontal\"), horizontal), \"\".concat(scrollbarPrefixCls, \"-vertical\"), !horizontal), \"\".concat(scrollbarPrefixCls, \"-visible\"), visible)),\n    style: _objectSpread(_objectSpread({}, containerStyle), style),\n    onMouseDown: onContainerMouseDown,\n    onMouseMove: delayHidden\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    ref: thumbRef,\n    className: classNames(\"\".concat(scrollbarPrefixCls, \"-thumb\"), _defineProperty({}, \"\".concat(scrollbarPrefixCls, \"-thumb-moving\"), dragging)),\n    style: _objectSpread(_objectSpread({}, thumbStyle), propsThumbStyle),\n    onMouseDown: onThumbMouseDown\n  }));\n});\nif (process.env.NODE_ENV !== 'production') {\n  ScrollBar.displayName = 'ScrollBar';\n}\nexport default ScrollBar;","var MIN_SIZE = 20;\nexport function getSpinSize() {\n  var containerSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var scrollRange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var baseSize = containerSize / scrollRange * containerSize;\n  if (isNaN(baseSize)) {\n    baseSize = 0;\n  }\n  baseSize = Math.max(baseSize, MIN_SIZE);\n  return Math.floor(baseSize);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\", \"showScrollBar\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { useEvent } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport Filler from \"./Filler\";\nimport useChildren from \"./hooks/useChildren\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport { useGetSize } from \"./hooks/useGetSize\";\nimport useHeights from \"./hooks/useHeights\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useScrollDrag from \"./hooks/useScrollDrag\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport ScrollBar from \"./ScrollBar\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n  overflowY: 'auto',\n  overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n    className = props.className,\n    height = props.height,\n    itemHeight = props.itemHeight,\n    _props$fullHeight = props.fullHeight,\n    fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n    style = props.style,\n    data = props.data,\n    children = props.children,\n    itemKey = props.itemKey,\n    virtual = props.virtual,\n    direction = props.direction,\n    scrollWidth = props.scrollWidth,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    onScroll = props.onScroll,\n    onVirtualScroll = props.onVirtualScroll,\n    onVisibleChange = props.onVisibleChange,\n    innerProps = props.innerProps,\n    extraRender = props.extraRender,\n    styles = props.styles,\n    _props$showScrollBar = props.showScrollBar,\n    showScrollBar = _props$showScrollBar === void 0 ? 'optional' : _props$showScrollBar,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // =============================== Item Key ===============================\n  var getKey = React.useCallback(function (item) {\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return item === null || item === void 0 ? void 0 : item[itemKey];\n  }, [itemKey]);\n\n  // ================================ Height ================================\n  var _useHeights = useHeights(getKey, null, null),\n    _useHeights2 = _slicedToArray(_useHeights, 4),\n    setInstanceRef = _useHeights2[0],\n    collectHeight = _useHeights2[1],\n    heights = _useHeights2[2],\n    heightUpdatedMark = _useHeights2[3];\n\n  // ================================= MISC =================================\n  var useVirtual = !!(virtual !== false && height && itemHeight);\n  var containerHeight = React.useMemo(function () {\n    return Object.values(heights.maps).reduce(function (total, curr) {\n      return total + curr;\n    }, 0);\n  }, [heights.id, heights.maps]);\n  var inVirtual = useVirtual && data && (Math.max(itemHeight * data.length, containerHeight) > height || !!scrollWidth);\n  var isRTL = direction === 'rtl';\n  var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n  var mergedData = data || EMPTY_DATA;\n  var componentRef = useRef();\n  var fillerInnerRef = useRef();\n  var containerRef = useRef();\n\n  // =============================== Item Key ===============================\n\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    offsetTop = _useState2[0],\n    setOffsetTop = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    offsetLeft = _useState4[0],\n    setOffsetLeft = _useState4[1];\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    scrollMoving = _useState6[0],\n    setScrollMoving = _useState6[1];\n  var onScrollbarStartMove = function onScrollbarStartMove() {\n    setScrollMoving(true);\n  };\n  var onScrollbarStopMove = function onScrollbarStopMove() {\n    setScrollMoving(false);\n  };\n  var sharedConfig = {\n    getKey: getKey\n  };\n\n  // ================================ Scroll ================================\n  function syncScrollTop(newTop) {\n    setOffsetTop(function (origin) {\n      var value;\n      if (typeof newTop === 'function') {\n        value = newTop(origin);\n      } else {\n        value = newTop;\n      }\n      var alignedTop = keepInRange(value);\n      componentRef.current.scrollTop = alignedTop;\n      return alignedTop;\n    });\n  }\n\n  // ================================ Legacy ================================\n  // Put ref here since the range is generate by follow\n  var rangeRef = useRef({\n    start: 0,\n    end: mergedData.length\n  });\n  var diffItemRef = useRef();\n  var _useDiffItem = useDiffItem(mergedData, getKey),\n    _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n    diffItem = _useDiffItem2[0];\n  diffItemRef.current = diffItem;\n\n  // ========================== Visible Calculation =========================\n  var _React$useMemo = React.useMemo(function () {\n      if (!useVirtual) {\n        return {\n          scrollHeight: undefined,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n\n      // Always use virtual scroll bar in avoid shaking\n      if (!inVirtual) {\n        var _fillerInnerRef$curre;\n        return {\n          scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n      var itemTop = 0;\n      var startIndex;\n      var startOffset;\n      var endIndex;\n      var dataLen = mergedData.length;\n      for (var i = 0; i < dataLen; i += 1) {\n        var _item = mergedData[i];\n        var key = getKey(_item);\n        var cacheHeight = heights.get(key);\n        var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n        // Check item top in the range\n        if (currentItemBottom >= offsetTop && startIndex === undefined) {\n          startIndex = i;\n          startOffset = itemTop;\n        }\n\n        // Check item bottom in the range. We will render additional one item for motion usage\n        if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n          endIndex = i;\n        }\n        itemTop = currentItemBottom;\n      }\n\n      // When scrollTop at the end but data cut to small count will reach this\n      if (startIndex === undefined) {\n        startIndex = 0;\n        startOffset = 0;\n        endIndex = Math.ceil(height / itemHeight);\n      }\n      if (endIndex === undefined) {\n        endIndex = mergedData.length - 1;\n      }\n\n      // Give cache to improve scroll experience\n      endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n      return {\n        scrollHeight: itemTop,\n        start: startIndex,\n        end: endIndex,\n        offset: startOffset\n      };\n    }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n    scrollHeight = _React$useMemo.scrollHeight,\n    start = _React$useMemo.start,\n    end = _React$useMemo.end,\n    fillerOffset = _React$useMemo.offset;\n  rangeRef.current.start = start;\n  rangeRef.current.end = end;\n\n  // When scroll up, first visible item get real height may not same as `itemHeight`,\n  // Which will make scroll jump.\n  // Let's sync scroll top to avoid jump\n  React.useLayoutEffect(function () {\n    var changedRecord = heights.getRecord();\n    if (changedRecord.size === 1) {\n      var recordKey = Array.from(changedRecord)[0];\n      var startIndexKey = getKey(mergedData[start]);\n      if (startIndexKey === recordKey) {\n        var realStartHeight = heights.get(recordKey);\n        var diffHeight = realStartHeight - itemHeight;\n        syncScrollTop(function (ori) {\n          return ori + diffHeight;\n        });\n      }\n    }\n    heights.resetRecord();\n  }, [scrollHeight]);\n\n  // ================================= Size =================================\n  var _React$useState = React.useState({\n      width: 0,\n      height: height\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    size = _React$useState2[0],\n    setSize = _React$useState2[1];\n  var onHolderResize = function onHolderResize(sizeInfo) {\n    setSize({\n      width: sizeInfo.offsetWidth,\n      height: sizeInfo.offsetHeight\n    });\n  };\n\n  // Hack on scrollbar to enable flash call\n  var verticalScrollBarRef = useRef();\n  var horizontalScrollBarRef = useRef();\n  var horizontalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.width, scrollWidth);\n  }, [size.width, scrollWidth]);\n  var verticalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.height, scrollHeight);\n  }, [size.height, scrollHeight]);\n\n  // =============================== In Range ===============================\n  var maxScrollHeight = scrollHeight - height;\n  var maxScrollHeightRef = useRef(maxScrollHeight);\n  maxScrollHeightRef.current = maxScrollHeight;\n  function keepInRange(newScrollTop) {\n    var newTop = newScrollTop;\n    if (!Number.isNaN(maxScrollHeightRef.current)) {\n      newTop = Math.min(newTop, maxScrollHeightRef.current);\n    }\n    newTop = Math.max(newTop, 0);\n    return newTop;\n  }\n  var isScrollAtTop = offsetTop <= 0;\n  var isScrollAtBottom = offsetTop >= maxScrollHeight;\n  var isScrollAtLeft = offsetLeft <= 0;\n  var isScrollAtRight = offsetLeft >= scrollWidth;\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight);\n\n  // ================================ Scroll ================================\n  var getVirtualScrollInfo = function getVirtualScrollInfo() {\n    return {\n      x: isRTL ? -offsetLeft : offsetLeft,\n      y: offsetTop\n    };\n  };\n  var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n  var triggerScroll = useEvent(function (params) {\n    if (onVirtualScroll) {\n      var nextInfo = _objectSpread(_objectSpread({}, getVirtualScrollInfo()), params);\n\n      // Trigger when offset changed\n      if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n        onVirtualScroll(nextInfo);\n        lastVirtualScrollInfoRef.current = nextInfo;\n      }\n    }\n  });\n  function onScrollBar(newScrollOffset, horizontal) {\n    var newOffset = newScrollOffset;\n    if (horizontal) {\n      flushSync(function () {\n        setOffsetLeft(newOffset);\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(newOffset);\n    }\n  }\n\n  // When data size reduce. It may trigger native scroll event back to fit scroll position\n  function onFallbackScroll(e) {\n    var newScrollTop = e.currentTarget.scrollTop;\n    if (newScrollTop !== offsetTop) {\n      syncScrollTop(newScrollTop);\n    }\n\n    // Trigger origin onScroll\n    onScroll === null || onScroll === void 0 || onScroll(e);\n    triggerScroll();\n  }\n  var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n    var tmpOffsetLeft = nextOffsetLeft;\n    var max = !!scrollWidth ? scrollWidth - size.width : 0;\n    tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n    tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n    return tmpOffsetLeft;\n  };\n  var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n    if (fromHorizontal) {\n      flushSync(function () {\n        setOffsetLeft(function (left) {\n          var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n          return keepInHorizontalRange(nextOffsetLeft);\n        });\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(function (top) {\n        var newTop = top + offsetXY;\n        return newTop;\n      });\n    }\n  });\n\n  // Since this added in global,should use ref to keep update\n  var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, isScrollAtLeft, isScrollAtRight, !!scrollWidth, onWheelDelta),\n    _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n    onRawWheel = _useFrameWheel2[0],\n    onFireFoxScroll = _useFrameWheel2[1];\n\n  // Mobile touch move\n  useMobileTouchMove(useVirtual, componentRef, function (isHorizontal, delta, smoothOffset, e) {\n    var event = e;\n    if (originScroll(isHorizontal, delta, smoothOffset)) {\n      return false;\n    }\n\n    // Fix nest List trigger TouchMove event\n    if (!event || !event._virtualHandled) {\n      if (event) {\n        event._virtualHandled = true;\n      }\n      onRawWheel({\n        preventDefault: function preventDefault() {},\n        deltaX: isHorizontal ? delta : 0,\n        deltaY: isHorizontal ? 0 : delta\n      });\n      return true;\n    }\n    return false;\n  });\n\n  // MouseDown drag for scroll\n  useScrollDrag(inVirtual, componentRef, function (offset) {\n    syncScrollTop(function (top) {\n      return top + offset;\n    });\n  });\n  useLayoutEffect(function () {\n    // Firefox only\n    function onMozMousePixelScroll(e) {\n      // scrolling at top/bottom limit\n      var scrollingUpAtTop = isScrollAtTop && e.detail < 0;\n      var scrollingDownAtBottom = isScrollAtBottom && e.detail > 0;\n      if (useVirtual && !scrollingUpAtTop && !scrollingDownAtBottom) {\n        e.preventDefault();\n      }\n    }\n    var componentEle = componentRef.current;\n    componentEle.addEventListener('wheel', onRawWheel, {\n      passive: false\n    });\n    componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll, {\n      passive: true\n    });\n    componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll, {\n      passive: false\n    });\n    return function () {\n      componentEle.removeEventListener('wheel', onRawWheel);\n      componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n      componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    };\n  }, [useVirtual, isScrollAtTop, isScrollAtBottom]);\n\n  // Sync scroll left\n  useLayoutEffect(function () {\n    if (scrollWidth) {\n      var newOffsetLeft = keepInHorizontalRange(offsetLeft);\n      setOffsetLeft(newOffsetLeft);\n      triggerScroll({\n        x: newOffsetLeft\n      });\n    }\n  }, [size.width, scrollWidth]);\n\n  // ================================= Ref ==================================\n  var delayHideScrollBar = function delayHideScrollBar() {\n    var _verticalScrollBarRef, _horizontalScrollBarR;\n    (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n    (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n  };\n  var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n    return collectHeight(true);\n  }, syncScrollTop, delayHideScrollBar);\n  React.useImperativeHandle(ref, function () {\n    return {\n      nativeElement: containerRef.current,\n      getScrollInfo: getVirtualScrollInfo,\n      scrollTo: function scrollTo(config) {\n        function isPosScroll(arg) {\n          return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n        }\n        if (isPosScroll(config)) {\n          // Scroll X\n          if (config.left !== undefined) {\n            setOffsetLeft(keepInHorizontalRange(config.left));\n          }\n\n          // Scroll Y\n          _scrollTo(config.top);\n        } else {\n          _scrollTo(config);\n        }\n      }\n    };\n  });\n\n  // ================================ Effect ================================\n  /** We need told outside that some list not rendered */\n  useLayoutEffect(function () {\n    if (onVisibleChange) {\n      var renderList = mergedData.slice(start, end + 1);\n      onVisibleChange(renderList, mergedData);\n    }\n  }, [start, end, mergedData]);\n\n  // ================================ Extra =================================\n  var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n  var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n    start: start,\n    end: end,\n    virtual: inVirtual,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    rtl: isRTL,\n    getSize: getSize\n  });\n\n  // ================================ Render ================================\n  var listChildren = useChildren(mergedData, start, end, scrollWidth, offsetLeft, setInstanceRef, children, sharedConfig);\n  var componentStyle = null;\n  if (height) {\n    componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n    if (useVirtual) {\n      componentStyle.overflowY = 'hidden';\n      if (scrollWidth) {\n        componentStyle.overflowX = 'hidden';\n      }\n      if (scrollMoving) {\n        componentStyle.pointerEvents = 'none';\n      }\n    }\n  }\n  var containerProps = {};\n  if (isRTL) {\n    containerProps.dir = 'rtl';\n  }\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: containerRef,\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      position: 'relative'\n    }),\n    className: mergedClassName\n  }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onHolderResize\n  }, /*#__PURE__*/React.createElement(Component, {\n    className: \"\".concat(prefixCls, \"-holder\"),\n    style: componentStyle,\n    ref: componentRef,\n    onScroll: onFallbackScroll,\n    onMouseEnter: delayHideScrollBar\n  }, /*#__PURE__*/React.createElement(Filler, {\n    prefixCls: prefixCls,\n    height: scrollHeight,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    scrollWidth: scrollWidth,\n    onInnerResize: collectHeight,\n    ref: fillerInnerRef,\n    innerProps: innerProps,\n    rtl: isRTL,\n    extra: extraContent\n  }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: verticalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetTop,\n    scrollRange: scrollHeight,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: verticalScrollBarSpinSize,\n    containerSize: size.height,\n    style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb,\n    showScrollBar: showScrollBar\n  }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: horizontalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetLeft,\n    scrollRange: scrollWidth,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: horizontalScrollBarSpinSize,\n    containerSize: size.width,\n    horizontal: true,\n    style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb,\n    showScrollBar: showScrollBar\n  }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\n/* eslint-disable no-param-reassign */\nimport * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { warning } from 'rc-util';\nvar MAX_TIMES = 10;\nexport default function useScrollTo(containerRef, data, heights, itemHeight, getKey, collectHeight, syncScrollTop, triggerFlash) {\n  var scrollRef = React.useRef();\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    syncState = _React$useState2[0],\n    setSyncState = _React$useState2[1];\n\n  // ========================== Sync Scroll ==========================\n  useLayoutEffect(function () {\n    if (syncState && syncState.times < MAX_TIMES) {\n      // Never reach\n      if (!containerRef.current) {\n        setSyncState(function (ori) {\n          return _objectSpread({}, ori);\n        });\n        return;\n      }\n      collectHeight();\n      var targetAlign = syncState.targetAlign,\n        originAlign = syncState.originAlign,\n        index = syncState.index,\n        offset = syncState.offset;\n      var height = containerRef.current.clientHeight;\n      var needCollectHeight = false;\n      var newTargetAlign = targetAlign;\n      var targetTop = null;\n\n      // Go to next frame if height not exist\n      if (height) {\n        var mergedAlign = targetAlign || originAlign;\n\n        // Get top & bottom\n        var stackTop = 0;\n        var itemTop = 0;\n        var itemBottom = 0;\n        var maxLen = Math.min(data.length - 1, index);\n        for (var i = 0; i <= maxLen; i += 1) {\n          var key = getKey(data[i]);\n          itemTop = stackTop;\n          var cacheHeight = heights.get(key);\n          itemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n          stackTop = itemBottom;\n        }\n\n        // Check if need sync height (visible range has item not record height)\n        var leftHeight = mergedAlign === 'top' ? offset : height - offset;\n        for (var _i = maxLen; _i >= 0; _i -= 1) {\n          var _key = getKey(data[_i]);\n          var _cacheHeight = heights.get(_key);\n          if (_cacheHeight === undefined) {\n            needCollectHeight = true;\n            break;\n          }\n          leftHeight -= _cacheHeight;\n          if (leftHeight <= 0) {\n            break;\n          }\n        }\n\n        // Scroll to\n        switch (mergedAlign) {\n          case 'top':\n            targetTop = itemTop - offset;\n            break;\n          case 'bottom':\n            targetTop = itemBottom - height + offset;\n            break;\n          default:\n            {\n              var scrollTop = containerRef.current.scrollTop;\n              var scrollBottom = scrollTop + height;\n              if (itemTop < scrollTop) {\n                newTargetAlign = 'top';\n              } else if (itemBottom > scrollBottom) {\n                newTargetAlign = 'bottom';\n              }\n            }\n        }\n        if (targetTop !== null) {\n          syncScrollTop(targetTop);\n        }\n\n        // One more time for sync\n        if (targetTop !== syncState.lastTop) {\n          needCollectHeight = true;\n        }\n      }\n\n      // Trigger next effect\n      if (needCollectHeight) {\n        setSyncState(_objectSpread(_objectSpread({}, syncState), {}, {\n          times: syncState.times + 1,\n          targetAlign: newTargetAlign,\n          lastTop: targetTop\n        }));\n      }\n    } else if (process.env.NODE_ENV !== 'production' && (syncState === null || syncState === void 0 ? void 0 : syncState.times) === MAX_TIMES) {\n      warning(false, 'Seems `scrollTo` with `rc-virtual-list` reach the max limitation. Please fire issue for us. Thanks.');\n    }\n  }, [syncState, containerRef.current]);\n\n  // =========================== Scroll To ===========================\n  return function (arg) {\n    // When not argument provided, we think dev may want to show the scrollbar\n    if (arg === null || arg === undefined) {\n      triggerFlash();\n      return;\n    }\n\n    // Normal scroll logic\n    raf.cancel(scrollRef.current);\n    if (typeof arg === 'number') {\n      syncScrollTop(arg);\n    } else if (arg && _typeof(arg) === 'object') {\n      var index;\n      var align = arg.align;\n      if ('index' in arg) {\n        index = arg.index;\n      } else {\n        index = data.findIndex(function (item) {\n          return getKey(item) === arg.key;\n        });\n      }\n      var _arg$offset = arg.offset,\n        offset = _arg$offset === void 0 ? 0 : _arg$offset;\n      setSyncState({\n        times: 0,\n        index: index,\n        offset: offset,\n        originAlign: align\n      });\n    }\n  };\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Size info need loop query for the `heights` which will has the perf issue.\n * Let cache result for each render phase.\n */\nexport function useGetSize(mergedData, getKey, heights, itemHeight) {\n  var _React$useMemo = React.useMemo(function () {\n      return [new Map(), []];\n    }, [mergedData, heights.id, itemHeight]),\n    _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n    key2Index = _React$useMemo2[0],\n    bottomList = _React$useMemo2[1];\n  var getSize = function getSize(startKey) {\n    var endKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : startKey;\n    // Get from cache first\n    var startIndex = key2Index.get(startKey);\n    var endIndex = key2Index.get(endKey);\n\n    // Loop to fill the cache\n    if (startIndex === undefined || endIndex === undefined) {\n      var dataLen = mergedData.length;\n      for (var i = bottomList.length; i < dataLen; i += 1) {\n        var _heights$get;\n        var item = mergedData[i];\n        var key = getKey(item);\n        key2Index.set(key, i);\n        var cacheHeight = (_heights$get = heights.get(key)) !== null && _heights$get !== void 0 ? _heights$get : itemHeight;\n        bottomList[i] = (bottomList[i - 1] || 0) + cacheHeight;\n        if (key === startKey) {\n          startIndex = i;\n        }\n        if (key === endKey) {\n          endIndex = i;\n        }\n        if (startIndex !== undefined && endIndex !== undefined) {\n          break;\n        }\n      }\n    }\n    return {\n      top: bottomList[startIndex - 1] || 0,\n      bottom: bottomList[endIndex]\n    };\n  };\n  return getSize;\n}","import * as React from 'react';\nimport { Item } from \"../Item\";\nexport default function useChildren(list, startIndex, endIndex, scrollWidth, offsetX, setNodeRef, renderFunc, _ref) {\n  var getKey = _ref.getKey;\n  return list.slice(startIndex, endIndex + 1).map(function (item, index) {\n    var eleIndex = startIndex + index;\n    var node = renderFunc(item, eleIndex, {\n      style: {\n        width: scrollWidth\n      },\n      offsetX: offsetX\n    });\n    var key = getKey(item);\n    return /*#__PURE__*/React.createElement(Item, {\n      key: key,\n      setRef: function setRef(ele) {\n        return setNodeRef(item, ele);\n      }\n    }, node);\n  });\n}","import List from \"./List\";\nexport default List;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar _excluded = [\"disabled\", \"title\", \"children\", \"style\", \"className\"];\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport List from 'rc-virtual-list';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport SelectContext from \"./SelectContext\";\nimport TransBtn from \"./TransBtn\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nimport { isPlatformMac } from \"./utils/platformUtil\";\nimport { isValidCount } from \"./utils/valueUtil\";\n\n// export interface OptionListProps<OptionsType extends object[]> {\n\nfunction isTitleType(content) {\n  return typeof content === 'string' || typeof content === 'number';\n}\n\n/**\n * Using virtual list of option display.\n * Will fallback to dom if use customize render.\n */\nvar OptionList = function OptionList(_, ref) {\n  var _useBaseProps = useBaseProps(),\n    prefixCls = _useBaseProps.prefixCls,\n    id = _useBaseProps.id,\n    open = _useBaseProps.open,\n    multiple = _useBaseProps.multiple,\n    mode = _useBaseProps.mode,\n    searchValue = _useBaseProps.searchValue,\n    toggleOpen = _useBaseProps.toggleOpen,\n    notFoundContent = _useBaseProps.notFoundContent,\n    onPopupScroll = _useBaseProps.onPopupScroll;\n  var _React$useContext = React.useContext(SelectContext),\n    maxCount = _React$useContext.maxCount,\n    flattenOptions = _React$useContext.flattenOptions,\n    onActiveValue = _React$useContext.onActiveValue,\n    defaultActiveFirstOption = _React$useContext.defaultActiveFirstOption,\n    onSelect = _React$useContext.onSelect,\n    menuItemSelectedIcon = _React$useContext.menuItemSelectedIcon,\n    rawValues = _React$useContext.rawValues,\n    fieldNames = _React$useContext.fieldNames,\n    virtual = _React$useContext.virtual,\n    direction = _React$useContext.direction,\n    listHeight = _React$useContext.listHeight,\n    listItemHeight = _React$useContext.listItemHeight,\n    optionRender = _React$useContext.optionRender;\n  var itemPrefixCls = \"\".concat(prefixCls, \"-item\");\n  var memoFlattenOptions = useMemo(function () {\n    return flattenOptions;\n  }, [open, flattenOptions], function (prev, next) {\n    return next[0] && prev[1] !== next[1];\n  });\n\n  // =========================== List ===========================\n  var listRef = React.useRef(null);\n  var overMaxCount = React.useMemo(function () {\n    return multiple && isValidCount(maxCount) && (rawValues === null || rawValues === void 0 ? void 0 : rawValues.size) >= maxCount;\n  }, [multiple, maxCount, rawValues === null || rawValues === void 0 ? void 0 : rawValues.size]);\n  var onListMouseDown = function onListMouseDown(event) {\n    event.preventDefault();\n  };\n  var scrollIntoView = function scrollIntoView(args) {\n    var _listRef$current;\n    (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(typeof args === 'number' ? {\n      index: args\n    } : args);\n  };\n\n  // https://github.com/ant-design/ant-design/issues/34975\n  var isSelected = React.useCallback(function (value) {\n    if (mode === 'combobox') {\n      return false;\n    }\n    return rawValues.has(value);\n  }, [mode, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n  // ========================== Active ==========================\n  var getEnabledActiveIndex = function getEnabledActiveIndex(index) {\n    var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n    var len = memoFlattenOptions.length;\n    for (var i = 0; i < len; i += 1) {\n      var current = (index + i * offset + len) % len;\n      var _ref = memoFlattenOptions[current] || {},\n        group = _ref.group,\n        data = _ref.data;\n      if (!group && !(data !== null && data !== void 0 && data.disabled) && (isSelected(data.value) || !overMaxCount)) {\n        return current;\n      }\n    }\n    return -1;\n  };\n  var _React$useState = React.useState(function () {\n      return getEnabledActiveIndex(0);\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeIndex = _React$useState2[0],\n    setActiveIndex = _React$useState2[1];\n  var setActive = function setActive(index) {\n    var fromKeyboard = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    setActiveIndex(index);\n    var info = {\n      source: fromKeyboard ? 'keyboard' : 'mouse'\n    };\n\n    // Trigger active event\n    var flattenItem = memoFlattenOptions[index];\n    if (!flattenItem) {\n      onActiveValue(null, -1, info);\n      return;\n    }\n    onActiveValue(flattenItem.value, index, info);\n  };\n\n  // Auto active first item when list length or searchValue changed\n  useEffect(function () {\n    setActive(defaultActiveFirstOption !== false ? getEnabledActiveIndex(0) : -1);\n  }, [memoFlattenOptions.length, searchValue]);\n\n  // https://github.com/ant-design/ant-design/issues/48036\n  var isAriaSelected = React.useCallback(function (value) {\n    if (mode === 'combobox') {\n      return String(value).toLowerCase() === searchValue.toLowerCase();\n    }\n    return rawValues.has(value);\n  }, [mode, searchValue, _toConsumableArray(rawValues).toString(), rawValues.size]);\n\n  // Auto scroll to item position in single mode\n  useEffect(function () {\n    /**\n     * React will skip `onChange` when component update.\n     * `setActive` function will call root accessibility state update which makes re-render.\n     * So we need to delay to let Input component trigger onChange first.\n     */\n    var timeoutId = setTimeout(function () {\n      if (!multiple && open && rawValues.size === 1) {\n        var value = Array.from(rawValues)[0];\n        var index = memoFlattenOptions.findIndex(function (_ref2) {\n          var data = _ref2.data;\n          return data.value === value;\n        });\n        if (index !== -1) {\n          setActive(index);\n          scrollIntoView(index);\n        }\n      }\n    });\n\n    // Force trigger scrollbar visible when open\n    if (open) {\n      var _listRef$current2;\n      (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 || _listRef$current2.scrollTo(undefined);\n    }\n    return function () {\n      return clearTimeout(timeoutId);\n    };\n  }, [open, searchValue]);\n\n  // ========================== Values ==========================\n  var onSelectValue = function onSelectValue(value) {\n    if (value !== undefined) {\n      onSelect(value, {\n        selected: !rawValues.has(value)\n      });\n    }\n\n    // Single mode should always close by select\n    if (!multiple) {\n      toggleOpen(false);\n    }\n  };\n\n  // ========================= Keyboard =========================\n  React.useImperativeHandle(ref, function () {\n    return {\n      onKeyDown: function onKeyDown(event) {\n        var which = event.which,\n          ctrlKey = event.ctrlKey;\n        switch (which) {\n          // >>> Arrow keys & ctrl + n/p on Mac\n          case KeyCode.N:\n          case KeyCode.P:\n          case KeyCode.UP:\n          case KeyCode.DOWN:\n            {\n              var offset = 0;\n              if (which === KeyCode.UP) {\n                offset = -1;\n              } else if (which === KeyCode.DOWN) {\n                offset = 1;\n              } else if (isPlatformMac() && ctrlKey) {\n                if (which === KeyCode.N) {\n                  offset = 1;\n                } else if (which === KeyCode.P) {\n                  offset = -1;\n                }\n              }\n              if (offset !== 0) {\n                var nextActiveIndex = getEnabledActiveIndex(activeIndex + offset, offset);\n                scrollIntoView(nextActiveIndex);\n                setActive(nextActiveIndex, true);\n              }\n              break;\n            }\n\n          // >>> Select (Tab / Enter)\n          case KeyCode.TAB:\n          case KeyCode.ENTER:\n            {\n              var _item$data;\n              // value\n              var item = memoFlattenOptions[activeIndex];\n              if (item && !(item !== null && item !== void 0 && (_item$data = item.data) !== null && _item$data !== void 0 && _item$data.disabled) && !overMaxCount) {\n                onSelectValue(item.value);\n              } else {\n                onSelectValue(undefined);\n              }\n              if (open) {\n                event.preventDefault();\n              }\n              break;\n            }\n\n          // >>> Close\n          case KeyCode.ESC:\n            {\n              toggleOpen(false);\n              if (open) {\n                event.stopPropagation();\n              }\n            }\n        }\n      },\n      onKeyUp: function onKeyUp() {},\n      scrollTo: function scrollTo(index) {\n        scrollIntoView(index);\n      }\n    };\n  });\n\n  // ========================== Render ==========================\n  if (memoFlattenOptions.length === 0) {\n    return /*#__PURE__*/React.createElement(\"div\", {\n      role: \"listbox\",\n      id: \"\".concat(id, \"_list\"),\n      className: \"\".concat(itemPrefixCls, \"-empty\"),\n      onMouseDown: onListMouseDown\n    }, notFoundContent);\n  }\n  var omitFieldNameList = Object.keys(fieldNames).map(function (key) {\n    return fieldNames[key];\n  });\n  var getLabel = function getLabel(item) {\n    return item.label;\n  };\n  function getItemAriaProps(item, index) {\n    var group = item.group;\n    return {\n      role: group ? 'presentation' : 'option',\n      id: \"\".concat(id, \"_list_\").concat(index)\n    };\n  }\n  var renderItem = function renderItem(index) {\n    var item = memoFlattenOptions[index];\n    if (!item) {\n      return null;\n    }\n    var itemData = item.data || {};\n    var value = itemData.value;\n    var group = item.group;\n    var attrs = pickAttrs(itemData, true);\n    var mergedLabel = getLabel(item);\n    return item ? /*#__PURE__*/React.createElement(\"div\", _extends({\n      \"aria-label\": typeof mergedLabel === 'string' && !group ? mergedLabel : null\n    }, attrs, {\n      key: index\n    }, getItemAriaProps(item, index), {\n      \"aria-selected\": isAriaSelected(value)\n    }), value) : null;\n  };\n  var a11yProps = {\n    role: 'listbox',\n    id: \"\".concat(id, \"_list\")\n  };\n  return /*#__PURE__*/React.createElement(React.Fragment, null, virtual && /*#__PURE__*/React.createElement(\"div\", _extends({}, a11yProps, {\n    style: {\n      height: 0,\n      width: 0,\n      overflow: 'hidden'\n    }\n  }), renderItem(activeIndex - 1), renderItem(activeIndex), renderItem(activeIndex + 1)), /*#__PURE__*/React.createElement(List, {\n    itemKey: \"key\",\n    ref: listRef,\n    data: memoFlattenOptions,\n    height: listHeight,\n    itemHeight: listItemHeight,\n    fullHeight: false,\n    onMouseDown: onListMouseDown,\n    onScroll: onPopupScroll,\n    virtual: virtual,\n    direction: direction,\n    innerProps: virtual ? null : a11yProps\n  }, function (item, itemIndex) {\n    var group = item.group,\n      groupOption = item.groupOption,\n      data = item.data,\n      label = item.label,\n      value = item.value;\n    var key = data.key;\n\n    // Group\n    if (group) {\n      var _data$title;\n      var groupTitle = (_data$title = data.title) !== null && _data$title !== void 0 ? _data$title : isTitleType(label) ? label.toString() : undefined;\n      return /*#__PURE__*/React.createElement(\"div\", {\n        className: classNames(itemPrefixCls, \"\".concat(itemPrefixCls, \"-group\"), data.className),\n        title: groupTitle\n      }, label !== undefined ? label : key);\n    }\n    var disabled = data.disabled,\n      title = data.title,\n      children = data.children,\n      style = data.style,\n      className = data.className,\n      otherProps = _objectWithoutProperties(data, _excluded);\n    var passedProps = omit(otherProps, omitFieldNameList);\n\n    // Option\n    var selected = isSelected(value);\n    var mergedDisabled = disabled || !selected && overMaxCount;\n    var optionPrefixCls = \"\".concat(itemPrefixCls, \"-option\");\n    var optionClassName = classNames(itemPrefixCls, optionPrefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(optionPrefixCls, \"-grouped\"), groupOption), \"\".concat(optionPrefixCls, \"-active\"), activeIndex === itemIndex && !mergedDisabled), \"\".concat(optionPrefixCls, \"-disabled\"), mergedDisabled), \"\".concat(optionPrefixCls, \"-selected\"), selected));\n    var mergedLabel = getLabel(item);\n    var iconVisible = !menuItemSelectedIcon || typeof menuItemSelectedIcon === 'function' || selected;\n\n    // https://github.com/ant-design/ant-design/issues/34145\n    var content = typeof mergedLabel === 'number' ? mergedLabel : mergedLabel || value;\n    // https://github.com/ant-design/ant-design/issues/26717\n    var optionTitle = isTitleType(content) ? content.toString() : undefined;\n    if (title !== undefined) {\n      optionTitle = title;\n    }\n    return /*#__PURE__*/React.createElement(\"div\", _extends({}, pickAttrs(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {\n      \"aria-selected\": isAriaSelected(value),\n      className: optionClassName,\n      title: optionTitle,\n      onMouseMove: function onMouseMove() {\n        if (activeIndex === itemIndex || mergedDisabled) {\n          return;\n        }\n        setActive(itemIndex);\n      },\n      onClick: function onClick() {\n        if (!mergedDisabled) {\n          onSelectValue(value);\n        }\n      },\n      style: style\n    }), /*#__PURE__*/React.createElement(\"div\", {\n      className: \"\".concat(optionPrefixCls, \"-content\")\n    }, typeof optionRender === 'function' ? optionRender(item, {\n      index: itemIndex\n    }) : content), /*#__PURE__*/React.isValidElement(menuItemSelectedIcon) || selected, iconVisible && /*#__PURE__*/React.createElement(TransBtn, {\n      className: \"\".concat(itemPrefixCls, \"-option-state\"),\n      customizeIcon: menuItemSelectedIcon,\n      customizeIconProps: {\n        value: value,\n        disabled: mergedDisabled,\n        isSelected: selected\n      }\n    }, selected ? '✓' : null));\n  }));\n};\nvar RefOptionList = /*#__PURE__*/React.forwardRef(OptionList);\nif (process.env.NODE_ENV !== 'production') {\n  RefOptionList.displayName = 'OptionList';\n}\nexport default RefOptionList;","/* istanbul ignore file */\nexport function isPlatformMac() {\n  return /(mac\\sos|macintosh)/i.test(navigator.appVersion);\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport { toArray } from \"../utils/commonUtil\";\nimport { injectPropsWithOption } from \"../utils/valueUtil\";\nfunction includes(test, search) {\n  return toArray(test).join('').toUpperCase().includes(search);\n}\nexport default (function (options, fieldNames, searchValue, filterOption, optionFilterProp) {\n  return React.useMemo(function () {\n    if (!searchValue || filterOption === false) {\n      return options;\n    }\n    var fieldOptions = fieldNames.options,\n      fieldLabel = fieldNames.label,\n      fieldValue = fieldNames.value;\n    var filteredOptions = [];\n    var customizeFilter = typeof filterOption === 'function';\n    var upperSearch = searchValue.toUpperCase();\n    var filterFunc = customizeFilter ? filterOption : function (_, option) {\n      // Use provided `optionFilterProp`\n      if (optionFilterProp) {\n        return includes(option[optionFilterProp], upperSearch);\n      }\n\n      // Auto select `label` or `value` by option type\n      if (option[fieldOptions]) {\n        // hack `fieldLabel` since `OptionGroup` children is not `label`\n        return includes(option[fieldLabel !== 'children' ? fieldLabel : 'label'], upperSearch);\n      }\n      return includes(option[fieldValue], upperSearch);\n    };\n    var wrapOption = customizeFilter ? function (opt) {\n      return injectPropsWithOption(opt);\n    } : function (opt) {\n      return opt;\n    };\n    options.forEach(function (item) {\n      // Group should check child options\n      if (item[fieldOptions]) {\n        // Check group first\n        var matchGroup = filterFunc(searchValue, wrapOption(item));\n        if (matchGroup) {\n          filteredOptions.push(item);\n        } else {\n          // Check option\n          var subOptions = item[fieldOptions].filter(function (subItem) {\n            return filterFunc(searchValue, wrapOption(subItem));\n          });\n          if (subOptions.length) {\n            filteredOptions.push(_objectSpread(_objectSpread({}, item), {}, _defineProperty({}, fieldOptions, subOptions)));\n          }\n        }\n        return;\n      }\n      if (filterFunc(searchValue, wrapOption(item))) {\n        filteredOptions.push(item);\n      }\n    });\n    return filteredOptions;\n  }, [options, filterOption, optionFilterProp, searchValue, fieldNames]);\n});","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nexport function getUUID() {\n  var retId;\n\n  // Test never reach\n  /* istanbul ignore if */\n  if (isBrowserClient) {\n    retId = uuid;\n    uuid += 1;\n  } else {\n    retId = 'TEST_OR_SSR';\n  }\n  return retId;\n}\nexport default function useId(id) {\n  // Inner id for accessibility usage. Only work in client side\n  var _React$useState = React.useState(),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    innerId = _React$useState2[0],\n    setInnerId = _React$useState2[1];\n  React.useEffect(function () {\n    setInnerId(\"rc_select_\".concat(getUUID()));\n  }, []);\n  return id || innerId;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\", \"value\"],\n  _excluded2 = [\"children\"];\nimport * as React from 'react';\nimport toArray from \"rc-util/es/Children/toArray\";\nfunction convertNodeToOption(node) {\n  var _ref = node,\n    key = _ref.key,\n    _ref$props = _ref.props,\n    children = _ref$props.children,\n    value = _ref$props.value,\n    restProps = _objectWithoutProperties(_ref$props, _excluded);\n  return _objectSpread({\n    key: key,\n    value: value !== undefined ? value : key,\n    children: children\n  }, restProps);\n}\nexport function convertChildrenToData(nodes) {\n  var optionOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  return toArray(nodes).map(function (node, index) {\n    if (! /*#__PURE__*/React.isValidElement(node) || !node.type) {\n      return null;\n    }\n    var _ref2 = node,\n      isSelectOptGroup = _ref2.type.isSelectOptGroup,\n      key = _ref2.key,\n      _ref2$props = _ref2.props,\n      children = _ref2$props.children,\n      restProps = _objectWithoutProperties(_ref2$props, _excluded2);\n    if (optionOnly || !isSelectOptGroup) {\n      return convertNodeToOption(node);\n    }\n    return _objectSpread(_objectSpread({\n      key: \"__RC_SELECT_GRP__\".concat(key === null ? index : key, \"__\"),\n      label: key\n    }, restProps), {}, {\n      options: convertChildrenToData(children)\n    });\n  }).filter(function (data) {\n    return data;\n  });\n}","import * as React from 'react';\nimport { convertChildrenToData } from \"../utils/legacyUtil\";\n\n/**\n * Parse `children` to `options` if `options` is not provided.\n * Then flatten the `options`.\n */\nvar useOptions = function useOptions(options, children, fieldNames, optionFilterProp, optionLabelProp) {\n  return React.useMemo(function () {\n    var mergedOptions = options;\n    var childrenAsData = !options;\n    if (childrenAsData) {\n      mergedOptions = convertChildrenToData(children);\n    }\n    var valueOptions = new Map();\n    var labelOptions = new Map();\n    var setLabelOptions = function setLabelOptions(labelOptionsMap, option, key) {\n      if (key && typeof key === 'string') {\n        labelOptionsMap.set(option[key], option);\n      }\n    };\n    var dig = function dig(optionList) {\n      var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      // for loop to speed up collection speed\n      for (var i = 0; i < optionList.length; i += 1) {\n        var option = optionList[i];\n        if (!option[fieldNames.options] || isChildren) {\n          valueOptions.set(option[fieldNames.value], option);\n          setLabelOptions(labelOptions, option, fieldNames.label);\n          // https://github.com/ant-design/ant-design/issues/35304\n          setLabelOptions(labelOptions, option, optionFilterProp);\n          setLabelOptions(labelOptions, option, optionLabelProp);\n        } else {\n          dig(option[fieldNames.options], true);\n        }\n      }\n    };\n    dig(mergedOptions);\n    return {\n      options: mergedOptions,\n      valueOptions: valueOptions,\n      labelOptions: labelOptions\n    };\n  }, [options, children, fieldNames, optionFilterProp, optionLabelProp]);\n};\nexport default useOptions;","import * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc(callback) {\n  var funcRef = React.useRef();\n  funcRef.current = callback;\n  var cacheFn = React.useCallback(function () {\n    return funcRef.current.apply(funcRef, arguments);\n  }, []);\n  return cacheFn;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar _excluded = [\"id\", \"mode\", \"prefixCls\", \"backfill\", \"fieldNames\", \"inputValue\", \"searchValue\", \"onSearch\", \"autoClearSearchValue\", \"onSelect\", \"onDeselect\", \"dropdownMatchSelectWidth\", \"filterOption\", \"filterSort\", \"optionFilterProp\", \"optionLabelProp\", \"options\", \"optionRender\", \"children\", \"defaultActiveFirstOption\", \"menuItemSelectedIcon\", \"virtual\", \"direction\", \"listHeight\", \"listItemHeight\", \"labelRender\", \"value\", \"defaultValue\", \"labelInValue\", \"onChange\", \"maxCount\"];\n/**\n * To match accessibility requirement, we always provide an input in the component.\n * Other element will not set `tabIndex` to avoid `onBlur` sequence problem.\n * For focused select, we set `aria-live=\"polite\"` to update the accessibility content.\n *\n * ref:\n * - keyboard: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role#Keyboard_interactions\n *\n * New api:\n * - listHeight\n * - listItemHeight\n * - component\n *\n * Remove deprecated api:\n * - multiple\n * - tags\n * - combobox\n * - firstActiveValue\n * - dropdownMenuStyle\n * - openClassName (Not list in api)\n *\n * Update:\n * - `backfill` only support `combobox` mode\n * - `combobox` mode not support `labelInValue` since it's meaningless\n * - `getInputElement` only support `combobox` mode\n * - `onChange` return OptionData instead of ReactNode\n * - `filterOption` `onChange` `onSelect` accept OptionData instead of ReactNode\n * - `combobox` mode trigger `onChange` will get `undefined` if no `value` match in Option\n * - `combobox` mode not support `optionLabelProp`\n */\n\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport BaseSelect, { isMultiple } from \"./BaseSelect\";\nimport OptGroup from \"./OptGroup\";\nimport Option from \"./Option\";\nimport OptionList from \"./OptionList\";\nimport SelectContext from \"./SelectContext\";\nimport useCache from \"./hooks/useCache\";\nimport useFilterOptions from \"./hooks/useFilterOptions\";\nimport useId from \"./hooks/useId\";\nimport useOptions from \"./hooks/useOptions\";\nimport useRefFunc from \"./hooks/useRefFunc\";\nimport { hasValue, isComboNoValue, toArray } from \"./utils/commonUtil\";\nimport { fillFieldNames, flattenOptions, injectPropsWithOption } from \"./utils/valueUtil\";\nimport warningProps, { warningNullOptions } from \"./utils/warningPropsUtil\";\nvar OMIT_DOM_PROPS = ['inputValue'];\nfunction isRawValue(value) {\n  return !value || _typeof(value) !== 'object';\n}\nvar Select = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  var id = props.id,\n    mode = props.mode,\n    _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-select' : _props$prefixCls,\n    backfill = props.backfill,\n    fieldNames = props.fieldNames,\n    inputValue = props.inputValue,\n    searchValue = props.searchValue,\n    onSearch = props.onSearch,\n    _props$autoClearSearc = props.autoClearSearchValue,\n    autoClearSearchValue = _props$autoClearSearc === void 0 ? true : _props$autoClearSearc,\n    onSelect = props.onSelect,\n    onDeselect = props.onDeselect,\n    _props$dropdownMatchS = props.dropdownMatchSelectWidth,\n    dropdownMatchSelectWidth = _props$dropdownMatchS === void 0 ? true : _props$dropdownMatchS,\n    filterOption = props.filterOption,\n    filterSort = props.filterSort,\n    optionFilterProp = props.optionFilterProp,\n    optionLabelProp = props.optionLabelProp,\n    options = props.options,\n    optionRender = props.optionRender,\n    children = props.children,\n    defaultActiveFirstOption = props.defaultActiveFirstOption,\n    menuItemSelectedIcon = props.menuItemSelectedIcon,\n    virtual = props.virtual,\n    direction = props.direction,\n    _props$listHeight = props.listHeight,\n    listHeight = _props$listHeight === void 0 ? 200 : _props$listHeight,\n    _props$listItemHeight = props.listItemHeight,\n    listItemHeight = _props$listItemHeight === void 0 ? 20 : _props$listItemHeight,\n    labelRender = props.labelRender,\n    value = props.value,\n    defaultValue = props.defaultValue,\n    labelInValue = props.labelInValue,\n    onChange = props.onChange,\n    maxCount = props.maxCount,\n    restProps = _objectWithoutProperties(props, _excluded);\n  var mergedId = useId(id);\n  var multiple = isMultiple(mode);\n  var childrenAsData = !!(!options && children);\n  var mergedFilterOption = React.useMemo(function () {\n    if (filterOption === undefined && mode === 'combobox') {\n      return false;\n    }\n    return filterOption;\n  }, [filterOption, mode]);\n\n  // ========================= FieldNames =========================\n  var mergedFieldNames = React.useMemo(function () {\n    return fillFieldNames(fieldNames, childrenAsData);\n  }, /* eslint-disable react-hooks/exhaustive-deps */\n  [\n  // We stringify fieldNames to avoid unnecessary re-renders.\n  JSON.stringify(fieldNames), childrenAsData]\n  /* eslint-enable react-hooks/exhaustive-deps */);\n\n  // =========================== Search ===========================\n  var _useMergedState = useMergedState('', {\n      value: searchValue !== undefined ? searchValue : inputValue,\n      postState: function postState(search) {\n        return search || '';\n      }\n    }),\n    _useMergedState2 = _slicedToArray(_useMergedState, 2),\n    mergedSearchValue = _useMergedState2[0],\n    setSearchValue = _useMergedState2[1];\n\n  // =========================== Option ===========================\n  var parsedOptions = useOptions(options, children, mergedFieldNames, optionFilterProp, optionLabelProp);\n  var valueOptions = parsedOptions.valueOptions,\n    labelOptions = parsedOptions.labelOptions,\n    mergedOptions = parsedOptions.options;\n\n  // ========================= Wrap Value =========================\n  var convert2LabelValues = React.useCallback(function (draftValues) {\n    // Convert to array\n    var valueList = toArray(draftValues);\n\n    // Convert to labelInValue type\n    return valueList.map(function (val) {\n      var rawValue;\n      var rawLabel;\n      var rawKey;\n      var rawDisabled;\n      var rawTitle;\n\n      // Fill label & value\n      if (isRawValue(val)) {\n        rawValue = val;\n      } else {\n        var _val$value;\n        rawKey = val.key;\n        rawLabel = val.label;\n        rawValue = (_val$value = val.value) !== null && _val$value !== void 0 ? _val$value : rawKey;\n      }\n      var option = valueOptions.get(rawValue);\n      if (option) {\n        var _option$key;\n        // Fill missing props\n        if (rawLabel === undefined) rawLabel = option === null || option === void 0 ? void 0 : option[optionLabelProp || mergedFieldNames.label];\n        if (rawKey === undefined) rawKey = (_option$key = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key !== void 0 ? _option$key : rawValue;\n        rawDisabled = option === null || option === void 0 ? void 0 : option.disabled;\n        rawTitle = option === null || option === void 0 ? void 0 : option.title;\n\n        // Warning if label not same as provided\n        if (process.env.NODE_ENV !== 'production' && !optionLabelProp) {\n          var optionLabel = option === null || option === void 0 ? void 0 : option[mergedFieldNames.label];\n          if (optionLabel !== undefined && ! /*#__PURE__*/React.isValidElement(optionLabel) && ! /*#__PURE__*/React.isValidElement(rawLabel) && optionLabel !== rawLabel) {\n            warning(false, '`label` of `value` is not same as `label` in Select options.');\n          }\n        }\n      }\n      return {\n        label: rawLabel,\n        value: rawValue,\n        key: rawKey,\n        disabled: rawDisabled,\n        title: rawTitle\n      };\n    });\n  }, [mergedFieldNames, optionLabelProp, valueOptions]);\n\n  // =========================== Values ===========================\n  var _useMergedState3 = useMergedState(defaultValue, {\n      value: value\n    }),\n    _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n    internalValue = _useMergedState4[0],\n    setInternalValue = _useMergedState4[1];\n\n  // Merged value with LabelValueType\n  var rawLabeledValues = React.useMemo(function () {\n    var _values$;\n    var newInternalValue = multiple && internalValue === null ? [] : internalValue;\n    var values = convert2LabelValues(newInternalValue);\n\n    // combobox no need save value when it's no value (exclude value equal 0)\n    if (mode === 'combobox' && isComboNoValue((_values$ = values[0]) === null || _values$ === void 0 ? void 0 : _values$.value)) {\n      return [];\n    }\n    return values;\n  }, [internalValue, convert2LabelValues, mode, multiple]);\n\n  // Fill label with cache to avoid option remove\n  var _useCache = useCache(rawLabeledValues, valueOptions),\n    _useCache2 = _slicedToArray(_useCache, 2),\n    mergedValues = _useCache2[0],\n    getMixedOption = _useCache2[1];\n  var displayValues = React.useMemo(function () {\n    // `null` need show as placeholder instead\n    // https://github.com/ant-design/ant-design/issues/25057\n    if (!mode && mergedValues.length === 1) {\n      var firstValue = mergedValues[0];\n      if (firstValue.value === null && (firstValue.label === null || firstValue.label === undefined)) {\n        return [];\n      }\n    }\n    return mergedValues.map(function (item) {\n      var _ref;\n      return _objectSpread(_objectSpread({}, item), {}, {\n        label: (_ref = typeof labelRender === 'function' ? labelRender(item) : item.label) !== null && _ref !== void 0 ? _ref : item.value\n      });\n    });\n  }, [mode, mergedValues, labelRender]);\n\n  /** Convert `displayValues` to raw value type set */\n  var rawValues = React.useMemo(function () {\n    return new Set(mergedValues.map(function (val) {\n      return val.value;\n    }));\n  }, [mergedValues]);\n  React.useEffect(function () {\n    if (mode === 'combobox') {\n      var _mergedValues$;\n      var strValue = (_mergedValues$ = mergedValues[0]) === null || _mergedValues$ === void 0 ? void 0 : _mergedValues$.value;\n      setSearchValue(hasValue(strValue) ? String(strValue) : '');\n    }\n  }, [mergedValues]);\n\n  // ======================= Display Option =======================\n  // Create a placeholder item if not exist in `options`\n  var createTagOption = useRefFunc(function (val, label) {\n    var mergedLabel = label !== null && label !== void 0 ? label : val;\n    return _defineProperty(_defineProperty({}, mergedFieldNames.value, val), mergedFieldNames.label, mergedLabel);\n  });\n\n  // Fill tag as option if mode is `tags`\n  var filledTagOptions = React.useMemo(function () {\n    if (mode !== 'tags') {\n      return mergedOptions;\n    }\n\n    // >>> Tag mode\n    var cloneOptions = _toConsumableArray(mergedOptions);\n\n    // Check if value exist in options (include new patch item)\n    var existOptions = function existOptions(val) {\n      return valueOptions.has(val);\n    };\n\n    // Fill current value as option\n    _toConsumableArray(mergedValues).sort(function (a, b) {\n      return a.value < b.value ? -1 : 1;\n    }).forEach(function (item) {\n      var val = item.value;\n      if (!existOptions(val)) {\n        cloneOptions.push(createTagOption(val, item.label));\n      }\n    });\n    return cloneOptions;\n  }, [createTagOption, mergedOptions, valueOptions, mergedValues, mode]);\n  var filteredOptions = useFilterOptions(filledTagOptions, mergedFieldNames, mergedSearchValue, mergedFilterOption, optionFilterProp);\n\n  // Fill options with search value if needed\n  var filledSearchOptions = React.useMemo(function () {\n    if (mode !== 'tags' || !mergedSearchValue || filteredOptions.some(function (item) {\n      return item[optionFilterProp || 'value'] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // ignore when search value equal select input value\n    if (filteredOptions.some(function (item) {\n      return item[mergedFieldNames.value] === mergedSearchValue;\n    })) {\n      return filteredOptions;\n    }\n    // Fill search value as option\n    return [createTagOption(mergedSearchValue)].concat(_toConsumableArray(filteredOptions));\n  }, [createTagOption, optionFilterProp, mode, filteredOptions, mergedSearchValue, mergedFieldNames]);\n  var sorter = function sorter(inputOptions) {\n    var sortedOptions = _toConsumableArray(inputOptions).sort(function (a, b) {\n      return filterSort(a, b, {\n        searchValue: mergedSearchValue\n      });\n    });\n    return sortedOptions.map(function (item) {\n      if (Array.isArray(item.options)) {\n        return _objectSpread(_objectSpread({}, item), {}, {\n          options: item.options.length > 0 ? sorter(item.options) : item.options\n        });\n      }\n      return item;\n    });\n  };\n  var orderedFilteredOptions = React.useMemo(function () {\n    if (!filterSort) {\n      return filledSearchOptions;\n    }\n    return sorter(filledSearchOptions);\n  }, [filledSearchOptions, filterSort, mergedSearchValue]);\n  var displayOptions = React.useMemo(function () {\n    return flattenOptions(orderedFilteredOptions, {\n      fieldNames: mergedFieldNames,\n      childrenAsData: childrenAsData\n    });\n  }, [orderedFilteredOptions, mergedFieldNames, childrenAsData]);\n\n  // =========================== Change ===========================\n  var triggerChange = function triggerChange(values) {\n    var labeledValues = convert2LabelValues(values);\n    setInternalValue(labeledValues);\n    if (onChange && (\n    // Trigger event only when value changed\n    labeledValues.length !== mergedValues.length || labeledValues.some(function (newVal, index) {\n      var _mergedValues$index;\n      return ((_mergedValues$index = mergedValues[index]) === null || _mergedValues$index === void 0 ? void 0 : _mergedValues$index.value) !== (newVal === null || newVal === void 0 ? void 0 : newVal.value);\n    }))) {\n      var returnValues = labelInValue ? labeledValues : labeledValues.map(function (v) {\n        return v.value;\n      });\n      var returnOptions = labeledValues.map(function (v) {\n        return injectPropsWithOption(getMixedOption(v.value));\n      });\n      onChange(\n      // Value\n      multiple ? returnValues : returnValues[0],\n      // Option\n      multiple ? returnOptions : returnOptions[0]);\n    }\n  };\n\n  // ======================= Accessibility ========================\n  var _React$useState = React.useState(null),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    activeValue = _React$useState2[0],\n    setActiveValue = _React$useState2[1];\n  var _React$useState3 = React.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    accessibilityIndex = _React$useState4[0],\n    setAccessibilityIndex = _React$useState4[1];\n  var mergedDefaultActiveFirstOption = defaultActiveFirstOption !== undefined ? defaultActiveFirstOption : mode !== 'combobox';\n  var onActiveValue = React.useCallback(function (active, index) {\n    var _ref3 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n      _ref3$source = _ref3.source,\n      source = _ref3$source === void 0 ? 'keyboard' : _ref3$source;\n    setAccessibilityIndex(index);\n    if (backfill && mode === 'combobox' && active !== null && source === 'keyboard') {\n      setActiveValue(String(active));\n    }\n  }, [backfill, mode]);\n\n  // ========================= OptionList =========================\n  var triggerSelect = function triggerSelect(val, selected, type) {\n    var getSelectEnt = function getSelectEnt() {\n      var _option$key2;\n      var option = getMixedOption(val);\n      return [labelInValue ? {\n        label: option === null || option === void 0 ? void 0 : option[mergedFieldNames.label],\n        value: val,\n        key: (_option$key2 = option === null || option === void 0 ? void 0 : option.key) !== null && _option$key2 !== void 0 ? _option$key2 : val\n      } : val, injectPropsWithOption(option)];\n    };\n    if (selected && onSelect) {\n      var _getSelectEnt = getSelectEnt(),\n        _getSelectEnt2 = _slicedToArray(_getSelectEnt, 2),\n        wrappedValue = _getSelectEnt2[0],\n        _option = _getSelectEnt2[1];\n      onSelect(wrappedValue, _option);\n    } else if (!selected && onDeselect && type !== 'clear') {\n      var _getSelectEnt3 = getSelectEnt(),\n        _getSelectEnt4 = _slicedToArray(_getSelectEnt3, 2),\n        _wrappedValue = _getSelectEnt4[0],\n        _option2 = _getSelectEnt4[1];\n      onDeselect(_wrappedValue, _option2);\n    }\n  };\n\n  // Used for OptionList selection\n  var onInternalSelect = useRefFunc(function (val, info) {\n    var cloneValues;\n\n    // Single mode always trigger select only with option list\n    var mergedSelect = multiple ? info.selected : true;\n    if (mergedSelect) {\n      cloneValues = multiple ? [].concat(_toConsumableArray(mergedValues), [val]) : [val];\n    } else {\n      cloneValues = mergedValues.filter(function (v) {\n        return v.value !== val;\n      });\n    }\n    triggerChange(cloneValues);\n    triggerSelect(val, mergedSelect);\n\n    // Clean search value if single or configured\n    if (mode === 'combobox') {\n      // setSearchValue(String(val));\n      setActiveValue('');\n    } else if (!isMultiple || autoClearSearchValue) {\n      setSearchValue('');\n      setActiveValue('');\n    }\n  });\n\n  // ======================= Display Change =======================\n  // BaseSelect display values change\n  var onDisplayValuesChange = function onDisplayValuesChange(nextValues, info) {\n    triggerChange(nextValues);\n    var type = info.type,\n      values = info.values;\n    if (type === 'remove' || type === 'clear') {\n      values.forEach(function (item) {\n        triggerSelect(item.value, false, type);\n      });\n    }\n  };\n\n  // =========================== Search ===========================\n  var onInternalSearch = function onInternalSearch(searchText, info) {\n    setSearchValue(searchText);\n    setActiveValue(null);\n\n    // [Submit] Tag mode should flush input\n    if (info.source === 'submit') {\n      var formatted = (searchText || '').trim();\n      // prevent empty tags from appearing when you click the Enter button\n      if (formatted) {\n        var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), [formatted])));\n        triggerChange(newRawValues);\n        triggerSelect(formatted, true);\n        setSearchValue('');\n      }\n      return;\n    }\n    if (info.source !== 'blur') {\n      if (mode === 'combobox') {\n        triggerChange(searchText);\n      }\n      onSearch === null || onSearch === void 0 || onSearch(searchText);\n    }\n  };\n  var onInternalSearchSplit = function onInternalSearchSplit(words) {\n    var patchValues = words;\n    if (mode !== 'tags') {\n      patchValues = words.map(function (word) {\n        var opt = labelOptions.get(word);\n        return opt === null || opt === void 0 ? void 0 : opt.value;\n      }).filter(function (val) {\n        return val !== undefined;\n      });\n    }\n    var newRawValues = Array.from(new Set([].concat(_toConsumableArray(rawValues), _toConsumableArray(patchValues))));\n    triggerChange(newRawValues);\n    newRawValues.forEach(function (newRawValue) {\n      triggerSelect(newRawValue, true);\n    });\n  };\n\n  // ========================== Context ===========================\n  var selectContext = React.useMemo(function () {\n    var realVirtual = virtual !== false && dropdownMatchSelectWidth !== false;\n    return _objectSpread(_objectSpread({}, parsedOptions), {}, {\n      flattenOptions: displayOptions,\n      onActiveValue: onActiveValue,\n      defaultActiveFirstOption: mergedDefaultActiveFirstOption,\n      onSelect: onInternalSelect,\n      menuItemSelectedIcon: menuItemSelectedIcon,\n      rawValues: rawValues,\n      fieldNames: mergedFieldNames,\n      virtual: realVirtual,\n      direction: direction,\n      listHeight: listHeight,\n      listItemHeight: listItemHeight,\n      childrenAsData: childrenAsData,\n      maxCount: maxCount,\n      optionRender: optionRender\n    });\n  }, [maxCount, parsedOptions, displayOptions, onActiveValue, mergedDefaultActiveFirstOption, onInternalSelect, menuItemSelectedIcon, rawValues, mergedFieldNames, virtual, dropdownMatchSelectWidth, direction, listHeight, listItemHeight, childrenAsData, optionRender]);\n\n  // ========================== Warning ===========================\n  if (process.env.NODE_ENV !== 'production') {\n    warningProps(props);\n    warningNullOptions(mergedOptions, mergedFieldNames);\n  }\n\n  // ==============================================================\n  // ==                          Render                          ==\n  // ==============================================================\n  return /*#__PURE__*/React.createElement(SelectContext.Provider, {\n    value: selectContext\n  }, /*#__PURE__*/React.createElement(BaseSelect, _extends({}, restProps, {\n    // >>> MISC\n    id: mergedId,\n    prefixCls: prefixCls,\n    ref: ref,\n    omitDomProps: OMIT_DOM_PROPS,\n    mode: mode\n    // >>> Values\n    ,\n    displayValues: displayValues,\n    onDisplayValuesChange: onDisplayValuesChange\n    // >>> Trigger\n    ,\n    direction: direction\n    // >>> Search\n    ,\n    searchValue: mergedSearchValue,\n    onSearch: onInternalSearch,\n    autoClearSearchValue: autoClearSearchValue,\n    onSearchSplit: onInternalSearchSplit,\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n    // >>> OptionList\n    ,\n    OptionList: OptionList,\n    emptyOptions: !displayOptions.length\n    // >>> Accessibility\n    ,\n    activeValue: activeValue,\n    activeDescendantId: \"\".concat(mergedId, \"_list_\").concat(accessibilityIndex)\n  })));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nvar TypedSelect = Select;\nTypedSelect.Option = Option;\nTypedSelect.OptGroup = OptGroup;\nexport default TypedSelect;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\n/**\n * Cache `value` related LabeledValue & options.\n */\nexport default (function (labeledValues, valueOptions) {\n  var cacheRef = React.useRef({\n    values: new Map(),\n    options: new Map()\n  });\n  var filledLabeledValues = React.useMemo(function () {\n    var _cacheRef$current = cacheRef.current,\n      prevValueCache = _cacheRef$current.values,\n      prevOptionCache = _cacheRef$current.options;\n\n    // Fill label by cache\n    var patchedValues = labeledValues.map(function (item) {\n      if (item.label === undefined) {\n        var _prevValueCache$get;\n        return _objectSpread(_objectSpread({}, item), {}, {\n          label: (_prevValueCache$get = prevValueCache.get(item.value)) === null || _prevValueCache$get === void 0 ? void 0 : _prevValueCache$get.label\n        });\n      }\n      return item;\n    });\n\n    // Refresh cache\n    var valueCache = new Map();\n    var optionCache = new Map();\n    patchedValues.forEach(function (item) {\n      valueCache.set(item.value, item);\n      optionCache.set(item.value, valueOptions.get(item.value) || prevOptionCache.get(item.value));\n    });\n    cacheRef.current.values = valueCache;\n    cacheRef.current.options = optionCache;\n    return patchedValues;\n  }, [labeledValues, valueOptions]);\n  var getOption = React.useCallback(function (val) {\n    return valueOptions.get(val) || cacheRef.current.options.get(val);\n  }, [valueOptions]);\n  return [filledLabeledValues, getOption];\n});","import Select from \"./Select\";\nimport Option from \"./Option\";\nimport OptGroup from \"./OptGroup\";\nimport BaseSelect from \"./BaseSelect\";\nimport useBaseProps from \"./hooks/useBaseProps\";\nexport { Option, OptGroup, BaseSelect, useBaseProps };\nexport default Select;","\"use client\";\n\nimport { createContext } from 'react';\n// ZombieJ: We export single file here since\n// ConfigProvider use this which will make loop deps\n// to import whole `rc-field-form`\nexport default /*#__PURE__*/createContext(undefined);","import defaultLocale from '../locale/en_US';\nlet runtimeLocale = Object.assign({}, defaultLocale.Modal);\nlet localeList = [];\nconst generateLocale = () => localeList.reduce((merged, locale) => Object.assign(Object.assign({}, merged), locale), defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n  if (newLocale) {\n    const cloneLocale = Object.assign({}, newLocale);\n    localeList.push(cloneLocale);\n    runtimeLocale = generateLocale();\n    return () => {\n      localeList = localeList.filter(locale => locale !== cloneLocale);\n      runtimeLocale = generateLocale();\n    };\n  }\n  runtimeLocale = Object.assign({}, defaultLocale.Modal);\n}\nexport function getConfirmLocale() {\n  return runtimeLocale;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport { default as useLocale } from './useLocale';\nexport const ANT_MARK = 'internalMark';\nconst LocaleProvider = props => {\n  const {\n    locale = {},\n    children,\n    _ANT_MARK__\n  } = props;\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('LocaleProvider');\n    process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'deprecated', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n  }\n  React.useEffect(() => {\n    const clearLocale = changeConfirmLocale(locale === null || locale === void 0 ? void 0 : locale.Modal);\n    return clearLocale;\n  }, [locale]);\n  const getMemoizedContextValue = React.useMemo(() => Object.assign(Object.assign({}, locale), {\n    exist: true\n  }), [locale]);\n  return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n    value: getMemoizedContextValue\n  }, children);\n};\nif (process.env.NODE_ENV !== 'production') {\n  LocaleProvider.displayName = 'LocaleProvider';\n}\nexport default LocaleProvider;","import { generate } from '@ant-design/colors';\nimport { FastColor } from '@ant-design/fast-color';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nconst dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;\nexport function getStyle(globalPrefixCls, theme) {\n  const variables = {};\n  const formatColor = (color, updater) => {\n    let clone = color.clone();\n    clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n    return clone.toRgbString();\n  };\n  const fillColor = (colorVal, type) => {\n    const baseColor = new FastColor(colorVal);\n    const colorPalettes = generate(baseColor.toRgbString());\n    variables[`${type}-color`] = formatColor(baseColor);\n    variables[`${type}-color-disabled`] = colorPalettes[1];\n    variables[`${type}-color-hover`] = colorPalettes[4];\n    variables[`${type}-color-active`] = colorPalettes[6];\n    variables[`${type}-color-outline`] = baseColor.clone().setA(0.2).toRgbString();\n    variables[`${type}-color-deprecated-bg`] = colorPalettes[0];\n    variables[`${type}-color-deprecated-border`] = colorPalettes[2];\n  };\n  // ================ Primary Color ================\n  if (theme.primaryColor) {\n    fillColor(theme.primaryColor, 'primary');\n    const primaryColor = new FastColor(theme.primaryColor);\n    const primaryColors = generate(primaryColor.toRgbString());\n    // Legacy - We should use semantic naming standard\n    primaryColors.forEach((color, index) => {\n      variables[`primary-${index + 1}`] = color;\n    });\n    // Deprecated\n    variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, c => c.lighten(35));\n    variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, c => c.lighten(20));\n    variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, c => c.tint(20));\n    variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, c => c.tint(50));\n    variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, c => c.setA(c.a * 0.12));\n    const primaryActiveColor = new FastColor(primaryColors[0]);\n    variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, c => c.setA(c.a * 0.3));\n    variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, c => c.darken(2));\n  }\n  // ================ Success Color ================\n  if (theme.successColor) {\n    fillColor(theme.successColor, 'success');\n  }\n  // ================ Warning Color ================\n  if (theme.warningColor) {\n    fillColor(theme.warningColor, 'warning');\n  }\n  // ================= Error Color =================\n  if (theme.errorColor) {\n    fillColor(theme.errorColor, 'error');\n  }\n  // ================= Info Color ==================\n  if (theme.infoColor) {\n    fillColor(theme.infoColor, 'info');\n  }\n  // Convert to css variables\n  const cssList = Object.keys(variables).map(key => `--${globalPrefixCls}-${key}: ${variables[key]};`);\n  return `\n  :root {\n    ${cssList.join('\\n')}\n  }\n  `.trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n  const style = getStyle(globalPrefixCls, theme);\n  if (canUseDom()) {\n    updateCSS(style, `${dynamicStyleMark}-dynamic-theme`);\n  } else {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n  }\n}","import { useContext } from 'react';\nimport DisabledContext from '../DisabledContext';\nimport SizeContext from '../SizeContext';\nfunction useConfig() {\n  const componentDisabled = useContext(DisabledContext);\n  const componentSize = useContext(SizeContext);\n  return {\n    componentDisabled,\n    componentSize\n  };\n}\nexport default useConfig;","import * as React from 'react';\nconst fullClone = Object.assign({}, React);\nconst {\n  useId\n} = fullClone;\nconst useEmptyId = () => '';\nconst useThemeKey = typeof useId === 'undefined' ? useEmptyId : useId;\nexport default useThemeKey;","\"use client\";\n\nimport * as React from 'react';\nimport { Provider as MotionProvider } from 'rc-motion';\nimport { useToken } from '../theme/internal';\nexport default function MotionWrapper(props) {\n  const {\n    children\n  } = props;\n  const [, token] = useToken();\n  const {\n    motion\n  } = token;\n  const needWrapMotionProviderRef = React.useRef(false);\n  needWrapMotionProviderRef.current = needWrapMotionProviderRef.current || motion === false;\n  if (needWrapMotionProviderRef.current) {\n    return /*#__PURE__*/React.createElement(MotionProvider, {\n      motion: motion\n    }, children);\n  }\n  return children;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { devUseWarning } from '../_util/warning';\n/**\n * Warning for ConfigProviderProps.\n * This will be empty function in production.\n */\nconst PropWarning = /*#__PURE__*/React.memo(_ref => {\n  let {\n    dropdownMatchSelectWidth\n  } = _ref;\n  const warning = devUseWarning('ConfigProvider');\n  warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n  return null;\n});\nif (process.env.NODE_ENV !== 'production') {\n  PropWarning.displayName = 'PropWarning';\n}\nexport default process.env.NODE_ENV !== 'production' ? PropWarning : () => null;","import { useStyleRegister } from '@ant-design/cssinjs';\nimport { genIconStyle } from '../../style';\nimport useToken from '../useToken';\nconst useResetIconStyle = (iconPrefixCls, csp) => {\n  const [theme, token] = useToken();\n  // Generate style for icons\n  return useStyleRegister({\n    theme,\n    token,\n    hashId: '',\n    path: ['ant-design-icons', iconPrefixCls],\n    nonce: () => csp === null || csp === void 0 ? void 0 : csp.nonce,\n    layer: {\n      name: 'antd'\n    }\n  }, () => [genIconStyle(iconPrefixCls)]);\n};\nexport default useResetIconStyle;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport { createTheme, StyleContext as CssInJsStyleContext } from '@ant-design/cssinjs';\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport { merge } from \"rc-util/es/utils/set\";\nimport warning, { devUseWarning, WarningContext } from '../_util/warning';\nimport ValidateMessagesContext from '../form/validateMessagesContext';\nimport LocaleProvider, { ANT_MARK } from '../locale';\nimport LocaleContext from '../locale/context';\nimport defaultLocale from '../locale/en_US';\nimport { defaultTheme, DesignTokenContext } from '../theme/context';\nimport defaultSeedToken from '../theme/themes/seed';\nimport { ConfigConsumer, ConfigContext, defaultIconPrefixCls, defaultPrefixCls, Variants } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport useConfig from './hooks/useConfig';\nimport useTheme from './hooks/useTheme';\nimport MotionWrapper from './MotionWrapper';\nimport PropWarning from './PropWarning';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nimport useStyle from './style';\nexport { Variants };\n/**\n * Since too many feedback using static method like `Modal.confirm` not getting theme, we record the\n * theme register info here to help developer get warning info.\n */\nlet existThemeConfig = false;\nexport const warnContext = process.env.NODE_ENV !== 'production' ? componentName => {\n  process.env.NODE_ENV !== \"production\" ? warning(!existThemeConfig, componentName, `Static function can not consume context like dynamic theme. Please use 'App' component instead.`) : void 0;\n} : /* istanbul ignore next */\nnull;\nexport { ConfigConsumer, ConfigContext, defaultPrefixCls, defaultIconPrefixCls };\nexport const configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale'];\n// These props is used by `useContext` directly in sub component\nconst PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'input', 'pagination', 'form', 'select', 'button'];\nlet globalPrefixCls;\nlet globalIconPrefixCls;\nlet globalTheme;\nlet globalHolderRender;\nfunction getGlobalPrefixCls() {\n  return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n  return globalIconPrefixCls || defaultIconPrefixCls;\n}\nfunction isLegacyTheme(theme) {\n  return Object.keys(theme).some(key => key.endsWith('Color'));\n}\nconst setGlobalConfig = props => {\n  const {\n    prefixCls,\n    iconPrefixCls,\n    theme,\n    holderRender\n  } = props;\n  if (prefixCls !== undefined) {\n    globalPrefixCls = prefixCls;\n  }\n  if (iconPrefixCls !== undefined) {\n    globalIconPrefixCls = iconPrefixCls;\n  }\n  if ('holderRender' in props) {\n    globalHolderRender = holderRender;\n  }\n  if (theme) {\n    if (isLegacyTheme(theme)) {\n      process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', '`config` of css variable theme is not work in v5. Please use new `theme` config instead.') : void 0;\n      registerTheme(getGlobalPrefixCls(), theme);\n    } else {\n      globalTheme = theme;\n    }\n  }\n};\nexport const globalConfig = () => ({\n  getPrefixCls: (suffixCls, customizePrefixCls) => {\n    if (customizePrefixCls) {\n      return customizePrefixCls;\n    }\n    return suffixCls ? `${getGlobalPrefixCls()}-${suffixCls}` : getGlobalPrefixCls();\n  },\n  getIconPrefixCls: getGlobalIconPrefixCls,\n  getRootPrefixCls: () => {\n    // If Global prefixCls provided, use this\n    if (globalPrefixCls) {\n      return globalPrefixCls;\n    }\n    // Fallback to default prefixCls\n    return getGlobalPrefixCls();\n  },\n  getTheme: () => globalTheme,\n  holderRender: globalHolderRender\n});\nconst ProviderChildren = props => {\n  const {\n    children,\n    csp: customCsp,\n    autoInsertSpaceInButton,\n    alert,\n    anchor,\n    form,\n    locale,\n    componentSize,\n    direction,\n    space,\n    splitter,\n    virtual,\n    dropdownMatchSelectWidth,\n    popupMatchSelectWidth,\n    popupOverflow,\n    legacyLocale,\n    parentContext,\n    iconPrefixCls: customIconPrefixCls,\n    theme,\n    componentDisabled,\n    segmented,\n    statistic,\n    spin,\n    calendar,\n    carousel,\n    cascader,\n    collapse,\n    typography,\n    checkbox,\n    descriptions,\n    divider,\n    drawer,\n    skeleton,\n    steps,\n    image,\n    layout,\n    list,\n    mentions,\n    modal,\n    progress,\n    result,\n    slider,\n    breadcrumb,\n    menu,\n    pagination,\n    input,\n    textArea,\n    empty,\n    badge,\n    radio,\n    rate,\n    switch: SWITCH,\n    transfer,\n    avatar,\n    message,\n    tag,\n    table,\n    card,\n    tabs,\n    timeline,\n    timePicker,\n    upload,\n    notification,\n    tree,\n    colorPicker,\n    datePicker,\n    rangePicker,\n    flex,\n    wave,\n    dropdown,\n    warning: warningConfig,\n    tour,\n    tooltip,\n    popover,\n    popconfirm,\n    floatButtonGroup,\n    variant,\n    inputNumber,\n    treeSelect\n  } = props;\n  // =================================== Context ===================================\n  const getPrefixCls = React.useCallback((suffixCls, customizePrefixCls) => {\n    const {\n      prefixCls\n    } = props;\n    if (customizePrefixCls) {\n      return customizePrefixCls;\n    }\n    const mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n    return suffixCls ? `${mergedPrefixCls}-${suffixCls}` : mergedPrefixCls;\n  }, [parentContext.getPrefixCls, props.prefixCls]);\n  const iconPrefixCls = customIconPrefixCls || parentContext.iconPrefixCls || defaultIconPrefixCls;\n  const csp = customCsp || parentContext.csp;\n  useStyle(iconPrefixCls, csp);\n  const mergedTheme = useTheme(theme, parentContext.theme, {\n    prefixCls: getPrefixCls('')\n  });\n  if (process.env.NODE_ENV !== 'production') {\n    existThemeConfig = existThemeConfig || !!mergedTheme;\n  }\n  const baseConfig = {\n    csp,\n    autoInsertSpaceInButton,\n    alert,\n    anchor,\n    locale: locale || legacyLocale,\n    direction,\n    space,\n    splitter,\n    virtual,\n    popupMatchSelectWidth: popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth,\n    popupOverflow,\n    getPrefixCls,\n    iconPrefixCls,\n    theme: mergedTheme,\n    segmented,\n    statistic,\n    spin,\n    calendar,\n    carousel,\n    cascader,\n    collapse,\n    typography,\n    checkbox,\n    descriptions,\n    divider,\n    drawer,\n    skeleton,\n    steps,\n    image,\n    input,\n    textArea,\n    layout,\n    list,\n    mentions,\n    modal,\n    progress,\n    result,\n    slider,\n    breadcrumb,\n    menu,\n    pagination,\n    empty,\n    badge,\n    radio,\n    rate,\n    switch: SWITCH,\n    transfer,\n    avatar,\n    message,\n    tag,\n    table,\n    card,\n    tabs,\n    timeline,\n    timePicker,\n    upload,\n    notification,\n    tree,\n    colorPicker,\n    datePicker,\n    rangePicker,\n    flex,\n    wave,\n    dropdown,\n    warning: warningConfig,\n    tour,\n    tooltip,\n    popover,\n    popconfirm,\n    floatButtonGroup,\n    variant,\n    inputNumber,\n    treeSelect\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warningFn = devUseWarning('ConfigProvider');\n    warningFn(!('autoInsertSpaceInButton' in props), 'deprecated', '`autoInsertSpaceInButton` is deprecated. Please use `{ button: { autoInsertSpace: boolean }}` instead.');\n  }\n  const config = Object.assign({}, parentContext);\n  Object.keys(baseConfig).forEach(key => {\n    if (baseConfig[key] !== undefined) {\n      config[key] = baseConfig[key];\n    }\n  });\n  // Pass the props used by `useContext` directly with child component.\n  // These props should merged into `config`.\n  PASSED_PROPS.forEach(propName => {\n    const propValue = props[propName];\n    if (propValue) {\n      config[propName] = propValue;\n    }\n  });\n  if (typeof autoInsertSpaceInButton !== 'undefined') {\n    // merge deprecated api\n    config.button = Object.assign({\n      autoInsertSpace: autoInsertSpaceInButton\n    }, config.button);\n  }\n  // https://github.com/ant-design/ant-design/issues/27617\n  const memoedConfig = useMemo(() => config, config, (prevConfig, currentConfig) => {\n    const prevKeys = Object.keys(prevConfig);\n    const currentKeys = Object.keys(currentConfig);\n    return prevKeys.length !== currentKeys.length || prevKeys.some(key => prevConfig[key] !== currentConfig[key]);\n  });\n  const {\n    layer\n  } = React.useContext(CssInJsStyleContext);\n  const memoIconContextValue = React.useMemo(() => ({\n    prefixCls: iconPrefixCls,\n    csp,\n    layer: layer ? 'antd' : undefined\n  }), [iconPrefixCls, csp, layer]);\n  let childNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PropWarning, {\n    dropdownMatchSelectWidth: dropdownMatchSelectWidth\n  }), children);\n  const validateMessages = React.useMemo(() => {\n    var _a, _b, _c, _d;\n    return merge(((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || {}, ((_c = (_b = memoedConfig.locale) === null || _b === void 0 ? void 0 : _b.Form) === null || _c === void 0 ? void 0 : _c.defaultValidateMessages) || {}, ((_d = memoedConfig.form) === null || _d === void 0 ? void 0 : _d.validateMessages) || {}, (form === null || form === void 0 ? void 0 : form.validateMessages) || {});\n  }, [memoedConfig, form === null || form === void 0 ? void 0 : form.validateMessages]);\n  if (Object.keys(validateMessages).length > 0) {\n    childNode = /*#__PURE__*/React.createElement(ValidateMessagesContext.Provider, {\n      value: validateMessages\n    }, childNode);\n  }\n  if (locale) {\n    childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n      locale: locale,\n      _ANT_MARK__: ANT_MARK\n    }, childNode);\n  }\n  if (iconPrefixCls || csp) {\n    childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n      value: memoIconContextValue\n    }, childNode);\n  }\n  if (componentSize) {\n    childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n      size: componentSize\n    }, childNode);\n  }\n  // =================================== Motion ===================================\n  childNode = /*#__PURE__*/React.createElement(MotionWrapper, null, childNode);\n  // ================================ Dynamic theme ================================\n  const memoTheme = React.useMemo(() => {\n    const _a = mergedTheme || {},\n      {\n        algorithm,\n        token,\n        components,\n        cssVar\n      } = _a,\n      rest = __rest(_a, [\"algorithm\", \"token\", \"components\", \"cssVar\"]);\n    const themeObj = algorithm && (!Array.isArray(algorithm) || algorithm.length > 0) ? createTheme(algorithm) : defaultTheme;\n    const parsedComponents = {};\n    Object.entries(components || {}).forEach(_ref => {\n      let [componentName, componentToken] = _ref;\n      const parsedToken = Object.assign({}, componentToken);\n      if ('algorithm' in parsedToken) {\n        if (parsedToken.algorithm === true) {\n          parsedToken.theme = themeObj;\n        } else if (Array.isArray(parsedToken.algorithm) || typeof parsedToken.algorithm === 'function') {\n          parsedToken.theme = createTheme(parsedToken.algorithm);\n        }\n        delete parsedToken.algorithm;\n      }\n      parsedComponents[componentName] = parsedToken;\n    });\n    const mergedToken = Object.assign(Object.assign({}, defaultSeedToken), token);\n    return Object.assign(Object.assign({}, rest), {\n      theme: themeObj,\n      token: mergedToken,\n      components: parsedComponents,\n      override: Object.assign({\n        override: mergedToken\n      }, parsedComponents),\n      cssVar: cssVar\n    });\n  }, [mergedTheme]);\n  if (theme) {\n    childNode = /*#__PURE__*/React.createElement(DesignTokenContext.Provider, {\n      value: memoTheme\n    }, childNode);\n  }\n  // ================================== Warning ===================================\n  if (memoedConfig.warning) {\n    childNode = /*#__PURE__*/React.createElement(WarningContext.Provider, {\n      value: memoedConfig.warning\n    }, childNode);\n  }\n  // =================================== Render ===================================\n  if (componentDisabled !== undefined) {\n    childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n      disabled: componentDisabled\n    }, childNode);\n  }\n  return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n    value: memoedConfig\n  }, childNode);\n};\nconst ConfigProvider = props => {\n  const context = React.useContext(ConfigContext);\n  const antLocale = React.useContext(LocaleContext);\n  return /*#__PURE__*/React.createElement(ProviderChildren, Object.assign({\n    parentContext: context,\n    legacyLocale: antLocale\n  }, props));\n};\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nConfigProvider.useConfig = useConfig;\nObject.defineProperty(ConfigProvider, 'SizeContext', {\n  get: () => {\n    process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'ConfigProvider.SizeContext is deprecated. Please use `ConfigProvider.useConfig().componentSize` instead.') : void 0;\n    return SizeContext;\n  }\n});\nif (process.env.NODE_ENV !== 'production') {\n  ConfigProvider.displayName = 'ConfigProvider';\n}\nexport default ConfigProvider;","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { devUseWarning } from '../../_util/warning';\nimport { defaultConfig } from '../../theme/internal';\nimport useThemeKey from './useThemeKey';\nexport default function useTheme(theme, parentTheme, config) {\n  var _a, _b;\n  const warning = devUseWarning('ConfigProvider');\n  const themeConfig = theme || {};\n  const parentThemeConfig = themeConfig.inherit === false || !parentTheme ? Object.assign(Object.assign({}, defaultConfig), {\n    hashed: (_a = parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.hashed) !== null && _a !== void 0 ? _a : defaultConfig.hashed,\n    cssVar: parentTheme === null || parentTheme === void 0 ? void 0 : parentTheme.cssVar\n  }) : parentTheme;\n  const themeKey = useThemeKey();\n  if (process.env.NODE_ENV !== 'production') {\n    const cssVarEnabled = themeConfig.cssVar || parentThemeConfig.cssVar;\n    const validKey = !!(typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || themeKey);\n    process.env.NODE_ENV !== \"production\" ? warning(!cssVarEnabled || validKey, 'breaking', 'Missing key in `cssVar` config. Please upgrade to React 18 or set `cssVar.key` manually in each ConfigProvider inside `cssVar` enabled ConfigProvider.') : void 0;\n  }\n  return useMemo(() => {\n    var _a, _b;\n    if (!theme) {\n      return parentTheme;\n    }\n    // Override\n    const mergedComponents = Object.assign({}, parentThemeConfig.components);\n    Object.keys(theme.components || {}).forEach(componentName => {\n      mergedComponents[componentName] = Object.assign(Object.assign({}, mergedComponents[componentName]), theme.components[componentName]);\n    });\n    const cssVarKey = `css-var-${themeKey.replace(/:/g, '')}`;\n    const mergedCssVar = ((_a = themeConfig.cssVar) !== null && _a !== void 0 ? _a : parentThemeConfig.cssVar) && Object.assign(Object.assign(Object.assign({\n      prefix: config === null || config === void 0 ? void 0 : config.prefixCls\n    }, typeof parentThemeConfig.cssVar === 'object' ? parentThemeConfig.cssVar : {}), typeof themeConfig.cssVar === 'object' ? themeConfig.cssVar : {}), {\n      key: typeof themeConfig.cssVar === 'object' && ((_b = themeConfig.cssVar) === null || _b === void 0 ? void 0 : _b.key) || cssVarKey\n    });\n    // Base token\n    return Object.assign(Object.assign(Object.assign({}, parentThemeConfig), themeConfig), {\n      token: Object.assign(Object.assign({}, parentThemeConfig.token), themeConfig.token),\n      components: mergedComponents,\n      cssVar: mergedCssVar\n    });\n  }, [themeConfig, parentThemeConfig], (prev, next) => prev.some((prevTheme, index) => {\n    const nextTheme = next[index];\n    return !isEqual(prevTheme, nextTheme, true);\n  }));\n}","\"use client\";\n\nimport * as React from 'react';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport ConfigProvider, { ConfigContext } from '../config-provider';\nexport function withPureRenderTheme(Component) {\n  return props => (/*#__PURE__*/React.createElement(ConfigProvider, {\n    theme: {\n      token: {\n        motion: false,\n        zIndexPopupBase: 0\n      }\n    }\n  }, /*#__PURE__*/React.createElement(Component, Object.assign({}, props))));\n}\n/* istanbul ignore next */\nconst genPurePanel = (Component, alignPropName, postProps, defaultPrefixCls, getDropdownCls) => {\n  const PurePanel = props => {\n    const {\n      prefixCls: customizePrefixCls,\n      style\n    } = props;\n    const holderRef = React.useRef(null);\n    const [popupHeight, setPopupHeight] = React.useState(0);\n    const [popupWidth, setPopupWidth] = React.useState(0);\n    const [open, setOpen] = useMergedState(false, {\n      value: props.open\n    });\n    const {\n      getPrefixCls\n    } = React.useContext(ConfigContext);\n    const prefixCls = getPrefixCls(defaultPrefixCls || 'select', customizePrefixCls);\n    React.useEffect(() => {\n      // We do not care about ssr\n      setOpen(true);\n      if (typeof ResizeObserver !== 'undefined') {\n        const resizeObserver = new ResizeObserver(entries => {\n          const element = entries[0].target;\n          setPopupHeight(element.offsetHeight + 8);\n          setPopupWidth(element.offsetWidth);\n        });\n        const interval = setInterval(() => {\n          var _a;\n          const dropdownCls = getDropdownCls ? `.${getDropdownCls(prefixCls)}` : `.${prefixCls}-dropdown`;\n          const popup = (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(dropdownCls);\n          if (popup) {\n            clearInterval(interval);\n            resizeObserver.observe(popup);\n          }\n        }, 10);\n        return () => {\n          clearInterval(interval);\n          resizeObserver.disconnect();\n        };\n      }\n    }, []);\n    let mergedProps = Object.assign(Object.assign({}, props), {\n      style: Object.assign(Object.assign({}, style), {\n        margin: 0\n      }),\n      open,\n      visible: open,\n      getPopupContainer: () => holderRef.current\n    });\n    if (postProps) {\n      mergedProps = postProps(mergedProps);\n    }\n    if (alignPropName) {\n      Object.assign(mergedProps, {\n        [alignPropName]: {\n          overflow: {\n            adjustX: false,\n            adjustY: false\n          }\n        }\n      });\n    }\n    const mergedStyle = {\n      paddingBottom: popupHeight,\n      position: 'relative',\n      minWidth: popupWidth\n    };\n    return /*#__PURE__*/React.createElement(\"div\", {\n      ref: holderRef,\n      style: mergedStyle\n    }, /*#__PURE__*/React.createElement(Component, Object.assign({}, mergedProps)));\n  };\n  return withPureRenderTheme(PurePanel);\n};\nexport default genPurePanel;","\"use client\";\n\nimport * as React from 'react';\nimport { FastColor } from '@ant-design/fast-color';\nimport { useLocale } from '../locale';\nimport { useToken } from '../theme/internal';\nconst Empty = () => {\n  const [, token] = useToken();\n  const [locale] = useLocale('Empty');\n  const bgColor = new FastColor(token.colorBgBase);\n  // Dark Theme need more dark of this\n  const themeStyle = bgColor.toHsl().l < 0.5 ? {\n    opacity: 0.65\n  } : {};\n  return /*#__PURE__*/React.createElement(\"svg\", {\n    style: themeStyle,\n    width: \"184\",\n    height: \"152\",\n    viewBox: \"0 0 184 152\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /*#__PURE__*/React.createElement(\"title\", null, (locale === null || locale === void 0 ? void 0 : locale.description) || 'Empty'), /*#__PURE__*/React.createElement(\"g\", {\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(24 31.67)\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    fillOpacity: \".8\",\n    fill: \"#F5F5F7\",\n    cx: \"67.797\",\n    cy: \"106.89\",\n    rx: \"67.797\",\n    ry: \"12.668\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\",\n    fill: \"#AEB8C2\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",\n    fill: \"url(#linearGradient-1)\",\n    transform: \"translate(13.56)\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\",\n    fill: \"#F5F5F7\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\",\n    fill: \"#DCE0E6\"\n  })), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\",\n    fill: \"#DCE0E6\"\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(149.65 15.383)\",\n    fill: \"#FFF\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    cx: \"20.654\",\n    cy: \"3.167\",\n    rx: \"2.849\",\n    ry: \"2.815\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Empty.displayName = 'EmptyImage';\n}\nexport default Empty;","\"use client\";\n\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { FastColor } from '@ant-design/fast-color';\nimport { useToken } from '../theme/internal';\nimport { useLocale } from '../locale';\nconst Simple = () => {\n  const [, token] = useToken();\n  const [locale] = useLocale('Empty');\n  const {\n    colorFill,\n    colorFillTertiary,\n    colorFillQuaternary,\n    colorBgContainer\n  } = token;\n  const {\n    borderColor,\n    shadowColor,\n    contentColor\n  } = useMemo(() => ({\n    borderColor: new FastColor(colorFill).onBackground(colorBgContainer).toHexString(),\n    shadowColor: new FastColor(colorFillTertiary).onBackground(colorBgContainer).toHexString(),\n    contentColor: new FastColor(colorFillQuaternary).onBackground(colorBgContainer).toHexString()\n  }), [colorFill, colorFillTertiary, colorFillQuaternary, colorBgContainer]);\n  return /*#__PURE__*/React.createElement(\"svg\", {\n    width: \"64\",\n    height: \"41\",\n    viewBox: \"0 0 64 41\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, /*#__PURE__*/React.createElement(\"title\", null, (locale === null || locale === void 0 ? void 0 : locale.description) || 'Empty'), /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"translate(0 1)\",\n    fill: \"none\",\n    fillRule: \"evenodd\"\n  }, /*#__PURE__*/React.createElement(\"ellipse\", {\n    fill: shadowColor,\n    cx: \"32\",\n    cy: \"33\",\n    rx: \"32\",\n    ry: \"7\"\n  }), /*#__PURE__*/React.createElement(\"g\", {\n    fillRule: \"nonzero\",\n    stroke: borderColor\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",\n    fill: contentColor\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Simple.displayName = 'SimpleImage';\n}\nexport default Simple;","import { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Shared ==============================\nconst genSharedEmptyStyle = token => {\n  const {\n    componentCls,\n    margin,\n    marginXS,\n    marginXL,\n    fontSize,\n    lineHeight\n  } = token;\n  return {\n    [componentCls]: {\n      marginInline: marginXS,\n      fontSize,\n      lineHeight,\n      textAlign: 'center',\n      // 原来 &-image 没有父子结构,现在为了外层承担我们的 hashId,改成父子结构\n      [`${componentCls}-image`]: {\n        height: token.emptyImgHeight,\n        marginBottom: marginXS,\n        opacity: token.opacityImage,\n        img: {\n          height: '100%'\n        },\n        svg: {\n          maxWidth: '100%',\n          height: '100%',\n          margin: 'auto'\n        }\n      },\n      [`${componentCls}-description`]: {\n        color: token.colorTextDescription\n      },\n      // 原来 &-footer 没有父子结构,现在为了外层承担我们的 hashId,改成父子结构\n      [`${componentCls}-footer`]: {\n        marginTop: margin\n      },\n      '&-normal': {\n        marginBlock: marginXL,\n        color: token.colorTextDescription,\n        [`${componentCls}-description`]: {\n          color: token.colorTextDescription\n        },\n        [`${componentCls}-image`]: {\n          height: token.emptyImgHeightMD\n        }\n      },\n      '&-small': {\n        marginBlock: marginXS,\n        color: token.colorTextDescription,\n        [`${componentCls}-image`]: {\n          height: token.emptyImgHeightSM\n        }\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Empty', token => {\n  const {\n    componentCls,\n    controlHeightLG,\n    calc\n  } = token;\n  const emptyToken = mergeToken(token, {\n    emptyImgCls: `${componentCls}-img`,\n    emptyImgHeight: calc(controlHeightLG).mul(2.5).equal(),\n    emptyImgHeightMD: controlHeightLG,\n    emptyImgHeightSM: calc(controlHeightLG).mul(0.875).equal()\n  });\n  return [genSharedEmptyStyle(emptyToken)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { useLocale } from '../locale';\nimport DefaultEmptyImg from './empty';\nimport SimpleEmptyImg from './simple';\nimport useStyle from './style';\nconst defaultEmptyImg = /*#__PURE__*/React.createElement(DefaultEmptyImg, null);\nconst simpleEmptyImg = /*#__PURE__*/React.createElement(SimpleEmptyImg, null);\nconst Empty = props => {\n  var _a, _b, _c, _d, _e, _f, _g, _h;\n  const {\n      className,\n      rootClassName,\n      prefixCls: customizePrefixCls,\n      image = defaultEmptyImg,\n      description,\n      children,\n      imageStyle,\n      style,\n      classNames: emptyClassNames,\n      styles\n    } = props,\n    restProps = __rest(props, [\"className\", \"rootClassName\", \"prefixCls\", \"image\", \"description\", \"children\", \"imageStyle\", \"style\", \"classNames\", \"styles\"]);\n  const {\n    getPrefixCls,\n    direction,\n    empty\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('empty', customizePrefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const [locale] = useLocale('Empty');\n  const des = typeof description !== 'undefined' ? description : locale === null || locale === void 0 ? void 0 : locale.description;\n  const alt = typeof des === 'string' ? des : 'empty';\n  let imageNode = null;\n  if (typeof image === 'string') {\n    imageNode = /*#__PURE__*/React.createElement(\"img\", {\n      alt: alt,\n      src: image\n    });\n  } else {\n    imageNode = image;\n  }\n  // ============================= Warning ==============================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Empty');\n    [['imageStyle', 'styles: { image: {} }']].forEach(_ref => {\n      let [deprecatedName, newName] = _ref;\n      warning.deprecated(!(deprecatedName in props), deprecatedName, newName);\n    });\n  }\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n    className: classNames(hashId, cssVarCls, prefixCls, empty === null || empty === void 0 ? void 0 : empty.className, {\n      [`${prefixCls}-normal`]: image === simpleEmptyImg,\n      [`${prefixCls}-rtl`]: direction === 'rtl'\n    }, className, rootClassName, (_a = empty === null || empty === void 0 ? void 0 : empty.classNames) === null || _a === void 0 ? void 0 : _a.root, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.root),\n    style: Object.assign(Object.assign(Object.assign(Object.assign({}, (_b = empty === null || empty === void 0 ? void 0 : empty.styles) === null || _b === void 0 ? void 0 : _b.root), empty === null || empty === void 0 ? void 0 : empty.style), styles === null || styles === void 0 ? void 0 : styles.root), style)\n  }, restProps), /*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-image`, (_c = empty === null || empty === void 0 ? void 0 : empty.classNames) === null || _c === void 0 ? void 0 : _c.image, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.image),\n    style: Object.assign(Object.assign(Object.assign({}, imageStyle), (_d = empty === null || empty === void 0 ? void 0 : empty.styles) === null || _d === void 0 ? void 0 : _d.image), styles === null || styles === void 0 ? void 0 : styles.image)\n  }, imageNode), des && (/*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-description`, (_e = empty === null || empty === void 0 ? void 0 : empty.classNames) === null || _e === void 0 ? void 0 : _e.description, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.description),\n    style: Object.assign(Object.assign({}, (_f = empty === null || empty === void 0 ? void 0 : empty.styles) === null || _f === void 0 ? void 0 : _f.description), styles === null || styles === void 0 ? void 0 : styles.description)\n  }, des)), children && (/*#__PURE__*/React.createElement(\"div\", {\n    className: classNames(`${prefixCls}-footer`, (_g = empty === null || empty === void 0 ? void 0 : empty.classNames) === null || _g === void 0 ? void 0 : _g.footer, emptyClassNames === null || emptyClassNames === void 0 ? void 0 : emptyClassNames.footer),\n    style: Object.assign(Object.assign({}, (_h = empty === null || empty === void 0 ? void 0 : empty.styles) === null || _h === void 0 ? void 0 : _h.footer), styles === null || styles === void 0 ? void 0 : styles.footer)\n  }, children))));\n};\nEmpty.PRESENTED_IMAGE_DEFAULT = defaultEmptyImg;\nEmpty.PRESENTED_IMAGE_SIMPLE = simpleEmptyImg;\nif (process.env.NODE_ENV !== 'production') {\n  Empty.displayName = 'Empty';\n}\nexport default Empty;","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { ConfigContext } from '.';\nimport Empty from '../empty';\nconst DefaultRenderEmpty = props => {\n  const {\n    componentName\n  } = props;\n  const {\n    getPrefixCls\n  } = useContext(ConfigContext);\n  const prefix = getPrefixCls('empty');\n  switch (componentName) {\n    case 'Table':\n    case 'List':\n      return /*#__PURE__*/React.createElement(Empty, {\n        image: Empty.PRESENTED_IMAGE_SIMPLE\n      });\n    case 'Select':\n    case 'TreeSelect':\n    case 'Cascader':\n    case 'Transfer':\n    case 'Mentions':\n      return /*#__PURE__*/React.createElement(Empty, {\n        image: Empty.PRESENTED_IMAGE_SIMPLE,\n        className: `${prefix}-small`\n      });\n    /**\n     * This type of component should satisfy the nullish coalescing operator(??) on the left-hand side.\n     * to let the component itself implement the logic.\n     * For example `Table.filter`.\n     */\n    case 'Table.filter':\n      // why `null`? legacy react16 node type `undefined` is not allowed.\n      return null;\n    default:\n      // Should never hit if we take all the component into consider.\n      return /*#__PURE__*/React.createElement(Empty, null);\n  }\n};\nexport default DefaultRenderEmpty;","import * as React from 'react';\nimport { VariantContext } from '../context';\nimport { ConfigContext, Variants } from '../../config-provider';\n/**\n * Compatible for legacy `bordered` prop.\n */\nconst useVariant = function (component, variant) {\n  let legacyBordered = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n  var _a, _b;\n  const {\n    variant: configVariant,\n    [component]: componentConfig\n  } = React.useContext(ConfigContext);\n  const ctxVariant = React.useContext(VariantContext);\n  const configComponentVariant = componentConfig === null || componentConfig === void 0 ? void 0 : componentConfig.variant;\n  let mergedVariant;\n  if (typeof variant !== 'undefined') {\n    mergedVariant = variant;\n  } else if (legacyBordered === false) {\n    mergedVariant = 'borderless';\n  } else {\n    // form variant > component global variant > global variant\n    mergedVariant = (_b = (_a = ctxVariant !== null && ctxVariant !== void 0 ? ctxVariant : configComponentVariant) !== null && _a !== void 0 ? _a : configVariant) !== null && _b !== void 0 ? _b : 'outlined';\n  }\n  const enableVariantCls = Variants.includes(mergedVariant);\n  return [mergedVariant, enableVariantCls];\n};\nexport default useVariant;","const getBuiltInPlacements = popupOverflow => {\n  const htmlRegion = popupOverflow === 'scroll' ? 'scroll' : 'visible';\n  const sharedConfig = {\n    overflow: {\n      adjustX: true,\n      adjustY: true,\n      shiftY: true\n    },\n    htmlRegion,\n    dynamicInset: true\n  };\n  return {\n    bottomLeft: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['tl', 'bl'],\n      offset: [0, 4]\n    }),\n    bottomRight: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['tr', 'br'],\n      offset: [0, 4]\n    }),\n    topLeft: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['bl', 'tl'],\n      offset: [0, -4]\n    }),\n    topRight: Object.assign(Object.assign({}, sharedConfig), {\n      points: ['br', 'tr'],\n      offset: [0, -4]\n    })\n  };\n};\nfunction mergedBuiltinPlacements(buildInPlacements, popupOverflow) {\n  return buildInPlacements || getBuiltInPlacements(popupOverflow);\n}\nexport default mergedBuiltinPlacements;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initMotion } from './motion';\nexport const moveDownIn = new Keyframes('antMoveDownIn', {\n  '0%': {\n    transform: 'translate3d(0, 100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveDownOut = new Keyframes('antMoveDownOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(0, 100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveLeftIn = new Keyframes('antMoveLeftIn', {\n  '0%': {\n    transform: 'translate3d(-100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveLeftOut = new Keyframes('antMoveLeftOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(-100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveRightIn = new Keyframes('antMoveRightIn', {\n  '0%': {\n    transform: 'translate3d(100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveRightOut = new Keyframes('antMoveRightOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(100%, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nexport const moveUpIn = new Keyframes('antMoveUpIn', {\n  '0%': {\n    transform: 'translate3d(0, -100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  },\n  '100%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  }\n});\nexport const moveUpOut = new Keyframes('antMoveUpOut', {\n  '0%': {\n    transform: 'translate3d(0, 0, 0)',\n    transformOrigin: '0 0',\n    opacity: 1\n  },\n  '100%': {\n    transform: 'translate3d(0, -100%, 0)',\n    transformOrigin: '0 0',\n    opacity: 0\n  }\n});\nconst moveMotion = {\n  'move-up': {\n    inKeyframes: moveUpIn,\n    outKeyframes: moveUpOut\n  },\n  'move-down': {\n    inKeyframes: moveDownIn,\n    outKeyframes: moveDownOut\n  },\n  'move-left': {\n    inKeyframes: moveLeftIn,\n    outKeyframes: moveLeftOut\n  },\n  'move-right': {\n    inKeyframes: moveRightIn,\n    outKeyframes: moveRightOut\n  }\n};\nexport const initMoveMotion = (token, motionName) => {\n  const {\n    antCls\n  } = token;\n  const motionCls = `${antCls}-${motionName}`;\n  const {\n    inKeyframes,\n    outKeyframes\n  } = moveMotion[motionName];\n  return [initMotion(motionCls, inKeyframes, outKeyframes, token.motionDurationMid), {\n    [`\n        ${motionCls}-enter,\n        ${motionCls}-appear\n      `]: {\n      opacity: 0,\n      animationTimingFunction: token.motionEaseOutCirc\n    },\n    [`${motionCls}-leave`]: {\n      animationTimingFunction: token.motionEaseInOutCirc\n    }\n  }];\n};","import { resetComponent, textEllipsis } from '../../style';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nconst genItemStyle = token => {\n  const {\n    optionHeight,\n    optionFontSize,\n    optionLineHeight,\n    optionPadding\n  } = token;\n  return {\n    position: 'relative',\n    display: 'block',\n    minHeight: optionHeight,\n    padding: optionPadding,\n    color: token.colorText,\n    fontWeight: 'normal',\n    fontSize: optionFontSize,\n    lineHeight: optionLineHeight,\n    boxSizing: 'border-box'\n  };\n};\nconst genSingleStyle = token => {\n  const {\n    antCls,\n    componentCls\n  } = token;\n  const selectItemCls = `${componentCls}-item`;\n  const slideUpEnterActive = `&${antCls}-slide-up-enter${antCls}-slide-up-enter-active`;\n  const slideUpAppearActive = `&${antCls}-slide-up-appear${antCls}-slide-up-appear-active`;\n  const slideUpLeaveActive = `&${antCls}-slide-up-leave${antCls}-slide-up-leave-active`;\n  const dropdownPlacementCls = `${componentCls}-dropdown-placement-`;\n  const selectedItemCls = `${selectItemCls}-option-selected`;\n  return [{\n    [`${componentCls}-dropdown`]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'absolute',\n      top: -9999,\n      zIndex: token.zIndexPopup,\n      boxSizing: 'border-box',\n      padding: token.paddingXXS,\n      overflow: 'hidden',\n      fontSize: token.fontSize,\n      // Fix select render lag of long text in chrome\n      // https://github.com/ant-design/ant-design/issues/11456\n      // https://github.com/ant-design/ant-design/issues/11843\n      fontVariant: 'initial',\n      backgroundColor: token.colorBgElevated,\n      borderRadius: token.borderRadiusLG,\n      outline: 'none',\n      boxShadow: token.boxShadowSecondary,\n      [`\n          ${slideUpEnterActive}${dropdownPlacementCls}bottomLeft,\n          ${slideUpAppearActive}${dropdownPlacementCls}bottomLeft\n        `]: {\n        animationName: slideUpIn\n      },\n      [`\n          ${slideUpEnterActive}${dropdownPlacementCls}topLeft,\n          ${slideUpAppearActive}${dropdownPlacementCls}topLeft,\n          ${slideUpEnterActive}${dropdownPlacementCls}topRight,\n          ${slideUpAppearActive}${dropdownPlacementCls}topRight\n        `]: {\n        animationName: slideDownIn\n      },\n      [`${slideUpLeaveActive}${dropdownPlacementCls}bottomLeft`]: {\n        animationName: slideUpOut\n      },\n      [`\n          ${slideUpLeaveActive}${dropdownPlacementCls}topLeft,\n          ${slideUpLeaveActive}${dropdownPlacementCls}topRight\n        `]: {\n        animationName: slideDownOut\n      },\n      '&-hidden': {\n        display: 'none'\n      },\n      [selectItemCls]: Object.assign(Object.assign({}, genItemStyle(token)), {\n        cursor: 'pointer',\n        transition: `background ${token.motionDurationSlow} ease`,\n        borderRadius: token.borderRadiusSM,\n        // =========== Group ============\n        '&-group': {\n          color: token.colorTextDescription,\n          fontSize: token.fontSizeSM,\n          cursor: 'default'\n        },\n        // =========== Option ===========\n        '&-option': {\n          display: 'flex',\n          '&-content': Object.assign({\n            flex: 'auto'\n          }, textEllipsis),\n          '&-state': {\n            flex: 'none',\n            display: 'flex',\n            alignItems: 'center'\n          },\n          [`&-active:not(${selectItemCls}-option-disabled)`]: {\n            backgroundColor: token.optionActiveBg\n          },\n          [`&-selected:not(${selectItemCls}-option-disabled)`]: {\n            color: token.optionSelectedColor,\n            fontWeight: token.optionSelectedFontWeight,\n            backgroundColor: token.optionSelectedBg,\n            [`${selectItemCls}-option-state`]: {\n              color: token.colorPrimary\n            }\n          },\n          '&-disabled': {\n            [`&${selectItemCls}-option-selected`]: {\n              backgroundColor: token.colorBgContainerDisabled\n            },\n            color: token.colorTextDisabled,\n            cursor: 'not-allowed'\n          },\n          '&-grouped': {\n            paddingInlineStart: token.calc(token.controlPaddingHorizontal).mul(2).equal()\n          }\n        },\n        '&-empty': Object.assign(Object.assign({}, genItemStyle(token)), {\n          color: token.colorTextDisabled\n        })\n      }),\n      // https://github.com/ant-design/ant-design/pull/46646\n      [`${selectedItemCls}:has(+ ${selectedItemCls})`]: {\n        borderEndStartRadius: 0,\n        borderEndEndRadius: 0,\n        [`& + ${selectedItemCls}`]: {\n          borderStartStartRadius: 0,\n          borderStartEndRadius: 0\n        }\n      },\n      // =========================== RTL ===========================\n      '&-rtl': {\n        direction: 'rtl'\n      }\n    })\n  },\n  // Follow code may reuse in other components\n  initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\nexport default genSingleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetIcon } from '../../style';\nimport { mergeToken } from '../../theme/internal';\n/**\n * Get multiple selector needed style. The calculation:\n *\n * ContainerPadding = BasePadding - ItemMargin\n *\n * Border:                    ╔═══════════════════════════╗                 ┬\n * ContainerPadding:          ║                           ║                 │\n *                            ╟───────────────────────────╢     ┬           │\n * Item Margin:               ║                           ║     │           │\n *                            ║             ┌──────────┐  ║     │           │\n * Item(multipleItemHeight):  ║ BasePadding │   Item   │  ║  Overflow  Container(ControlHeight)\n *                            ║             └──────────┘  ║     │           │\n * Item Margin:               ║                           ║     │           │\n *                            ╟───────────────────────────╢     ┴           │\n * ContainerPadding:          ║                           ║                 │\n * Border:                    ╚═══════════════════════════╝                 ┴\n */\nexport const getMultipleSelectorUnit = token => {\n  const {\n    multipleSelectItemHeight,\n    paddingXXS,\n    lineWidth,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const basePadding = token.max(token.calc(paddingXXS).sub(lineWidth).equal(), 0);\n  const containerPadding = token.max(token.calc(basePadding).sub(INTERNAL_FIXED_ITEM_MARGIN).equal(), 0);\n  return {\n    basePadding,\n    containerPadding,\n    itemHeight: unit(multipleSelectItemHeight),\n    itemLineHeight: unit(token.calc(multipleSelectItemHeight).sub(token.calc(token.lineWidth).mul(2)).equal())\n  };\n};\nconst getSelectItemStyle = token => {\n  const {\n    multipleSelectItemHeight,\n    selectHeight,\n    lineWidth\n  } = token;\n  const selectItemDist = token.calc(selectHeight).sub(multipleSelectItemHeight).div(2).sub(lineWidth).equal();\n  return selectItemDist;\n};\n/**\n * Get the `rc-overflow` needed style.\n * It's a share style which means not affected by `size`.\n */\nexport const genOverflowStyle = token => {\n  const {\n    componentCls,\n    iconCls,\n    borderRadiusSM,\n    motionDurationSlow,\n    paddingXS,\n    multipleItemColorDisabled,\n    multipleItemBorderColorDisabled,\n    colorIcon,\n    colorIconHover,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n  return {\n    /**\n     * Do not merge `height` & `line-height` under style with `selection` & `search`, since chrome\n     * may update to redesign with its align logic.\n     */\n    // =========================== Overflow ===========================\n    [selectOverflowPrefixCls]: {\n      position: 'relative',\n      display: 'flex',\n      flex: 'auto',\n      flexWrap: 'wrap',\n      maxWidth: '100%',\n      '&-item': {\n        flex: 'none',\n        alignSelf: 'center',\n        maxWidth: '100%',\n        display: 'inline-flex'\n      },\n      // ======================== Selections ==========================\n      [`${componentCls}-selection-item`]: {\n        display: 'flex',\n        alignSelf: 'center',\n        flex: 'none',\n        boxSizing: 'border-box',\n        maxWidth: '100%',\n        marginBlock: INTERNAL_FIXED_ITEM_MARGIN,\n        borderRadius: borderRadiusSM,\n        cursor: 'default',\n        transition: `font-size ${motionDurationSlow}, line-height ${motionDurationSlow}, height ${motionDurationSlow}`,\n        marginInlineEnd: token.calc(INTERNAL_FIXED_ITEM_MARGIN).mul(2).equal(),\n        paddingInlineStart: paddingXS,\n        paddingInlineEnd: token.calc(paddingXS).div(2).equal(),\n        [`${componentCls}-disabled&`]: {\n          color: multipleItemColorDisabled,\n          borderColor: multipleItemBorderColorDisabled,\n          cursor: 'not-allowed'\n        },\n        // It's ok not to do this, but 24px makes bottom narrow in view should adjust\n        '&-content': {\n          display: 'inline-block',\n          marginInlineEnd: token.calc(paddingXS).div(2).equal(),\n          overflow: 'hidden',\n          whiteSpace: 'pre',\n          // fix whitespace wrapping. custom tags display all whitespace within.\n          textOverflow: 'ellipsis'\n        },\n        '&-remove': Object.assign(Object.assign({}, resetIcon()), {\n          display: 'inline-flex',\n          alignItems: 'center',\n          color: colorIcon,\n          fontWeight: 'bold',\n          fontSize: 10,\n          lineHeight: 'inherit',\n          cursor: 'pointer',\n          [`> ${iconCls}`]: {\n            verticalAlign: '-0.2em'\n          },\n          '&:hover': {\n            color: colorIconHover\n          }\n        })\n      }\n    }\n  };\n};\nconst genSelectionStyle = (token, suffix) => {\n  const {\n    componentCls,\n    INTERNAL_FIXED_ITEM_MARGIN\n  } = token;\n  const selectOverflowPrefixCls = `${componentCls}-selection-overflow`;\n  const selectItemHeight = token.multipleSelectItemHeight;\n  const selectItemDist = getSelectItemStyle(token);\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  const multipleSelectorUnit = getMultipleSelectorUnit(token);\n  return {\n    [`${componentCls}-multiple${suffixCls}`]: Object.assign(Object.assign({}, genOverflowStyle(token)), {\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: {\n        display: 'flex',\n        alignItems: 'center',\n        width: '100%',\n        height: '100%',\n        // Multiple is little different that horizontal is follow the vertical\n        paddingInline: multipleSelectorUnit.basePadding,\n        paddingBlock: multipleSelectorUnit.containerPadding,\n        borderRadius: token.borderRadius,\n        [`${componentCls}-disabled&`]: {\n          background: token.multipleSelectorBgDisabled,\n          cursor: 'not-allowed'\n        },\n        '&:after': {\n          display: 'inline-block',\n          width: 0,\n          margin: `${unit(INTERNAL_FIXED_ITEM_MARGIN)} 0`,\n          lineHeight: unit(selectItemHeight),\n          visibility: 'hidden',\n          content: '\"\\\\a0\"'\n        }\n      },\n      // ======================== Selections ========================\n      [`${componentCls}-selection-item`]: {\n        height: multipleSelectorUnit.itemHeight,\n        lineHeight: unit(multipleSelectorUnit.itemLineHeight)\n      },\n      // ========================== Wrap ===========================\n      [`${componentCls}-selection-wrap`]: {\n        alignSelf: 'flex-start',\n        '&:after': {\n          lineHeight: unit(selectItemHeight),\n          marginBlock: INTERNAL_FIXED_ITEM_MARGIN\n        }\n      },\n      // ========================== Input ==========================\n      [`${componentCls}-prefix`]: {\n        marginInlineStart: token.calc(token.inputPaddingHorizontalBase).sub(multipleSelectorUnit.basePadding).equal()\n      },\n      [`${selectOverflowPrefixCls}-item + ${selectOverflowPrefixCls}-item,\n        ${componentCls}-prefix + ${componentCls}-selection-wrap\n      `]: {\n        [`${componentCls}-selection-search`]: {\n          marginInlineStart: 0\n        },\n        [`${componentCls}-selection-placeholder`]: {\n          insetInlineStart: 0\n        }\n      },\n      // https://github.com/ant-design/ant-design/issues/44754\n      // Same as `wrap:after`\n      [`${selectOverflowPrefixCls}-item-suffix`]: {\n        minHeight: multipleSelectorUnit.itemHeight,\n        marginBlock: INTERNAL_FIXED_ITEM_MARGIN\n      },\n      [`${componentCls}-selection-search`]: {\n        display: 'inline-flex',\n        position: 'relative',\n        maxWidth: '100%',\n        marginInlineStart: token.calc(token.inputPaddingHorizontalBase).sub(selectItemDist).equal(),\n        [`\n          &-input,\n          &-mirror\n        `]: {\n          height: selectItemHeight,\n          fontFamily: token.fontFamily,\n          lineHeight: unit(selectItemHeight),\n          transition: `all ${token.motionDurationSlow}`\n        },\n        '&-input': {\n          width: '100%',\n          minWidth: 4.1 // fix search cursor missing\n        },\n        '&-mirror': {\n          position: 'absolute',\n          top: 0,\n          insetInlineStart: 0,\n          insetInlineEnd: 'auto',\n          zIndex: 999,\n          whiteSpace: 'pre',\n          // fix whitespace wrapping caused width calculation bug\n          visibility: 'hidden'\n        }\n      },\n      // ======================= Placeholder =======================\n      [`${componentCls}-selection-placeholder`]: {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: token.calc(token.inputPaddingHorizontalBase).sub(multipleSelectorUnit.basePadding).equal(),\n        insetInlineEnd: token.inputPaddingHorizontalBase,\n        transform: 'translateY(-50%)',\n        transition: `all ${token.motionDurationSlow}`\n      }\n    })\n  };\n};\nfunction genSizeStyle(token, suffix) {\n  const {\n    componentCls\n  } = token;\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  const rawStyle = {\n    [`${componentCls}-multiple${suffixCls}`]: {\n      fontSize: token.fontSize,\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: {\n        [`${componentCls}-show-search&`]: {\n          cursor: 'text'\n        }\n      },\n      [`\n        &${componentCls}-show-arrow ${componentCls}-selector,\n        &${componentCls}-allow-clear ${componentCls}-selector\n      `]: {\n        paddingInlineEnd: token.calc(token.fontSizeIcon).add(token.controlPaddingHorizontal).equal()\n      }\n    }\n  };\n  return [genSelectionStyle(token, suffix), rawStyle];\n}\nconst genMultipleStyle = token => {\n  const {\n    componentCls\n  } = token;\n  const smallToken = mergeToken(token, {\n    selectHeight: token.controlHeightSM,\n    multipleSelectItemHeight: token.multipleItemHeightSM,\n    borderRadius: token.borderRadiusSM,\n    borderRadiusSM: token.borderRadiusXS\n  });\n  const largeToken = mergeToken(token, {\n    fontSize: token.fontSizeLG,\n    selectHeight: token.controlHeightLG,\n    multipleSelectItemHeight: token.multipleItemHeightLG,\n    borderRadius: token.borderRadiusLG,\n    borderRadiusSM: token.borderRadius\n  });\n  return [genSizeStyle(token),\n  // ======================== Small ========================\n  genSizeStyle(smallToken, 'sm'),\n  // Padding\n  {\n    [`${componentCls}-multiple${componentCls}-sm`]: {\n      [`${componentCls}-selection-placeholder`]: {\n        insetInline: token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal()\n      },\n      // https://github.com/ant-design/ant-design/issues/29559\n      [`${componentCls}-selection-search`]: {\n        marginInlineStart: 2 // Magic Number\n      }\n    }\n  },\n  // ======================== Large ========================\n  genSizeStyle(largeToken, 'lg')];\n};\nexport default genMultipleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { mergeToken } from '../../theme/internal';\nfunction genSizeStyle(token, suffix) {\n  const {\n    componentCls,\n    inputPaddingHorizontalBase,\n    borderRadius\n  } = token;\n  const selectHeightWithoutBorder = token.calc(token.controlHeight).sub(token.calc(token.lineWidth).mul(2)).equal();\n  const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n  return {\n    [`${componentCls}-single${suffixCls}`]: {\n      fontSize: token.fontSize,\n      height: token.controlHeight,\n      // ========================= Selector =========================\n      [`${componentCls}-selector`]: Object.assign(Object.assign({}, resetComponent(token, true)), {\n        display: 'flex',\n        borderRadius,\n        flex: '1 1 auto',\n        [`${componentCls}-selection-search`]: {\n          position: 'absolute',\n          inset: 0,\n          width: '100%',\n          '&-input': {\n            width: '100%',\n            WebkitAppearance: 'textfield'\n          }\n        },\n        [`\n          ${componentCls}-selection-item,\n          ${componentCls}-selection-placeholder\n        `]: {\n          display: 'block',\n          padding: 0,\n          lineHeight: unit(selectHeightWithoutBorder),\n          transition: `all ${token.motionDurationSlow}, visibility 0s`,\n          alignSelf: 'center'\n        },\n        [`${componentCls}-selection-placeholder`]: {\n          transition: 'none',\n          pointerEvents: 'none'\n        },\n        // For common baseline align\n        [['&:after', /* For '' value baseline align */\n        `${componentCls}-selection-item:empty:after`, /* For undefined value baseline align */\n        `${componentCls}-selection-placeholder:empty:after`].join(',')]: {\n          display: 'inline-block',\n          width: 0,\n          visibility: 'hidden',\n          content: '\"\\\\a0\"'\n        }\n      }),\n      [`\n        &${componentCls}-show-arrow ${componentCls}-selection-item,\n        &${componentCls}-show-arrow ${componentCls}-selection-search,\n        &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n      `]: {\n        paddingInlineEnd: token.showArrowPaddingInlineEnd\n      },\n      // Opacity selection if open\n      [`&${componentCls}-open ${componentCls}-selection-item`]: {\n        color: token.colorTextPlaceholder\n      },\n      // ========================== Input ==========================\n      // We only change the style of non-customize input which is only support by `combobox` mode.\n      // Not customize\n      [`&:not(${componentCls}-customize-input)`]: {\n        [`${componentCls}-selector`]: {\n          width: '100%',\n          height: '100%',\n          alignItems: 'center',\n          padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n          [`${componentCls}-selection-search-input`]: {\n            height: selectHeightWithoutBorder\n          },\n          '&:after': {\n            lineHeight: unit(selectHeightWithoutBorder)\n          }\n        }\n      },\n      [`&${componentCls}-customize-input`]: {\n        [`${componentCls}-selector`]: {\n          '&:after': {\n            display: 'none'\n          },\n          [`${componentCls}-selection-search`]: {\n            position: 'static',\n            width: '100%'\n          },\n          [`${componentCls}-selection-placeholder`]: {\n            position: 'absolute',\n            insetInlineStart: 0,\n            insetInlineEnd: 0,\n            padding: `0 ${unit(inputPaddingHorizontalBase)}`,\n            '&:after': {\n              display: 'none'\n            }\n          }\n        }\n      }\n    }\n  };\n}\nexport default function genSingleStyle(token) {\n  const {\n    componentCls\n  } = token;\n  const inputPaddingHorizontalSM = token.calc(token.controlPaddingHorizontalSM).sub(token.lineWidth).equal();\n  return [genSizeStyle(token),\n  // ======================== Small ========================\n  // Shared\n  genSizeStyle(mergeToken(token, {\n    controlHeight: token.controlHeightSM,\n    borderRadius: token.borderRadiusSM\n  }), 'sm'),\n  // padding\n  {\n    [`${componentCls}-single${componentCls}-sm`]: {\n      [`&:not(${componentCls}-customize-input)`]: {\n        [`${componentCls}-selector`]: {\n          padding: `0 ${unit(inputPaddingHorizontalSM)}`\n        },\n        // With arrow should provides `padding-right` to show the arrow\n        [`&${componentCls}-show-arrow ${componentCls}-selection-search`]: {\n          insetInlineEnd: token.calc(inputPaddingHorizontalSM).add(token.calc(token.fontSize).mul(1.5)).equal()\n        },\n        [`\n            &${componentCls}-show-arrow ${componentCls}-selection-item,\n            &${componentCls}-show-arrow ${componentCls}-selection-placeholder\n          `]: {\n          paddingInlineEnd: token.calc(token.fontSize).mul(1.5).equal()\n        }\n      }\n    }\n  },\n  // ======================== Large ========================\n  // Shared\n  genSizeStyle(mergeToken(token, {\n    controlHeight: token.singleItemHeightLG,\n    fontSize: token.fontSizeLG,\n    borderRadius: token.borderRadiusLG\n  }), 'lg')];\n}","export const prepareComponentToken = token => {\n  const {\n    fontSize,\n    lineHeight,\n    lineWidth,\n    controlHeight,\n    controlHeightSM,\n    controlHeightLG,\n    paddingXXS,\n    controlPaddingHorizontal,\n    zIndexPopupBase,\n    colorText,\n    fontWeightStrong,\n    controlItemBgActive,\n    controlItemBgHover,\n    colorBgContainer,\n    colorFillSecondary,\n    colorBgContainerDisabled,\n    colorTextDisabled,\n    colorPrimaryHover,\n    colorPrimary,\n    controlOutline\n  } = token;\n  // Item height default use `controlHeight - 2 * paddingXXS`,\n  // but some case `paddingXXS=0`.\n  // Let's fallback it.\n  const dblPaddingXXS = paddingXXS * 2;\n  const dblLineWidth = lineWidth * 2;\n  const multipleItemHeight = Math.min(controlHeight - dblPaddingXXS, controlHeight - dblLineWidth);\n  const multipleItemHeightSM = Math.min(controlHeightSM - dblPaddingXXS, controlHeightSM - dblLineWidth);\n  const multipleItemHeightLG = Math.min(controlHeightLG - dblPaddingXXS, controlHeightLG - dblLineWidth);\n  // FIXED_ITEM_MARGIN is a hardcode calculation since calc not support rounding\n  const INTERNAL_FIXED_ITEM_MARGIN = Math.floor(paddingXXS / 2);\n  return {\n    INTERNAL_FIXED_ITEM_MARGIN,\n    zIndexPopup: zIndexPopupBase + 50,\n    optionSelectedColor: colorText,\n    optionSelectedFontWeight: fontWeightStrong,\n    optionSelectedBg: controlItemBgActive,\n    optionActiveBg: controlItemBgHover,\n    optionPadding: `${(controlHeight - fontSize * lineHeight) / 2}px ${controlPaddingHorizontal}px`,\n    optionFontSize: fontSize,\n    optionLineHeight: lineHeight,\n    optionHeight: controlHeight,\n    selectorBg: colorBgContainer,\n    clearBg: colorBgContainer,\n    singleItemHeightLG: controlHeightLG,\n    multipleItemBg: colorFillSecondary,\n    multipleItemBorderColor: 'transparent',\n    multipleItemHeight,\n    multipleItemHeightSM,\n    multipleItemHeightLG,\n    multipleSelectorBgDisabled: colorBgContainerDisabled,\n    multipleItemColorDisabled: colorTextDisabled,\n    multipleItemBorderColorDisabled: 'transparent',\n    showArrowPaddingInlineEnd: Math.ceil(token.fontSize * 1.25),\n    hoverBorderColor: colorPrimaryHover,\n    activeBorderColor: colorPrimary,\n    activeOutlineColor: controlOutline,\n    selectAffixPadding: paddingXXS\n  };\n};","import { unit } from '@ant-design/cssinjs';\n// =====================================================\n// ==                  Outlined                       ==\n// =====================================================\nconst genBaseOutlinedStyle = (token, options) => {\n  const {\n    componentCls,\n    antCls,\n    controlOutlineWidth\n  } = token;\n  return {\n    [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n      border: `${unit(token.lineWidth)} ${token.lineType} ${options.borderColor}`,\n      background: token.selectorBg\n    },\n    [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n      [`&:hover ${componentCls}-selector`]: {\n        borderColor: options.hoverBorderHover\n      },\n      [`${componentCls}-focused& ${componentCls}-selector`]: {\n        borderColor: options.activeBorderColor,\n        boxShadow: `0 0 0 ${unit(controlOutlineWidth)} ${options.activeOutlineColor}`,\n        outline: 0\n      },\n      [`${componentCls}-prefix`]: {\n        color: options.color\n      }\n    }\n  };\n};\nconst genOutlinedStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseOutlinedStyle(token, options))\n});\nconst genOutlinedStyle = token => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n    borderColor: token.colorBorder,\n    hoverBorderHover: token.hoverBorderColor,\n    activeBorderColor: token.activeBorderColor,\n    activeOutlineColor: token.activeOutlineColor,\n    color: token.colorText\n  })), genOutlinedStatusStyle(token, {\n    status: 'error',\n    borderColor: token.colorError,\n    hoverBorderHover: token.colorErrorHover,\n    activeBorderColor: token.colorError,\n    activeOutlineColor: token.colorErrorOutline,\n    color: token.colorError\n  })), genOutlinedStatusStyle(token, {\n    status: 'warning',\n    borderColor: token.colorWarning,\n    hoverBorderHover: token.colorWarningHover,\n    activeBorderColor: token.colorWarning,\n    activeOutlineColor: token.colorWarningOutline,\n    color: token.colorWarning\n  })), {\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        background: token.colorBgContainerDisabled,\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.multipleItemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n    }\n  })\n});\n// =====================================================\n// ==                   Filled                        ==\n// =====================================================\nconst genBaseFilledStyle = (token, options) => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: {\n      background: options.bg,\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      color: options.color\n    },\n    [`&:not(${componentCls}-disabled):not(${componentCls}-customize-input):not(${antCls}-pagination-size-changer)`]: {\n      [`&:hover ${componentCls}-selector`]: {\n        background: options.hoverBg\n      },\n      [`${componentCls}-focused& ${componentCls}-selector`]: {\n        background: token.selectorBg,\n        borderColor: options.activeBorderColor,\n        outline: 0\n      }\n    }\n  };\n};\nconst genFilledStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}`]: Object.assign({}, genBaseFilledStyle(token, options))\n});\nconst genFilledStyle = token => ({\n  '&-filled': Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n    bg: token.colorFillTertiary,\n    hoverBg: token.colorFillSecondary,\n    activeBorderColor: token.activeBorderColor,\n    color: token.colorText\n  })), genFilledStatusStyle(token, {\n    status: 'error',\n    bg: token.colorErrorBg,\n    hoverBg: token.colorErrorBgHover,\n    activeBorderColor: token.colorError,\n    color: token.colorError\n  })), genFilledStatusStyle(token, {\n    status: 'warning',\n    bg: token.colorWarningBg,\n    hoverBg: token.colorWarningBgHover,\n    activeBorderColor: token.colorWarning,\n    color: token.colorWarning\n  })), {\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        borderColor: token.colorBorder,\n        background: token.colorBgContainerDisabled,\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.colorBgContainer,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n    }\n  })\n});\n// =====================================================\n// ==                 Borderless                      ==\n// =====================================================\nconst genBorderlessStyle = token => ({\n  '&-borderless': {\n    [`${token.componentCls}-selector`]: {\n      background: 'transparent',\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`\n    },\n    [`&${token.componentCls}-disabled`]: {\n      [`&:not(${token.componentCls}-customize-input) ${token.componentCls}-selector`]: {\n        color: token.colorTextDisabled\n      }\n    },\n    [`&${token.componentCls}-multiple ${token.componentCls}-selection-item`]: {\n      background: token.multipleItemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n    },\n    // Status\n    [`&${token.componentCls}-status-error`]: {\n      [`${token.componentCls}-prefix, ${token.componentCls}-selection-item`]: {\n        color: token.colorError\n      }\n    },\n    [`&${token.componentCls}-status-warning`]: {\n      [`${token.componentCls}-prefix, ${token.componentCls}-selection-item`]: {\n        color: token.colorWarning\n      }\n    }\n  }\n});\nconst genVariantsStyle = token => ({\n  [token.componentCls]: Object.assign(Object.assign(Object.assign({}, genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token))\n});\nexport default genVariantsStyle;","import { resetComponent, resetIcon, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genDropdownStyle from './dropdown';\nimport genMultipleStyle from './multiple';\nimport genSingleStyle from './single';\nimport { prepareComponentToken } from './token';\nimport genVariantsStyle from './variants';\n// ============================= Selector =============================\nconst genSelectorStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    position: 'relative',\n    transition: `all ${token.motionDurationMid} ${token.motionEaseInOut}`,\n    input: {\n      cursor: 'pointer'\n    },\n    [`${componentCls}-show-search&`]: {\n      cursor: 'text',\n      input: {\n        cursor: 'auto',\n        color: 'inherit',\n        height: '100%'\n      }\n    },\n    [`${componentCls}-disabled&`]: {\n      cursor: 'not-allowed',\n      input: {\n        cursor: 'not-allowed'\n      }\n    }\n  };\n};\n// ============================== Styles ==============================\n// /* Reset search input style */\nconst getSearchInputWithoutBorderStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-selection-search-input`]: {\n      margin: 0,\n      padding: 0,\n      background: 'transparent',\n      border: 'none',\n      outline: 'none',\n      appearance: 'none',\n      fontFamily: 'inherit',\n      '&::-webkit-search-cancel-button': {\n        display: 'none',\n        '-webkit-appearance': 'none'\n      }\n    }\n  };\n};\n// =============================== Base ===============================\nconst genBaseStyle = token => {\n  const {\n    antCls,\n    componentCls,\n    inputPaddingHorizontalBase,\n    iconCls\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      position: 'relative',\n      display: 'inline-flex',\n      cursor: 'pointer',\n      [`&:not(${componentCls}-customize-input) ${componentCls}-selector`]: Object.assign(Object.assign({}, genSelectorStyle(token)), getSearchInputWithoutBorderStyle(token)),\n      // ======================== Selection ========================\n      [`${componentCls}-selection-item`]: Object.assign(Object.assign({\n        flex: 1,\n        fontWeight: 'normal',\n        position: 'relative',\n        userSelect: 'none'\n      }, textEllipsis), {\n        // https://github.com/ant-design/ant-design/issues/40421\n        [`> ${antCls}-typography`]: {\n          display: 'inline'\n        }\n      }),\n      // ======================= Placeholder =======================\n      [`${componentCls}-selection-placeholder`]: Object.assign(Object.assign({}, textEllipsis), {\n        flex: 1,\n        color: token.colorTextPlaceholder,\n        pointerEvents: 'none'\n      }),\n      // ========================== Arrow ==========================\n      [`${componentCls}-arrow`]: Object.assign(Object.assign({}, resetIcon()), {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: 'auto',\n        insetInlineEnd: inputPaddingHorizontalBase,\n        height: token.fontSizeIcon,\n        marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n        color: token.colorTextQuaternary,\n        fontSize: token.fontSizeIcon,\n        lineHeight: 1,\n        textAlign: 'center',\n        pointerEvents: 'none',\n        display: 'flex',\n        alignItems: 'center',\n        transition: `opacity ${token.motionDurationSlow} ease`,\n        [iconCls]: {\n          verticalAlign: 'top',\n          transition: `transform ${token.motionDurationSlow}`,\n          '> svg': {\n            verticalAlign: 'top'\n          },\n          [`&:not(${componentCls}-suffix)`]: {\n            pointerEvents: 'auto'\n          }\n        },\n        [`${componentCls}-disabled &`]: {\n          cursor: 'not-allowed'\n        },\n        '> *:not(:last-child)': {\n          marginInlineEnd: 8 // FIXME: magic\n        }\n      }),\n      // ========================== Wrap ===========================\n      [`${componentCls}-selection-wrap`]: {\n        display: 'flex',\n        width: '100%',\n        position: 'relative',\n        minWidth: 0,\n        // https://github.com/ant-design/ant-design/issues/51669\n        '&:after': {\n          content: '\"\\\\a0\"',\n          width: 0,\n          overflow: 'hidden'\n        }\n      },\n      // ========================= Prefix ==========================\n      [`${componentCls}-prefix`]: {\n        flex: 'none',\n        marginInlineEnd: token.selectAffixPadding\n      },\n      // ========================== Clear ==========================\n      [`${componentCls}-clear`]: {\n        position: 'absolute',\n        top: '50%',\n        insetInlineStart: 'auto',\n        insetInlineEnd: inputPaddingHorizontalBase,\n        zIndex: 1,\n        display: 'inline-block',\n        width: token.fontSizeIcon,\n        height: token.fontSizeIcon,\n        marginTop: token.calc(token.fontSizeIcon).mul(-1).div(2).equal(),\n        color: token.colorTextQuaternary,\n        fontSize: token.fontSizeIcon,\n        fontStyle: 'normal',\n        lineHeight: 1,\n        textAlign: 'center',\n        textTransform: 'none',\n        cursor: 'pointer',\n        opacity: 0,\n        transition: `color ${token.motionDurationMid} ease, opacity ${token.motionDurationSlow} ease`,\n        textRendering: 'auto',\n        '&:before': {\n          display: 'block'\n        },\n        '&:hover': {\n          color: token.colorTextTertiary\n        }\n      },\n      [`&:hover ${componentCls}-clear`]: {\n        opacity: 1,\n        background: token.colorBgBase,\n        borderRadius: '50%'\n      }\n    }),\n    // ========================= Feedback ==========================\n    [`${componentCls}-status`]: {\n      '&-error, &-warning, &-success, &-validating': {\n        [`&${componentCls}-has-feedback`]: {\n          [`${componentCls}-clear`]: {\n            insetInlineEnd: token.calc(inputPaddingHorizontalBase).add(token.fontSize).add(token.paddingXS).equal()\n          }\n        }\n      }\n    }\n  };\n};\n// ============================== Styles ==============================\nconst genSelectStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return [{\n    [componentCls]: {\n      // ==================== In Form ====================\n      [`&${componentCls}-in-form-item`]: {\n        width: '100%'\n      }\n    }\n  },\n  // =====================================================\n  // ==                       LTR                       ==\n  // =====================================================\n  // Base\n  genBaseStyle(token),\n  // Single\n  genSingleStyle(token),\n  // Multiple\n  genMultipleStyle(token),\n  // Dropdown\n  genDropdownStyle(token),\n  // =====================================================\n  // ==                       RTL                       ==\n  // =====================================================\n  {\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl'\n    }\n  },\n  // =====================================================\n  // ==             Space Compact                       ==\n  // =====================================================\n  genCompactItemStyle(token, {\n    borderElCls: `${componentCls}-selector`,\n    focusElCls: `${componentCls}-focused`\n  })];\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Select', (token, _ref) => {\n  let {\n    rootPrefixCls\n  } = _ref;\n  const selectToken = mergeToken(token, {\n    rootPrefixCls,\n    inputPaddingHorizontalBase: token.calc(token.paddingSM).sub(1).equal(),\n    multipleSelectItemHeight: token.multipleItemHeight,\n    selectHeight: token.controlHeight\n  });\n  return [genSelectStyle(selectToken), genVariantsStyle(selectToken)];\n}, prepareComponentToken, {\n  unitless: {\n    optionLineHeight: true,\n    optionSelectedFontWeight: true\n  }\n});","// This icon file is generated automatically.\nvar CheckOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\" } }] }, \"name\": \"check\", \"theme\": \"outlined\" };\nexport default CheckOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CheckOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CheckOutlined = function CheckOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CheckOutlinedSvg\n  }));\n};\n\n/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CheckOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CheckOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CloseCircleFilledSvg\n  }));\n};\n\n/**![close-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMTI3Ljk4IDI3NC44MmgtLjA0bC0uMDguMDZMNTEyIDQ2Ni43NSAzODQuMTQgMzM4Ljg4Yy0uMDQtLjA1LS4wNi0uMDYtLjA4LS4wNmEuMTIuMTIgMCAwMC0uMDcgMGMtLjAzIDAtLjA1LjAxLS4wOS4wNWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAwLS4wNS4wOS4xMi4xMiAwIDAwMCAuMDd2LjAyYS4yNy4yNyAwIDAwLjA2LjA2TDQ2Ni43NSA1MTIgMzM4Ljg4IDYzOS44NmMtLjA1LjA0LS4wNi4wNi0uMDYuMDhhLjEyLjEyIDAgMDAwIC4wN2MwIC4wMy4wMS4wNS4wNS4wOWw0NS4wMiA0NS4wMmEuMi4yIDAgMDAuMDkuMDUuMTIuMTIgMCAwMC4wNyAwYy4wMiAwIC4wNC0uMDEuMDgtLjA1TDUxMiA1NTcuMjVsMTI3Ljg2IDEyNy44N2MuMDQuMDQuMDYuMDUuMDguMDVhLjEyLjEyIDAgMDAuMDcgMGMuMDMgMCAuMDUtLjAxLjA5LS4wNWw0NS4wMi00NS4wMmEuMi4yIDAgMDAuMDUtLjA5LjEyLjEyIDAgMDAwLS4wN3YtLjAyYS4yNy4yNyAwIDAwLS4wNS0uMDZMNTU3LjI1IDUxMmwxMjcuODctMTI3Ljg2Yy4wNC0uMDQuMDUtLjA2LjA1LS4wOGEuMTIuMTIgMCAwMDAtLjA3YzAtLjAzLS4wMS0uMDUtLjA1LS4wOWwtNDUuMDItNDUuMDJhLjIuMiAwIDAwLS4wOS0uMDUuMTIuMTIgMCAwMC0uMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseCircleFilled);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CloseCircleFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CloseOutlined = function CloseOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: CloseOutlinedSvg\n  }));\n};\n\n/**![close](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CloseOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'CloseOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DownOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\" } }] }, \"name\": \"down\", \"theme\": \"outlined\" };\nexport default DownOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownOutlined = function DownOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: DownOutlinedSvg\n  }));\n};\n\n/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'DownOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SearchOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\" } }] }, \"name\": \"search\", \"theme\": \"outlined\" };\nexport default SearchOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SearchOutlinedSvg from \"@ant-design/icons-svg/es/asn/SearchOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SearchOutlined = function SearchOutlined(props, ref) {\n  return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n    ref: ref,\n    icon: SearchOutlinedSvg\n  }));\n};\n\n/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SearchOutlined);\nif (process.env.NODE_ENV !== 'production') {\n  RefIcon.displayName = 'SearchOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n// TODO: 4.0 - codemod should help to change `filterOption` to support node props.\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcSelect, { OptGroup, Option } from 'rc-select';\nimport omit from \"rc-util/es/omit\";\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport genPurePanel from '../_util/PurePanel';\nimport { getMergedStatus, getStatusClassNames } from '../_util/statusUtils';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../form/context';\nimport useVariants from '../form/hooks/useVariants';\nimport { useCompactItemContext } from '../space/Compact';\nimport { useToken } from '../theme/internal';\nimport mergedBuiltinPlacements from './mergedBuiltinPlacements';\nimport useStyle from './style';\nimport useIcons from './useIcons';\nimport useShowArrow from './useShowArrow';\nconst SECRET_COMBOBOX_MODE_DO_NOT_USE = 'SECRET_COMBOBOX_MODE_DO_NOT_USE';\nconst InternalSelect = (props, ref) => {\n  var _a;\n  const {\n      prefixCls: customizePrefixCls,\n      bordered,\n      className,\n      rootClassName,\n      getPopupContainer,\n      popupClassName,\n      dropdownClassName,\n      listHeight = 256,\n      placement,\n      listItemHeight: customListItemHeight,\n      size: customizeSize,\n      disabled: customDisabled,\n      notFoundContent,\n      status: customStatus,\n      builtinPlacements,\n      dropdownMatchSelectWidth,\n      popupMatchSelectWidth,\n      direction: propDirection,\n      style,\n      allowClear,\n      variant: customizeVariant,\n      dropdownStyle,\n      transitionName,\n      tagRender,\n      maxCount,\n      prefix\n    } = props,\n    rest = __rest(props, [\"prefixCls\", \"bordered\", \"className\", \"rootClassName\", \"getPopupContainer\", \"popupClassName\", \"dropdownClassName\", \"listHeight\", \"placement\", \"listItemHeight\", \"size\", \"disabled\", \"notFoundContent\", \"status\", \"builtinPlacements\", \"dropdownMatchSelectWidth\", \"popupMatchSelectWidth\", \"direction\", \"style\", \"allowClear\", \"variant\", \"dropdownStyle\", \"transitionName\", \"tagRender\", \"maxCount\", \"prefix\"]);\n  const {\n    getPopupContainer: getContextPopupContainer,\n    getPrefixCls,\n    renderEmpty,\n    direction: contextDirection,\n    virtual,\n    popupMatchSelectWidth: contextPopupMatchSelectWidth,\n    popupOverflow,\n    select\n  } = React.useContext(ConfigContext);\n  const [, token] = useToken();\n  const listItemHeight = customListItemHeight !== null && customListItemHeight !== void 0 ? customListItemHeight : token === null || token === void 0 ? void 0 : token.controlHeight;\n  const prefixCls = getPrefixCls('select', customizePrefixCls);\n  const rootPrefixCls = getPrefixCls();\n  const direction = propDirection !== null && propDirection !== void 0 ? propDirection : contextDirection;\n  const {\n    compactSize,\n    compactItemClassnames\n  } = useCompactItemContext(prefixCls, direction);\n  const [variant, enableVariantCls] = useVariants('select', customizeVariant, bordered);\n  const rootCls = useCSSVarCls(prefixCls);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n  const mode = React.useMemo(() => {\n    const {\n      mode: m\n    } = props;\n    if (m === 'combobox') {\n      return undefined;\n    }\n    if (m === SECRET_COMBOBOX_MODE_DO_NOT_USE) {\n      return 'combobox';\n    }\n    return m;\n  }, [props.mode]);\n  const isMultiple = mode === 'multiple' || mode === 'tags';\n  const showSuffixIcon = useShowArrow(props.suffixIcon, props.showArrow);\n  const mergedPopupMatchSelectWidth = (_a = popupMatchSelectWidth !== null && popupMatchSelectWidth !== void 0 ? popupMatchSelectWidth : dropdownMatchSelectWidth) !== null && _a !== void 0 ? _a : contextPopupMatchSelectWidth;\n  // ===================== Form Status =====================\n  const {\n    status: contextStatus,\n    hasFeedback,\n    isFormItemInput,\n    feedbackIcon\n  } = React.useContext(FormItemInputContext);\n  const mergedStatus = getMergedStatus(contextStatus, customStatus);\n  // ===================== Empty =====================\n  let mergedNotFound;\n  if (notFoundContent !== undefined) {\n    mergedNotFound = notFoundContent;\n  } else if (mode === 'combobox') {\n    mergedNotFound = null;\n  } else {\n    mergedNotFound = (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Select')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n      componentName: \"Select\"\n    });\n  }\n  // ===================== Icons =====================\n  const {\n    suffixIcon,\n    itemIcon,\n    removeIcon,\n    clearIcon\n  } = useIcons(Object.assign(Object.assign({}, rest), {\n    multiple: isMultiple,\n    hasFeedback,\n    feedbackIcon,\n    showSuffixIcon,\n    prefixCls,\n    componentName: 'Select'\n  }));\n  const mergedAllowClear = allowClear === true ? {\n    clearIcon\n  } : allowClear;\n  const selectProps = omit(rest, ['suffixIcon', 'itemIcon']);\n  const mergedPopupClassName = classNames(popupClassName || dropdownClassName, {\n    [`${prefixCls}-dropdown-${direction}`]: direction === 'rtl'\n  }, rootClassName, cssVarCls, rootCls, hashId);\n  const mergedSize = useSize(ctx => {\n    var _a;\n    return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n  });\n  // ===================== Disabled =====================\n  const disabled = React.useContext(DisabledContext);\n  const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n  const mergedClassName = classNames({\n    [`${prefixCls}-lg`]: mergedSize === 'large',\n    [`${prefixCls}-sm`]: mergedSize === 'small',\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-${variant}`]: enableVariantCls,\n    [`${prefixCls}-in-form-item`]: isFormItemInput\n  }, getStatusClassNames(prefixCls, mergedStatus, hasFeedback), compactItemClassnames, select === null || select === void 0 ? void 0 : select.className, className, rootClassName, cssVarCls, rootCls, hashId);\n  // ===================== Placement =====================\n  const memoPlacement = React.useMemo(() => {\n    if (placement !== undefined) {\n      return placement;\n    }\n    return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';\n  }, [placement, direction]);\n  // ====================== Warning ======================\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Select');\n    warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n    warning.deprecated(dropdownMatchSelectWidth === undefined, 'dropdownMatchSelectWidth', 'popupMatchSelectWidth');\n    process.env.NODE_ENV !== \"production\" ? warning(!('showArrow' in props), 'deprecated', '`showArrow` is deprecated which will be removed in next major version. It will be a default behavior, you can hide it by setting `suffixIcon` to null.') : void 0;\n    warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n    process.env.NODE_ENV !== \"production\" ? warning(!(typeof maxCount !== 'undefined' && !isMultiple), 'usage', '`maxCount` only works with mode `multiple` or `tags`') : void 0;\n  }\n  // ====================== zIndex =========================\n  const [zIndex] = useZIndex('SelectLike', dropdownStyle === null || dropdownStyle === void 0 ? void 0 : dropdownStyle.zIndex);\n  // ====================== Render =======================\n  return wrapCSSVar(/*#__PURE__*/React.createElement(RcSelect, Object.assign({\n    ref: ref,\n    virtual: virtual,\n    showSearch: select === null || select === void 0 ? void 0 : select.showSearch\n  }, selectProps, {\n    style: Object.assign(Object.assign({}, select === null || select === void 0 ? void 0 : select.style), style),\n    dropdownMatchSelectWidth: mergedPopupMatchSelectWidth,\n    transitionName: getTransitionName(rootPrefixCls, 'slide-up', transitionName),\n    builtinPlacements: mergedBuiltinPlacements(builtinPlacements, popupOverflow),\n    listHeight: listHeight,\n    listItemHeight: listItemHeight,\n    mode: mode,\n    prefixCls: prefixCls,\n    placement: memoPlacement,\n    direction: direction,\n    prefix: prefix,\n    suffixIcon: suffixIcon,\n    menuItemSelectedIcon: itemIcon,\n    removeIcon: removeIcon,\n    allowClear: mergedAllowClear,\n    notFoundContent: mergedNotFound,\n    className: mergedClassName,\n    getPopupContainer: getPopupContainer || getContextPopupContainer,\n    dropdownClassName: mergedPopupClassName,\n    disabled: mergedDisabled,\n    dropdownStyle: Object.assign(Object.assign({}, dropdownStyle), {\n      zIndex\n    }),\n    maxCount: isMultiple ? maxCount : undefined,\n    tagRender: isMultiple ? tagRender : undefined\n  })));\n};\nif (process.env.NODE_ENV !== 'production') {\n  InternalSelect.displayName = 'Select';\n}\nconst Select = /*#__PURE__*/React.forwardRef(InternalSelect);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(Select, 'dropdownAlign');\nSelect.SECRET_COMBOBOX_MODE_DO_NOT_USE = SECRET_COMBOBOX_MODE_DO_NOT_USE;\nSelect.Option = Option;\nSelect.OptGroup = OptGroup;\nSelect._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nif (process.env.NODE_ENV !== 'production') {\n  Select.displayName = 'Select';\n}\nexport default Select;","/**\n * Since Select, TreeSelect, Cascader is same Select like component.\n * We just use same hook to handle this logic.\n *\n * If `suffixIcon` is not equal to `null`, always show it.\n */\nexport default function useShowArrow(suffixIcon, showArrow) {\n  return showArrow !== undefined ? showArrow : suffixIcon !== null;\n}","import classNames from 'classnames';\nconst _InputStatuses = ['warning', 'error', ''];\nexport function getStatusClassNames(prefixCls, status, hasFeedback) {\n  return classNames({\n    [`${prefixCls}-status-success`]: status === 'success',\n    [`${prefixCls}-status-warning`]: status === 'warning',\n    [`${prefixCls}-status-error`]: status === 'error',\n    [`${prefixCls}-status-validating`]: status === 'validating',\n    [`${prefixCls}-has-feedback`]: hasFeedback\n  });\n}\nexport const getMergedStatus = (contextStatus, customStatus) => customStatus || contextStatus;","\"use client\";\n\nimport * as React from 'react';\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport { devUseWarning } from '../_util/warning';\nexport default function useIcons(_ref) {\n  let {\n    suffixIcon,\n    clearIcon,\n    menuItemSelectedIcon,\n    removeIcon,\n    loading,\n    multiple,\n    hasFeedback,\n    prefixCls,\n    showSuffixIcon,\n    feedbackIcon,\n    showArrow,\n    componentName\n  } = _ref;\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning(componentName);\n    warning.deprecated(!clearIcon, 'clearIcon', 'allowClear={{ clearIcon: React.ReactNode }}');\n  }\n  // Clear Icon\n  const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : /*#__PURE__*/React.createElement(CloseCircleFilled, null);\n  // Validation Feedback Icon\n  const getSuffixIconNode = arrowIcon => {\n    if (suffixIcon === null && !hasFeedback && !showArrow) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(React.Fragment, null, showSuffixIcon !== false && arrowIcon, hasFeedback && feedbackIcon);\n  };\n  // Arrow item icon\n  let mergedSuffixIcon = null;\n  if (suffixIcon !== undefined) {\n    mergedSuffixIcon = getSuffixIconNode(suffixIcon);\n  } else if (loading) {\n    mergedSuffixIcon = getSuffixIconNode(/*#__PURE__*/React.createElement(LoadingOutlined, {\n      spin: true\n    }));\n  } else {\n    const iconCls = `${prefixCls}-suffix`;\n    mergedSuffixIcon = _ref2 => {\n      let {\n        open,\n        showSearch\n      } = _ref2;\n      if (open && showSearch) {\n        return getSuffixIconNode(/*#__PURE__*/React.createElement(SearchOutlined, {\n          className: iconCls\n        }));\n      }\n      return getSuffixIconNode(/*#__PURE__*/React.createElement(DownOutlined, {\n        className: iconCls\n      }));\n    };\n  }\n  // Checked item icon\n  let mergedItemIcon = null;\n  if (menuItemSelectedIcon !== undefined) {\n    mergedItemIcon = menuItemSelectedIcon;\n  } else if (multiple) {\n    mergedItemIcon = /*#__PURE__*/React.createElement(CheckOutlined, null);\n  } else {\n    mergedItemIcon = null;\n  }\n  let mergedRemoveIcon = null;\n  if (removeIcon !== undefined) {\n    mergedRemoveIcon = removeIcon;\n  } else {\n    mergedRemoveIcon = /*#__PURE__*/React.createElement(CloseOutlined, null);\n  }\n  return {\n    clearIcon: mergedClearIcon,\n    suffixIcon: mergedSuffixIcon,\n    itemIcon: mergedItemIcon,\n    removeIcon: mergedRemoveIcon\n  };\n}","import { mergeToken } from '../../theme/internal';\nexport function initInputToken(token) {\n  return mergeToken(token, {\n    inputAffixPadding: token.paddingXXS\n  });\n}\nexport const initComponentToken = token => {\n  const {\n    controlHeight,\n    fontSize,\n    lineHeight,\n    lineWidth,\n    controlHeightSM,\n    controlHeightLG,\n    fontSizeLG,\n    lineHeightLG,\n    paddingSM,\n    controlPaddingHorizontalSM,\n    controlPaddingHorizontal,\n    colorFillAlter,\n    colorPrimaryHover,\n    colorPrimary,\n    controlOutlineWidth,\n    controlOutline,\n    colorErrorOutline,\n    colorWarningOutline,\n    colorBgContainer\n  } = token;\n  return {\n    paddingBlock: Math.max(Math.round((controlHeight - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n    paddingBlockSM: Math.max(Math.round((controlHeightSM - fontSize * lineHeight) / 2 * 10) / 10 - lineWidth, 0),\n    paddingBlockLG: Math.ceil((controlHeightLG - fontSizeLG * lineHeightLG) / 2 * 10) / 10 - lineWidth,\n    paddingInline: paddingSM - lineWidth,\n    paddingInlineSM: controlPaddingHorizontalSM - lineWidth,\n    paddingInlineLG: controlPaddingHorizontal - lineWidth,\n    addonBg: colorFillAlter,\n    activeBorderColor: colorPrimary,\n    hoverBorderColor: colorPrimaryHover,\n    activeShadow: `0 0 0 ${controlOutlineWidth}px ${controlOutline}`,\n    errorActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorErrorOutline}`,\n    warningActiveShadow: `0 0 0 ${controlOutlineWidth}px ${colorWarningOutline}`,\n    hoverBg: colorBgContainer,\n    activeBg: colorBgContainer,\n    inputFontSize: fontSize,\n    inputFontSizeLG: fontSizeLG,\n    inputFontSizeSM: fontSize\n  };\n};","import { unit } from '@ant-design/cssinjs';\nimport { mergeToken } from '../../theme/internal';\nexport const genHoverStyle = token => ({\n  borderColor: token.hoverBorderColor,\n  backgroundColor: token.hoverBg\n});\nexport const genDisabledStyle = token => ({\n  color: token.colorTextDisabled,\n  backgroundColor: token.colorBgContainerDisabled,\n  borderColor: token.colorBorder,\n  boxShadow: 'none',\n  cursor: 'not-allowed',\n  opacity: 1,\n  'input[disabled], textarea[disabled]': {\n    cursor: 'not-allowed'\n  },\n  '&:hover:not([disabled])': Object.assign({}, genHoverStyle(mergeToken(token, {\n    hoverBorderColor: token.colorBorder,\n    hoverBg: token.colorBgContainerDisabled\n  })))\n});\n/* ============== Outlined ============== */\nexport const genBaseOutlinedStyle = (token, options) => ({\n  background: token.colorBgContainer,\n  borderWidth: token.lineWidth,\n  borderStyle: token.lineType,\n  borderColor: options.borderColor,\n  '&:hover': {\n    borderColor: options.hoverBorderColor,\n    backgroundColor: token.hoverBg\n  },\n  '&:focus, &:focus-within': {\n    borderColor: options.activeBorderColor,\n    boxShadow: options.activeShadow,\n    outline: 0,\n    backgroundColor: token.activeBg\n  }\n});\nconst genOutlinedStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseOutlinedStyle(token, options)), {\n    [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n      color: options.affixColor\n    }\n  }),\n  [`&${token.componentCls}-status-${options.status}${token.componentCls}-disabled`]: {\n    borderColor: options.borderColor\n  }\n});\nexport const genOutlinedStyle = (token, extraStyles) => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseOutlinedStyle(token, {\n    borderColor: token.colorBorder,\n    hoverBorderColor: token.hoverBorderColor,\n    activeBorderColor: token.activeBorderColor,\n    activeShadow: token.activeShadow\n  })), {\n    [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n  }), genOutlinedStatusStyle(token, {\n    status: 'error',\n    borderColor: token.colorError,\n    hoverBorderColor: token.colorErrorBorderHover,\n    activeBorderColor: token.colorError,\n    activeShadow: token.errorActiveShadow,\n    affixColor: token.colorError\n  })), genOutlinedStatusStyle(token, {\n    status: 'warning',\n    borderColor: token.colorWarning,\n    hoverBorderColor: token.colorWarningBorderHover,\n    activeBorderColor: token.colorWarning,\n    activeShadow: token.warningActiveShadow,\n    affixColor: token.colorWarning\n  })), extraStyles)\n});\nconst genOutlinedGroupStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n    [`${token.componentCls}-group-addon`]: {\n      borderColor: options.addonBorderColor,\n      color: options.addonColor\n    }\n  }\n});\nexport const genOutlinedGroupStyle = token => ({\n  '&-outlined': Object.assign(Object.assign(Object.assign({\n    [`${token.componentCls}-group`]: {\n      '&-addon': {\n        background: token.addonBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n      },\n      '&-addon:first-child': {\n        borderInlineEnd: 0\n      },\n      '&-addon:last-child': {\n        borderInlineStart: 0\n      }\n    }\n  }, genOutlinedGroupStatusStyle(token, {\n    status: 'error',\n    addonBorderColor: token.colorError,\n    addonColor: token.colorErrorText\n  })), genOutlinedGroupStatusStyle(token, {\n    status: 'warning',\n    addonBorderColor: token.colorWarning,\n    addonColor: token.colorWarningText\n  })), {\n    [`&${token.componentCls}-group-wrapper-disabled`]: {\n      [`${token.componentCls}-group-addon`]: Object.assign({}, genDisabledStyle(token))\n    }\n  })\n});\n/* ============ Borderless ============ */\nexport const genBorderlessStyle = (token, extraStyles) => {\n  const {\n    componentCls\n  } = token;\n  return {\n    '&-borderless': Object.assign({\n      background: 'transparent',\n      border: 'none',\n      '&:focus, &:focus-within': {\n        outline: 'none'\n      },\n      // >>>>> Disabled\n      [`&${componentCls}-disabled, &[disabled]`]: {\n        color: token.colorTextDisabled,\n        cursor: 'not-allowed'\n      },\n      // >>>>> Status\n      [`&${componentCls}-status-error`]: {\n        '&, & input, & textarea': {\n          color: token.colorError\n        }\n      },\n      [`&${componentCls}-status-warning`]: {\n        '&, & input, & textarea': {\n          color: token.colorWarning\n        }\n      }\n    }, extraStyles)\n  };\n};\n/* ============== Filled ============== */\nconst genBaseFilledStyle = (token, options) => ({\n  background: options.bg,\n  borderWidth: token.lineWidth,\n  borderStyle: token.lineType,\n  borderColor: 'transparent',\n  'input&, & input, textarea&, & textarea': {\n    color: options === null || options === void 0 ? void 0 : options.inputColor\n  },\n  '&:hover': {\n    background: options.hoverBg\n  },\n  '&:focus, &:focus-within': {\n    outline: 0,\n    borderColor: options.activeBorderColor,\n    backgroundColor: token.activeBg\n  }\n});\nconst genFilledStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-status-${options.status}:not(${token.componentCls}-disabled)`]: Object.assign(Object.assign({}, genBaseFilledStyle(token, options)), {\n    [`${token.componentCls}-prefix, ${token.componentCls}-suffix`]: {\n      color: options.affixColor\n    }\n  })\n});\nexport const genFilledStyle = (token, extraStyles) => ({\n  '&-filled': Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, genBaseFilledStyle(token, {\n    bg: token.colorFillTertiary,\n    hoverBg: token.colorFillSecondary,\n    activeBorderColor: token.activeBorderColor\n  })), {\n    [`&${token.componentCls}-disabled, &[disabled]`]: Object.assign({}, genDisabledStyle(token))\n  }), genFilledStatusStyle(token, {\n    status: 'error',\n    bg: token.colorErrorBg,\n    hoverBg: token.colorErrorBgHover,\n    activeBorderColor: token.colorError,\n    inputColor: token.colorErrorText,\n    affixColor: token.colorError\n  })), genFilledStatusStyle(token, {\n    status: 'warning',\n    bg: token.colorWarningBg,\n    hoverBg: token.colorWarningBgHover,\n    activeBorderColor: token.colorWarning,\n    inputColor: token.colorWarningText,\n    affixColor: token.colorWarning\n  })), extraStyles)\n});\nconst genFilledGroupStatusStyle = (token, options) => ({\n  [`&${token.componentCls}-group-wrapper-status-${options.status}`]: {\n    [`${token.componentCls}-group-addon`]: {\n      background: options.addonBg,\n      color: options.addonColor\n    }\n  }\n});\nexport const genFilledGroupStyle = token => ({\n  '&-filled': Object.assign(Object.assign(Object.assign({\n    [`${token.componentCls}-group`]: {\n      '&-addon': {\n        background: token.colorFillTertiary\n      },\n      [`${token.componentCls}-filled:not(:focus):not(:focus-within)`]: {\n        '&:not(:first-child)': {\n          borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n        },\n        '&:not(:last-child)': {\n          borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n        }\n      }\n    }\n  }, genFilledGroupStatusStyle(token, {\n    status: 'error',\n    addonBg: token.colorErrorBg,\n    addonColor: token.colorErrorText\n  })), genFilledGroupStatusStyle(token, {\n    status: 'warning',\n    addonBg: token.colorWarningBg,\n    addonColor: token.colorWarningText\n  })), {\n    [`&${token.componentCls}-group-wrapper-disabled`]: {\n      [`${token.componentCls}-group`]: {\n        '&-addon': {\n          background: token.colorFillTertiary,\n          color: token.colorTextDisabled\n        },\n        '&-addon:first-child': {\n          borderInlineStart: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n        },\n        '&-addon:last-child': {\n          borderInlineEnd: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderTop: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n          borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n        }\n      }\n    }\n  })\n});","import { unit } from '@ant-design/cssinjs';\nimport { clearFix, resetComponent } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { initComponentToken, initInputToken } from './token';\nimport { genBorderlessStyle, genFilledGroupStyle, genFilledStyle, genOutlinedGroupStyle, genOutlinedStyle } from './variants';\nexport { initComponentToken, initInputToken };\nexport const genPlaceholderStyle = color => ({\n  // Firefox\n  '&::-moz-placeholder': {\n    opacity: 1\n  },\n  '&::placeholder': {\n    color,\n    userSelect: 'none' // https://github.com/ant-design/ant-design/pull/32639\n  },\n  '&:placeholder-shown': {\n    textOverflow: 'ellipsis'\n  }\n});\nexport const genActiveStyle = token => ({\n  borderColor: token.activeBorderColor,\n  boxShadow: token.activeShadow,\n  outline: 0,\n  backgroundColor: token.activeBg\n});\nconst genInputLargeStyle = token => {\n  const {\n    paddingBlockLG,\n    lineHeightLG,\n    borderRadiusLG,\n    paddingInlineLG\n  } = token;\n  return {\n    padding: `${unit(paddingBlockLG)} ${unit(paddingInlineLG)}`,\n    fontSize: token.inputFontSizeLG,\n    lineHeight: lineHeightLG,\n    borderRadius: borderRadiusLG\n  };\n};\nexport const genInputSmallStyle = token => ({\n  padding: `${unit(token.paddingBlockSM)} ${unit(token.paddingInlineSM)}`,\n  fontSize: token.inputFontSizeSM,\n  borderRadius: token.borderRadiusSM\n});\nexport const genBasicInputStyle = token => Object.assign(Object.assign({\n  position: 'relative',\n  display: 'inline-block',\n  width: '100%',\n  minWidth: 0,\n  padding: `${unit(token.paddingBlock)} ${unit(token.paddingInline)}`,\n  color: token.colorText,\n  fontSize: token.inputFontSize,\n  lineHeight: token.lineHeight,\n  borderRadius: token.borderRadius,\n  transition: `all ${token.motionDurationMid}`\n}, genPlaceholderStyle(token.colorTextPlaceholder)), {\n  // Reset height for `textarea`s\n  'textarea&': {\n    maxWidth: '100%',\n    // prevent textarea resize from coming out of its container\n    height: 'auto',\n    minHeight: token.controlHeight,\n    lineHeight: token.lineHeight,\n    verticalAlign: 'bottom',\n    transition: `all ${token.motionDurationSlow}, height 0s`,\n    resize: 'vertical'\n  },\n  // Size\n  '&-lg': Object.assign({}, genInputLargeStyle(token)),\n  '&-sm': Object.assign({}, genInputSmallStyle(token)),\n  // RTL\n  '&-rtl, &-textarea-rtl': {\n    direction: 'rtl'\n  }\n});\nexport const genInputGroupStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    position: 'relative',\n    display: 'table',\n    width: '100%',\n    borderCollapse: 'separate',\n    borderSpacing: 0,\n    // Undo padding and float of grid classes\n    \"&[class*='col-']\": {\n      paddingInlineEnd: token.paddingXS,\n      '&:last-child': {\n        paddingInlineEnd: 0\n      }\n    },\n    // Sizing options\n    [`&-lg ${componentCls}, &-lg > ${componentCls}-group-addon`]: Object.assign({}, genInputLargeStyle(token)),\n    [`&-sm ${componentCls}, &-sm > ${componentCls}-group-addon`]: Object.assign({}, genInputSmallStyle(token)),\n    // Fix https://github.com/ant-design/ant-design/issues/5754\n    [`&-lg ${antCls}-select-single ${antCls}-select-selector`]: {\n      height: token.controlHeightLG\n    },\n    [`&-sm ${antCls}-select-single ${antCls}-select-selector`]: {\n      height: token.controlHeightSM\n    },\n    [`> ${componentCls}`]: {\n      display: 'table-cell',\n      '&:not(:first-child):not(:last-child)': {\n        borderRadius: 0\n      }\n    },\n    [`${componentCls}-group`]: {\n      '&-addon, &-wrap': {\n        display: 'table-cell',\n        width: 1,\n        whiteSpace: 'nowrap',\n        verticalAlign: 'middle',\n        '&:not(:first-child):not(:last-child)': {\n          borderRadius: 0\n        }\n      },\n      '&-wrap > *': {\n        display: 'block !important'\n      },\n      '&-addon': {\n        position: 'relative',\n        padding: `0 ${unit(token.paddingInline)}`,\n        color: token.colorText,\n        fontWeight: 'normal',\n        fontSize: token.inputFontSize,\n        textAlign: 'center',\n        borderRadius: token.borderRadius,\n        transition: `all ${token.motionDurationSlow}`,\n        lineHeight: 1,\n        // Reset Select's style in addon\n        [`${antCls}-select`]: {\n          margin: `${unit(token.calc(token.paddingBlock).add(1).mul(-1).equal())} ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n          [`&${antCls}-select-single:not(${antCls}-select-customize-input):not(${antCls}-pagination-size-changer)`]: {\n            [`${antCls}-select-selector`]: {\n              backgroundColor: 'inherit',\n              border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n              boxShadow: 'none'\n            }\n          }\n        },\n        // https://github.com/ant-design/ant-design/issues/31333\n        [`${antCls}-cascader-picker`]: {\n          margin: `-9px ${unit(token.calc(token.paddingInline).mul(-1).equal())}`,\n          backgroundColor: 'transparent',\n          [`${antCls}-cascader-input`]: {\n            textAlign: 'start',\n            border: 0,\n            boxShadow: 'none'\n          }\n        }\n      }\n    },\n    [componentCls]: {\n      width: '100%',\n      marginBottom: 0,\n      textAlign: 'inherit',\n      '&:focus': {\n        zIndex: 1,\n        // Fix https://gw.alipayobjects.com/zos/rmsportal/DHNpoqfMXSfrSnlZvhsJ.png\n        borderInlineEndWidth: 1\n      },\n      '&:hover': {\n        zIndex: 1,\n        borderInlineEndWidth: 1,\n        [`${componentCls}-search-with-button &`]: {\n          zIndex: 0\n        }\n      }\n    },\n    // Reset rounded corners\n    [`> ${componentCls}:first-child, ${componentCls}-group-addon:first-child`]: {\n      borderStartEndRadius: 0,\n      borderEndEndRadius: 0,\n      // Reset Select's style in addon\n      [`${antCls}-select ${antCls}-select-selector`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`> ${componentCls}-affix-wrapper`]: {\n      [`&:not(:first-child) ${componentCls}`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      },\n      [`&:not(:last-child) ${componentCls}`]: {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0\n      }\n    },\n    [`> ${componentCls}:last-child, ${componentCls}-group-addon:last-child`]: {\n      borderStartStartRadius: 0,\n      borderEndStartRadius: 0,\n      // Reset Select's style in addon\n      [`${antCls}-select ${antCls}-select-selector`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`${componentCls}-affix-wrapper`]: {\n      '&:not(:last-child)': {\n        borderStartEndRadius: 0,\n        borderEndEndRadius: 0,\n        [`${componentCls}-search &`]: {\n          borderStartStartRadius: token.borderRadius,\n          borderEndStartRadius: token.borderRadius\n        }\n      },\n      [`&:not(:first-child), ${componentCls}-search &:not(:first-child)`]: {\n        borderStartStartRadius: 0,\n        borderEndStartRadius: 0\n      }\n    },\n    [`&${componentCls}-group-compact`]: Object.assign(Object.assign({\n      display: 'block'\n    }, clearFix()), {\n      [`${componentCls}-group-addon, ${componentCls}-group-wrap, > ${componentCls}`]: {\n        '&:not(:first-child):not(:last-child)': {\n          borderInlineEndWidth: token.lineWidth,\n          '&:hover, &:focus': {\n            zIndex: 1\n          }\n        }\n      },\n      '& > *': {\n        display: 'inline-flex',\n        float: 'none',\n        verticalAlign: 'top',\n        // https://github.com/ant-design/ant-design-pro/issues/139\n        borderRadius: 0\n      },\n      [`\n        & > ${componentCls}-affix-wrapper,\n        & > ${componentCls}-number-affix-wrapper,\n        & > ${antCls}-picker-range\n      `]: {\n        display: 'inline-flex'\n      },\n      '& > *:not(:last-child)': {\n        marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n        borderInlineEndWidth: token.lineWidth\n      },\n      // Undo float for .ant-input-group .ant-input\n      [componentCls]: {\n        float: 'none'\n      },\n      // reset border for Select, DatePicker, AutoComplete, Cascader, Mention, TimePicker, Input\n      [`& > ${antCls}-select > ${antCls}-select-selector,\n      & > ${antCls}-select-auto-complete ${componentCls},\n      & > ${antCls}-cascader-picker ${componentCls},\n      & > ${componentCls}-group-wrapper ${componentCls}`]: {\n        borderInlineEndWidth: token.lineWidth,\n        borderRadius: 0,\n        '&:hover, &:focus': {\n          zIndex: 1\n        }\n      },\n      [`& > ${antCls}-select-focused`]: {\n        zIndex: 1\n      },\n      // update z-index for arrow icon\n      [`& > ${antCls}-select > ${antCls}-select-arrow`]: {\n        zIndex: 1 // https://github.com/ant-design/ant-design/issues/20371\n      },\n      [`& > *:first-child,\n      & > ${antCls}-select:first-child > ${antCls}-select-selector,\n      & > ${antCls}-select-auto-complete:first-child ${componentCls},\n      & > ${antCls}-cascader-picker:first-child ${componentCls}`]: {\n        borderStartStartRadius: token.borderRadius,\n        borderEndStartRadius: token.borderRadius\n      },\n      [`& > *:last-child,\n      & > ${antCls}-select:last-child > ${antCls}-select-selector,\n      & > ${antCls}-cascader-picker:last-child ${componentCls},\n      & > ${antCls}-cascader-picker-focused:last-child ${componentCls}`]: {\n        borderInlineEndWidth: token.lineWidth,\n        borderStartEndRadius: token.borderRadius,\n        borderEndEndRadius: token.borderRadius\n      },\n      // https://github.com/ant-design/ant-design/issues/12493\n      [`& > ${antCls}-select-auto-complete ${componentCls}`]: {\n        verticalAlign: 'top'\n      },\n      [`${componentCls}-group-wrapper + ${componentCls}-group-wrapper`]: {\n        marginInlineStart: token.calc(token.lineWidth).mul(-1).equal(),\n        [`${componentCls}-affix-wrapper`]: {\n          borderRadius: 0\n        }\n      },\n      [`${componentCls}-group-wrapper:not(:last-child)`]: {\n        [`&${componentCls}-search > ${componentCls}-group`]: {\n          [`& > ${componentCls}-group-addon > ${componentCls}-search-button`]: {\n            borderRadius: 0\n          },\n          [`& > ${componentCls}`]: {\n            borderStartStartRadius: token.borderRadius,\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0,\n            borderEndStartRadius: token.borderRadius\n          }\n        }\n      }\n    })\n  };\n};\nconst genInputStyle = token => {\n  const {\n    componentCls,\n    controlHeightSM,\n    lineWidth,\n    calc\n  } = token;\n  const FIXED_CHROME_COLOR_HEIGHT = 16;\n  const colorSmallPadding = calc(controlHeightSM).sub(calc(lineWidth).mul(2)).sub(FIXED_CHROME_COLOR_HEIGHT).div(2).equal();\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genBasicInputStyle(token)), genOutlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token)), {\n      '&[type=\"color\"]': {\n        height: token.controlHeight,\n        [`&${componentCls}-lg`]: {\n          height: token.controlHeightLG\n        },\n        [`&${componentCls}-sm`]: {\n          height: controlHeightSM,\n          paddingTop: colorSmallPadding,\n          paddingBottom: colorSmallPadding\n        }\n      },\n      '&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration': {\n        '-webkit-appearance': 'none'\n      }\n    })\n  };\n};\nconst genAllowClearStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    // ========================= Input =========================\n    [`${componentCls}-clear-icon`]: {\n      margin: 0,\n      padding: 0,\n      lineHeight: 0,\n      color: token.colorTextQuaternary,\n      fontSize: token.fontSizeIcon,\n      verticalAlign: -1,\n      // https://github.com/ant-design/ant-design/pull/18151\n      // https://codesandbox.io/s/wizardly-sun-u10br\n      cursor: 'pointer',\n      transition: `color ${token.motionDurationSlow}`,\n      border: 'none',\n      outline: 'none',\n      backgroundColor: 'transparent',\n      '&:hover': {\n        color: token.colorTextTertiary\n      },\n      '&:active': {\n        color: token.colorText\n      },\n      '&-hidden': {\n        visibility: 'hidden'\n      },\n      '&-has-suffix': {\n        margin: `0 ${unit(token.inputAffixPadding)}`\n      }\n    }\n  };\n};\nconst genAffixStyle = token => {\n  const {\n    componentCls,\n    inputAffixPadding,\n    colorTextDescription,\n    motionDurationSlow,\n    colorIcon,\n    colorIconHover,\n    iconCls\n  } = token;\n  const affixCls = `${componentCls}-affix-wrapper`;\n  const affixClsDisabled = `${componentCls}-affix-wrapper-disabled`;\n  return {\n    [affixCls]: Object.assign(Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), {\n      display: 'inline-flex',\n      [`&:not(${componentCls}-disabled):hover`]: {\n        zIndex: 1,\n        [`${componentCls}-search-with-button &`]: {\n          zIndex: 0\n        }\n      },\n      '&-focused, &:focus': {\n        zIndex: 1\n      },\n      [`> input${componentCls}`]: {\n        padding: 0\n      },\n      [`> input${componentCls}, > textarea${componentCls}`]: {\n        fontSize: 'inherit',\n        border: 'none',\n        borderRadius: 0,\n        outline: 'none',\n        background: 'transparent',\n        color: 'inherit',\n        '&::-ms-reveal': {\n          display: 'none'\n        },\n        '&:focus': {\n          boxShadow: 'none !important'\n        }\n      },\n      '&::before': {\n        display: 'inline-block',\n        width: 0,\n        visibility: 'hidden',\n        content: '\"\\\\a0\"'\n      },\n      [componentCls]: {\n        '&-prefix, &-suffix': {\n          display: 'flex',\n          flex: 'none',\n          alignItems: 'center',\n          '> *:not(:last-child)': {\n            marginInlineEnd: token.paddingXS\n          }\n        },\n        '&-show-count-suffix': {\n          color: colorTextDescription\n        },\n        '&-show-count-has-suffix': {\n          marginInlineEnd: token.paddingXXS\n        },\n        '&-prefix': {\n          marginInlineEnd: inputAffixPadding\n        },\n        '&-suffix': {\n          marginInlineStart: inputAffixPadding\n        }\n      }\n    }), genAllowClearStyle(token)), {\n      // password\n      [`${iconCls}${componentCls}-password-icon`]: {\n        color: colorIcon,\n        cursor: 'pointer',\n        transition: `all ${motionDurationSlow}`,\n        '&:hover': {\n          color: colorIconHover\n        }\n      }\n    }),\n    [affixClsDisabled]: {\n      // password disabled\n      [`${iconCls}${componentCls}-password-icon`]: {\n        color: colorIcon,\n        cursor: 'not-allowed',\n        '&:hover': {\n          color: colorIcon\n        }\n      }\n    }\n  };\n};\nconst genGroupStyle = token => {\n  const {\n    componentCls,\n    borderRadiusLG,\n    borderRadiusSM\n  } = token;\n  return {\n    [`${componentCls}-group`]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genInputGroupStyle(token)), {\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      '&-wrapper': Object.assign(Object.assign(Object.assign({\n        display: 'inline-block',\n        width: '100%',\n        textAlign: 'start',\n        verticalAlign: 'top',\n        '&-rtl': {\n          direction: 'rtl'\n        },\n        // Size\n        '&-lg': {\n          [`${componentCls}-group-addon`]: {\n            borderRadius: borderRadiusLG,\n            fontSize: token.inputFontSizeLG\n          }\n        },\n        '&-sm': {\n          [`${componentCls}-group-addon`]: {\n            borderRadius: borderRadiusSM\n          }\n        }\n      }, genOutlinedGroupStyle(token)), genFilledGroupStyle(token)), {\n        // '&-disabled': {\n        //   [`${componentCls}-group-addon`]: {\n        //     ...genDisabledStyle(token),\n        //   },\n        // },\n        // Fix the issue of using icons in Space Compact mode\n        // https://github.com/ant-design/ant-design/issues/42122\n        [`&:not(${componentCls}-compact-first-item):not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderRadius: 0\n          }\n        },\n        [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-first-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        },\n        [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-last-item`]: {\n          [`${componentCls}, ${componentCls}-group-addon`]: {\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0\n          }\n        },\n        // Fix the issue of input use show-count param in space compact mode\n        // https://github.com/ant-design/ant-design/issues/46872\n        [`&:not(${componentCls}-compact-last-item)${componentCls}-compact-item`]: {\n          [`${componentCls}-affix-wrapper`]: {\n            borderStartEndRadius: 0,\n            borderEndEndRadius: 0\n          }\n        },\n        // Fix the issue of input use `addonAfter` param in space compact mode\n        // https://github.com/ant-design/ant-design/issues/52483\n        [`&:not(${componentCls}-compact-first-item)${componentCls}-compact-item`]: {\n          [`${componentCls}-affix-wrapper`]: {\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0\n          }\n        }\n      })\n    })\n  };\n};\nconst genSearchInputStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  const searchPrefixCls = `${componentCls}-search`;\n  return {\n    [searchPrefixCls]: {\n      [componentCls]: {\n        '&:hover, &:focus': {\n          [`+ ${componentCls}-group-addon ${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n            borderInlineStartColor: token.colorPrimaryHover\n          }\n        }\n      },\n      [`${componentCls}-affix-wrapper`]: {\n        height: token.controlHeight,\n        borderRadius: 0\n      },\n      // fix slight height diff in Firefox:\n      // https://ant.design/components/auto-complete-cn/#auto-complete-demo-certain-category\n      [`${componentCls}-lg`]: {\n        lineHeight: token.calc(token.lineHeightLG).sub(0.0002).equal()\n      },\n      [`> ${componentCls}-group`]: {\n        [`> ${componentCls}-group-addon:last-child`]: {\n          insetInlineStart: -1,\n          padding: 0,\n          border: 0,\n          [`${searchPrefixCls}-button`]: {\n            // Fix https://github.com/ant-design/ant-design/issues/47150\n            marginInlineEnd: -1,\n            borderStartStartRadius: 0,\n            borderEndStartRadius: 0,\n            boxShadow: 'none'\n          },\n          [`${searchPrefixCls}-button:not(${antCls}-btn-primary)`]: {\n            color: token.colorTextDescription,\n            '&:hover': {\n              color: token.colorPrimaryHover\n            },\n            '&:active': {\n              color: token.colorPrimaryActive\n            },\n            [`&${antCls}-btn-loading::before`]: {\n              insetInlineStart: 0,\n              insetInlineEnd: 0,\n              insetBlockStart: 0,\n              insetBlockEnd: 0\n            }\n          }\n        }\n      },\n      [`${searchPrefixCls}-button`]: {\n        height: token.controlHeight,\n        '&:hover, &:focus': {\n          zIndex: 1\n        }\n      },\n      '&-large': {\n        [`${componentCls}-affix-wrapper, ${searchPrefixCls}-button`]: {\n          height: token.controlHeightLG\n        }\n      },\n      '&-small': {\n        [`${componentCls}-affix-wrapper, ${searchPrefixCls}-button`]: {\n          height: token.controlHeightSM\n        }\n      },\n      '&-rtl': {\n        direction: 'rtl'\n      },\n      // ===================== Compact Item Customized Styles =====================\n      [`&${componentCls}-compact-item`]: {\n        [`&:not(${componentCls}-compact-last-item)`]: {\n          [`${componentCls}-group-addon`]: {\n            [`${componentCls}-search-button`]: {\n              marginInlineEnd: token.calc(token.lineWidth).mul(-1).equal(),\n              borderRadius: 0\n            }\n          }\n        },\n        [`&:not(${componentCls}-compact-first-item)`]: {\n          [`${componentCls},${componentCls}-affix-wrapper`]: {\n            borderRadius: 0\n          }\n        },\n        [`> ${componentCls}-group-addon ${componentCls}-search-button,\n        > ${componentCls},\n        ${componentCls}-affix-wrapper`]: {\n          '&:hover, &:focus, &:active': {\n            zIndex: 2\n          }\n        },\n        [`> ${componentCls}-affix-wrapper-focused`]: {\n          zIndex: 2\n        }\n      }\n    }\n  };\n};\nconst genTextAreaStyle = token => {\n  const {\n    componentCls,\n    paddingLG\n  } = token;\n  const textareaPrefixCls = `${componentCls}-textarea`;\n  return {\n    [textareaPrefixCls]: {\n      position: 'relative',\n      '&-show-count': {\n        // https://github.com/ant-design/ant-design/issues/33049\n        [`> ${componentCls}`]: {\n          height: '100%'\n        },\n        [`${componentCls}-data-count`]: {\n          position: 'absolute',\n          bottom: token.calc(token.fontSize).mul(token.lineHeight).mul(-1).equal(),\n          insetInlineEnd: 0,\n          color: token.colorTextDescription,\n          whiteSpace: 'nowrap',\n          pointerEvents: 'none'\n        }\n      },\n      [`\n        &-allow-clear > ${componentCls},\n        &-affix-wrapper${textareaPrefixCls}-has-feedback ${componentCls}\n      `]: {\n        paddingInlineEnd: paddingLG\n      },\n      [`&-affix-wrapper${componentCls}-affix-wrapper`]: {\n        padding: 0,\n        [`> textarea${componentCls}`]: {\n          fontSize: 'inherit',\n          border: 'none',\n          outline: 'none',\n          background: 'transparent',\n          '&:focus': {\n            boxShadow: 'none !important'\n          }\n        },\n        [`${componentCls}-suffix`]: {\n          margin: 0,\n          '> *:not(:last-child)': {\n            marginInline: 0\n          },\n          // Clear Icon\n          [`${componentCls}-clear-icon`]: {\n            position: 'absolute',\n            insetInlineEnd: token.paddingInline,\n            insetBlockStart: token.paddingXS\n          },\n          // Feedback Icon\n          [`${textareaPrefixCls}-suffix`]: {\n            position: 'absolute',\n            top: 0,\n            insetInlineEnd: token.paddingInline,\n            bottom: 0,\n            zIndex: 1,\n            display: 'inline-flex',\n            alignItems: 'center',\n            margin: 'auto',\n            pointerEvents: 'none'\n          }\n        }\n      },\n      [`&-affix-wrapper${componentCls}-affix-wrapper-sm`]: {\n        [`${componentCls}-suffix`]: {\n          [`${componentCls}-clear-icon`]: {\n            insetInlineEnd: token.paddingInlineSM\n          }\n        }\n      }\n    }\n  };\n};\n// ============================== Range ===============================\nconst genRangeStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-out-of-range`]: {\n      [`&, & input, & textarea, ${componentCls}-show-count-suffix, ${componentCls}-data-count`]: {\n        color: token.colorError\n      }\n    }\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Input', token => {\n  const inputToken = mergeToken(token, initInputToken(token));\n  return [genInputStyle(inputToken), genTextAreaStyle(inputToken), genAffixStyle(inputToken), genGroupStyle(inputToken), genSearchInputStyle(inputToken), genRangeStyle(inputToken),\n  // =====================================================\n  // ==             Space Compact                       ==\n  // =====================================================\n  genCompactItemStyle(inputToken)];\n}, initComponentToken, {\n  resetFont: false\n});","import { unit } from '@ant-design/cssinjs';\nimport { genBasicInputStyle, genInputSmallStyle, initComponentToken, initInputToken } from '../../input/style';\nimport { genBaseOutlinedStyle, genDisabledStyle } from '../../input/style/variants';\nimport { genFocusOutline, genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genPaginationDisabledStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-disabled`]: {\n      '&, &:hover': {\n        cursor: 'not-allowed',\n        [`${componentCls}-item-link`]: {\n          color: token.colorTextDisabled,\n          cursor: 'not-allowed'\n        }\n      },\n      '&:focus-visible': {\n        cursor: 'not-allowed',\n        [`${componentCls}-item-link`]: {\n          color: token.colorTextDisabled,\n          cursor: 'not-allowed'\n        }\n      }\n    },\n    [`&${componentCls}-disabled`]: {\n      cursor: 'not-allowed',\n      [`${componentCls}-item`]: {\n        cursor: 'not-allowed',\n        '&:hover, &:active': {\n          backgroundColor: 'transparent'\n        },\n        a: {\n          color: token.colorTextDisabled,\n          backgroundColor: 'transparent',\n          border: 'none',\n          cursor: 'not-allowed'\n        },\n        '&-active': {\n          borderColor: token.colorBorder,\n          backgroundColor: token.itemActiveBgDisabled,\n          '&:hover, &:active': {\n            backgroundColor: token.itemActiveBgDisabled\n          },\n          a: {\n            color: token.itemActiveColorDisabled\n          }\n        }\n      },\n      [`${componentCls}-item-link`]: {\n        color: token.colorTextDisabled,\n        cursor: 'not-allowed',\n        '&:hover, &:active': {\n          backgroundColor: 'transparent'\n        },\n        [`${componentCls}-simple&`]: {\n          backgroundColor: 'transparent',\n          '&:hover, &:active': {\n            backgroundColor: 'transparent'\n          }\n        }\n      },\n      [`${componentCls}-simple-pager`]: {\n        color: token.colorTextDisabled\n      },\n      [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n        [`${componentCls}-item-link-icon`]: {\n          opacity: 0\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          opacity: 1\n        }\n      }\n    },\n    [`&${componentCls}-simple`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&${componentCls}-disabled ${componentCls}-item-link`]: {\n          '&:hover, &:active': {\n            backgroundColor: 'transparent'\n          }\n        }\n      }\n    }\n  };\n};\nconst genPaginationMiniStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`&${componentCls}-mini ${componentCls}-total-text, &${componentCls}-mini ${componentCls}-simple-pager`]: {\n      height: token.itemSizeSM,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini ${componentCls}-item`]: {\n      minWidth: token.itemSizeSM,\n      height: token.itemSizeSM,\n      margin: 0,\n      lineHeight: unit(token.calc(token.itemSizeSM).sub(2).equal())\n    },\n    [`&${componentCls}-mini:not(${componentCls}-disabled) ${componentCls}-item:not(${componentCls}-item-active)`]: {\n      backgroundColor: 'transparent',\n      borderColor: 'transparent',\n      '&:hover': {\n        backgroundColor: token.colorBgTextHover\n      },\n      '&:active': {\n        backgroundColor: token.colorBgTextActive\n      }\n    },\n    [`&${componentCls}-mini ${componentCls}-prev, &${componentCls}-mini ${componentCls}-next`]: {\n      minWidth: token.itemSizeSM,\n      height: token.itemSizeSM,\n      margin: 0,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini:not(${componentCls}-disabled)`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&:hover ${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgTextHover\n        },\n        [`&:active ${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgTextActive\n        },\n        [`&${componentCls}-disabled:hover ${componentCls}-item-link`]: {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n    [`\n    &${componentCls}-mini ${componentCls}-prev ${componentCls}-item-link,\n    &${componentCls}-mini ${componentCls}-next ${componentCls}-item-link\n    `]: {\n      backgroundColor: 'transparent',\n      borderColor: 'transparent',\n      '&::after': {\n        height: token.itemSizeSM,\n        lineHeight: unit(token.itemSizeSM)\n      }\n    },\n    [`&${componentCls}-mini ${componentCls}-jump-prev, &${componentCls}-mini ${componentCls}-jump-next`]: {\n      height: token.itemSizeSM,\n      marginInlineEnd: 0,\n      lineHeight: unit(token.itemSizeSM)\n    },\n    [`&${componentCls}-mini ${componentCls}-options`]: {\n      marginInlineStart: token.paginationMiniOptionsMarginInlineStart,\n      '&-size-changer': {\n        top: token.miniOptionsSizeChangerTop\n      },\n      '&-quick-jumper': {\n        height: token.itemSizeSM,\n        lineHeight: unit(token.itemSizeSM),\n        input: Object.assign(Object.assign({}, genInputSmallStyle(token)), {\n          width: token.paginationMiniQuickJumperInputWidth,\n          height: token.controlHeightSM\n        })\n      }\n    }\n  };\n};\nconst genPaginationSimpleStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`\n    &${componentCls}-simple ${componentCls}-prev,\n    &${componentCls}-simple ${componentCls}-next\n    `]: {\n      height: token.itemSizeSM,\n      lineHeight: unit(token.itemSizeSM),\n      verticalAlign: 'top',\n      [`${componentCls}-item-link`]: {\n        height: token.itemSizeSM,\n        backgroundColor: 'transparent',\n        border: 0,\n        '&:hover': {\n          backgroundColor: token.colorBgTextHover\n        },\n        '&:active': {\n          backgroundColor: token.colorBgTextActive\n        },\n        '&::after': {\n          height: token.itemSizeSM,\n          lineHeight: unit(token.itemSizeSM)\n        }\n      }\n    },\n    [`&${componentCls}-simple ${componentCls}-simple-pager`]: {\n      display: 'inline-block',\n      height: token.itemSizeSM,\n      marginInlineEnd: token.marginXS,\n      input: {\n        boxSizing: 'border-box',\n        height: '100%',\n        padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n        textAlign: 'center',\n        backgroundColor: token.itemInputBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n        borderRadius: token.borderRadius,\n        outline: 'none',\n        transition: `border-color ${token.motionDurationMid}`,\n        color: 'inherit',\n        '&:hover': {\n          borderColor: token.colorPrimary\n        },\n        '&:focus': {\n          borderColor: token.colorPrimaryHover,\n          boxShadow: `${unit(token.inputOutlineOffset)} 0 ${unit(token.controlOutlineWidth)} ${token.controlOutline}`\n        },\n        '&[disabled]': {\n          color: token.colorTextDisabled,\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          cursor: 'not-allowed'\n        }\n      }\n    }\n  };\n};\nconst genPaginationJumpStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n      outline: 0,\n      [`${componentCls}-item-container`]: {\n        position: 'relative',\n        [`${componentCls}-item-link-icon`]: {\n          color: token.colorPrimary,\n          fontSize: token.fontSizeSM,\n          opacity: 0,\n          transition: `all ${token.motionDurationMid}`,\n          '&-svg': {\n            top: 0,\n            insetInlineEnd: 0,\n            bottom: 0,\n            insetInlineStart: 0,\n            margin: 'auto'\n          }\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          position: 'absolute',\n          top: 0,\n          insetInlineEnd: 0,\n          bottom: 0,\n          insetInlineStart: 0,\n          display: 'block',\n          margin: 'auto',\n          color: token.colorTextDisabled,\n          letterSpacing: token.paginationEllipsisLetterSpacing,\n          textAlign: 'center',\n          textIndent: token.paginationEllipsisTextIndent,\n          opacity: 1,\n          transition: `all ${token.motionDurationMid}`\n        }\n      },\n      '&:hover': {\n        [`${componentCls}-item-link-icon`]: {\n          opacity: 1\n        },\n        [`${componentCls}-item-ellipsis`]: {\n          opacity: 0\n        }\n      }\n    },\n    [`\n    ${componentCls}-prev,\n    ${componentCls}-jump-prev,\n    ${componentCls}-jump-next\n    `]: {\n      marginInlineEnd: token.marginXS\n    },\n    [`\n    ${componentCls}-prev,\n    ${componentCls}-next,\n    ${componentCls}-jump-prev,\n    ${componentCls}-jump-next\n    `]: {\n      display: 'inline-block',\n      minWidth: token.itemSize,\n      height: token.itemSize,\n      color: token.colorText,\n      fontFamily: token.fontFamily,\n      lineHeight: unit(token.itemSize),\n      textAlign: 'center',\n      verticalAlign: 'middle',\n      listStyle: 'none',\n      borderRadius: token.borderRadius,\n      cursor: 'pointer',\n      transition: `all ${token.motionDurationMid}`\n    },\n    [`${componentCls}-prev, ${componentCls}-next`]: {\n      outline: 0,\n      button: {\n        color: token.colorText,\n        cursor: 'pointer',\n        userSelect: 'none'\n      },\n      [`${componentCls}-item-link`]: {\n        display: 'block',\n        width: '100%',\n        height: '100%',\n        padding: 0,\n        fontSize: token.fontSizeSM,\n        textAlign: 'center',\n        backgroundColor: 'transparent',\n        border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n        borderRadius: token.borderRadius,\n        outline: 'none',\n        transition: `all ${token.motionDurationMid}`\n      },\n      [`&:hover ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgTextHover\n      },\n      [`&:active ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgTextActive\n      },\n      [`&${componentCls}-disabled:hover`]: {\n        [`${componentCls}-item-link`]: {\n          backgroundColor: 'transparent'\n        }\n      }\n    },\n    [`${componentCls}-slash`]: {\n      marginInlineEnd: token.paginationSlashMarginInlineEnd,\n      marginInlineStart: token.paginationSlashMarginInlineStart\n    },\n    [`${componentCls}-options`]: {\n      display: 'inline-block',\n      marginInlineStart: token.margin,\n      verticalAlign: 'middle',\n      '&-size-changer': {\n        display: 'inline-block',\n        width: 'auto'\n      },\n      '&-quick-jumper': {\n        display: 'inline-block',\n        height: token.controlHeight,\n        marginInlineStart: token.marginXS,\n        lineHeight: unit(token.controlHeight),\n        verticalAlign: 'top',\n        input: Object.assign(Object.assign(Object.assign({}, genBasicInputStyle(token)), genBaseOutlinedStyle(token, {\n          borderColor: token.colorBorder,\n          hoverBorderColor: token.colorPrimaryHover,\n          activeBorderColor: token.colorPrimary,\n          activeShadow: token.activeShadow\n        })), {\n          '&[disabled]': Object.assign({}, genDisabledStyle(token)),\n          width: token.calc(token.controlHeightLG).mul(1.25).equal(),\n          height: token.controlHeight,\n          boxSizing: 'border-box',\n          margin: 0,\n          marginInlineStart: token.marginXS,\n          marginInlineEnd: token.marginXS\n        })\n      }\n    }\n  };\n};\nconst genPaginationItemStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}-item`]: {\n      display: 'inline-block',\n      minWidth: token.itemSize,\n      height: token.itemSize,\n      marginInlineEnd: token.marginXS,\n      fontFamily: token.fontFamily,\n      lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n      textAlign: 'center',\n      verticalAlign: 'middle',\n      listStyle: 'none',\n      backgroundColor: token.itemBg,\n      border: `${unit(token.lineWidth)} ${token.lineType} transparent`,\n      borderRadius: token.borderRadius,\n      outline: 0,\n      cursor: 'pointer',\n      userSelect: 'none',\n      a: {\n        display: 'block',\n        padding: `0 ${unit(token.paginationItemPaddingInline)}`,\n        color: token.colorText,\n        '&:hover': {\n          textDecoration: 'none'\n        }\n      },\n      [`&:not(${componentCls}-item-active)`]: {\n        '&:hover': {\n          transition: `all ${token.motionDurationMid}`,\n          backgroundColor: token.colorBgTextHover\n        },\n        '&:active': {\n          backgroundColor: token.colorBgTextActive\n        }\n      },\n      '&-active': {\n        fontWeight: token.fontWeightStrong,\n        backgroundColor: token.itemActiveBg,\n        borderColor: token.colorPrimary,\n        a: {\n          color: token.colorPrimary\n        },\n        '&:hover': {\n          borderColor: token.colorPrimaryHover\n        },\n        '&:hover a': {\n          color: token.colorPrimaryHover\n        }\n      }\n    }\n  };\n};\nconst genPaginationStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, resetComponent(token)), {\n      display: 'flex',\n      '&-start': {\n        justifyContent: 'start'\n      },\n      '&-center': {\n        justifyContent: 'center'\n      },\n      '&-end': {\n        justifyContent: 'end'\n      },\n      'ul, ol': {\n        margin: 0,\n        padding: 0,\n        listStyle: 'none'\n      },\n      '&::after': {\n        display: 'block',\n        clear: 'both',\n        height: 0,\n        overflow: 'hidden',\n        visibility: 'hidden',\n        content: '\"\"'\n      },\n      [`${componentCls}-total-text`]: {\n        display: 'inline-block',\n        height: token.itemSize,\n        marginInlineEnd: token.marginXS,\n        lineHeight: unit(token.calc(token.itemSize).sub(2).equal()),\n        verticalAlign: 'middle'\n      }\n    }), genPaginationItemStyle(token)), genPaginationJumpStyle(token)), genPaginationSimpleStyle(token)), genPaginationMiniStyle(token)), genPaginationDisabledStyle(token)), {\n      // media query style\n      [`@media only screen and (max-width: ${token.screenLG}px)`]: {\n        [`${componentCls}-item`]: {\n          '&-after-jump-prev, &-before-jump-next': {\n            display: 'none'\n          }\n        }\n      },\n      [`@media only screen and (max-width: ${token.screenSM}px)`]: {\n        [`${componentCls}-options`]: {\n          display: 'none'\n        }\n      }\n    }),\n    // rtl style\n    [`&${token.componentCls}-rtl`]: {\n      direction: 'rtl'\n    }\n  };\n};\nconst genPaginationFocusStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}:not(${componentCls}-disabled)`]: {\n      [`${componentCls}-item`]: Object.assign({}, genFocusStyle(token)),\n      [`${componentCls}-jump-prev, ${componentCls}-jump-next`]: {\n        '&:focus-visible': Object.assign({\n          [`${componentCls}-item-link-icon`]: {\n            opacity: 1\n          },\n          [`${componentCls}-item-ellipsis`]: {\n            opacity: 0\n          }\n        }, genFocusOutline(token))\n      },\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        [`&:focus-visible ${componentCls}-item-link`]: Object.assign({}, genFocusOutline(token))\n      }\n    }\n  };\n};\nexport const prepareComponentToken = token => Object.assign({\n  itemBg: token.colorBgContainer,\n  itemSize: token.controlHeight,\n  itemSizeSM: token.controlHeightSM,\n  itemActiveBg: token.colorBgContainer,\n  itemLinkBg: token.colorBgContainer,\n  itemActiveColorDisabled: token.colorTextDisabled,\n  itemActiveBgDisabled: token.controlItemBgActiveDisabled,\n  itemInputBg: token.colorBgContainer,\n  miniOptionsSizeChangerTop: 0\n}, initComponentToken(token));\nexport const prepareToken = token => mergeToken(token, {\n  inputOutlineOffset: 0,\n  paginationMiniOptionsMarginInlineStart: token.calc(token.marginXXS).div(2).equal(),\n  paginationMiniQuickJumperInputWidth: token.calc(token.controlHeightLG).mul(1.1).equal(),\n  paginationItemPaddingInline: token.calc(token.marginXXS).mul(1.5).equal(),\n  paginationEllipsisLetterSpacing: token.calc(token.marginXXS).div(2).equal(),\n  paginationSlashMarginInlineStart: token.marginSM,\n  paginationSlashMarginInlineEnd: token.marginSM,\n  paginationEllipsisTextIndent: '0.13em' // magic for ui experience\n}, initInputToken(token));\n// ============================== Export ==============================\nexport default genStyleHooks('Pagination', token => {\n  const paginationToken = prepareToken(token);\n  return [genPaginationStyle(paginationToken), genPaginationFocusStyle(paginationToken)];\n}, prepareComponentToken);","import { unit } from '@ant-design/cssinjs';\nimport { prepareComponentToken, prepareToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\nconst genBorderedStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return {\n    [`${componentCls}${componentCls}-bordered${componentCls}-disabled:not(${componentCls}-mini)`]: {\n      '&, &:hover': {\n        [`${componentCls}-item-link`]: {\n          borderColor: token.colorBorder\n        }\n      },\n      '&:focus-visible': {\n        [`${componentCls}-item-link`]: {\n          borderColor: token.colorBorder\n        }\n      },\n      [`${componentCls}-item, ${componentCls}-item-link`]: {\n        backgroundColor: token.colorBgContainerDisabled,\n        borderColor: token.colorBorder,\n        [`&:hover:not(${componentCls}-item-active)`]: {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          a: {\n            color: token.colorTextDisabled\n          }\n        },\n        [`&${componentCls}-item-active`]: {\n          backgroundColor: token.itemActiveBgDisabled\n        }\n      },\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        '&:hover button': {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder,\n          color: token.colorTextDisabled\n        },\n        [`${componentCls}-item-link`]: {\n          backgroundColor: token.colorBgContainerDisabled,\n          borderColor: token.colorBorder\n        }\n      }\n    },\n    [`${componentCls}${componentCls}-bordered:not(${componentCls}-mini)`]: {\n      [`${componentCls}-prev, ${componentCls}-next`]: {\n        '&:hover button': {\n          borderColor: token.colorPrimaryHover,\n          backgroundColor: token.itemBg\n        },\n        [`${componentCls}-item-link`]: {\n          backgroundColor: token.itemLinkBg,\n          borderColor: token.colorBorder\n        },\n        [`&:hover ${componentCls}-item-link`]: {\n          borderColor: token.colorPrimary,\n          backgroundColor: token.itemBg,\n          color: token.colorPrimary\n        },\n        [`&${componentCls}-disabled`]: {\n          [`${componentCls}-item-link`]: {\n            borderColor: token.colorBorder,\n            color: token.colorTextDisabled\n          }\n        }\n      },\n      [`${componentCls}-item`]: {\n        backgroundColor: token.itemBg,\n        border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n        [`&:hover:not(${componentCls}-item-active)`]: {\n          borderColor: token.colorPrimary,\n          backgroundColor: token.itemBg,\n          a: {\n            color: token.colorPrimary\n          }\n        },\n        '&-active': {\n          borderColor: token.colorPrimary\n        }\n      }\n    }\n  };\n};\nexport default genSubStyleComponent(['Pagination', 'bordered'], token => {\n  const paginationToken = prepareToken(token);\n  return [genBorderedStyle(paginationToken)];\n}, prepareComponentToken);","import { useMemo } from 'react';\nexport default function useShowSizeChanger(showSizeChanger) {\n  return useMemo(() => {\n    if (typeof showSizeChanger === 'boolean') {\n      return [showSizeChanger, {}];\n    }\n    if (showSizeChanger && typeof showSizeChanger === 'object') {\n      return [true, showSizeChanger];\n    }\n    return [undefined, undefined];\n  }, [showSizeChanger]);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport DoubleLeftOutlined from \"@ant-design/icons/es/icons/DoubleLeftOutlined\";\nimport DoubleRightOutlined from \"@ant-design/icons/es/icons/DoubleRightOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport classNames from 'classnames';\nimport RcPagination from 'rc-pagination';\nimport enUS from \"rc-pagination/es/locale/en_US\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport { useLocale } from '../locale';\nimport Select from '../select';\nimport { useToken } from '../theme/internal';\nimport useStyle from './style';\nimport BorderedStyle from './style/bordered';\nimport useShowSizeChanger from './useShowSizeChanger';\nconst Pagination = props => {\n  const {\n      align,\n      prefixCls: customizePrefixCls,\n      selectPrefixCls: customizeSelectPrefixCls,\n      className,\n      rootClassName,\n      style,\n      size: customizeSize,\n      locale: customLocale,\n      responsive,\n      showSizeChanger,\n      selectComponentClass,\n      pageSizeOptions\n    } = props,\n    restProps = __rest(props, [\"align\", \"prefixCls\", \"selectPrefixCls\", \"className\", \"rootClassName\", \"style\", \"size\", \"locale\", \"responsive\", \"showSizeChanger\", \"selectComponentClass\", \"pageSizeOptions\"]);\n  const {\n    xs\n  } = useBreakpoint(responsive);\n  const [, token] = useToken();\n  const {\n    getPrefixCls,\n    direction,\n    pagination = {}\n  } = React.useContext(ConfigContext);\n  const prefixCls = getPrefixCls('pagination', customizePrefixCls);\n  // Style\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  // ============================== Size ==============================\n  const mergedSize = useSize(customizeSize);\n  const isSmall = mergedSize === 'small' || !!(xs && !mergedSize && responsive);\n  // ============================= Locale =============================\n  const [contextLocale] = useLocale('Pagination', enUS);\n  const locale = Object.assign(Object.assign({}, contextLocale), customLocale);\n  // ========================== Size Changer ==========================\n  // Merge the props showSizeChanger\n  const [propShowSizeChanger, propSizeChangerSelectProps] = useShowSizeChanger(showSizeChanger);\n  const [contextShowSizeChanger, contextSizeChangerSelectProps] = useShowSizeChanger(pagination.showSizeChanger);\n  const mergedShowSizeChanger = propShowSizeChanger !== null && propShowSizeChanger !== void 0 ? propShowSizeChanger : contextShowSizeChanger;\n  const mergedShowSizeChangerSelectProps = propSizeChangerSelectProps !== null && propSizeChangerSelectProps !== void 0 ? propSizeChangerSelectProps : contextSizeChangerSelectProps;\n  const SizeChanger = selectComponentClass || Select;\n  // Generate options\n  const mergedPageSizeOptions = React.useMemo(() => {\n    return pageSizeOptions ? pageSizeOptions.map(option => Number(option)) : undefined;\n  }, [pageSizeOptions]);\n  // Render size changer\n  const sizeChangerRender = info => {\n    var _a;\n    const {\n      disabled,\n      size: pageSize,\n      onSizeChange,\n      'aria-label': ariaLabel,\n      className: sizeChangerClassName,\n      options\n    } = info;\n    const {\n      className: propSizeChangerClassName,\n      onChange: propSizeChangerOnChange\n    } = mergedShowSizeChangerSelectProps || {};\n    // Origin Select is using Select.Option,\n    // So it make the option value must be string\n    // Just for compatible\n    const selectedValue = (_a = options.find(option => String(option.value) === String(pageSize))) === null || _a === void 0 ? void 0 : _a.value;\n    return /*#__PURE__*/React.createElement(SizeChanger, Object.assign({\n      disabled: disabled,\n      showSearch: true,\n      popupMatchSelectWidth: false,\n      getPopupContainer: triggerNode => triggerNode.parentNode,\n      \"aria-label\": ariaLabel,\n      options: options\n    }, mergedShowSizeChangerSelectProps, {\n      value: selectedValue,\n      onChange: (nextSize, option) => {\n        onSizeChange === null || onSizeChange === void 0 ? void 0 : onSizeChange(nextSize);\n        propSizeChangerOnChange === null || propSizeChangerOnChange === void 0 ? void 0 : propSizeChangerOnChange(nextSize, option);\n      },\n      size: isSmall ? 'small' : 'middle',\n      className: classNames(sizeChangerClassName, propSizeChangerClassName)\n    }));\n  };\n  if (process.env.NODE_ENV !== 'production') {\n    const warning = devUseWarning('Pagination');\n    process.env.NODE_ENV !== \"production\" ? warning(!selectComponentClass, 'usage', '`selectComponentClass` is not official api which will be removed.') : void 0;\n  }\n  // ============================= Render =============================\n  const iconsProps = React.useMemo(() => {\n    const ellipsis = /*#__PURE__*/React.createElement(\"span\", {\n      className: `${prefixCls}-item-ellipsis`\n    }, \"\\u2022\\u2022\\u2022\");\n    const prevIcon = /*#__PURE__*/React.createElement(\"button\", {\n      className: `${prefixCls}-item-link`,\n      type: \"button\",\n      tabIndex: -1\n    }, direction === 'rtl' ? /*#__PURE__*/React.createElement(RightOutlined, null) : /*#__PURE__*/React.createElement(LeftOutlined, null));\n    const nextIcon = /*#__PURE__*/React.createElement(\"button\", {\n      className: `${prefixCls}-item-link`,\n      type: \"button\",\n      tabIndex: -1\n    }, direction === 'rtl' ? /*#__PURE__*/React.createElement(LeftOutlined, null) : /*#__PURE__*/React.createElement(RightOutlined, null));\n    const jumpPrevIcon =\n    /*#__PURE__*/\n    // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n    React.createElement(\"a\", {\n      className: `${prefixCls}-item-link`\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-item-container`\n    }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })) : (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })), ellipsis));\n    const jumpNextIcon =\n    /*#__PURE__*/\n    // biome-ignore lint/a11y/useValidAnchor: it is hard to refactor\n    React.createElement(\"a\", {\n      className: `${prefixCls}-item-link`\n    }, /*#__PURE__*/React.createElement(\"div\", {\n      className: `${prefixCls}-item-container`\n    }, direction === 'rtl' ? (/*#__PURE__*/React.createElement(DoubleLeftOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })) : (/*#__PURE__*/React.createElement(DoubleRightOutlined, {\n      className: `${prefixCls}-item-link-icon`\n    })), ellipsis));\n    return {\n      prevIcon,\n      nextIcon,\n      jumpPrevIcon,\n      jumpNextIcon\n    };\n  }, [direction, prefixCls]);\n  const selectPrefixCls = getPrefixCls('select', customizeSelectPrefixCls);\n  const extendedClassName = classNames({\n    [`${prefixCls}-${align}`]: !!align,\n    [`${prefixCls}-mini`]: isSmall,\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-bordered`]: token.wireframe\n  }, pagination === null || pagination === void 0 ? void 0 : pagination.className, className, rootClassName, hashId, cssVarCls);\n  const mergedStyle = Object.assign(Object.assign({}, pagination === null || pagination === void 0 ? void 0 : pagination.style), style);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(React.Fragment, null, token.wireframe && /*#__PURE__*/React.createElement(BorderedStyle, {\n    prefixCls: prefixCls\n  }), /*#__PURE__*/React.createElement(RcPagination, Object.assign({}, iconsProps, restProps, {\n    style: mergedStyle,\n    prefixCls: prefixCls,\n    selectPrefixCls: selectPrefixCls,\n    className: extendedClassName,\n    locale: locale,\n    pageSizeOptions: mergedPageSizeOptions,\n    showSizeChanger: mergedShowSizeChanger,\n    sizeChangerRender: sizeChangerRender\n  }))));\n};\nif (process.env.NODE_ENV !== 'production') {\n  Pagination.displayName = 'Pagination';\n}\nexport default Pagination;","\"use client\";\n\nimport Pagination from './Pagination';\nexport default Pagination;","import React from 'react'\nimport { Pagination } from 'antd';\n\nfunction PaginationAdmin(prop) { \n  \n  return (\n    <div>\n      <Pagination align=\"center\" defaultPageSize={prop.itemsPerPage} defaultCurrent={1}\n       total={prop.userData.length} onChange={(page) => prop.setCurrentPage(page)}   className=\"custom-pagination\"\n       />\n       <style>\n  {`\n    .custom-pagination .ant-pagination-item-active {\n      border-color: #f0c040 ;\n      background-color: white ;\n      color: white ;\n    }\n  \n    .custom-pagination .ant-pagination-item:focus-visible,\n    .custom-pagination .ant-pagination-item:focus {\n      outline: none ;\n      box-shadow: none ;\n    }\n  `}\n</style>\n\n    </div>\n  )\n}\n\nexport default PaginationAdmin\n","import React, { useEffect, useState, useRef} from \"react\";\nimport DashStyles from \"../Dashboard/dashboard.module.css\";\nimport { HeartStraight, SlidersHorizontal, X } from \"phosphor-react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport PaginationAdmin from \"../Admin/components/PaginationAdmin\";\nimport baseUrl from \"../../baseUrl\";\nimport avatarImg from \"../../assets/avatar.jpg\"\n\n\nfunction TopRecommendation() {\n  const userId = useSelector((state) => state.user.id);\n  const [getLike, setGetLike] = useState([]);\n  const [liked, setLiked] = useState({});\n  const [isOpen, setIsOpen] = useState(false);\n  const [activeTab, setActiveTab] = useState(\"top\");\n  const [topMatches, setTopMatches] = useState([]);\n  const [filteredMatches, setFilteredMatches] = useState([]); // Stores filtered matches\n  const [currentPage, setCurrentPage] = useState(1);\n  const [itemsPerPage, setItemsPerPage] = useState(10);\n  const [filtersApplied, setFiltersApplied] = useState(false);\n  const currentData = filtersApplied ? filteredMatches : topMatches;\n  const indexOfLastItem = currentPage * itemsPerPage;\n  const indexOfFirstItem = indexOfLastItem - itemsPerPage;\n  const paginatedData = currentData.slice(indexOfFirstItem, indexOfLastItem);\n\n  const [filters, setFilters] = useState({\n    age: \"\",\n    height: \"\",\n    maritalStatus: \"\",\n    occupation: \"\",\n    annualIncome: \"\",\n    education: \"\",\n    location: \"\",\n  });\n  const toggleLike = (id) => {\n    setLiked((prev) => ({\n      ...prev,\n      [id]: !prev[id], // Toggle the like state\n    }));\n  };\n\n  // const lastIndex = currentPage * itemsPerPage;\n  // const indexOfFirstItem = lastIndex - itemsPerPage;\n\n  // const showItems = useMemo(() => {\n  //   const data = filteredMatches.length > 0 ? filteredMatches : \"No Matches Available\";\n  //   return data.slice(indexOfFirstItem, lastIndex);\n  // }, [topMatches, filteredMatches, currentPage]);\n  const navigate = useNavigate();\n  // const[showHamburger,setShowHamburger]=useState(true);\n  const getLikedProfiles = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/likedProfiles/${userId}`\n      );\n\n      // Convert the array into an object for easy lookups\n      const likedProfilesMap = response.data.likedUsers.reduce((acc, user) => {\n        acc[user._id] = true;\n        return acc;\n      }, {});\n\n      setGetLike(response.data.likedUsers); // Keep original array\n      setLiked(likedProfilesMap); // Update liked state\n    } catch (error) {\n      console.log(\"Error fetching liked profiles\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      getLikedProfiles();\n    }\n  }, [userId]);\n  const likedProfile = async (id) => {\n    if (!userId || !id) {\n      console.error(\"User ID or Profile ID is undefined\");\n      return;\n    }\n\n    // Optimistically update UI\n    setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/likeProfile/${userId}`,\n        { likedId: id }\n      );\n\n      // If successfully liked, refresh liked profiles\n      getLikedProfiles();\n    } catch (error) {\n      console.error(\"Error liking profile:\", error);\n\n      // Revert state if API fails\n      setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n    }\n  };\n\n  const toggleMenu = () => {\n    setIsOpen((prev) => !prev);\n  };\n\n  useEffect(() => {\n    const handleScrollHam = () => {\n      const filterIcons = document.querySelectorAll(\n        `[class*=\"${DashStyles.FilterIcon}\"]`\n      );\n      filterIcons.forEach((el) => {\n        if (\n          window.scrollY > 10 &&\n          !el.classList.contains(DashStyles.FilterCloseIcon)\n        ) {\n          el.style.display = \"none\";\n        } else {\n          el.style.display = \"block\";\n        }\n      });\n    };\n\n    window.addEventListener(\"scroll\", handleScrollHam);\n    return () => {\n      window.removeEventListener(\"scroll\", handleScrollHam);\n    };\n  }, []);\n\n  const TopMatch = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/topmatch/${userId}`\n      );\n\n      setTopMatches(response.data.matches);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      TopMatch();\n    }\n  }, [userId]);\n  const handleFilterChange = (e) => {\n    const { name, value } = e.target;\n    setFilters((prevFilters) => ({\n      ...prevFilters,\n      [name]: value,\n    }));\n  };\n  const applyFilters = () => {\n    const isFiltersApplied = Object.values(filters).some((val) => val !== \"\");\n    const filteredData = topMatches.filter((item) => {\n      const numericHeight = item.height\n        ? parseInt(item.height.replace(/[^0-9]/g, \"\"), 10)\n        : null;\n      const [minHeight, maxHeight] = filters.height\n        ? filters.height.split(\"-\").map((num) => parseInt(num, 10))\n        : [null, null];\n      const [minAge, maxAge] = filters.age\n        ? filters.age.split(\"-\").map((num) => parseInt(num, 10))\n        : [null, null];\n\n      return (\n        (filters.age === \"\" || (item.age >= minAge && item.age <= maxAge)) &&\n        (filters.height === \"\" ||\n          (numericHeight >= minHeight && numericHeight <= maxHeight)) &&\n        (filters.maritalStatus === \"\" ||\n          item.maritalStatus?.toLowerCase() ===\n            filters.maritalStatus?.toLowerCase()) &&\n        (filters.occupation === \"\" ||\n          item.occupation?.toLowerCase() ===\n            filters.occupation?.toLowerCase()) &&\n        (filters.annualIncome === \"\" ||\n          item.annualIncome?.toLowerCase() ===\n            filters.annualIncome?.toLowerCase()) &&\n        (filters.education === \"\" ||\n          item.education?.toLowerCase() === filters.education?.toLowerCase())&&\n          (filters.location === \"\" ||\n            item.location?.toLowerCase() === filters.location?.toLowerCase())\n      );\n    });\n\n    setCurrentPage(1);\n    setFilteredMatches(filteredData);\n    setFiltersApplied(isFiltersApplied);\n    if (isOpen) setIsOpen(false);\n  };\n\n  const resetFilters = () => {\n    setFilters({\n      age: \"\",\n      height: \"\",\n      maritalStatus: \"\",\n      occupation: \"\",\n      annualIncome: \"\",\n      education: \"\",\n      location:\"\"\n    });\n    setFilteredMatches(topMatches);\n    setFiltersApplied(false);\n    setCurrentPage(1);\n    if(isOpen)setIsOpen(false);\n\n  };\n  // to view individual profiles\n  const profileView = async (id) => {\n    if (!id) {\n      console.log(\"Error fetching id\");\n      return;\n    }\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      navigate(`/mainuser/${id}`);\n    } catch (error) {\n      console.log(\"Error fetching the data\", error);\n    }\n  };\n  const myRef = useRef([]);\n  const observerRef = useRef(null); // ✅ Ensure it's null initially\n  const headingRef = useRef([]); // ✅ Separate ref for heading\n\n  useEffect(() => {\n    if (!observerRef.current) {\n      observerRef.current = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            entry.target.classList.add(DashStyles.animateIn);\n          }\n        });\n      });\n    }\n\n    // ✅ Ensure only unique elements are observed\n    headingRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    myRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    return () => {\n      if (observerRef.current) {\n        observerRef.current.disconnect();\n      }\n    };\n  }, []);\n\n  const setElementRef = (index) => (el) => {\n    if (el) {\n      myRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n\n  const setHeadingRef = (index) => (el) => {\n    if (el) {\n      headingRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n  return (\n    <div className={DashStyles.mainContainer}>\n      <Nav userId={userId} />\n      <div className={DashStyles.PageSelection}>\n        <Link\n          to={`/toprecommendations/${userId}`}\n          className={`${DashStyles.heading} ${\n            activeTab === \"top\" ? DashStyles.tabSelected : \"\"\n          }`}\n          onClick={() => setActiveTab(\"top\")}\n        >\n          Top Recommendations\n        </Link>\n\n        <Link\n          to={`/allmatches/${userId}`}\n          className={`${DashStyles.heading} ${\n            activeTab === \"all\" ? DashStyles.tabSelected : \"\"\n          }`}\n          onClick={() => setActiveTab(\"all\")}\n        >\n          All Matches\n        </Link>\n      </div>\n\n      <div className={DashStyles.SubContainer}>\n        {/* Filter div start */}\n\n        <div className={DashStyles.FilterDivMain}>\n          <div className={DashStyles.FilterDiv}>\n            <div className={DashStyles.FilterProfiles}>\n              <h3 className={DashStyles.FilterProfilesHeading}>\n                Filter Profiles\n              </h3>\n            </div>\n            <div className={DashStyles.BasicDetailsMainDiv}>\n              <h3 className={DashStyles.BasicDetailsHead}>Basic Details</h3>\n              <div className={DashStyles.BasicDetailsDiv}>\n                <select\n                  name=\"age\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.age}\n                >\n                  <option>Age</option>\n                  <option value=\"18-25\">18-25</option>\n                  <option value=\"26-35\">26-35</option>\n                  <option value=\"36-45\">36-45</option>\n                  <option value=\"46-55\">46-55</option>\n                  <option value=\"56-65\">56-65</option>\n                </select>\n                <select\n                  name=\"height\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.height}\n                >\n                  <option>Height</option>\n                  <option value=\"135-145\">135-145</option>\n                  <option value=\"145-155\">145-155</option>\n                  <option value=\"155-165\">155-165</option>\n                  <option value=\"165-175\">165-175</option>\n                  <option value=\"175-185\">175-185</option>\n                  <option value=\"185-195\">185-195</option>\n                  <option value=\"195-200\">195-200</option>\n                </select>\n\n                <select\n                  name=\"maritalStatus\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.maritalStatus}\n                >\n                  <option>Marital Status</option>\n                  <option value=\"Never Married\">Never Married</option>\n                  <option value=\"Widowed\">Widowed</option>\n                  <option value=\"Divorced\">Divorced</option>\n                  <option value=\"Awaiting Divorce\">Awaiting Divorce</option>\n                </select>\n               <select\n                                  name=\"location\"\n                                  className={DashStyles.bdSelect}\n                                  value={filters.location}\n                                  onChange={handleFilterChange}\n                                >\n                                  <option>Location</option>\n                                  <option value=\"Aberdeen\">Aberdeen</option>\n                <option value=\"Antrim\">Antrim</option>\n                <option value=\"Armagh\">Armagh</option>\n                <option value=\"Ballymena\">Ballymena</option>\n                <option value=\"Bangor\">Bangor</option>\n                <option value=\"Bangor\">Bangor</option>\n                <option value=\"Barry\">Barry</option>\n                <option value=\"Belfast\">Belfast</option>\n                <option value=\"Birmingham\">Birmingham</option>\n                <option value=\"Blackpool\">Blackpool</option>\n                <option value=\"Bradford\">Bradford</option>\n                <option value=\"Bridgend\">Bridgend</option>\n                <option value=\"Brighton\">Brighton</option>\n                <option value=\"Bristol\">Bristol</option>\n                <option value=\"Caerphilly\">Caerphilly</option>\n                <option value=\"Cambridge\">Cambridge</option>\n                <option value=\"Carrickfergus\">Carrickfergus</option>\n                <option value=\"Cardiff\">Cardiff</option>\n                <option value=\"Coleraine\">Coleraine</option>\n                <option value=\"Coventry\">Coventry</option>\n                <option value=\"Derry\">Derry</option>\n                <option value=\"Dundee\">Dundee</option>\n                <option value=\"Dunfermline\">Dunfermline</option>\n                <option value=\"Edinburgh\">Edinburgh</option>\n                <option value=\"Exeter\">Exeter</option>\n                <option value=\"Falkirk\">Falkirk</option>\n                <option value=\"Glasgow\">Glasgow</option>\n                <option value=\"Inverness\">Inverness</option>\n                <option value=\"Leeds\">Leeds</option>\n                <option value=\"Leicester\">Leicester</option>\n                <option value=\"Lisburn\">Lisburn</option>\n                <option value=\"Liverpool\">Liverpool</option>\n                <option value=\"Livingston\">Livingston</option>\n                <option value=\"London\">London</option>\n                <option value=\"Luton\">Luton</option>\n                <option value=\"Llanelli\">Llanelli</option>\n                <option value=\"Manchester\">Manchester</option>\n                <option value=\"Merthyr Tydfil\">Merthyr Tydfil</option>\n                <option value=\"Newcastle\">Newcastle</option>\n                <option value=\"Newport\">Newport</option>\n                <option value=\"Newry\">Newry</option>\n                <option value=\"Nottingham\">Nottingham</option>\n                <option value=\"Norwich\">Norwich</option>\n                <option value=\"Oxford\">Oxford</option>\n                <option value=\"Paisley\">Paisley</option>\n                <option value=\"Perth\">Perth</option>\n                <option value=\"Plymouth\">Plymouth</option>\n                <option value=\"Portsmouth\">Portsmouth</option>\n                <option value=\"Sheffield\">Sheffield</option>\n                <option value=\"Southampton\">Southampton</option>\n                <option value=\"Stirling\">Stirling</option>\n                <option value=\"Swansea\">Swansea</option>\n                <option value=\"Wrexham\">Wrexham</option>\n                <option value=\"York\">York</option>\n                                </select>\n              </div>\n            </div>\n\n            <div className={DashStyles.ProfessionalDetailsMainDiv}>\n              <h3 className={DashStyles.ProfessionalDetailsHead}>\n                Professional Details\n              </h3>\n              <div className={DashStyles.ProfessionalDetailsDiv}>\n                <select\n                  name=\"occupation\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.occupation}\n                >\n                  <option>Occupation</option>\n                  <option value=\"Doctor\">Doctor</option>\n                  <option value=\"Nurse\">Nurse</option>\n                  <option value=\"Pharmacist\">Pharmacist</option>\n                  <option value=\"Dentist\">Dentist</option>\n                  <option value=\"Paramedic\">Paramedic</option>\n                  <option value=\"Physiotherapist\">Physiotherapist</option>\n                  <option value=\"Care Worker\">Care Worker</option>\n\n                  <option value=\"Software Engineer\">Software Engineer</option>\n                  <option value=\"Civil Engineer\">Civil Engineer</option>\n                  <option value=\"Mechanical Engineer\">\n                    Mechanical Engineer\n                  </option>\n                  <option value=\"Electrical Engineer\">\n                    Electrical Engineer\n                  </option>\n                  <option value=\"Data Scientist\">Data Scientist</option>\n                  <option value=\"It Consultant\">IT Consultant</option>\n\n                  <option value=\"Teacher\">Teacher</option>\n                  <option value=\"Lecturer\">University Lecturer</option>\n                  <option value=\"Teaching Assistant\">Teaching Assistant</option>\n\n                  <option value=\"Accountant\">Accountant</option>\n                  <option value=\"Banker\">Banker</option>\n                  <option value=\"Financial Analyst\">Financial Analyst</option>\n                  <option value=\"Solicitor\">Solicitor</option>\n                  <option value=\"Barrister\">Barrister</option>\n\n                  <option value=\"Electrician\">Electrician</option>\n                  <option value=\"Plumber\">Plumber</option>\n                  <option value=\"Carpenter\">Carpenter</option>\n                  <option value=\"Mechanic\">Mechanic</option>\n\n                  <option value=\"Police Officer\">Police Officer</option>\n                  <option value=\"Firefighter\">Firefighter</option>\n                  <option value=\"Armed Forces\">Armed Forces</option>\n                  <option value=\"Social Worker\">Social Worker</option>\n\n                  <option value=\"Chef\">Chef</option>\n                  <option value=\"Hotel Manager\">Hotel Manager</option>\n                  <option value=\"Retail Manager\">Retail Manager</option>\n                  <option value=\"Customer Service\">\n                    Customer Service Representative\n                  </option>\n\n                  <option value=\"Journalist\">Journalist</option>\n                  <option value=\"Graphic Designer\">Graphic Designer</option>\n                  <option value=\"Actor\">Actor</option>\n                  <option value=\"Musician\">Musician</option>\n\n                  <option value=\"Truck Driver\">Truck Driver</option>\n                  <option value=\"Delivery Driver\">Delivery Driver</option>\n                  <option value=\"Airline Pilot\">Airline Pilot</option>\n\n                  <option value=\"Self Employed\">Self-Employed</option>\n                  <option value=\"Unemployed\">Unemployed</option>\n                  <option value=\"Student\">Student</option>\n                  <option value=\"Retired\">Retired</option>\n                  <option value=\"Others\">Others</option>\n                </select>\n\n                <select\n                  name=\"annualIncome\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.annualIncome}\n                >\n                  <option>Annual Income</option>\n                  <option value=\"under_15000\">Under £15,000</option>\n                  <option value=\"15000_25000\">£15,000 - £25,000</option>\n                  <option value=\"25000_35000\">£25,000 - £35,000</option>\n                  <option value=\"35000_50000\">£35,000 - £50,000</option>\n                  <option value=\"50000_75000\">£50,000 - £75,000</option>\n                  <option value=\"75000_100000\">£75,000 - £100,000</option>\n                  <option value=\"100000_150000\">£100,000 - £150,000</option>\n                  <option value=\"150000_250000\">£150,000 - £250,000</option>\n                  <option value=\"over_250000\">Over £250,000</option>\n                </select>\n\n                <select\n                  name=\"education\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.education}\n                >\n                  <option>Education</option>\n                  <option value=\"Below 10\">Below 10th</option>\n                  <option value=\"10th\">10th (SSLC/Matriculation)</option>\n                  <option value=\"12th Science\">12th - Science</option>\n                  <option value=\"12th Humanities\">12th - Humanities</option>\n                  <option value=\"12th Commerce\">12th - Commerce</option>\n                  <option value=\"Diploma\">Diploma</option>\n                  <option value=\"BSc\">BSc (Bachelor of Science)</option>\n                  <option value=\"BA\">BA (Bachelor of Arts)</option>\n                  <option value=\"BCom\">BCom (Bachelor of Commerce)</option>\n                  <option value=\"BTech\">BTech (Bachelor of Technology)</option>\n                  <option value=\"BE\">BE (Bachelor of Engineering)</option>\n                  <option value=\"BBA\">\n                    BBA (Bachelor of Business Administration)\n                  </option>\n                  <option value=\"BCA\">\n                    BCA (Bachelor of Computer Applications)\n                  </option>\n                  <option value=\"LLB\">LLB (Bachelor of Law)</option>\n                  <option value=\"MBBS\">\n                    MBBS (Bachelor of Medicine & Surgery)\n                  </option>\n                  <option value=\"BPharm\">BPharm (Bachelor of Pharmacy)</option>\n                  <option value=\"BDS\">BDS (Bachelor of Dental Surgery)</option>\n                  <option value=\"MSC\">MSc (Master of Science)</option>\n                  <option value=\"MA\">MA (Master of Arts)</option>\n                  <option value=\"MCom\">MCom (Master of Commerce)</option>\n                  <option value=\"MTech\">MTech (Master of Technology)</option>\n                  <option value=\"ME\">ME (Master of Engineering)</option>\n                  <option value=\"MBA\">\n                    MBA (Master of Business Administration)\n                  </option>\n                  <option value=\"MCA\">\n                    MCA (Master of Computer Applications)\n                  </option>\n                  <option value=\"LLM\">LLM (Master of Law)</option>\n                  <option value=\"MD\">MD (Doctor of Medicine)</option>\n                  <option value=\"MS\">MS (Master of Surgery)</option>\n                  <option value=\"MPhil\">MPhil (Master of Philosophy)</option>\n                  <option value=\"PhD\">PhD (Doctorate)</option>\n                </select>\n              </div>\n            </div>\n\n            <div className={DashStyles.FilterDivButtonsMain}>\n              <button\n                className={DashStyles.FilterDivButtonOne}\n                onClick={applyFilters}\n              >\n                Apply\n              </button>\n              <button\n                className={DashStyles.FilterDivButtonOne}\n                onClick={resetFilters}\n              >\n                Reset\n              </button>\n            </div>\n          </div>\n        </div>\n        {/* filter div end */}\n        {/* Profile details div for smalle screens start */}\n        <div\n          className={isOpen ? \"overlay overlayActive\" : \"overlay\"}\n          // onClick={toggleMenu}\n        >\n          <div className={DashStyles.HamburgerMain}>\n            {/* {showHamburger&&( */}\n            <div className={DashStyles.FilterHam} onClick={() => toggleMenu()}>\n              {isOpen ? (\n                <X\n                  size={40}\n                  weight=\"bold\"\n                  className={DashStyles.FilterCloseIcon}\n                />\n              ) : (\n                <SlidersHorizontal\n                  size={40}\n                  weight=\"duotone\"\n                  className={DashStyles.FilterIcon}\n                />\n              )}\n            </div>\n            {/* )} */}\n            {/* profile div for smaller screens */}\n            <div\n              className={`${DashStyles.drawer} ${\n                isOpen ? DashStyles.drawerOpen : DashStyles.drawerClosed\n              }`}\n            >\n              {/* <div className={DashStyles.FilterDiv}> */}\n              <div className={DashStyles.FilterProfiles}>\n                <h3 className={DashStyles.FilterProfilesHeading}>\n                  Filter Profiles\n                </h3>\n              </div>\n              <div className={DashStyles.BasicDetailsMainDiv}>\n                <h3 className={DashStyles.BasicDetailsHead}>Basic Details</h3>\n                <div className={DashStyles.BasicDetailsDiv}>\n                  <select\n                    name=\"age\"\n                    className={DashStyles.bdSelect}\n                    onChange={handleFilterChange}\n                    value={filters.age}\n                  >\n                    <option>Age</option>\n                    <option value=\"18-25\">18-25</option>\n                    <option value=\"26-35\">26-35</option>\n                    <option value=\"36-45\">36-45</option>\n                    <option value=\"46-55\">46-55</option>\n                    <option value=\"56-65\">56-65</option>\n                  </select>\n                  <select\n                    name=\"height\"\n                    className={DashStyles.bdSelect}\n                    value={filters.height}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Height</option>\n                    <option value=\"135-145\">135-145</option>\n                    <option value=\"145-155\">145-155</option>\n                    <option value=\"155-165\">155-165</option>\n                    <option value=\"165-175\">165-175</option>\n                    <option value=\"175-185\">175-185</option>\n                    <option value=\"185-195\">185-195</option>\n                    <option value=\"195-200\">195-200</option>\n                  </select>\n\n                  <select\n                    name=\"maritalStatus\"\n                    className={DashStyles.bdSelect}\n                    onChange={handleFilterChange}\n                    value={filters.maritalStatus}\n                  >\n                    <option>Marital Status</option>\n                    <option value=\"Never Married\">Never Married</option>\n                    <option value=\"Widowed\">Widowed</option>\n                    <option value=\"Divorced\">Divorced</option>\n                    <option value=\"Awaiting Divorce\">Awaiting Divorce</option>\n                  </select>\n                   <select\n                                      name=\"location\"\n                                      className={DashStyles.bdSelect}\n                                      value={filters.location}\n                                      onChange={handleFilterChange}\n                                    >\n                                      <option>Location</option>\n                                      <option value=\"Aberdeen\">Aberdeen</option>\n                    <option value=\"Antrim\">Antrim</option>\n                    <option value=\"Armagh\">Armagh</option>\n                    <option value=\"Ballymena\">Ballymena</option>\n                    <option value=\"Bangor\">Bangor</option>\n                    <option value=\"Bangor\">Bangor</option>\n                    <option value=\"Barry\">Barry</option>\n                    <option value=\"Belfast\">Belfast</option>\n                    <option value=\"Birmingham\">Birmingham</option>\n                    <option value=\"Blackpool\">Blackpool</option>\n                    <option value=\"Bradford\">Bradford</option>\n                    <option value=\"Bridgend\">Bridgend</option>\n                    <option value=\"Brighton\">Brighton</option>\n                    <option value=\"Bristol\">Bristol</option>\n                    <option value=\"Caerphilly\">Caerphilly</option>\n                    <option value=\"Cambridge\">Cambridge</option>\n                    <option value=\"Carrickfergus\">Carrickfergus</option>\n                    <option value=\"Cardiff\">Cardiff</option>\n                    <option value=\"Coleraine\">Coleraine</option>\n                    <option value=\"Coventry\">Coventry</option>\n                    <option value=\"Derry\">Derry</option>\n                    <option value=\"Dundee\">Dundee</option>\n                    <option value=\"Dunfermline\">Dunfermline</option>\n                    <option value=\"Edinburgh\">Edinburgh</option>\n                    <option value=\"Exeter\">Exeter</option>\n                    <option value=\"Falkirk\">Falkirk</option>\n                    <option value=\"Glasgow\">Glasgow</option>\n                    <option value=\"Inverness\">Inverness</option>\n                    <option value=\"Leeds\">Leeds</option>\n                    <option value=\"Leicester\">Leicester</option>\n                    <option value=\"Lisburn\">Lisburn</option>\n                    <option value=\"Liverpool\">Liverpool</option>\n                    <option value=\"Livingston\">Livingston</option>\n                    <option value=\"London\">London</option>\n                    <option value=\"Luton\">Luton</option>\n                    <option value=\"Llanelli\">Llanelli</option>\n                    <option value=\"Manchester\">Manchester</option>\n                    <option value=\"Merthyr Tydfil\">Merthyr Tydfil</option>\n                    <option value=\"Newcastle\">Newcastle</option>\n                    <option value=\"Newport\">Newport</option>\n                    <option value=\"Newry\">Newry</option>\n                    <option value=\"Nottingham\">Nottingham</option>\n                    <option value=\"Norwich\">Norwich</option>\n                    <option value=\"Oxford\">Oxford</option>\n                    <option value=\"Paisley\">Paisley</option>\n                    <option value=\"Perth\">Perth</option>\n                    <option value=\"Plymouth\">Plymouth</option>\n                    <option value=\"Portsmouth\">Portsmouth</option>\n                    <option value=\"Sheffield\">Sheffield</option>\n                    <option value=\"Southampton\">Southampton</option>\n                    <option value=\"Stirling\">Stirling</option>\n                    <option value=\"Swansea\">Swansea</option>\n                    <option value=\"Wrexham\">Wrexham</option>\n                    <option value=\"York\">York</option>\n                                    </select>\n                </div>\n              </div>\n\n              <div className={DashStyles.ProfessionalDetailsMainDiv}>\n                <h3 className={DashStyles.ProfessionalDetailsHead}>\n                  Professional Details\n                </h3>\n                <div className={DashStyles.ProfessionalDetailsDiv}>\n                  <select\n                    name=\"occupation\"\n                    className={DashStyles.pdSelect}\n                    value={filters.occupation}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Occupation</option>\n                    <option value=\"Doctor\">Doctor</option>\n                    <option value=\"Nurse\">Nurse</option>\n                    <option value=\"Pharmacist\">Pharmacist</option>\n                    <option value=\"Dentist\">Dentist</option>\n                    <option value=\"Paramedic\">Paramedic</option>\n                    <option value=\"Physiotherapist\">Physiotherapist</option>\n                    <option value=\"Care Worker\">Care Worker</option>\n\n                    <option value=\"Software Engineer\">Software Engineer</option>\n                    <option value=\"Civil Engineer\">Civil Engineer</option>\n                    <option value=\"Mechanical Engineer\">\n                      Mechanical Engineer\n                    </option>\n                    <option value=\"Electrical Engineer\">\n                      Electrical Engineer\n                    </option>\n                    <option value=\"Data Scientist\">Data Scientist</option>\n                    <option value=\"It Consultant\">IT Consultant</option>\n\n                    <option value=\"Teacher\">Teacher</option>\n                    <option value=\"Lecturer\">University Lecturer</option>\n                    <option value=\"Teaching Assistant\">\n                      Teaching Assistant\n                    </option>\n\n                    <option value=\"Accountant\">Accountant</option>\n                    <option value=\"Banker\">Banker</option>\n                    <option value=\"Financial Analyst\">Financial Analyst</option>\n                    <option value=\"Solicitor\">Solicitor</option>\n                    <option value=\"Barrister\">Barrister</option>\n\n                    <option value=\"Electrician\">Electrician</option>\n                    <option value=\"Plumber\">Plumber</option>\n                    <option value=\"Carpenter\">Carpenter</option>\n                    <option value=\"Mechanic\">Mechanic</option>\n\n                    <option value=\"Police Officer\">Police Officer</option>\n                    <option value=\"Firefighter\">Firefighter</option>\n                    <option value=\"Armed Forces\">Armed Forces</option>\n                    <option value=\"Social Worker\">Social Worker</option>\n\n                    <option value=\"Chef\">Chef</option>\n                    <option value=\"Hotel Manager\">Hotel Manager</option>\n                    <option value=\"Retail Manager\">Retail Manager</option>\n                    <option value=\"Customer Service\">\n                      Customer Service Representative\n                    </option>\n\n                    <option value=\"Journalist\">Journalist</option>\n                    <option value=\"Graphic Designer\">Graphic Designer</option>\n                    <option value=\"Actor\">Actor</option>\n                    <option value=\"Musician\">Musician</option>\n\n                    <option value=\"Truck Driver\">Truck Driver</option>\n                    <option value=\"Delivery Driver\">Delivery Driver</option>\n                    <option value=\"Airline Pilot\">Airline Pilot</option>\n\n                    <option value=\"Self Employed\">Self-Employed</option>\n                    <option value=\"Unemployed\">Unemployed</option>\n                    <option value=\"Student\">Student</option>\n                    <option value=\"Retired\">Retired</option>\n                    <option value=\"Others\">Others</option>\n                  </select>\n                  <select\n                    name=\"annualIncome\"\n                    className={DashStyles.pdSelect}\n                    value={filters.annualIncome}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Annual Income</option>\n                    <option value=\"15000_25000\">£15,000 - £25,000</option>\n                    <option value=\"25000_35000\">£25,000 - £35,000</option>\n                    <option value=\"35000_50000\">£35,000 - £50,000</option>\n                    <option value=\"50000_75000\">£50,000 - £75,000</option>\n                    <option value=\"75000_100000\">£75,000 - £100,000</option>\n                    <option value=\"100000_150000\">£100,000 - £150,000</option>\n                    <option value=\"150000_250000\">£150,000 - £250,000</option>\n                    <option value=\"over_250000\">Over £250,000</option>\n                  </select>\n                  <select\n                    name=\"education\"\n                    className={DashStyles.pdSelect}\n                    value={filters.education}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Education</option>\n                    <option value=\"Below 10\">Below 10th</option>\n                    <option value=\"10th\">10th (SSLC/Matriculation)</option>\n                    <option value=\"12th Science\">12th - Science</option>\n                    <option value=\"12th Humanities\">12th - Humanities</option>\n                    <option value=\"12th Commerce\">12th - Commerce</option>\n                    <option value=\"Diploma\">Diploma</option>\n                    <option value=\"BSc\">BSc (Bachelor of Science)</option>\n                    <option value=\"BA\">BA (Bachelor of Arts)</option>\n                    <option value=\"BCom\">BCom (Bachelor of Commerce)</option>\n                    <option value=\"BTech\">\n                      BTech (Bachelor of Technology)\n                    </option>\n                    <option value=\"BE\">BE (Bachelor of Engineering)</option>\n                    <option value=\"BBA\">\n                      BBA (Bachelor of Business Administration)\n                    </option>\n                    <option value=\"BCA\">\n                      BCA (Bachelor of Computer Applications)\n                    </option>\n                    <option value=\"LLB\">LLB (Bachelor of Law)</option>\n                    <option value=\"MBBS\">\n                      MBBS (Bachelor of Medicine & Surgery)\n                    </option>\n                    <option value=\"BPharm\">\n                      BPharm (Bachelor of Pharmacy)\n                    </option>\n                    <option value=\"BDS\">\n                      BDS (Bachelor of Dental Surgery)\n                    </option>\n                    <option value=\"MSC\">MSc (Master of Science)</option>\n                    <option value=\"MA\">MA (Master of Arts)</option>\n                    <option value=\"MCom\">MCom (Master of Commerce)</option>\n                    <option value=\"MTech\">MTech (Master of Technology)</option>\n                    <option value=\"ME\">ME (Master of Engineering)</option>\n                    <option value=\"MBA\">\n                      MBA (Master of Business Administration)\n                    </option>\n                    <option value=\"MCA\">\n                      MCA (Master of Computer Applications)\n                    </option>\n                    <option value=\"LLM\">LLM (Master of Law)</option>\n                    <option value=\"MD\">MD (Doctor of Medicine)</option>\n                    <option value=\"MS\">MS (Master of Surgery)</option>\n                    <option value=\"MPhil\">MPhil (Master of Philosophy)</option>\n                    <option value=\"PhD\">PhD (Doctorate)</option>\n                  </select>\n                </div>\n              </div>\n              <div className={DashStyles.FilterDivButtonsMain}>\n                <button\n                  className={DashStyles.FilterDivButtonOne}\n                  onClick={applyFilters}\n                >\n                  Apply\n                </button>\n                <button\n                  className={DashStyles.FilterDivButtonOne}\n                  onClick={resetFilters}\n                >\n                  Reset\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <div\n          className={`${DashStyles.Container} ${\n            isOpen ? DashStyles.contentDimmed : \"\"\n          }`}\n        >\n          {/* Top recommendation start */}\n          <div className={DashStyles.TopRecommendation}>\n            <div className={DashStyles.trHeading} ref={setHeadingRef(0)}>\n              <h2 className={DashStyles.TrHead}>Top Recommendations</h2>\n              <h4 className={DashStyles.TrContent}>\n                Members who match your partner preference\n              </h4>\n            </div>\n            <div className={DashStyles.trContentDisplay}>\n              {paginatedData.length > 0 ? (\n                paginatedData.map((item, index) => (\n                  <div className={DashStyles.trCard} key={index} ref={(el) => setElementRef(-1)(el)}>\n                    <div\n                      className={DashStyles.trCardImg}\n                      onClick={() => profileView(item.id)}\n                    >\n                      <img\n                        src={\n                          item.profilePicture\n                            ? `${baseUrl}${item.profilePicture}`\n                            : `${avatarImg}`\n                        }\n                        alt=\"CardImage\"\n                        className={DashStyles.cardImage}\n                      />\n                    </div>\n                    <div className={DashStyles.trCardDetails}>\n                      <div\n                        className={DashStyles.trCardDetailSub}\n                        onClick={() => profileView(item.id)}\n                      >\n                        <h5 className={DashStyles.trUserName}>{item.name}</h5>\n                        <h6 className={DashStyles.trUserDetails}>\n                          {`${item.age} Yrs, ${item.height}cms`}\n                        </h6>\n                      </div>\n                      <div\n                        className={DashStyles.LikeButton}\n                        onClick={() => likedProfile(item.id)}\n                      >\n                        <HeartStraight\n                          size={30}\n                          weight={liked[item.id] ? \"fill\" : \"light\"}\n                          className={`${DashStyles.likedHeartBefore} ${\n                            liked[item.id] ? DashStyles.likedHeart : \"\"\n                          }`}\n                        />\n                      </div>\n                    </div>\n                  </div>\n                  // <motion.div\n                  //     key={index}\n                  //     initial={{ opacity: 0, y: 20 }}\n                  //     animate={{ opacity: 1, y: 0 }}\n                  //     transition={{ delay: index * 0.2, duration: 0.5 }}\n                  //   >\n                  //     <CardComponent profiles={item} profileView={TopMatch} likedProfile={likedProfile}\n                  //     liked={liked}\n                  //     setLiked={setLiked}\n                  //     toggleLike={toggleLike}\n                  //     />\n                  //   </motion.div>\n                ))\n              ) : (\n                <p>No matches found</p>\n              )}\n            </div>\n            <PaginationAdmin\n              itemsPerPage={itemsPerPage}\n              userData={currentData}\n              setCurrentPage={setCurrentPage}\n            />\n          </div>\n        </div>\n      </div>\n      <Footer />\n    </div>\n  );\n}\n\nexport default TopRecommendation;\n","import React, { useState } from \"react\";\nimport Sidebar from \"../../../component/sidebar/Sidebar\";\nimport \"./settings.css\";\nimport pic from \"../../../assets/serious-man-portrait-real-people-high-definition-grey-background-photo.jpg\";\nimport axios from \"axios\";\nimport { useParams } from \"react-router-dom\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport baseUrl from \"../../../baseUrl\";\n\n\nfunction Settings() {\n  \n  const {token}=useParams()\n   const notifySuccess = (message) => toast.success(message);\n \n  const [form, setForm] = useState({});\n  const handleChange=(e)=>{\n    setForm({\n      ...form,\n      [e.target.name]:e.target.value\n    });\n  }\n  const handleSubmit=async(e)=>{\n    e.preventDefault()\n    try {\n      const response = await axios.patch(`${baseUrl}/api/v1/admin/resetpassword/${token}`,form)\n      \n      \n      if(response.status===200){\n        toast.success(\"Password Updated Successfully\")\n        setForm({password:\"\",newPassword:\"\"})\n      }\n    } catch (error) {\n      \n    }\n  }\n  return (\n    <div>\n      <ToastContainer\n                position=\"bottom-right\"\n                autoClose={2000}\n                hideProgressBar={false}\n                newestOnTop={false}\n                closeOnClick\n                rtl={false}\n                pauseOnFocusLoss\n                pauseOnHover\n              />\n      <div className=\"settings-container\">\n        <div className=\"container-main\">\n          <div className=\"nav\">\n            <Sidebar />\n          </div>\n          <div className=\"contents\">\n            <div className=\"first-part\">\n              <div className=\"report-main\">\n                <div className=\"heading\">\n                  <h1>Settings</h1>\n                </div>\n              </div>\n            </div>\n            <div className=\"box-contents\">\n              <div className=\"part-one\">\n                <div className=\"profile-container\">\n                  <div className=\"profile-icon\">\n                    <img src={pic} alt=\"\" />\n                  </div>\n                  \n                </div>\n              </div>\n              <div className=\"part-two\">\n                <form onSubmit={handleSubmit}>\n                  <div className=\"form-container-main\">\n                    <div className=\"user-name \">\n                      <label>Password</label>\n                      <input type=\"text\" onChange={handleChange} value={form.password} name=\"password\"/>\n                    </div>\n                    <div className=\"pass-username\">\n                      <div className=\"password\">\n                      <label>New Password</label>\n                      <input type=\"text\" value={form.newPassword} onChange={handleChange} name=\"newPassword\"/>\n                      </div>\n                    </div>\n                  </div>\n                  <div className=\"save-button\">\n                    <button>\n                      Save\n                    </button>\n                  </div>\n                </form>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default Settings;\n","import React from \"react\";\nimport \"./adminnav.css\";\nimport { useNavigate } from \"react-router-dom\";\n\nfunction Nav() {\n  const navigate=useNavigate()\n  return (\n    <div>\n      <header className=\"Prof-header\">\n        <div className=\"Prof-header-left\">\n          <button className=\"icon-button\" onClick={() => navigate(`/Admindashboard`)}>\n            <span className=\"material-symbols-outlined\">home</span>\n            <span className=\"matches-text\">\n              <h6>Home</h6>\n            </span>\n          </button>\n\n          \n        </div>\n\n        {/* <div className=\"image-upload-icon\">\n          <Badge count={1}>\n            <Avatar shape=\"round\" icon={<UserOutlined />} />\n          </Badge>\n        </div> */}\n      </header>\n      <hr className=\"divider\" />\n\n      {/* <div className=\"content\">\n        <div className=\"match-buttons\">\n          <button className=\"btn outlined\">Regular</button>\n          <button className=\"btn outlined\">Premium</button>\n        </div>\n      </div> */}\n\n      <link\n        rel=\"stylesheet\"\n        href=\"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined\"\n      />\n    </div>\n  );\n}\n\nexport default Nav;\n","var initialState = {\n  animating: false,\n  autoplaying: null,\n  currentDirection: 0,\n  currentLeft: null,\n  currentSlide: 0,\n  direction: 1,\n  dragging: false,\n  edgeDragged: false,\n  initialized: false,\n  lazyLoadedList: [],\n  listHeight: null,\n  listWidth: null,\n  scrolling: false,\n  slideCount: null,\n  slideHeight: null,\n  slideWidth: null,\n  swipeLeft: null,\n  swiped: false,\n  // used by swipeEvent. differentites between touch and swipe.\n  swiping: false,\n  touchObject: {\n    startX: 0,\n    startY: 0,\n    curX: 0,\n    curY: 0\n  },\n  trackStyle: {},\n  trackWidth: 0,\n  targetSlide: 0\n};\nexport default initialState;","/* eslint-disable no-undefined */\n\nimport throttle from './throttle.js';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay -               A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback -          A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n *                                        to `callback` when the debounced-function is executed.\n * @param {object} [options] -           An object to configure options.\n * @param {boolean} [options.atBegin] -  Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n *                                        after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n *                                        (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, callback, options) {\n\tconst { atBegin = false } = options || {};\n\treturn throttle(delay, callback, { debounceMode: atBegin !== false });\n}\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay -                  A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n *                                            are most useful.\n * @param {Function} callback -               A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n *                                            as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] -              An object to configure options.\n * @param {boolean} [options.noTrailing] -   Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n *                                            while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n *                                            one final time after the last throttled-function call. (After the throttled-function has not been called for\n *                                            `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] -   Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n *                                            immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n *                                            callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n *                                            false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, callback, options) {\n\tconst {\n\t\tnoTrailing = false,\n\t\tnoLeading = false,\n\t\tdebounceMode = undefined\n\t} = options || {};\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel(options) {\n\t\tconst { upcomingOnly = false } = options || {};\n\t\tclearExistingTimeout();\n\t\tcancelled = !upcomingOnly;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (!noLeading && debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`\n\t\t\t * and noLeading != true.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\tif (noLeading) {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode with noLeading, if `delay` time has\n\t\t\t\t * been exceeded, update `lastExec` and schedule `callback`\n\t\t\t\t * to execute after `delay` ms.\n\t\t\t\t */\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tif (!noTrailing) {\n\t\t\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, delay);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t/*\n\t\t\t\t * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n\t\t\t\t * `callback`.\n\t\t\t\t */\n\t\t\t\texec();\n\t\t\t}\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n","import React from \"react\";\nvar defaultProps = {\n  accessibility: true,\n  adaptiveHeight: false,\n  afterChange: null,\n  appendDots: function appendDots(dots) {\n    return /*#__PURE__*/React.createElement(\"ul\", {\n      style: {\n        display: \"block\"\n      }\n    }, dots);\n  },\n  arrows: true,\n  autoplay: false,\n  autoplaySpeed: 3000,\n  beforeChange: null,\n  centerMode: false,\n  centerPadding: \"50px\",\n  className: \"\",\n  cssEase: \"ease\",\n  customPaging: function customPaging(i) {\n    return /*#__PURE__*/React.createElement(\"button\", null, i + 1);\n  },\n  dots: false,\n  dotsClass: \"slick-dots\",\n  draggable: true,\n  easing: \"linear\",\n  edgeFriction: 0.35,\n  fade: false,\n  focusOnSelect: false,\n  infinite: true,\n  initialSlide: 0,\n  lazyLoad: null,\n  nextArrow: null,\n  onEdge: null,\n  onInit: null,\n  onLazyLoadError: null,\n  onReInit: null,\n  pauseOnDotsHover: false,\n  pauseOnFocus: false,\n  pauseOnHover: true,\n  prevArrow: null,\n  responsive: null,\n  rows: 1,\n  rtl: false,\n  slide: \"div\",\n  slidesPerRow: 1,\n  slidesToScroll: 1,\n  slidesToShow: 1,\n  speed: 500,\n  swipe: true,\n  swipeEvent: null,\n  swipeToSlide: false,\n  touchMove: true,\n  touchThreshold: 5,\n  useCSS: true,\n  useTransform: true,\n  variableWidth: false,\n  vertical: false,\n  waitForAnimate: true,\n  asNavFor: null\n};\nexport default defaultProps;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from \"react\";\nimport defaultProps from \"../default-props\";\nexport function clamp(number, lowerBound, upperBound) {\n  return Math.max(lowerBound, Math.min(number, upperBound));\n}\nexport var safePreventDefault = function safePreventDefault(event) {\n  var passiveEvents = [\"onTouchStart\", \"onTouchMove\", \"onWheel\"];\n  if (!passiveEvents.includes(event._reactName)) {\n    event.preventDefault();\n  }\n};\nexport var getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n  var onDemandSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n      onDemandSlides.push(slideIndex);\n    }\n  }\n  return onDemandSlides;\n};\n\n// return list of slides that need to be present\nexport var getRequiredLazySlides = function getRequiredLazySlides(spec) {\n  var requiredSlides = [];\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n  for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n    requiredSlides.push(slideIndex);\n  }\n  return requiredSlides;\n};\n\n// startIndex that needs to be present\nexport var lazyStartIndex = function lazyStartIndex(spec) {\n  return spec.currentSlide - lazySlidesOnLeft(spec);\n};\nexport var lazyEndIndex = function lazyEndIndex(spec) {\n  return spec.currentSlide + lazySlidesOnRight(spec);\n};\nexport var lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n  return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\nexport var lazySlidesOnRight = function lazySlidesOnRight(spec) {\n  return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n};\n\n// get width of an element\nexport var getWidth = function getWidth(elem) {\n  return elem && elem.offsetWidth || 0;\n};\nexport var getHeight = function getHeight(elem) {\n  return elem && elem.offsetHeight || 0;\n};\nexport var getSwipeDirection = function getSwipeDirection(touchObject) {\n  var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  var xDist, yDist, r, swipeAngle;\n  xDist = touchObject.startX - touchObject.curX;\n  yDist = touchObject.startY - touchObject.curY;\n  r = Math.atan2(yDist, xDist);\n  swipeAngle = Math.round(r * 180 / Math.PI);\n  if (swipeAngle < 0) {\n    swipeAngle = 360 - Math.abs(swipeAngle);\n  }\n  if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n    return \"left\";\n  }\n  if (swipeAngle >= 135 && swipeAngle <= 225) {\n    return \"right\";\n  }\n  if (verticalSwiping === true) {\n    if (swipeAngle >= 35 && swipeAngle <= 135) {\n      return \"up\";\n    } else {\n      return \"down\";\n    }\n  }\n  return \"vertical\";\n};\n\n// whether or not we can go next\nexport var canGoNext = function canGoNext(spec) {\n  var canGo = true;\n  if (!spec.infinite) {\n    if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n      canGo = false;\n    } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n      canGo = false;\n    }\n  }\n  return canGo;\n};\n\n// given an object and a list of keys, return new object with given keys\nexport var extractObject = function extractObject(spec, keys) {\n  var newObject = {};\n  keys.forEach(function (key) {\n    return newObject[key] = spec[key];\n  });\n  return newObject;\n};\n\n// get initialized state\nexport var initializedState = function initializedState(spec) {\n  // spec also contains listRef, trackRef\n  var slideCount = React.Children.count(spec.children);\n  var listNode = spec.listRef;\n  var listWidth = Math.ceil(getWidth(listNode));\n  var trackNode = spec.trackRef && spec.trackRef.node;\n  var trackWidth = Math.ceil(getWidth(trackNode));\n  var slideWidth;\n  if (!spec.vertical) {\n    var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n    if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n      centerPaddingAdj *= listWidth / 100;\n    }\n    slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n  } else {\n    slideWidth = listWidth;\n  }\n  var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n  var listHeight = slideHeight * spec.slidesToShow;\n  var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n  if (spec.rtl && spec.currentSlide === undefined) {\n    currentSlide = slideCount - 1 - spec.initialSlide;\n  }\n  var lazyLoadedList = spec.lazyLoadedList || [];\n  var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n    currentSlide: currentSlide,\n    lazyLoadedList: lazyLoadedList\n  }));\n  lazyLoadedList = lazyLoadedList.concat(slidesToLoad);\n  var state = {\n    slideCount: slideCount,\n    slideWidth: slideWidth,\n    listWidth: listWidth,\n    trackWidth: trackWidth,\n    currentSlide: currentSlide,\n    slideHeight: slideHeight,\n    listHeight: listHeight,\n    lazyLoadedList: lazyLoadedList\n  };\n  if (spec.autoplaying === null && spec.autoplay) {\n    state[\"autoplaying\"] = \"playing\";\n  }\n  return state;\n};\nexport var slideHandler = function slideHandler(spec) {\n  var waitForAnimate = spec.waitForAnimate,\n    animating = spec.animating,\n    fade = spec.fade,\n    infinite = spec.infinite,\n    index = spec.index,\n    slideCount = spec.slideCount,\n    lazyLoad = spec.lazyLoad,\n    currentSlide = spec.currentSlide,\n    centerMode = spec.centerMode,\n    slidesToScroll = spec.slidesToScroll,\n    slidesToShow = spec.slidesToShow,\n    useCSS = spec.useCSS;\n  var lazyLoadedList = spec.lazyLoadedList;\n  if (waitForAnimate && animating) return {};\n  var animationSlide = index,\n    finalSlide,\n    animationLeft,\n    finalLeft;\n  var state = {},\n    nextState = {};\n  var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n  if (fade) {\n    if (!infinite && (index < 0 || index >= slideCount)) return {};\n    if (index < 0) {\n      animationSlide = index + slideCount;\n    } else if (index >= slideCount) {\n      animationSlide = index - slideCount;\n    }\n    if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n      lazyLoadedList = lazyLoadedList.concat(animationSlide);\n    }\n    state = {\n      animating: true,\n      currentSlide: animationSlide,\n      lazyLoadedList: lazyLoadedList,\n      targetSlide: animationSlide\n    };\n    nextState = {\n      animating: false,\n      targetSlide: animationSlide\n    };\n  } else {\n    finalSlide = animationSlide;\n    if (animationSlide < 0) {\n      finalSlide = animationSlide + slideCount;\n      if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n    } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n      animationSlide = finalSlide = currentSlide;\n    } else if (centerMode && animationSlide >= slideCount) {\n      animationSlide = infinite ? slideCount : slideCount - 1;\n      finalSlide = infinite ? 0 : slideCount - 1;\n    } else if (animationSlide >= slideCount) {\n      finalSlide = animationSlide - slideCount;\n      if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n    }\n    if (!infinite && animationSlide + slidesToShow >= slideCount) {\n      finalSlide = slideCount - slidesToShow;\n    }\n    animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n      slideIndex: animationSlide\n    }));\n    finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n      slideIndex: finalSlide\n    }));\n    if (!infinite) {\n      if (animationLeft === finalLeft) animationSlide = finalSlide;\n      animationLeft = finalLeft;\n    }\n    if (lazyLoad) {\n      lazyLoadedList = lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n        currentSlide: animationSlide\n      })));\n    }\n    if (!useCSS) {\n      state = {\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n          left: finalLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n    } else {\n      state = {\n        animating: true,\n        currentSlide: finalSlide,\n        trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n          left: animationLeft\n        })),\n        lazyLoadedList: lazyLoadedList,\n        targetSlide: targetSlide\n      };\n      nextState = {\n        animating: false,\n        currentSlide: finalSlide,\n        trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n          left: finalLeft\n        })),\n        swipeLeft: null,\n        targetSlide: targetSlide\n      };\n    }\n  }\n  return {\n    state: state,\n    nextState: nextState\n  };\n};\nexport var changeSlide = function changeSlide(spec, options) {\n  var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n  var slidesToScroll = spec.slidesToScroll,\n    slidesToShow = spec.slidesToShow,\n    slideCount = spec.slideCount,\n    currentSlide = spec.currentSlide,\n    previousTargetSlide = spec.targetSlide,\n    lazyLoad = spec.lazyLoad,\n    infinite = spec.infinite;\n  unevenOffset = slideCount % slidesToScroll !== 0;\n  indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n  if (options.message === \"previous\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n    targetSlide = currentSlide - slideOffset;\n    if (lazyLoad && !infinite) {\n      previousInt = currentSlide - slideOffset;\n      targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide - slidesToScroll;\n    }\n  } else if (options.message === \"next\") {\n    slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n    targetSlide = currentSlide + slideOffset;\n    if (lazyLoad && !infinite) {\n      targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n    }\n    if (!infinite) {\n      targetSlide = previousTargetSlide + slidesToScroll;\n    }\n  } else if (options.message === \"dots\") {\n    // Click on dots\n    targetSlide = options.index * options.slidesToScroll;\n  } else if (options.message === \"children\") {\n    // Click on the slides\n    targetSlide = options.index;\n    if (infinite) {\n      var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n        targetSlide: targetSlide\n      }));\n      if (targetSlide > options.currentSlide && direction === \"left\") {\n        targetSlide = targetSlide - slideCount;\n      } else if (targetSlide < options.currentSlide && direction === \"right\") {\n        targetSlide = targetSlide + slideCount;\n      }\n    }\n  } else if (options.message === \"index\") {\n    targetSlide = Number(options.index);\n  }\n  return targetSlide;\n};\nexport var keyHandler = function keyHandler(e, accessibility, rtl) {\n  if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n  if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n  if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n  return \"\";\n};\nexport var swipeStart = function swipeStart(e, swipe, draggable) {\n  e.target.tagName === \"IMG\" && safePreventDefault(e);\n  if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n  return {\n    dragging: true,\n    touchObject: {\n      startX: e.touches ? e.touches[0].pageX : e.clientX,\n      startY: e.touches ? e.touches[0].pageY : e.clientY,\n      curX: e.touches ? e.touches[0].pageX : e.clientX,\n      curY: e.touches ? e.touches[0].pageY : e.clientY\n    }\n  };\n};\nexport var swipeMove = function swipeMove(e, spec) {\n  // spec also contains, trackRef and slideIndex\n  var scrolling = spec.scrolling,\n    animating = spec.animating,\n    vertical = spec.vertical,\n    swipeToSlide = spec.swipeToSlide,\n    verticalSwiping = spec.verticalSwiping,\n    rtl = spec.rtl,\n    currentSlide = spec.currentSlide,\n    edgeFriction = spec.edgeFriction,\n    edgeDragged = spec.edgeDragged,\n    onEdge = spec.onEdge,\n    swiped = spec.swiped,\n    swiping = spec.swiping,\n    slideCount = spec.slideCount,\n    slidesToScroll = spec.slidesToScroll,\n    infinite = spec.infinite,\n    touchObject = spec.touchObject,\n    swipeEvent = spec.swipeEvent,\n    listHeight = spec.listHeight,\n    listWidth = spec.listWidth;\n  if (scrolling) return;\n  if (animating) return safePreventDefault(e);\n  if (vertical && swipeToSlide && verticalSwiping) safePreventDefault(e);\n  var swipeLeft,\n    state = {};\n  var curLeft = getTrackLeft(spec);\n  touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n  touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n  touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n  var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n  if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n    return {\n      scrolling: true\n    };\n  }\n  if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n  var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n  if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n  var dotCount = Math.ceil(slideCount / slidesToScroll);\n  var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n  var touchSwipeLength = touchObject.swipeLength;\n  if (!infinite) {\n    if (currentSlide === 0 && (swipeDirection === \"right\" || swipeDirection === \"down\") || currentSlide + 1 >= dotCount && (swipeDirection === \"left\" || swipeDirection === \"up\") || !canGoNext(spec) && (swipeDirection === \"left\" || swipeDirection === \"up\")) {\n      touchSwipeLength = touchObject.swipeLength * edgeFriction;\n      if (edgeDragged === false && onEdge) {\n        onEdge(swipeDirection);\n        state[\"edgeDragged\"] = true;\n      }\n    }\n  }\n  if (!swiped && swipeEvent) {\n    swipeEvent(swipeDirection);\n    state[\"swiped\"] = true;\n  }\n  if (!vertical) {\n    if (!rtl) {\n      swipeLeft = curLeft + touchSwipeLength * positionOffset;\n    } else {\n      swipeLeft = curLeft - touchSwipeLength * positionOffset;\n    }\n  } else {\n    swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n  }\n  if (verticalSwiping) {\n    swipeLeft = curLeft + touchSwipeLength * positionOffset;\n  }\n  state = _objectSpread(_objectSpread({}, state), {}, {\n    touchObject: touchObject,\n    swipeLeft: swipeLeft,\n    trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n      left: swipeLeft\n    }))\n  });\n  if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n    return state;\n  }\n  if (touchObject.swipeLength > 10) {\n    state[\"swiping\"] = true;\n    safePreventDefault(e);\n  }\n  return state;\n};\nexport var swipeEnd = function swipeEnd(e, spec) {\n  var dragging = spec.dragging,\n    swipe = spec.swipe,\n    touchObject = spec.touchObject,\n    listWidth = spec.listWidth,\n    touchThreshold = spec.touchThreshold,\n    verticalSwiping = spec.verticalSwiping,\n    listHeight = spec.listHeight,\n    swipeToSlide = spec.swipeToSlide,\n    scrolling = spec.scrolling,\n    onSwipe = spec.onSwipe,\n    targetSlide = spec.targetSlide,\n    currentSlide = spec.currentSlide,\n    infinite = spec.infinite;\n  if (!dragging) {\n    if (swipe) safePreventDefault(e);\n    return {};\n  }\n  var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n  var swipeDirection = getSwipeDirection(touchObject, verticalSwiping);\n  // reset the state of touch related state variables.\n  var state = {\n    dragging: false,\n    edgeDragged: false,\n    scrolling: false,\n    swiping: false,\n    swiped: false,\n    swipeLeft: null,\n    touchObject: {}\n  };\n  if (scrolling) {\n    return state;\n  }\n  if (!touchObject.swipeLength) {\n    return state;\n  }\n  if (touchObject.swipeLength > minSwipe) {\n    safePreventDefault(e);\n    if (onSwipe) {\n      onSwipe(swipeDirection);\n    }\n    var slideCount, newSlide;\n    var activeSlide = infinite ? currentSlide : targetSlide;\n    switch (swipeDirection) {\n      case \"left\":\n      case \"up\":\n        newSlide = activeSlide + getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 0;\n        break;\n      case \"right\":\n      case \"down\":\n        newSlide = activeSlide - getSlideCount(spec);\n        slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n        state[\"currentDirection\"] = 1;\n        break;\n      default:\n        slideCount = activeSlide;\n    }\n    state[\"triggerSlideHandler\"] = slideCount;\n  } else {\n    // Adjust the track back to it's original position.\n    var currentLeft = getTrackLeft(spec);\n    state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n      left: currentLeft\n    }));\n  }\n  return state;\n};\nexport var getNavigableIndexes = function getNavigableIndexes(spec) {\n  var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n  var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n  var indexes = [];\n  while (breakpoint < max) {\n    indexes.push(breakpoint);\n    breakpoint = counter + spec.slidesToScroll;\n    counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n  }\n  return indexes;\n};\nexport var checkNavigable = function checkNavigable(spec, index) {\n  var navigables = getNavigableIndexes(spec);\n  var prevNavigable = 0;\n  if (index > navigables[navigables.length - 1]) {\n    index = navigables[navigables.length - 1];\n  } else {\n    for (var n in navigables) {\n      if (index < navigables[n]) {\n        index = prevNavigable;\n        break;\n      }\n      prevNavigable = navigables[n];\n    }\n  }\n  return index;\n};\nexport var getSlideCount = function getSlideCount(spec) {\n  var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n  if (spec.swipeToSlide) {\n    var swipedSlide;\n    var slickList = spec.listRef;\n    var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n    Array.from(slides).every(function (slide) {\n      if (!spec.vertical) {\n        if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      } else {\n        if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n          swipedSlide = slide;\n          return false;\n        }\n      }\n      return true;\n    });\n    if (!swipedSlide) {\n      return 0;\n    }\n    var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n    var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n    return slidesTraversed;\n  } else {\n    return spec.slidesToScroll;\n  }\n};\nexport var checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n  return (\n    // eslint-disable-next-line no-prototype-builtins\n    keysArray.reduce(function (value, key) {\n      return value && spec.hasOwnProperty(key);\n    }, true) ? null : console.error(\"Keys Missing:\", spec)\n  );\n};\nexport var getTrackCSS = function getTrackCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n  var trackWidth, trackHeight;\n  if (!spec.vertical) {\n    trackWidth = getTotalSlides(spec) * spec.slideWidth;\n  } else {\n    var trackChildren = spec.unslick ? spec.slideCount : spec.slideCount + 2 * spec.slidesToShow;\n    trackHeight = trackChildren * spec.slideHeight;\n  }\n  var style = {\n    opacity: 1,\n    transition: \"\",\n    WebkitTransition: \"\"\n  };\n  if (spec.useTransform) {\n    var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n    var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n    style = _objectSpread(_objectSpread({}, style), {}, {\n      WebkitTransform: WebkitTransform,\n      transform: transform,\n      msTransform: msTransform\n    });\n  } else {\n    if (spec.vertical) {\n      style[\"top\"] = spec.left;\n    } else {\n      style[\"left\"] = spec.left;\n    }\n  }\n  if (spec.fade) style = {\n    opacity: 1\n  };\n  if (trackWidth) style.width = trackWidth;\n  if (trackHeight) style.height = trackHeight;\n\n  // Fallback for IE8\n  if (window && !window.addEventListener && window.attachEvent) {\n    if (!spec.vertical) {\n      style.marginLeft = spec.left + \"px\";\n    } else {\n      style.marginTop = spec.left + \"px\";\n    }\n  }\n  return style;\n};\nexport var getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n  checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n  var style = getTrackCSS(spec);\n  // useCSS is true by default so it can be undefined\n  if (spec.useTransform) {\n    style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n    style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n  } else {\n    if (spec.vertical) {\n      style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n    } else {\n      style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n    }\n  }\n  return style;\n};\nexport var getTrackLeft = function getTrackLeft(spec) {\n  if (spec.unslick) {\n    return 0;\n  }\n  checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n  var slideIndex = spec.slideIndex,\n    trackRef = spec.trackRef,\n    infinite = spec.infinite,\n    centerMode = spec.centerMode,\n    slideCount = spec.slideCount,\n    slidesToShow = spec.slidesToShow,\n    slidesToScroll = spec.slidesToScroll,\n    slideWidth = spec.slideWidth,\n    listWidth = spec.listWidth,\n    variableWidth = spec.variableWidth,\n    slideHeight = spec.slideHeight,\n    fade = spec.fade,\n    vertical = spec.vertical;\n  var slideOffset = 0;\n  var targetLeft;\n  var targetSlide;\n  var verticalOffset = 0;\n  if (fade || spec.slideCount === 1) {\n    return 0;\n  }\n  var slidesToOffset = 0;\n  if (infinite) {\n    slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n    // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n    }\n    // shift current slide to center of the frame\n    if (centerMode) {\n      slidesToOffset += parseInt(slidesToShow / 2);\n    }\n  } else {\n    if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n      slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n    }\n    if (centerMode) {\n      slidesToOffset = parseInt(slidesToShow / 2);\n    }\n  }\n  slideOffset = slidesToOffset * slideWidth;\n  verticalOffset = slidesToOffset * slideHeight;\n  if (!vertical) {\n    targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n  } else {\n    targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n  }\n  if (variableWidth === true) {\n    var targetSlideIndex;\n    var trackElem = trackRef && trackRef.node;\n    targetSlideIndex = slideIndex + getPreClones(spec);\n    targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n    targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n    if (centerMode === true) {\n      targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n      targetSlide = trackElem && trackElem.children[targetSlideIndex];\n      targetLeft = 0;\n      for (var slide = 0; slide < targetSlideIndex; slide++) {\n        targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n      }\n      targetLeft -= parseInt(spec.centerPadding);\n      targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n    }\n  }\n  return targetLeft;\n};\nexport var getPreClones = function getPreClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  if (spec.variableWidth) {\n    return spec.slideCount;\n  }\n  return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\nexport var getPostClones = function getPostClones(spec) {\n  if (spec.unslick || !spec.infinite) {\n    return 0;\n  }\n  return spec.slideCount;\n};\nexport var getTotalSlides = function getTotalSlides(spec) {\n  return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\nexport var siblingDirection = function siblingDirection(spec) {\n  if (spec.targetSlide > spec.currentSlide) {\n    if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n      return \"left\";\n    }\n    return \"right\";\n  } else {\n    if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n      return \"right\";\n    }\n    return \"left\";\n  }\n};\nexport var slidesOnRight = function slidesOnRight(_ref) {\n  var slidesToShow = _ref.slidesToShow,\n    centerMode = _ref.centerMode,\n    rtl = _ref.rtl,\n    centerPadding = _ref.centerPadding;\n  // returns no of slides on the right of active slide\n  if (centerMode) {\n    var right = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) right += 1;\n    if (rtl && slidesToShow % 2 === 0) right += 1;\n    return right;\n  }\n  if (rtl) {\n    return 0;\n  }\n  return slidesToShow - 1;\n};\nexport var slidesOnLeft = function slidesOnLeft(_ref2) {\n  var slidesToShow = _ref2.slidesToShow,\n    centerMode = _ref2.centerMode,\n    rtl = _ref2.rtl,\n    centerPadding = _ref2.centerPadding;\n  // returns no of slides on the left of active slide\n  if (centerMode) {\n    var left = (slidesToShow - 1) / 2 + 1;\n    if (parseInt(centerPadding) > 0) left += 1;\n    if (!rtl && slidesToShow % 2 === 0) left += 1;\n    return left;\n  }\n  if (rtl) {\n    return slidesToShow - 1;\n  }\n  return 0;\n};\nexport var canUseDOM = function canUseDOM() {\n  return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\nexport var validSettings = Object.keys(defaultProps);\nexport function filterSettings(settings) {\n  return validSettings.reduce(function (acc, settingName) {\n    if (settings.hasOwnProperty(settingName)) {\n      acc[settingName] = settings[settingName];\n    }\n    return acc;\n  }, {});\n}","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { lazyStartIndex, lazyEndIndex, getPreClones } from \"./utils/innerSliderUtils\";\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n  var slickActive, slickCenter, slickCloned;\n  var centerOffset, index;\n  if (spec.rtl) {\n    index = spec.slideCount - 1 - spec.index;\n  } else {\n    index = spec.index;\n  }\n  slickCloned = index < 0 || index >= spec.slideCount;\n  if (spec.centerMode) {\n    centerOffset = Math.floor(spec.slidesToShow / 2);\n    slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n    if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n      slickActive = true;\n    }\n  } else {\n    slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n  }\n  var focusedSlide;\n  if (spec.targetSlide < 0) {\n    focusedSlide = spec.targetSlide + spec.slideCount;\n  } else if (spec.targetSlide >= spec.slideCount) {\n    focusedSlide = spec.targetSlide - spec.slideCount;\n  } else {\n    focusedSlide = spec.targetSlide;\n  }\n  var slickCurrent = index === focusedSlide;\n  return {\n    \"slick-slide\": true,\n    \"slick-active\": slickActive,\n    \"slick-center\": slickCenter,\n    \"slick-cloned\": slickCloned,\n    \"slick-current\": slickCurrent // dubious in case of RTL\n  };\n};\nvar getSlideStyle = function getSlideStyle(spec) {\n  var style = {};\n  if (spec.variableWidth === undefined || spec.variableWidth === false) {\n    style.width = spec.slideWidth;\n  }\n  if (spec.fade) {\n    style.position = \"relative\";\n    if (spec.vertical && spec.slideHeight) {\n      style.top = -spec.index * parseInt(spec.slideHeight);\n    } else {\n      style.left = -spec.index * parseInt(spec.slideWidth);\n    }\n    style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n    style.zIndex = spec.currentSlide === spec.index ? 999 : 998;\n    if (spec.useCSS) {\n      style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n    }\n  }\n  return style;\n};\nvar getKey = function getKey(child, fallbackKey) {\n  return child.key + \"-\" + fallbackKey;\n};\nvar renderSlides = function renderSlides(spec) {\n  var key;\n  var slides = [];\n  var preCloneSlides = [];\n  var postCloneSlides = [];\n  var childrenCount = React.Children.count(spec.children);\n  var startIndex = lazyStartIndex(spec);\n  var endIndex = lazyEndIndex(spec);\n  React.Children.forEach(spec.children, function (elem, index) {\n    var child;\n    var childOnClickOptions = {\n      message: \"children\",\n      index: index,\n      slidesToScroll: spec.slidesToScroll,\n      currentSlide: spec.currentSlide\n    };\n\n    // in case of lazyLoad, whether or not we want to fetch the slide\n    if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n      child = elem;\n    } else {\n      child = /*#__PURE__*/React.createElement(\"div\", null);\n    }\n    var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n      index: index\n    }));\n    var slideClass = child.props.className || \"\";\n    var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n      index: index\n    }));\n    // push a cloned element of the desired slide\n    slides.push( /*#__PURE__*/React.cloneElement(child, {\n      key: \"original\" + getKey(child, index),\n      \"data-index\": index,\n      className: classnames(slideClasses, slideClass),\n      tabIndex: \"-1\",\n      \"aria-hidden\": !slideClasses[\"slick-active\"],\n      style: _objectSpread(_objectSpread({\n        outline: \"none\"\n      }, child.props.style || {}), childStyle),\n      onClick: function onClick(e) {\n        child.props && child.props.onClick && child.props.onClick(e);\n        if (spec.focusOnSelect) {\n          spec.focusOnSelect(childOnClickOptions);\n        }\n      }\n    }));\n\n    // if slide needs to be precloned or postcloned\n    if (spec.infinite && childrenCount > 1 && spec.fade === false && !spec.unslick) {\n      var preCloneNo = childrenCount - index;\n      if (preCloneNo <= getPreClones(spec)) {\n        key = -preCloneNo;\n        if (key >= startIndex) {\n          child = elem;\n        }\n        slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n          index: key\n        }));\n        preCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n          key: \"precloned\" + getKey(child, key),\n          \"data-index\": key,\n          tabIndex: \"-1\",\n          className: classnames(slideClasses, slideClass),\n          \"aria-hidden\": !slideClasses[\"slick-active\"],\n          style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n          onClick: function onClick(e) {\n            child.props && child.props.onClick && child.props.onClick(e);\n            if (spec.focusOnSelect) {\n              spec.focusOnSelect(childOnClickOptions);\n            }\n          }\n        }));\n      }\n      key = childrenCount + index;\n      if (key < endIndex) {\n        child = elem;\n      }\n      slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n        index: key\n      }));\n      postCloneSlides.push( /*#__PURE__*/React.cloneElement(child, {\n        key: \"postcloned\" + getKey(child, key),\n        \"data-index\": key,\n        tabIndex: \"-1\",\n        className: classnames(slideClasses, slideClass),\n        \"aria-hidden\": !slideClasses[\"slick-active\"],\n        style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n        onClick: function onClick(e) {\n          child.props && child.props.onClick && child.props.onClick(e);\n          if (spec.focusOnSelect) {\n            spec.focusOnSelect(childOnClickOptions);\n          }\n        }\n      }));\n    }\n  });\n  if (spec.rtl) {\n    return preCloneSlides.concat(slides, postCloneSlides).reverse();\n  } else {\n    return preCloneSlides.concat(slides, postCloneSlides);\n  }\n};\nexport var Track = /*#__PURE__*/function (_React$PureComponent) {\n  function Track() {\n    var _this;\n    _classCallCheck(this, Track);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _callSuper(this, Track, [].concat(args));\n    _defineProperty(_this, \"node\", null);\n    _defineProperty(_this, \"handleRef\", function (ref) {\n      _this.node = ref;\n    });\n    return _this;\n  }\n  _inherits(Track, _React$PureComponent);\n  return _createClass(Track, [{\n    key: \"render\",\n    value: function render() {\n      var slides = renderSlides(this.props);\n      var _this$props = this.props,\n        onMouseEnter = _this$props.onMouseEnter,\n        onMouseOver = _this$props.onMouseOver,\n        onMouseLeave = _this$props.onMouseLeave;\n      var mouseEvents = {\n        onMouseEnter: onMouseEnter,\n        onMouseOver: onMouseOver,\n        onMouseLeave: onMouseLeave\n      };\n      return /*#__PURE__*/React.createElement(\"div\", _extends({\n        ref: this.handleRef,\n        className: \"slick-track\",\n        style: this.props.trackStyle\n      }, mouseEvents), slides);\n    }\n  }]);\n}(React.PureComponent);","\"use strict\";\n\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { clamp } from \"./utils/innerSliderUtils\";\nvar getDotCount = function getDotCount(spec) {\n  var dots;\n  if (spec.infinite) {\n    dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n  } else {\n    dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n  }\n  return dots;\n};\nexport var Dots = /*#__PURE__*/function (_React$PureComponent) {\n  function Dots() {\n    _classCallCheck(this, Dots);\n    return _callSuper(this, Dots, arguments);\n  }\n  _inherits(Dots, _React$PureComponent);\n  return _createClass(Dots, [{\n    key: \"clickHandler\",\n    value: function clickHandler(options, e) {\n      // In Autoplay the focus stays on clicked button even after transition\n      // to next slide. That only goes away by click somewhere outside\n      e.preventDefault();\n      this.props.clickHandler(options);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        onMouseEnter = _this$props.onMouseEnter,\n        onMouseOver = _this$props.onMouseOver,\n        onMouseLeave = _this$props.onMouseLeave,\n        infinite = _this$props.infinite,\n        slidesToScroll = _this$props.slidesToScroll,\n        slidesToShow = _this$props.slidesToShow,\n        slideCount = _this$props.slideCount,\n        currentSlide = _this$props.currentSlide;\n      var dotCount = getDotCount({\n        slideCount: slideCount,\n        slidesToScroll: slidesToScroll,\n        slidesToShow: slidesToShow,\n        infinite: infinite\n      });\n      var mouseEvents = {\n        onMouseEnter: onMouseEnter,\n        onMouseOver: onMouseOver,\n        onMouseLeave: onMouseLeave\n      };\n      var dots = [];\n      for (var i = 0; i < dotCount; i++) {\n        var _rightBound = (i + 1) * slidesToScroll - 1;\n        var rightBound = infinite ? _rightBound : clamp(_rightBound, 0, slideCount - 1);\n        var _leftBound = rightBound - (slidesToScroll - 1);\n        var leftBound = infinite ? _leftBound : clamp(_leftBound, 0, slideCount - 1);\n        var className = classnames({\n          \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n        });\n        var dotOptions = {\n          message: \"dots\",\n          index: i,\n          slidesToScroll: slidesToScroll,\n          currentSlide: currentSlide\n        };\n        var onClick = this.clickHandler.bind(this, dotOptions);\n        dots = dots.concat( /*#__PURE__*/React.createElement(\"li\", {\n          key: i,\n          className: className\n        }, /*#__PURE__*/React.cloneElement(this.props.customPaging(i), {\n          onClick: onClick\n        })));\n      }\n      return /*#__PURE__*/React.cloneElement(this.props.appendDots(dots), _objectSpread({\n        className: this.props.dotsClass\n      }, mouseEvents));\n    }\n  }]);\n}(React.PureComponent);","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nimport React from \"react\";\nimport classnames from \"classnames\";\nimport { canGoNext } from \"./utils/innerSliderUtils\";\nexport var PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n  function PrevArrow() {\n    _classCallCheck(this, PrevArrow);\n    return _callSuper(this, PrevArrow, arguments);\n  }\n  _inherits(PrevArrow, _React$PureComponent);\n  return _createClass(PrevArrow, [{\n    key: \"clickHandler\",\n    value: function clickHandler(options, e) {\n      if (e) {\n        e.preventDefault();\n      }\n      this.props.clickHandler(options, e);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var prevClasses = {\n        \"slick-arrow\": true,\n        \"slick-prev\": true\n      };\n      var prevHandler = this.clickHandler.bind(this, {\n        message: \"previous\"\n      });\n      if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n        prevClasses[\"slick-disabled\"] = true;\n        prevHandler = null;\n      }\n      var prevArrowProps = {\n        key: \"0\",\n        \"data-role\": \"none\",\n        className: classnames(prevClasses),\n        style: {\n          display: \"block\"\n        },\n        onClick: prevHandler\n      };\n      var customProps = {\n        currentSlide: this.props.currentSlide,\n        slideCount: this.props.slideCount\n      };\n      var prevArrow;\n      if (this.props.prevArrow) {\n        prevArrow = /*#__PURE__*/React.cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n      } else {\n        prevArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n          key: \"0\",\n          type: \"button\"\n        }, prevArrowProps), \" \", \"Previous\");\n      }\n      return prevArrow;\n    }\n  }]);\n}(React.PureComponent);\nexport var NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n  function NextArrow() {\n    _classCallCheck(this, NextArrow);\n    return _callSuper(this, NextArrow, arguments);\n  }\n  _inherits(NextArrow, _React$PureComponent2);\n  return _createClass(NextArrow, [{\n    key: \"clickHandler\",\n    value: function clickHandler(options, e) {\n      if (e) {\n        e.preventDefault();\n      }\n      this.props.clickHandler(options, e);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var nextClasses = {\n        \"slick-arrow\": true,\n        \"slick-next\": true\n      };\n      var nextHandler = this.clickHandler.bind(this, {\n        message: \"next\"\n      });\n      if (!canGoNext(this.props)) {\n        nextClasses[\"slick-disabled\"] = true;\n        nextHandler = null;\n      }\n      var nextArrowProps = {\n        key: \"1\",\n        \"data-role\": \"none\",\n        className: classnames(nextClasses),\n        style: {\n          display: \"block\"\n        },\n        onClick: nextHandler\n      };\n      var customProps = {\n        currentSlide: this.props.currentSlide,\n        slideCount: this.props.slideCount\n      };\n      var nextArrow;\n      if (this.props.nextArrow) {\n        nextArrow = /*#__PURE__*/React.cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n      } else {\n        nextArrow = /*#__PURE__*/React.createElement(\"button\", _extends({\n          key: \"1\",\n          type: \"button\"\n        }, nextArrowProps), \" \", \"Next\");\n      }\n      return nextArrow;\n    }\n  }]);\n}(React.PureComponent);","\"use strict\";\n\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"animating\"];\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nimport React from \"react\";\nimport initialState from \"./initial-state\";\nimport { debounce } from \"throttle-debounce\";\nimport classnames from \"classnames\";\nimport { getOnDemandLazySlides, extractObject, initializedState, getHeight, canGoNext, slideHandler, changeSlide, keyHandler, swipeStart, swipeMove, swipeEnd, getPreClones, getPostClones, getTrackLeft, getTrackCSS } from \"./utils/innerSliderUtils\";\nimport { Track } from \"./track\";\nimport { Dots } from \"./dots\";\nimport { PrevArrow, NextArrow } from \"./arrows\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nexport var InnerSlider = /*#__PURE__*/function (_React$Component) {\n  function InnerSlider(props) {\n    var _this;\n    _classCallCheck(this, InnerSlider);\n    _this = _callSuper(this, InnerSlider, [props]);\n    _defineProperty(_this, \"listRefHandler\", function (ref) {\n      return _this.list = ref;\n    });\n    _defineProperty(_this, \"trackRefHandler\", function (ref) {\n      return _this.track = ref;\n    });\n    _defineProperty(_this, \"adaptHeight\", function () {\n      if (_this.props.adaptiveHeight && _this.list) {\n        var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n        _this.list.style.height = getHeight(elem) + \"px\";\n      }\n    });\n    _defineProperty(_this, \"componentDidMount\", function () {\n      _this.props.onInit && _this.props.onInit();\n      if (_this.props.lazyLoad) {\n        var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n        if (slidesToLoad.length > 0) {\n          _this.setState(function (prevState) {\n            return {\n              lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n            };\n          });\n          if (_this.props.onLazyLoad) {\n            _this.props.onLazyLoad(slidesToLoad);\n          }\n        }\n      }\n      var spec = _objectSpread({\n        listRef: _this.list,\n        trackRef: _this.track\n      }, _this.props);\n      _this.updateState(spec, true, function () {\n        _this.adaptHeight();\n        _this.props.autoplay && _this.autoPlay(\"playing\");\n      });\n      if (_this.props.lazyLoad === \"progressive\") {\n        _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n      }\n      _this.ro = new ResizeObserver(function () {\n        if (_this.state.animating) {\n          _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n          _this.callbackTimers.push(setTimeout(function () {\n            return _this.onWindowResized();\n          }, _this.props.speed));\n        } else {\n          _this.onWindowResized();\n        }\n      });\n      _this.ro.observe(_this.list);\n      document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n        slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n        slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n      });\n      if (window.addEventListener) {\n        window.addEventListener(\"resize\", _this.onWindowResized);\n      } else {\n        window.attachEvent(\"onresize\", _this.onWindowResized);\n      }\n    });\n    _defineProperty(_this, \"componentWillUnmount\", function () {\n      if (_this.animationEndCallback) {\n        clearTimeout(_this.animationEndCallback);\n      }\n      if (_this.lazyLoadTimer) {\n        clearInterval(_this.lazyLoadTimer);\n      }\n      if (_this.callbackTimers.length) {\n        _this.callbackTimers.forEach(function (timer) {\n          return clearTimeout(timer);\n        });\n        _this.callbackTimers = [];\n      }\n      if (window.addEventListener) {\n        window.removeEventListener(\"resize\", _this.onWindowResized);\n      } else {\n        window.detachEvent(\"onresize\", _this.onWindowResized);\n      }\n      if (_this.autoplayTimer) {\n        clearInterval(_this.autoplayTimer);\n      }\n      _this.ro.disconnect();\n    });\n    _defineProperty(_this, \"componentDidUpdate\", function (prevProps) {\n      _this.checkImagesLoad();\n      _this.props.onReInit && _this.props.onReInit();\n      if (_this.props.lazyLoad) {\n        var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, _this.props), _this.state));\n        if (slidesToLoad.length > 0) {\n          _this.setState(function (prevState) {\n            return {\n              lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n            };\n          });\n          if (_this.props.onLazyLoad) {\n            _this.props.onLazyLoad(slidesToLoad);\n          }\n        }\n      }\n      // if (this.props.onLazyLoad) {\n      //   this.props.onLazyLoad([leftMostSlide])\n      // }\n      _this.adaptHeight();\n      var spec = _objectSpread(_objectSpread({\n        listRef: _this.list,\n        trackRef: _this.track\n      }, _this.props), _this.state);\n      var setTrackStyle = _this.didPropsChange(prevProps);\n      setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n        if (_this.state.currentSlide >= React.Children.count(_this.props.children)) {\n          _this.changeSlide({\n            message: \"index\",\n            index: React.Children.count(_this.props.children) - _this.props.slidesToShow,\n            currentSlide: _this.state.currentSlide\n          });\n        }\n        if (prevProps.autoplay !== _this.props.autoplay || prevProps.autoplaySpeed !== _this.props.autoplaySpeed) {\n          if (!prevProps.autoplay && _this.props.autoplay) {\n            _this.autoPlay(\"playing\");\n          } else if (_this.props.autoplay) {\n            _this.autoPlay(\"update\");\n          } else {\n            _this.pause(\"paused\");\n          }\n        }\n      });\n    });\n    _defineProperty(_this, \"onWindowResized\", function (setTrackStyle) {\n      if (_this.debouncedResize) _this.debouncedResize.cancel();\n      _this.debouncedResize = debounce(50, function () {\n        return _this.resizeWindow(setTrackStyle);\n      });\n      _this.debouncedResize();\n    });\n    _defineProperty(_this, \"resizeWindow\", function () {\n      var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n      var isTrackMounted = Boolean(_this.track && _this.track.node);\n      // prevent warning: setting state on unmounted component (server side rendering)\n      if (!isTrackMounted) return;\n      var spec = _objectSpread(_objectSpread({\n        listRef: _this.list,\n        trackRef: _this.track\n      }, _this.props), _this.state);\n      _this.updateState(spec, setTrackStyle, function () {\n        if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n      });\n      // animating state should be cleared while resizing, otherwise autoplay stops working\n      _this.setState({\n        animating: false\n      });\n      clearTimeout(_this.animationEndCallback);\n      delete _this.animationEndCallback;\n    });\n    _defineProperty(_this, \"updateState\", function (spec, setTrackStyle, callback) {\n      var updatedState = initializedState(spec);\n      spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n        slideIndex: updatedState.currentSlide\n      });\n      var targetLeft = getTrackLeft(spec);\n      spec = _objectSpread(_objectSpread({}, spec), {}, {\n        left: targetLeft\n      });\n      var trackStyle = getTrackCSS(spec);\n      if (setTrackStyle || React.Children.count(_this.props.children) !== React.Children.count(spec.children)) {\n        updatedState[\"trackStyle\"] = trackStyle;\n      }\n      _this.setState(updatedState, callback);\n    });\n    _defineProperty(_this, \"ssrInit\", function () {\n      if (_this.props.variableWidth) {\n        var _trackWidth = 0,\n          _trackLeft = 0;\n        var childrenWidths = [];\n        var preClones = getPreClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n          slideCount: _this.props.children.length\n        }));\n        var postClones = getPostClones(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n          slideCount: _this.props.children.length\n        }));\n        _this.props.children.forEach(function (child) {\n          childrenWidths.push(child.props.style.width);\n          _trackWidth += child.props.style.width;\n        });\n        for (var i = 0; i < preClones; i++) {\n          _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n          _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n        }\n        for (var _i = 0; _i < postClones; _i++) {\n          _trackWidth += childrenWidths[_i];\n        }\n        for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n          _trackLeft += childrenWidths[_i2];\n        }\n        var _trackStyle = {\n          width: _trackWidth + \"px\",\n          left: -_trackLeft + \"px\"\n        };\n        if (_this.props.centerMode) {\n          var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n          _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n        }\n        return {\n          trackStyle: _trackStyle\n        };\n      }\n      var childrenCount = React.Children.count(_this.props.children);\n      var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n        slideCount: childrenCount\n      });\n      var slideCount = getPreClones(spec) + getPostClones(spec) + childrenCount;\n      var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n      var slideWidth = 100 / slideCount;\n      var trackLeft = -slideWidth * (getPreClones(spec) + _this.state.currentSlide) * trackWidth / 100;\n      if (_this.props.centerMode) {\n        trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n      }\n      var trackStyle = {\n        width: trackWidth + \"%\",\n        left: trackLeft + \"%\"\n      };\n      return {\n        slideWidth: slideWidth + \"%\",\n        trackStyle: trackStyle\n      };\n    });\n    _defineProperty(_this, \"checkImagesLoad\", function () {\n      var images = _this.list && _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n      var imagesCount = images.length,\n        loadedCount = 0;\n      Array.prototype.forEach.call(images, function (image) {\n        var handler = function handler() {\n          return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n        };\n        if (!image.onclick) {\n          image.onclick = function () {\n            return image.parentNode.focus();\n          };\n        } else {\n          var prevClickHandler = image.onclick;\n          image.onclick = function (e) {\n            prevClickHandler(e);\n            image.parentNode.focus();\n          };\n        }\n        if (!image.onload) {\n          if (_this.props.lazyLoad) {\n            image.onload = function () {\n              _this.adaptHeight();\n              _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n            };\n          } else {\n            image.onload = handler;\n            image.onerror = function () {\n              handler();\n              _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n            };\n          }\n        }\n      });\n    });\n    _defineProperty(_this, \"progressiveLazyLoad\", function () {\n      var slidesToLoad = [];\n      var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n      for (var index = _this.state.currentSlide; index < _this.state.slideCount + getPostClones(spec); index++) {\n        if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n          slidesToLoad.push(index);\n          break;\n        }\n      }\n      for (var _index = _this.state.currentSlide - 1; _index >= -getPreClones(spec); _index--) {\n        if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n          slidesToLoad.push(_index);\n          break;\n        }\n      }\n      if (slidesToLoad.length > 0) {\n        _this.setState(function (state) {\n          return {\n            lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n          };\n        });\n        if (_this.props.onLazyLoad) {\n          _this.props.onLazyLoad(slidesToLoad);\n        }\n      } else {\n        if (_this.lazyLoadTimer) {\n          clearInterval(_this.lazyLoadTimer);\n          delete _this.lazyLoadTimer;\n        }\n      }\n    });\n    _defineProperty(_this, \"slideHandler\", function (index) {\n      var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var _this$props = _this.props,\n        asNavFor = _this$props.asNavFor,\n        beforeChange = _this$props.beforeChange,\n        onLazyLoad = _this$props.onLazyLoad,\n        speed = _this$props.speed,\n        afterChange = _this$props.afterChange;\n      // capture currentslide before state is updated\n      var currentSlide = _this.state.currentSlide;\n      var _slideHandler = slideHandler(_objectSpread(_objectSpread(_objectSpread({\n          index: index\n        }, _this.props), _this.state), {}, {\n          trackRef: _this.track,\n          useCSS: _this.props.useCSS && !dontAnimate\n        })),\n        state = _slideHandler.state,\n        nextState = _slideHandler.nextState;\n      if (!state) return;\n      beforeChange && beforeChange(currentSlide, state.currentSlide);\n      var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n        return _this.state.lazyLoadedList.indexOf(value) < 0;\n      });\n      onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n      if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n        clearTimeout(_this.animationEndCallback);\n        afterChange && afterChange(currentSlide);\n        delete _this.animationEndCallback;\n      }\n      _this.setState(state, function () {\n        // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n        if (asNavFor && _this.asNavForIndex !== index) {\n          _this.asNavForIndex = index;\n          asNavFor.innerSlider.slideHandler(index);\n        }\n        if (!nextState) return;\n        _this.animationEndCallback = setTimeout(function () {\n          var animating = nextState.animating,\n            firstBatch = _objectWithoutProperties(nextState, _excluded);\n          _this.setState(firstBatch, function () {\n            _this.callbackTimers.push(setTimeout(function () {\n              return _this.setState({\n                animating: animating\n              });\n            }, 10));\n            afterChange && afterChange(state.currentSlide);\n            delete _this.animationEndCallback;\n          });\n        }, speed);\n      });\n    });\n    _defineProperty(_this, \"changeSlide\", function (options) {\n      var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n      var targetSlide = changeSlide(spec, options);\n      if (targetSlide !== 0 && !targetSlide) return;\n      if (dontAnimate === true) {\n        _this.slideHandler(targetSlide, dontAnimate);\n      } else {\n        _this.slideHandler(targetSlide);\n      }\n      _this.props.autoplay && _this.autoPlay(\"update\");\n      if (_this.props.focusOnSelect) {\n        var nodes = _this.list.querySelectorAll(\".slick-current\");\n        nodes[0] && nodes[0].focus();\n      }\n    });\n    _defineProperty(_this, \"clickHandler\", function (e) {\n      if (_this.clickable === false) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n      _this.clickable = true;\n    });\n    _defineProperty(_this, \"keyHandler\", function (e) {\n      var dir = keyHandler(e, _this.props.accessibility, _this.props.rtl);\n      dir !== \"\" && _this.changeSlide({\n        message: dir\n      });\n    });\n    _defineProperty(_this, \"selectHandler\", function (options) {\n      _this.changeSlide(options);\n    });\n    _defineProperty(_this, \"disableBodyScroll\", function () {\n      var preventDefault = function preventDefault(e) {\n        e = e || window.event;\n        if (e.preventDefault) e.preventDefault();\n        e.returnValue = false;\n      };\n      window.ontouchmove = preventDefault;\n    });\n    _defineProperty(_this, \"enableBodyScroll\", function () {\n      window.ontouchmove = null;\n    });\n    _defineProperty(_this, \"swipeStart\", function (e) {\n      if (_this.props.verticalSwiping) {\n        _this.disableBodyScroll();\n      }\n      var state = swipeStart(e, _this.props.swipe, _this.props.draggable);\n      state !== \"\" && _this.setState(state);\n    });\n    _defineProperty(_this, \"swipeMove\", function (e) {\n      var state = swipeMove(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n        trackRef: _this.track,\n        listRef: _this.list,\n        slideIndex: _this.state.currentSlide\n      }));\n      if (!state) return;\n      if (state[\"swiping\"]) {\n        _this.clickable = false;\n      }\n      _this.setState(state);\n    });\n    _defineProperty(_this, \"swipeEnd\", function (e) {\n      var state = swipeEnd(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n        trackRef: _this.track,\n        listRef: _this.list,\n        slideIndex: _this.state.currentSlide\n      }));\n      if (!state) return;\n      var triggerSlideHandler = state[\"triggerSlideHandler\"];\n      delete state[\"triggerSlideHandler\"];\n      _this.setState(state);\n      if (triggerSlideHandler === undefined) return;\n      _this.slideHandler(triggerSlideHandler);\n      if (_this.props.verticalSwiping) {\n        _this.enableBodyScroll();\n      }\n    });\n    _defineProperty(_this, \"touchEnd\", function (e) {\n      _this.swipeEnd(e);\n      _this.clickable = true;\n    });\n    _defineProperty(_this, \"slickPrev\", function () {\n      // this and fellow methods are wrapped in setTimeout\n      // to make sure initialize setState has happened before\n      // any of such methods are called\n      _this.callbackTimers.push(setTimeout(function () {\n        return _this.changeSlide({\n          message: \"previous\"\n        });\n      }, 0));\n    });\n    _defineProperty(_this, \"slickNext\", function () {\n      _this.callbackTimers.push(setTimeout(function () {\n        return _this.changeSlide({\n          message: \"next\"\n        });\n      }, 0));\n    });\n    _defineProperty(_this, \"slickGoTo\", function (slide) {\n      var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      slide = Number(slide);\n      if (isNaN(slide)) return \"\";\n      _this.callbackTimers.push(setTimeout(function () {\n        return _this.changeSlide({\n          message: \"index\",\n          index: slide,\n          currentSlide: _this.state.currentSlide\n        }, dontAnimate);\n      }, 0));\n    });\n    _defineProperty(_this, \"play\", function () {\n      var nextIndex;\n      if (_this.props.rtl) {\n        nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n      } else {\n        if (canGoNext(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n          nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n        } else {\n          return false;\n        }\n      }\n      _this.slideHandler(nextIndex);\n    });\n    _defineProperty(_this, \"autoPlay\", function (playType) {\n      if (_this.autoplayTimer) {\n        clearInterval(_this.autoplayTimer);\n      }\n      var autoplaying = _this.state.autoplaying;\n      if (playType === \"update\") {\n        if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n          return;\n        }\n      } else if (playType === \"leave\") {\n        if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n          return;\n        }\n      } else if (playType === \"blur\") {\n        if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n          return;\n        }\n      }\n      _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n      _this.setState({\n        autoplaying: \"playing\"\n      });\n    });\n    _defineProperty(_this, \"pause\", function (pauseType) {\n      if (_this.autoplayTimer) {\n        clearInterval(_this.autoplayTimer);\n        _this.autoplayTimer = null;\n      }\n      var autoplaying = _this.state.autoplaying;\n      if (pauseType === \"paused\") {\n        _this.setState({\n          autoplaying: \"paused\"\n        });\n      } else if (pauseType === \"focused\") {\n        if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n          _this.setState({\n            autoplaying: \"focused\"\n          });\n        }\n      } else {\n        // pauseType  is 'hovered'\n        if (autoplaying === \"playing\") {\n          _this.setState({\n            autoplaying: \"hovered\"\n          });\n        }\n      }\n    });\n    _defineProperty(_this, \"onDotsOver\", function () {\n      return _this.props.autoplay && _this.pause(\"hovered\");\n    });\n    _defineProperty(_this, \"onDotsLeave\", function () {\n      return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n    });\n    _defineProperty(_this, \"onTrackOver\", function () {\n      return _this.props.autoplay && _this.pause(\"hovered\");\n    });\n    _defineProperty(_this, \"onTrackLeave\", function () {\n      return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n    });\n    _defineProperty(_this, \"onSlideFocus\", function () {\n      return _this.props.autoplay && _this.pause(\"focused\");\n    });\n    _defineProperty(_this, \"onSlideBlur\", function () {\n      return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n    });\n    _defineProperty(_this, \"render\", function () {\n      var className = classnames(\"slick-slider\", _this.props.className, {\n        \"slick-vertical\": _this.props.vertical,\n        \"slick-initialized\": true\n      });\n      var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n      var trackProps = extractObject(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n      var pauseOnHover = _this.props.pauseOnHover;\n      trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n        onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n        onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n        onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n        focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n      });\n      var dots;\n      if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n        var dotProps = extractObject(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n        var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n        dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n          clickHandler: _this.changeSlide,\n          onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n          onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n          onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n        });\n        dots = /*#__PURE__*/React.createElement(Dots, dotProps);\n      }\n      var prevArrow, nextArrow;\n      var arrowProps = extractObject(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n      arrowProps.clickHandler = _this.changeSlide;\n      if (_this.props.arrows) {\n        prevArrow = /*#__PURE__*/React.createElement(PrevArrow, arrowProps);\n        nextArrow = /*#__PURE__*/React.createElement(NextArrow, arrowProps);\n      }\n      var verticalHeightStyle = null;\n      if (_this.props.vertical) {\n        verticalHeightStyle = {\n          height: _this.state.listHeight\n        };\n      }\n      var centerPaddingStyle = null;\n      if (_this.props.vertical === false) {\n        if (_this.props.centerMode === true) {\n          centerPaddingStyle = {\n            padding: \"0px \" + _this.props.centerPadding\n          };\n        }\n      } else {\n        if (_this.props.centerMode === true) {\n          centerPaddingStyle = {\n            padding: _this.props.centerPadding + \" 0px\"\n          };\n        }\n      }\n      var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n      var touchMove = _this.props.touchMove;\n      var listProps = {\n        className: \"slick-list\",\n        style: listStyle,\n        onClick: _this.clickHandler,\n        onMouseDown: touchMove ? _this.swipeStart : null,\n        onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n        onMouseUp: touchMove ? _this.swipeEnd : null,\n        onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n        onTouchStart: touchMove ? _this.swipeStart : null,\n        onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n        onTouchEnd: touchMove ? _this.touchEnd : null,\n        onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n        onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n      };\n      var innerSliderProps = {\n        className: className,\n        dir: \"ltr\",\n        style: _this.props.style\n      };\n      if (_this.props.unslick) {\n        listProps = {\n          className: \"slick-list\"\n        };\n        innerSliderProps = {\n          className: className,\n          style: _this.props.style\n        };\n      }\n      return /*#__PURE__*/React.createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/React.createElement(\"div\", _extends({\n        ref: _this.listRefHandler\n      }, listProps), /*#__PURE__*/React.createElement(Track, _extends({\n        ref: _this.trackRefHandler\n      }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n    });\n    _this.list = null;\n    _this.track = null;\n    _this.state = _objectSpread(_objectSpread({}, initialState), {}, {\n      currentSlide: _this.props.initialSlide,\n      targetSlide: _this.props.initialSlide ? _this.props.initialSlide : 0,\n      slideCount: React.Children.count(_this.props.children)\n    });\n    _this.callbackTimers = [];\n    _this.clickable = true;\n    _this.debouncedResize = null;\n    var ssrState = _this.ssrInit();\n    _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n    return _this;\n  }\n  _inherits(InnerSlider, _React$Component);\n  return _createClass(InnerSlider, [{\n    key: \"didPropsChange\",\n    value: function didPropsChange(prevProps) {\n      var setTrackStyle = false;\n      for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n        var key = _Object$keys[_i3];\n        // eslint-disable-next-line no-prototype-builtins\n        if (!prevProps.hasOwnProperty(key)) {\n          setTrackStyle = true;\n          break;\n        }\n        if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\" || isNaN(prevProps[key])) {\n          continue;\n        }\n        if (prevProps[key] !== this.props[key]) {\n          setTrackStyle = true;\n          break;\n        }\n      }\n      return setTrackStyle || React.Children.count(this.props.children) !== React.Children.count(prevProps.children);\n    }\n  }]);\n}(React.Component);","\"use strict\";\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nimport React from \"react\";\nimport { InnerSlider } from \"./inner-slider\";\nimport json2mq from \"json2mq\";\nimport defaultProps from \"./default-props\";\nimport { canUseDOM, filterSettings } from \"./utils/innerSliderUtils\";\nvar Slider = /*#__PURE__*/function (_React$Component) {\n  function Slider(props) {\n    var _this;\n    _classCallCheck(this, Slider);\n    _this = _callSuper(this, Slider, [props]);\n    _defineProperty(_this, \"innerSliderRefHandler\", function (ref) {\n      return _this.innerSlider = ref;\n    });\n    _defineProperty(_this, \"slickPrev\", function () {\n      return _this.innerSlider.slickPrev();\n    });\n    _defineProperty(_this, \"slickNext\", function () {\n      return _this.innerSlider.slickNext();\n    });\n    _defineProperty(_this, \"slickGoTo\", function (slide) {\n      var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      return _this.innerSlider.slickGoTo(slide, dontAnimate);\n    });\n    _defineProperty(_this, \"slickPause\", function () {\n      return _this.innerSlider.pause(\"paused\");\n    });\n    _defineProperty(_this, \"slickPlay\", function () {\n      return _this.innerSlider.autoPlay(\"play\");\n    });\n    _this.state = {\n      breakpoint: null\n    };\n    _this._responsiveMediaHandlers = [];\n    return _this;\n  }\n  _inherits(Slider, _React$Component);\n  return _createClass(Slider, [{\n    key: \"media\",\n    value: function media(query, handler) {\n      // javascript handler for  css media query\n      var mql = window.matchMedia(query);\n      var listener = function listener(_ref) {\n        var matches = _ref.matches;\n        if (matches) {\n          handler();\n        }\n      };\n      mql.addListener(listener);\n      listener(mql);\n      this._responsiveMediaHandlers.push({\n        mql: mql,\n        query: query,\n        listener: listener\n      });\n    }\n\n    // handles responsive breakpoints\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      var _this2 = this;\n      // performance monitoring\n      //if (process.env.NODE_ENV !== 'production') {\n      //const { whyDidYouUpdate } = require('why-did-you-update')\n      //whyDidYouUpdate(React)\n      //}\n      if (this.props.responsive) {\n        var breakpoints = this.props.responsive.map(function (breakpt) {\n          return breakpt.breakpoint;\n        });\n        // sort them in increasing order of their numerical value\n        breakpoints.sort(function (x, y) {\n          return x - y;\n        });\n        breakpoints.forEach(function (breakpoint, index) {\n          // media query for each breakpoint\n          var bQuery;\n          if (index === 0) {\n            bQuery = json2mq({\n              minWidth: 0,\n              maxWidth: breakpoint\n            });\n          } else {\n            bQuery = json2mq({\n              minWidth: breakpoints[index - 1] + 1,\n              maxWidth: breakpoint\n            });\n          }\n          // when not using server side rendering\n          canUseDOM() && _this2.media(bQuery, function () {\n            _this2.setState({\n              breakpoint: breakpoint\n            });\n          });\n        });\n\n        // Register media query for full screen. Need to support resize from small to large\n        // convert javascript object to media query string\n        var query = json2mq({\n          minWidth: breakpoints.slice(-1)[0]\n        });\n        canUseDOM() && this.media(query, function () {\n          _this2.setState({\n            breakpoint: null\n          });\n        });\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this._responsiveMediaHandlers.forEach(function (obj) {\n        obj.mql.removeListener(obj.listener);\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this3 = this;\n      var settings;\n      var newProps;\n      if (this.state.breakpoint) {\n        newProps = this.props.responsive.filter(function (resp) {\n          return resp.breakpoint === _this3.state.breakpoint;\n        });\n        settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, defaultProps), this.props), newProps[0].settings);\n      } else {\n        settings = _objectSpread(_objectSpread({}, defaultProps), this.props);\n      }\n\n      // force scrolling by one if centerMode is on\n      if (settings.centerMode) {\n        if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n          console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n        }\n        settings.slidesToScroll = 1;\n      }\n      // force showing one slide and scrolling by one if the fade mode is on\n      if (settings.fade) {\n        if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n          console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n        }\n        if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n          console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n        }\n        settings.slidesToShow = 1;\n        settings.slidesToScroll = 1;\n      }\n\n      // makes sure that children is an array, even when there is only 1 child\n      var children = React.Children.toArray(this.props.children);\n\n      // Children may contain false or null, so we should filter them\n      // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n      children = children.filter(function (child) {\n        if (typeof child === \"string\") {\n          return !!child.trim();\n        }\n        return !!child;\n      });\n\n      // rows and slidesPerRow logic is handled here\n      if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n        console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n        settings.variableWidth = false;\n      }\n      var newChildren = [];\n      var currentWidth = null;\n      for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n        var newSlide = [];\n        for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n          var row = [];\n          for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n            if (settings.variableWidth && children[k].props.style) {\n              currentWidth = children[k].props.style.width;\n            }\n            if (k >= children.length) break;\n            row.push( /*#__PURE__*/React.cloneElement(children[k], {\n              key: 100 * i + 10 * j + k,\n              tabIndex: -1,\n              style: {\n                width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n                display: \"inline-block\"\n              }\n            }));\n          }\n          newSlide.push( /*#__PURE__*/React.createElement(\"div\", {\n            key: 10 * i + j\n          }, row));\n        }\n        if (settings.variableWidth) {\n          newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n            key: i,\n            style: {\n              width: currentWidth\n            }\n          }, newSlide));\n        } else {\n          newChildren.push( /*#__PURE__*/React.createElement(\"div\", {\n            key: i\n          }, newSlide));\n        }\n      }\n      if (settings === \"unslick\") {\n        var className = \"regular slider \" + (this.props.className || \"\");\n        return /*#__PURE__*/React.createElement(\"div\", {\n          className: className\n        }, children);\n      } else if (newChildren.length <= settings.slidesToShow && !settings.infinite) {\n        settings.unslick = true;\n      }\n      return /*#__PURE__*/React.createElement(InnerSlider, _extends({\n        style: this.props.style,\n        ref: this.innerSliderRefHandler\n      }, filterSettings(settings)), newChildren);\n    }\n  }]);\n}(React.Component);\nexport { Slider as default };","import Slider from \"./slider\";\nexport default Slider;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks } from '../../theme/internal';\nconst genCarouselStyle = token => {\n  const {\n    componentCls,\n    antCls\n  } = token;\n  return {\n    [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n      '.slick-slider': {\n        position: 'relative',\n        display: 'block',\n        boxSizing: 'border-box',\n        touchAction: 'pan-y',\n        WebkitTouchCallout: 'none',\n        WebkitTapHighlightColor: 'transparent',\n        '.slick-track, .slick-list': {\n          transform: 'translate3d(0, 0, 0)',\n          touchAction: 'pan-y'\n        }\n      },\n      '.slick-list': {\n        position: 'relative',\n        display: 'block',\n        margin: 0,\n        padding: 0,\n        overflow: 'hidden',\n        '&:focus': {\n          outline: 'none'\n        },\n        '&.dragging': {\n          cursor: 'pointer'\n        },\n        '.slick-slide': {\n          pointerEvents: 'none',\n          // https://github.com/ant-design/ant-design/issues/23294\n          [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n            visibility: 'hidden'\n          },\n          '&.slick-active': {\n            pointerEvents: 'auto',\n            [`input${antCls}-radio-input, input${antCls}-checkbox-input`]: {\n              visibility: 'visible'\n            }\n          },\n          // fix Carousel content height not match parent node\n          // when children is empty node\n          // https://github.com/ant-design/ant-design/issues/25878\n          '> div > div': {\n            verticalAlign: 'bottom'\n          }\n        }\n      },\n      '.slick-track': {\n        position: 'relative',\n        top: 0,\n        insetInlineStart: 0,\n        display: 'block',\n        '&::before, &::after': {\n          display: 'table',\n          content: '\"\"'\n        },\n        '&::after': {\n          clear: 'both'\n        }\n      },\n      '.slick-slide': {\n        display: 'none',\n        float: 'left',\n        height: '100%',\n        minHeight: 1,\n        img: {\n          display: 'block'\n        },\n        '&.dragging img': {\n          pointerEvents: 'none'\n        }\n      },\n      '.slick-initialized .slick-slide': {\n        display: 'block'\n      },\n      '.slick-vertical .slick-slide': {\n        display: 'block',\n        height: 'auto'\n      }\n    })\n  };\n};\nconst genArrowsStyle = token => {\n  const {\n    componentCls,\n    motionDurationSlow,\n    arrowSize,\n    arrowOffset\n  } = token;\n  const arrowLength = token.calc(arrowSize).div(Math.SQRT2).equal();\n  return [{\n    [componentCls]: {\n      // Arrows\n      '.slick-prev, .slick-next': {\n        position: 'absolute',\n        top: '50%',\n        width: arrowSize,\n        height: arrowSize,\n        transform: 'translateY(-50%)',\n        color: '#fff',\n        opacity: 0.4,\n        background: 'transparent',\n        padding: 0,\n        lineHeight: 0,\n        border: 0,\n        outline: 'none',\n        cursor: 'pointer',\n        zIndex: 1,\n        transition: `opacity ${motionDurationSlow}`,\n        '&:hover, &:focus': {\n          opacity: 1\n        },\n        '&.slick-disabled': {\n          pointerEvents: 'none',\n          opacity: 0\n        },\n        '&::after': {\n          boxSizing: 'border-box',\n          position: 'absolute',\n          top: token.calc(arrowSize).sub(arrowLength).div(2).equal(),\n          insetInlineStart: token.calc(arrowSize).sub(arrowLength).div(2).equal(),\n          display: 'inline-block',\n          width: arrowLength,\n          height: arrowLength,\n          border: `0 solid currentcolor`,\n          borderInlineWidth: '2px 0',\n          borderBlockWidth: '2px 0',\n          borderRadius: 1,\n          content: '\"\"'\n        }\n      },\n      '.slick-prev': {\n        insetInlineStart: arrowOffset,\n        '&::after': {\n          transform: 'rotate(-45deg)'\n        }\n      },\n      '.slick-next': {\n        insetInlineEnd: arrowOffset,\n        '&::after': {\n          transform: 'rotate(135deg)'\n        }\n      }\n    }\n  }];\n};\nconst genDotsStyle = token => {\n  const {\n    componentCls,\n    dotOffset,\n    dotWidth,\n    dotHeight,\n    dotGap,\n    colorBgContainer,\n    motionDurationSlow\n  } = token;\n  return [{\n    [componentCls]: {\n      '.slick-dots': {\n        position: 'absolute',\n        insetInlineEnd: 0,\n        bottom: 0,\n        insetInlineStart: 0,\n        zIndex: 15,\n        display: 'flex !important',\n        justifyContent: 'center',\n        paddingInlineStart: 0,\n        margin: 0,\n        listStyle: 'none',\n        '&-bottom': {\n          bottom: dotOffset\n        },\n        '&-top': {\n          top: dotOffset,\n          bottom: 'auto'\n        },\n        li: {\n          position: 'relative',\n          display: 'inline-block',\n          flex: '0 1 auto',\n          boxSizing: 'content-box',\n          width: dotWidth,\n          height: dotHeight,\n          marginInline: dotGap,\n          padding: 0,\n          textAlign: 'center',\n          textIndent: -999,\n          verticalAlign: 'top',\n          transition: `all ${motionDurationSlow}`,\n          button: {\n            position: 'relative',\n            display: 'block',\n            width: '100%',\n            height: dotHeight,\n            padding: 0,\n            color: 'transparent',\n            fontSize: 0,\n            background: colorBgContainer,\n            border: 0,\n            borderRadius: dotHeight,\n            outline: 'none',\n            cursor: 'pointer',\n            opacity: 0.2,\n            transition: `all ${motionDurationSlow}`,\n            '&: hover, &:focus': {\n              opacity: 0.75\n            },\n            '&::after': {\n              position: 'absolute',\n              inset: token.calc(dotGap).mul(-1).equal(),\n              content: '\"\"'\n            }\n          },\n          '&.slick-active': {\n            width: token.dotActiveWidth,\n            '& button': {\n              background: colorBgContainer,\n              opacity: 1\n            },\n            '&: hover, &:focus': {\n              opacity: 1\n            }\n          }\n        }\n      }\n    }\n  }];\n};\nconst genCarouselVerticalStyle = token => {\n  const {\n    componentCls,\n    dotOffset,\n    arrowOffset,\n    marginXXS\n  } = token;\n  const reverseSizeOfDot = {\n    width: token.dotHeight,\n    height: token.dotWidth\n  };\n  return {\n    [`${componentCls}-vertical`]: {\n      '.slick-prev, .slick-next': {\n        insetInlineStart: '50%',\n        marginBlockStart: 'unset',\n        transform: 'translateX(-50%)'\n      },\n      '.slick-prev': {\n        insetBlockStart: arrowOffset,\n        insetInlineStart: '50%',\n        '&::after': {\n          transform: 'rotate(45deg)'\n        }\n      },\n      '.slick-next': {\n        insetBlockStart: 'auto',\n        insetBlockEnd: arrowOffset,\n        '&::after': {\n          transform: 'rotate(-135deg)'\n        }\n      },\n      '.slick-dots': {\n        top: '50%',\n        bottom: 'auto',\n        flexDirection: 'column',\n        width: token.dotHeight,\n        height: 'auto',\n        margin: 0,\n        transform: 'translateY(-50%)',\n        '&-left': {\n          insetInlineEnd: 'auto',\n          insetInlineStart: dotOffset\n        },\n        '&-right': {\n          insetInlineEnd: dotOffset,\n          insetInlineStart: 'auto'\n        },\n        li: Object.assign(Object.assign({}, reverseSizeOfDot), {\n          margin: `${unit(marginXXS)} 0`,\n          verticalAlign: 'baseline',\n          button: reverseSizeOfDot,\n          '&.slick-active': Object.assign(Object.assign({}, reverseSizeOfDot), {\n            button: reverseSizeOfDot\n          })\n        })\n      }\n    }\n  };\n};\nconst genCarouselRtlStyle = token => {\n  const {\n    componentCls\n  } = token;\n  return [{\n    [`${componentCls}-rtl`]: {\n      direction: 'rtl',\n      // Dots\n      '.slick-dots': {\n        [`${componentCls}-rtl&`]: {\n          flexDirection: 'row-reverse'\n        }\n      }\n    }\n  }, {\n    [`${componentCls}-vertical`]: {\n      '.slick-dots': {\n        [`${componentCls}-rtl&`]: {\n          flexDirection: 'column'\n        }\n      }\n    }\n  }];\n};\nexport const prepareComponentToken = token => {\n  const dotActiveWidth = 24;\n  return {\n    arrowSize: 16,\n    arrowOffset: token.marginXS,\n    dotWidth: 16,\n    dotHeight: 3,\n    dotGap: token.marginXXS,\n    dotOffset: 12,\n    dotWidthActive: dotActiveWidth,\n    dotActiveWidth\n  };\n};\n// ============================== Export ==============================\nexport default genStyleHooks('Carousel', token => [genCarouselStyle(token), genArrowsStyle(token), genDotsStyle(token), genCarouselVerticalStyle(token), genCarouselRtlStyle(token)], prepareComponentToken, {\n  deprecatedTokens: [['dotWidthActive', 'dotActiveWidth']]\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nimport * as React from 'react';\nimport SlickCarousel from '@ant-design/react-slick';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst dotsClass = 'slick-dots';\nconst ArrowButton = _a => {\n  var {\n      currentSlide,\n      slideCount\n    } = _a,\n    rest = __rest(_a, [\"currentSlide\", \"slideCount\"]);\n  return /*#__PURE__*/React.createElement(\"button\", Object.assign({\n    type: \"button\"\n  }, rest));\n};\nconst Carousel = /*#__PURE__*/React.forwardRef((props, ref) => {\n  const {\n      dots = true,\n      arrows = false,\n      prevArrow = /*#__PURE__*/React.createElement(ArrowButton, {\n        \"aria-label\": \"prev\"\n      }),\n      nextArrow = /*#__PURE__*/React.createElement(ArrowButton, {\n        \"aria-label\": \"next\"\n      }),\n      draggable = false,\n      waitForAnimate = false,\n      dotPosition = 'bottom',\n      vertical = dotPosition === 'left' || dotPosition === 'right',\n      rootClassName,\n      className: customClassName,\n      style,\n      id\n    } = props,\n    otherProps = __rest(props, [\"dots\", \"arrows\", \"prevArrow\", \"nextArrow\", \"draggable\", \"waitForAnimate\", \"dotPosition\", \"vertical\", \"rootClassName\", \"className\", \"style\", \"id\"]);\n  const {\n    getPrefixCls,\n    direction,\n    carousel\n  } = React.useContext(ConfigContext);\n  const slickRef = React.useRef(null);\n  const goTo = function (slide) {\n    let dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    slickRef.current.slickGoTo(slide, dontAnimate);\n  };\n  React.useImperativeHandle(ref, () => ({\n    goTo,\n    autoPlay: slickRef.current.innerSlider.autoPlay,\n    innerSlider: slickRef.current.innerSlider,\n    prev: slickRef.current.slickPrev,\n    next: slickRef.current.slickNext\n  }), [slickRef.current]);\n  const prevCount = React.useRef(React.Children.count(props.children));\n  React.useEffect(() => {\n    if (prevCount.current !== React.Children.count(props.children)) {\n      goTo(props.initialSlide || 0, false);\n      prevCount.current = React.Children.count(props.children);\n    }\n  }, [props.children]);\n  const newProps = Object.assign({\n    vertical,\n    className: classNames(customClassName, carousel === null || carousel === void 0 ? void 0 : carousel.className),\n    style: Object.assign(Object.assign({}, carousel === null || carousel === void 0 ? void 0 : carousel.style), style)\n  }, otherProps);\n  if (newProps.effect === 'fade') {\n    newProps.fade = true;\n  }\n  const prefixCls = getPrefixCls('carousel', newProps.prefixCls);\n  const enableDots = !!dots;\n  const dsClass = classNames(dotsClass, `${dotsClass}-${dotPosition}`, typeof dots === 'boolean' ? false : dots === null || dots === void 0 ? void 0 : dots.className);\n  const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n  const className = classNames(prefixCls, {\n    [`${prefixCls}-rtl`]: direction === 'rtl',\n    [`${prefixCls}-vertical`]: newProps.vertical\n  }, hashId, cssVarCls, rootClassName);\n  return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n    className: className,\n    id: id\n  }, /*#__PURE__*/React.createElement(SlickCarousel, Object.assign({\n    ref: slickRef\n  }, newProps, {\n    dots: enableDots,\n    dotsClass: dsClass,\n    arrows: arrows,\n    prevArrow: prevArrow,\n    nextArrow: nextArrow,\n    draggable: draggable,\n    verticalSwiping: vertical,\n    waitForAnimate: waitForAnimate\n  }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n  Carousel.displayName = 'Carousel';\n}\nexport default Carousel;","/* GENERATED FILE */\nimport React, { forwardRef } from \"react\";\n\nimport {\n  IconWeight,\n  IconProps,\n  PaintFunction,\n  renderPathForWeight,\n} from \"../lib\";\nimport IconBase, { RenderFunction } from \"../lib/IconBase\";\n\nconst pathsByWeight = new Map<IconWeight, PaintFunction>();\n\npathsByWeight.set(\"bold\", (color: string) => (\n  <>\n    <line\n      x1=\"216\"\n      y1=\"60\"\n      x2=\"40\"\n      y2=\"60\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"104\"\n      x2=\"104\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <line\n      x1=\"152\"\n      y1=\"104\"\n      x2=\"152\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M200,60V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V60\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n    <path\n      d=\"M168,60V36a16,16,0,0,0-16-16H104A16,16,0,0,0,88,36V60\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"24\"\n    />\n  </>\n));\n\npathsByWeight.set(\"duotone\", (color: string) => (\n  <>\n    <path d=\"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56Z\" opacity=\"0.2\" />\n    <line\n      x1=\"216\"\n      y1=\"56\"\n      x2=\"40\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"104\"\n      x2=\"104\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"152\"\n      y1=\"104\"\n      x2=\"152\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\npathsByWeight.set(\"fill\", () => (\n  <>\n    <path d=\"M216,48H176V40a24.1,24.1,0,0,0-24-24H104A24.1,24.1,0,0,0,80,40v8H40a8,8,0,0,0,0,16h8V208a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V64h8a8,8,0,0,0,0-16ZM112,168a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm48,0a8,8,0,0,1-16,0V104a8,8,0,0,1,16,0Zm0-120H96V40a8,8,0,0,1,8-8h48a8,8,0,0,1,8,8Z\" />\n  </>\n));\n\npathsByWeight.set(\"light\", (color: string) => (\n  <>\n    <line\n      x1=\"216\"\n      y1=\"56\"\n      x2=\"40\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"104\"\n      x2=\"104\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <line\n      x1=\"152\"\n      y1=\"104\"\n      x2=\"152\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n    <path\n      d=\"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"12\"\n    />\n  </>\n));\n\npathsByWeight.set(\"thin\", (color: string) => (\n  <>\n    <line\n      x1=\"216\"\n      y1=\"56\"\n      x2=\"40\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"104\"\n      x2=\"104\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <line\n      x1=\"152\"\n      y1=\"104\"\n      x2=\"152\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n    <path\n      d=\"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"8\"\n    />\n  </>\n));\n\npathsByWeight.set(\"regular\", (color: string) => (\n  <>\n    <line\n      x1=\"216\"\n      y1=\"56\"\n      x2=\"40\"\n      y2=\"56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"104\"\n      y1=\"104\"\n      x2=\"104\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <line\n      x1=\"152\"\n      y1=\"104\"\n      x2=\"152\"\n      y2=\"168\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M200,56V208a8,8,0,0,1-8,8H64a8,8,0,0,1-8-8V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n    <path\n      d=\"M168,56V40a16,16,0,0,0-16-16H104A16,16,0,0,0,88,40V56\"\n      fill=\"none\"\n      stroke={color}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      strokeWidth=\"16\"\n    />\n  </>\n));\n\nconst renderPath: RenderFunction = (weight: IconWeight, color: string) =>\n  renderPathForWeight(weight, color, pathsByWeight);\n\nconst Trash = forwardRef<SVGSVGElement, IconProps>((props, ref) => (\n  <IconBase ref={ref} {...props} renderPath={renderPath} />\n));\n\nTrash.displayName = \"Trash\";\n\nexport default Trash;\n","import React, { useEffect, useState } from \"react\";\nimport Nav from \"../../../component/AdminNav/Adminnav\";\nimport \"./adminuserprofile.css\";\nimport { useParams } from \"react-router-dom\";\nimport {  useNavigate } from \"react-router\";\nimport Footer from \"../../../component/Footer/Footer\";\nimport axios from \"axios\";\nimport Modal from \"react-modal\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { Carousel } from 'antd';\nimport { Trash } from \"phosphor-react\";\nimport baseUrl from \"../../../baseUrl\";\nfunction Adminprofile() {\n  const [data, setData] = useState(null);\n  const { id } = useParams();\n  const [isModalOpen, setIsModalOpen] = useState(false);\n  const notifyError = (message) => toast.error(message);\n  const [uploadimage, setUploadimage] = useState([])\n  const Navigate = useNavigate()\n  const userData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setData(response.data.data);\n      setUploadimage([response.data.data.profilePicture, ...response.data.data.image]);\n      console.log(\"in admin userdata:\", response.data.data);\n    } catch (error) {\n      console.error(\"Error fetching user data:\", error);\n\n    }\n  };\n  useEffect(() => {\n    userData();\n  }, [id]);\n  if (!data) {\n    return <div>Loading</div>;\n  }\n  const handleDelete = async (req, res) => {\n    try {\n      const response = await axios.delete(\n        `${baseUrl}/api/v1/user/deleteUser/${id}`\n      );\n      toast.success(\"User Deleted Successfully\")\n      setIsModalOpen(false)\n      Navigate(\"/getFullUser\")\n    } catch (error) {\n      notifyError(error.response?.data?.message || \"Something went wrong. Please try again.\");\n\n    }\n  };\n  console.log(\"image\", uploadimage)\n\n  return (\n    <div>\n      <ToastContainer\n        position=\"bottom-right\"\n        autoClose={2000}\n        hideProgressBar={false}\n        newestOnTop={false}\n        closeOnClick\n        rtl={false}\n        pauseOnFocusLoss\n        pauseOnHover\n      />\n      <Nav />\n      <div className=\"profile-view-main-container\">\n        <div className=\"profile-cardsAd\">\n          <div className=\"image-containerAd\"> \n\n            <Carousel arrows infinite={false}>\n              {uploadimage.length > 0 && uploadimage.map((image, index) => (\n                <div key={index} className=\"cardimage\">\n                  <img src={`${baseUrl}${image}`} alt={`Image ${index + 1}`} />\n                </div>\n              ))}\n            </Carousel>\n\n          </div>\n\n          <div className=\"details-sections\">\n            <div className=\"profile-name-container\">\n              <div className=\"heading-text\">\n                <h2 className=\"profile-name-container\">{data.firstName}</h2>\n              </div>\n              <div className=\"option\">\n                <i>\n                  {\" \"}\n                  <svg\n                    xmlns=\"http://www.w3.org/2000/svg\"\n                    viewBox=\"\"\n                    fill=\"currentColor\"\n                    className=\"w-6 h-6 text-gray-600 cursor-pointer\"\n                  >\n                    <path d=\"M12 8.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm0 5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm0 5a1.5 1.5 0 110-3 1.5 1.5 0 010 3z\" />\n                  </svg>\n                </i>\n              </div>\n            </div>\n            <div className=\"profile-age-container\">\n              <p className=\"\">{data?.age || \"Nil\"}</p>\n              <div className=\"media-admin\">\n                <div className=\"delete\" onClick={() => setIsModalOpen(true)}>\n                  <Trash size={32} color=\"red\" />\n                </div>\n                <Modal\n                  isOpen={isModalOpen}\n                  onRequestClose={() => setIsModalOpen(false)}\n                  className=\"modal-content\"\n                  overlayClassName=\"modal-overlay\"\n                  style={{\n                    overlay: { zIndex: 1000 },\n                    content: { zIndex: 1001 },\n                  }}\n                >\n                  <h2 style={{ padding: \"20px\" }}>Delete User </h2>\n                  <p style={{ padding: \"20px\" }}>\n                    Are you sure want to delete this User.\n                  </p>\n\n                  <button\n                    style={{ backgroundColor: \"red\", border: \"none\" }}\n                    onClick={handleDelete}\n                  >\n                    Yes\n                  </button>\n                  <button\n                    style={{ backgroundColor: \"#13f534\", border: \"none\" }}\n                    onClick={() => setIsModalOpen(false)}\n                  >\n                    No\n                  </button>\n                </Modal>\n              </div>\n            </div>\n\n            <div className=\"profile-info-container\">\n              <span className=\"profile-degree-container\">\n                {data?.education || \"Nil\"}\n              </span>\n            </div>\n\n            <div className=\"profile-location-container\">\n              <span>{data?.city || \"Nil\"}</span>\n            </div>\n            {/* <div className=\"premium-container\">\n              <h3>Premium</h3>\n            </div> */}\n          </div>\n        </div>\n        <div className=\"about-similar\">\n          <div className=\"about-card\">\n            <div className=\"about-card-container\">\n              <div className=\"user-description\">\n                <div className=\"about-user-container\">\n                  <h3>About {data?.firstName || \"user\"}</h3>\n                </div>\n                <div className=\"description-container\">\n                  <p>{data?.about || \"Nil\"}</p>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"basic-details\">\n                  <div className=\"heading\">\n                    <h4>Her basic details</h4>\n                  </div>\n                  <div className=\"age-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        person\n                      </span>\n                      <p>Age</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.age || \"Nil\"}{\" \"}\n                    </div>\n                  </div>\n                  <div className=\"degree-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        school\n                      </span>\n                      <p>Degree</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      <p>{data?.educationDetails || \"Nil\"}</p>\n                    </div>\n                  </div>\n                  <div className=\"location-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        location_on\n                      </span>\n                      <p>Location</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      <p>{data.state || \"Nil\"}</p>\n                    </div>\n                  </div>\n                  <div className=\"spoken-language-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        language\n                      </span>\n                      <p>Mother Toungue</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.motherTongue || \"Nil\"}\n                    </div>\n                  </div>\n                  <div className=\"profile-created-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        account_circle\n                      </span>\n                      <p>Profile Created For</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.relation || \"Nil\"}\n                    </div>\n                  </div>\n                  <div className=\"maritial-status-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        favorite\n                      </span>\n                      <p>Maritial Status</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.maritalStatus || \"Nil\"}\n                    </div>\n                  </div>\n                  <div className=\"citizenship-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">flag</span>\n                      <p>Citizenship</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.citizenship || \"Nil\"}\n                    </div>\n                  </div>\n                  <div className=\"citizenship-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">phone</span>\n                      <p>Phone</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {data?.phoneNumber || \"Nil\"}\n                    </div>\n                  </div>\n                </div>\n              </div>\n             \n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Religion</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M80-80v-440h80v80h80l119-395v-85h80v80h81v-80h80v80l120 400h80v-80h80v440H520v-200h-80v200H80Zm268-440h264l-24-80H372l-24 80Zm48-160h168l-24-80H420l-24 80ZM160-160h200v-200h240v200h200v-200H660l-24-80H324l-24 80H160v200Zm320-300Z\" />\n                      </svg>{\" \"}\n                    </span>\n                    <p>subcaste</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data?.subCaste || \"Nil\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Gothram</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data?.gothram || \"Nil\"}\n                  </div>\n                </div>\n                <div className=\"spoken-language-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M620-320v-109l-45-81q-7 5-11 13t-4 17v229L663-80h-93l-90-148v-252q0-31 15-57t41-43l-56-99q-20-38-17.5-80.5T495-832l68-68 276 324 41 496h-80l-39-464-203-238-6 6q-10 10-11.5 23t4.5 25l155 278v130h-80Zm-360 0v-130l155-278q6-12 4.5-25T408-776l-6-6-203 238-39 464H80l41-496 276-324 68 68q30 30 32.5 72.5T480-679l-56 99q26 17 41 43t15 57v252L390-80h-93l103-171v-229q0-9-4-17t-11-13l-45 81v109h-80Z\" />\n                      </svg>\n                    </span>\n                    <p>Dosham</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data?.dosham || \"Nil\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>Profession Details</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Education</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data?.educationDetails || \"Nil\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Occupation</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data.occupation || \"Nil\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Family</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">home </span>\n                    <p>Family Type</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data.familyType || \"Nil\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">group</span>\n                    <p>Family Values</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {data?.familyValues || \"NIL\"}\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n        <hr className=\"separator\"></hr>\n      </div>\n      <link\n        href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n        rel=\"stylesheet\"\n      />\n      <Footer />\n    </div>\n  );\n}\n\nexport default Adminprofile;\n","import React, { useState, useEffect } from 'react'\nimport axios from 'axios';\nimport Profilebox from '../components/Profilebox';\nimport \"./userpage.css\"\nimport Pagination from \"../components/PaginationAdmin\"\nimport baseUrl from '../../../baseUrl';\nimport Nav from '../../../component/AdminNav/Adminnav';\n\nfunction GetFullUser() {\n  const [userData, setUserData] = useState([]);\n  const [currentPage, setCurrentPage] = useState(1)\n  const [itemsPerPage, setItemsPerPage] = useState(10)\n\n  let lastIndex = currentPage * itemsPerPage;\n  let indexOfFirstItem = lastIndex - itemsPerPage;\n  let showItem = userData.slice(indexOfFirstItem, lastIndex)\n  console.log(\"userdata in admin\", userData);\n\n  useEffect(() => {\n    fetchUserData();\n  }, []);\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/userdetails`\n      );\n      setUserData(response.data.data);\n    } catch (error) {\n      console.error(\"Error fetching user details:\", error);\n    }\n  };\n  if (!fetchUserData) return (<div>loading...</div>)\n  return (\n    <div>\n      <Nav />\n      <div className=\"user-page-main\">\n        <h1>All Users</h1>\n        {userData.length > 0 ? (\n          showItem.map((user) => {\n            return <Profilebox key={user._id} data={user} />\n          })\n        ) : (<p>Loading...</p>)}\n      </div>\n      <div className=\"pageination-container\">\n        <Pagination\n          userData={userData}\n          itemsPerPage={itemsPerPage}\n          setCurrentPage={setCurrentPage}\n        />\n      </div>\n    </div>\n  )\n}\n\nexport default GetFullUser\n","import React, { useEffect, useState, useRef } from \"react\";\nimport DashStyles from \"../Dashboard/dashboard.module.css\";\nimport { HeartStraight, SlidersHorizontal, X } from \"phosphor-react\";\nimport { Link, useNavigate } from \"react-router-dom\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport axios from \"axios\";\nimport PaginationAdmin from \"../Admin/components/PaginationAdmin\";\nimport baseUrl from \"../../baseUrl\";\nimport avatarImg from \"../../assets/avatar.jpg\"\n\n\nfunction AllMatches() {\n  const userId = useSelector((state) => state.user.id);\n  const [getLike, setGetLike] = useState([]);\n  const [liked, setLiked] = useState({}); //state to control the likes\n  const [isOpen, setIsOpen] = useState(false); //state to control the  opening and closing of filter\n  const [activeTab, setActiveTab] = useState(\"top\"); //state to control the active tab on header\n  const [allMatches, setAllMatches] = useState([]); // Stores all matches\n  const [filteredMatches, setFilteredMatches] = useState([]); // Stores filtered matches\n  const [currentPage, setCurrentPage] = useState(1);\n  const [itemsPerPage, setItemsPerPage] = useState(10);\n  const [filtersApplied, setFiltersApplied] = useState(false);\n  const currentData = filtersApplied ? filteredMatches : allMatches;\n  const indexOfLastItem = currentPage * itemsPerPage;\n  const indexOfFirstItem = indexOfLastItem - itemsPerPage;\n  const paginatedData = currentData.slice(indexOfFirstItem, indexOfLastItem);\n\n  const [filters, setFilters] = useState({\n    age: \"\",\n    height: \"\",\n    maritalStatus: \"\",\n    occupation: \"\",\n    annualIncome: \"\",\n    education: \"\",\n    location: \"\",\n  });\n\n  // const lastIndex = currentPage * itemsPerPage;\n  // const indexOfFirstItem = lastIndex - itemsPerPage;\n\n  // const showItems = useMemo(() => {\n  //   const data =\n  //     filteredMatches.length > 0 ? filteredMatches : \"No Matches Available\";\n  //   return data.slice(indexOfFirstItem, lastIndex);\n  // }, [allMatches, filteredMatches, currentPage]);\n\n  const navigate = useNavigate();\n\n  // const[showHamburger,setShowHamburger]=useState(true);\n  const getLikedProfiles = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/likedProfiles/${userId}`\n      );\n\n      // Convert the array into an object for easy lookups\n      const likedProfilesMap = response.data.likedUsers.reduce((acc, user) => {\n        acc[user._id] = true;\n        return acc;\n      }, {});\n\n      setGetLike(response.data.likedUsers); // Keep original array\n      setLiked(likedProfilesMap); // Update liked state\n    } catch (error) {\n      console.log(\"Error fetching liked profiles\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      getLikedProfiles();\n    }\n  }, [userId]);\n  const likedProfile = async (id) => {\n    if (!userId || !id) {\n      console.error(\"User ID or Profile ID is undefined\");\n      return;\n    }\n\n    // Optimistically update UI\n    setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/likeProfile/${userId}`,\n        { likedId: id }\n      );\n\n      console.log(\"Liked profile response:\", response.data);\n\n      // If successfully liked, refresh liked profiles\n      getLikedProfiles();\n    } catch (error) {\n      console.error(\"Error liking profile:\", error);\n\n      // Revert state if API fails\n      setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n    }\n  };\n\n  const toggleMenu = () => {\n    setIsOpen((prev) => !prev);\n  };\n\n  useEffect(() => {\n    const handleScrollHam = () => {\n      const filterIcons = document.querySelectorAll(\n        `[class*=\"${DashStyles.FilterIcon}\"]`\n      );\n      filterIcons.forEach((el) => {\n        if (\n          window.scrollY > 10 &&\n          !el.classList.contains(DashStyles.FilterCloseIcon)\n        ) {\n          el.style.display = \"none\";\n        } else {\n          el.style.display = \"block\";\n        }\n      });\n    };\n\n    window.addEventListener(\"scroll\", handleScrollHam);\n    return () => {\n      window.removeEventListener(\"scroll\", handleScrollHam);\n    };\n  }, []);\n\n  const getAllMatches = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/getUserById/${userId}`\n      );\n      let matchedProfiles = response.data.user;\n      // let matchedLength=matchedProfiles.length;\n      // console.log(\"length\",matchedLength);\n      setAllMatches(matchedProfiles);\n    } catch (error) {\n      console.log(\"Error\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      getAllMatches();\n    }\n  }, [userId]);\n  const handleFilterChange = (e) => {\n    const { name, value } = e.target;\n    setFilters((prevFilters) => ({\n      ...prevFilters,\n      [name]: value,\n    }));\n  };\n  const applyFilters = () => {\n    const isFiltersApplied = Object.values(filters).some((val) => val !== \"\");\n    const filteredData = allMatches.filter((item) => {\n      const numericHeight = item.height\n        ? parseInt(item.height.replace(/[^0-9]/g, \"\"), 10)\n        : null;\n      const [minHeight, maxHeight] = filters.height\n        ? filters.height.split(\"-\").map((num) => parseInt(num, 10))\n        : [null, null];\n      const [minAge, maxAge] = filters.age\n        ? filters.age.split(\"-\").map((num) => parseInt(num, 10))\n        : [null, null];\n\n      return (\n        (filters.age === \"\" || (item.age >= minAge && item.age <= maxAge)) &&\n        (filters.height === \"\" ||\n          (numericHeight >= minHeight && numericHeight <= maxHeight)) &&\n        (filters.maritalStatus === \"\" ||\n          item.maritalStatus?.toLowerCase() ===\n            filters.maritalStatus?.toLowerCase()) &&\n        (filters.occupation === \"\" ||\n          item.occupation?.toLowerCase() ===\n            filters.occupation?.toLowerCase()) &&\n        (filters.annualIncome === \"\" ||\n          item.annualIncome?.toLowerCase() ===\n            filters.annualIncome?.toLowerCase()) &&\n        (filters.education === \"\" ||\n          item.education?.toLowerCase() === filters.education?.toLowerCase()) &&\n        (filters.location === \"\" ||\n          item.location?.toLowerCase() === filters.location?.toLowerCase())\n      );\n    });\n\n    setCurrentPage(1);\n    setFilteredMatches(filteredData);\n    setFiltersApplied(isFiltersApplied);\n    // isOpen?setIsOpen(false):setIsOpen(true);\n    if (isOpen) setIsOpen(false);\n  };\n\n  const resetFilters = () => {\n    setFilters({\n      age: \"\",\n      height: \"\",\n      maritalStatus: \"\",\n      occupation: \"\",\n      annualIncome: \"\",\n      education: \"\",\n      location: \"\",\n    });\n    setFilteredMatches(allMatches);\n    setFiltersApplied(false);\n    setCurrentPage(1);\n    if (isOpen) setIsOpen(false);\n  };\n  const profileView = async (id) => {\n    if (!id) {\n      console.log(\"Error fetching id\");\n      return;\n    }\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      navigate(`/mainuser/${id}`);\n    } catch (error) {\n      console.log(\"Error fetching the data\", error);\n    }\n  };\n  const myRef = useRef([]);\n  const observerRef = useRef(null); // ✅ Ensure it's null initially\n  const headingRef = useRef([]);\n  useEffect(() => {\n    if (!observerRef.current) {\n      observerRef.current = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            entry.target.classList.add(DashStyles.animateIn);\n          }\n        });\n      });\n    }\n\n    // ✅ Ensure only unique elements are observed\n    headingRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    myRef.current.forEach((el) => {\n      if (el && observerRef.current) observerRef.current.observe(el);\n    });\n\n    return () => {\n      if (observerRef.current) {\n        observerRef.current.disconnect();\n      }\n    };\n  }, []);\n\n  const setElementRef = (index) => (el) => {\n    if (el) {\n      myRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n\n  const setHeadingRef = (index) => (el) => {\n    if (el) {\n      headingRef.current[index] = el;\n      if (observerRef.current) observerRef.current.observe(el);\n    }\n  };\n  return (\n    <div className={DashStyles.mainContainer}>\n      <Nav userId={userId} />\n      <div className={DashStyles.PageSelection}>\n        <Link\n          to={`/toprecommendations/${userId}`}\n          className={`${DashStyles.heading} ${\n            activeTab === \"all\" ? DashStyles.tabSelected : \"\"\n          }`}\n          onClick={() => setActiveTab(\"all\")}\n        >\n          Top Recommendations\n        </Link>\n\n        <Link\n          to={`/allmatches/${userId}`}\n          className={`${DashStyles.heading} ${\n            activeTab === \"top\" ? DashStyles.tabSelected : \"\"\n          }`}\n          onClick={() => setActiveTab(\"top\")}\n        >\n          All Matches\n        </Link>\n      </div>\n\n      <div className={DashStyles.SubContainer}>\n        {/* Filter div start */}\n        <div className={DashStyles.FilterDivMain}>\n          <div className={DashStyles.FilterDiv}>\n            <div className={DashStyles.FilterProfiles}>\n              <h3 className={DashStyles.FilterProfilesHeading}>\n                Filter Profiles\n              </h3>\n            </div>\n            <div className={DashStyles.BasicDetailsMainDiv}>\n              <h3 className={DashStyles.BasicDetailsHead}>Basic Details</h3>\n              <div className={DashStyles.BasicDetailsDiv}>\n                <select\n                  name=\"age\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.age}\n                >\n                  <option>Age</option>\n                  <option value=\"18-25\">18-25</option>\n                  <option value=\"26-35\">26-35</option>\n                  <option value=\"36-45\">36-45</option>\n                  <option value=\"46-55\">46-55</option>\n                  <option value=\"56-65\">56-65</option>\n                </select>\n                <select\n                  name=\"height\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.height}\n                >\n                  <option>Height</option>\n                  <option value=\"135-145\">135-145</option>\n                  <option value=\"145-155\">145-155</option>\n                  <option value=\"155-165\">155-165</option>\n                  <option value=\"165-175\">165-175</option>\n                  <option value=\"175-185\">175-185</option>\n                  <option value=\"185-195\">185-195</option>\n                  <option value=\"195-200\">195-200</option>\n                </select>\n\n                <select\n                  name=\"maritalStatus\"\n                  className={DashStyles.bdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.maritalStatus}\n                >\n                  <option>Marital Status</option>\n                  <option value=\"Never Married\">Never Married</option>\n                  <option value=\"Widowed\">Widowed</option>\n                  <option value=\"Divorced\">Divorced</option>\n                  <option value=\"Awaiting Divorce\">Awaiting Divorce</option>\n                </select>\n                <select\n                  name=\"location\"\n                  className={DashStyles.bdSelect}\n                  value={filters.location}\n                  onChange={handleFilterChange}\n                >\n                  <option>Location</option>\n                  <option value=\"Aberdeen\">Aberdeen</option>\n                  <option value=\"Antrim\">Antrim</option>\n                  <option value=\"Armagh\">Armagh</option>\n                  <option value=\"Ballymena\">Ballymena</option>\n                  <option value=\"Bangor\">Bangor</option>\n                  <option value=\"Bangor\">Bangor</option>\n                  <option value=\"Barry\">Barry</option>\n                  <option value=\"Belfast\">Belfast</option>\n                  <option value=\"Birmingham\">Birmingham</option>\n                  <option value=\"Blackpool\">Blackpool</option>\n                  <option value=\"Bradford\">Bradford</option>\n                  <option value=\"Bridgend\">Bridgend</option>\n                  <option value=\"Brighton\">Brighton</option>\n                  <option value=\"Bristol\">Bristol</option>\n                  <option value=\"Caerphilly\">Caerphilly</option>\n                  <option value=\"Cambridge\">Cambridge</option>\n                  <option value=\"Carrickfergus\">Carrickfergus</option>\n                  <option value=\"Cardiff\">Cardiff</option>\n                  <option value=\"Coleraine\">Coleraine</option>\n                  <option value=\"Coventry\">Coventry</option>\n                  <option value=\"Derry\">Derry</option>\n                  <option value=\"Dundee\">Dundee</option>\n                  <option value=\"Dunfermline\">Dunfermline</option>\n                  <option value=\"Edinburgh\">Edinburgh</option>\n                  <option value=\"Exeter\">Exeter</option>\n                  <option value=\"Falkirk\">Falkirk</option>\n                  <option value=\"Glasgow\">Glasgow</option>\n                  <option value=\"Inverness\">Inverness</option>\n                  <option value=\"Leeds\">Leeds</option>\n                  <option value=\"Leicester\">Leicester</option>\n                  <option value=\"Lisburn\">Lisburn</option>\n                  <option value=\"Liverpool\">Liverpool</option>\n                  <option value=\"Livingston\">Livingston</option>\n                  <option value=\"London\">London</option>\n                  <option value=\"Luton\">Luton</option>\n                  <option value=\"Llanelli\">Llanelli</option>\n                  <option value=\"Manchester\">Manchester</option>\n                  <option value=\"Merthyr Tydfil\">Merthyr Tydfil</option>\n                  <option value=\"Newcastle\">Newcastle</option>\n                  <option value=\"Newport\">Newport</option>\n                  <option value=\"Newry\">Newry</option>\n                  <option value=\"Nottingham\">Nottingham</option>\n                  <option value=\"Norwich\">Norwich</option>\n                  <option value=\"Oxford\">Oxford</option>\n                  <option value=\"Paisley\">Paisley</option>\n                  <option value=\"Perth\">Perth</option>\n                  <option value=\"Plymouth\">Plymouth</option>\n                  <option value=\"Portsmouth\">Portsmouth</option>\n                  <option value=\"Sheffield\">Sheffield</option>\n                  <option value=\"Southampton\">Southampton</option>\n                  <option value=\"Stirling\">Stirling</option>\n                  <option value=\"Swansea\">Swansea</option>\n                  <option value=\"Wrexham\">Wrexham</option>\n                  <option value=\"York\">York</option>\n                </select>\n                {/* <select name=\"motherTongue\" className={DashStyles.bdSelect} onChange={handleFilterChange} value={filters.motherTongue}>\n                <option >Mother Tongue</option>\n                <option value=\"malayalam\">Malayalam</option>\n                <option value=\"english\">English</option>\n                <option value=\"hindi\">Hindi</option>\n              </select> */}\n\n                {/* <select name=\"physicalStatus\" className={DashStyles.bdSelect}onChange={handleFilterChange} value={filters.physicalStatus}>\n                <option >Physical Status</option>\n                <option value=\"none\">None</option>\n                <option value=\"physicallyChallenged\">\n                  Physically Challenged\n                </option>\n              </select> */}\n              </div>\n            </div>\n\n            <div className={DashStyles.ProfessionalDetailsMainDiv}>\n              <h3 className={DashStyles.ProfessionalDetailsHead}>\n                Professional Details\n              </h3>\n              <div className={DashStyles.ProfessionalDetailsDiv}>\n                <select\n                  name=\"occupation\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.occupation}\n                >\n                  <option>Occupation</option>\n                  <option value=\"Doctor\">Doctor</option>\n                  <option value=\"Nurse\">Nurse</option>\n                  <option value=\"Pharmacist\">Pharmacist</option>\n                  <option value=\"Dentist\">Dentist</option>\n                  <option value=\"Paramedic\">Paramedic</option>\n                  <option value=\"Physiotherapist\">Physiotherapist</option>\n                  <option value=\"Care Worker\">Care Worker</option>\n\n                  <option value=\"Software Engineer\">Software Engineer</option>\n                  <option value=\"Civil Engineer\">Civil Engineer</option>\n                  <option value=\"Mechanical Engineer\">\n                    Mechanical Engineer\n                  </option>\n                  <option value=\"Electrical Engineer\">\n                    Electrical Engineer\n                  </option>\n                  <option value=\"Data Scientist\">Data Scientist</option>\n                  <option value=\"It Consultant\">IT Consultant</option>\n\n                  <option value=\"Teacher\">Teacher</option>\n                  <option value=\"Lecturer\">University Lecturer</option>\n                  <option value=\"Teaching Assistant\">Teaching Assistant</option>\n\n                  <option value=\"Accountant\">Accountant</option>\n                  <option value=\"Banker\">Banker</option>\n                  <option value=\"Financial Analyst\">Financial Analyst</option>\n                  <option value=\"Solicitor\">Solicitor</option>\n                  <option value=\"Barrister\">Barrister</option>\n\n                  <option value=\"Electrician\">Electrician</option>\n                  <option value=\"Plumber\">Plumber</option>\n                  <option value=\"Carpenter\">Carpenter</option>\n                  <option value=\"Mechanic\">Mechanic</option>\n\n                  <option value=\"Police Officer\">Police Officer</option>\n                  <option value=\"Firefighter\">Firefighter</option>\n                  <option value=\"Armed Forces\">Armed Forces</option>\n                  <option value=\"Social Worker\">Social Worker</option>\n\n                  <option value=\"Chef\">Chef</option>\n                  <option value=\"Hotel Manager\">Hotel Manager</option>\n                  <option value=\"Retail Manager\">Retail Manager</option>\n                  <option value=\"Customer Service\">\n                    Customer Service Representative\n                  </option>\n\n                  <option value=\"Journalist\">Journalist</option>\n                  <option value=\"Graphic Designer\">Graphic Designer</option>\n                  <option value=\"Actor\">Actor</option>\n                  <option value=\"Musician\">Musician</option>\n\n                  <option value=\"Truck Driver\">Truck Driver</option>\n                  <option value=\"Delivery Driver\">Delivery Driver</option>\n                  <option value=\"Airline Pilot\">Airline Pilot</option>\n\n                  <option value=\"Self Employed\">Self-Employed</option>\n                  <option value=\"Unemployed\">Unemployed</option>\n                  <option value=\"Student\">Student</option>\n                  <option value=\"Retired\">Retired</option>\n                  <option value=\"Others\">Others</option>\n                </select>\n                <select\n                  name=\"annualIncome\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.annualIncome}\n                >\n                  <option>Annual Income</option>\n                  <option value=\"under_15000\">Under £15,000</option>\n                  <option value=\"15000_25000\">£15,000 - £25,000</option>\n                  <option value=\"25000_35000\">£25,000 - £35,000</option>\n                  <option value=\"35000_50000\">£35,000 - £50,000</option>\n                  <option value=\"50000_75000\">£50,000 - £75,000</option>\n                  <option value=\"75000_100000\">£75,000 - £100,000</option>\n                  <option value=\"100000_150000\">£100,000 - £150,000</option>\n                  <option value=\"150000_250000\">£150,000 - £250,000</option>\n                  <option value=\"over_250000\">Over £250,000</option>\n                </select>\n                <select\n                  name=\"education\"\n                  className={DashStyles.pdSelect}\n                  onChange={handleFilterChange}\n                  value={filters.education}\n                >\n                  <option>Education</option>\n                  <option value=\"Below 10\">Below 10th</option>\n                  <option value=\"10th\">10th (SSLC/Matriculation)</option>\n                  <option value=\"12th Science\">12th - Science</option>\n                  <option value=\"12th Humanities\">12th - Humanities</option>\n                  <option value=\"12th Commerce\">12th - Commerce</option>\n                  <option value=\"Diploma\">Diploma</option>\n                  <option value=\"BSc\">BSc (Bachelor of Science)</option>\n                  <option value=\"BA\">BA (Bachelor of Arts)</option>\n                  <option value=\"BCom\">BCom (Bachelor of Commerce)</option>\n                  <option value=\"BTech\">BTech (Bachelor of Technology)</option>\n                  <option value=\"BE\">BE (Bachelor of Engineering)</option>\n                  <option value=\"BBA\">\n                    BBA (Bachelor of Business Administration)\n                  </option>\n                  <option value=\"BCA\">\n                    BCA (Bachelor of Computer Applications)\n                  </option>\n                  <option value=\"LLB\">LLB (Bachelor of Law)</option>\n                  <option value=\"MBBS\">\n                    MBBS (Bachelor of Medicine & Surgery)\n                  </option>\n                  <option value=\"BPharm\">BPharm (Bachelor of Pharmacy)</option>\n                  <option value=\"BDS\">BDS (Bachelor of Dental Surgery)</option>\n                  <option value=\"MSC\">MSc (Master of Science)</option>\n                  <option value=\"MA\">MA (Master of Arts)</option>\n                  <option value=\"MCom\">MCom (Master of Commerce)</option>\n                  <option value=\"MTech\">MTech (Master of Technology)</option>\n                  <option value=\"ME\">ME (Master of Engineering)</option>\n                  <option value=\"MBA\">\n                    MBA (Master of Business Administration)\n                  </option>\n                  <option value=\"MCA\">\n                    MCA (Master of Computer Applications)\n                  </option>\n                  <option value=\"LLM\">LLM (Master of Law)</option>\n                  <option value=\"MD\">MD (Doctor of Medicine)</option>\n                  <option value=\"MS\">MS (Master of Surgery)</option>\n                  <option value=\"MPhil\">MPhil (Master of Philosophy)</option>\n                  <option value=\"PhD\">PhD (Doctorate)</option>\n                </select>\n              </div>\n            </div>\n\n            {/* <div className={DashStyles.LocationDetailsMainDiv}>\n            <div className={DashStyles.textBox}>\n              <h6 className={DashStyles.textBoxHead}>Location Details</h6>\n              <h6 className={DashStyles.textBoxPara}>Nearby Profiles</h6>\n              <h6 className={DashStyles.textBoxSubPara}>\n                Matches near your location\n              </h6>\n            </div>\n\n            <div className={DashStyles.penIconDiv}>\n              <Pencil size={16} weight=\"duotone\" />\n            </div>\n          </div>\n          <div className={DashStyles.LocationDetailsMainDiv}>\n            <div className={DashStyles.textBox}>\n              <h6 className={DashStyles.textBoxHead}>Life Style</h6>\n              <h6 className={DashStyles.textBoxPara}>Mutual Hobbies</h6>\n              <h6 className={DashStyles.textBoxSubPara}>\n                Matches who has similar hobbies as\n              </h6>\n            </div>\n\n            <div className={DashStyles.penIconDiv}>\n              <Pencil size={16} weight=\"duotone\" />\n            </div>\n          </div>\n          <div className={DashStyles.LocationDetailsMainDiv}>\n            <div className={DashStyles.textBox}>\n              <h6 className={DashStyles.textBoxSubPara}>Eating Habits</h6>\n            </div>\n\n            <div className={DashStyles.penIconDiv}>\n              <Pencil size={16} weight=\"duotone\" />\n            </div>\n          </div> */}\n            <div className={DashStyles.FilterDivButtonsMain}>\n              <button\n                className={DashStyles.FilterDivButtonOne}\n                onClick={applyFilters}\n              >\n                Apply\n              </button>\n              <button\n                className={DashStyles.FilterDivButtonOne}\n                onClick={resetFilters}\n              >\n                Reset\n              </button>\n            </div>\n          </div>\n        </div>\n        {/* filter div end */}\n        {/* Profile details div for smalle screens start */}\n        <div\n          className={isOpen ? \"overlay overlayActive\" : \"overlay\"}\n          // onClick={toggleMenu}\n        >\n          <div className={DashStyles.HamburgerMain}>\n            {/* {showHamburger&&( */}\n            <div className={DashStyles.FilterHam} onClick={() => toggleMenu()}>\n              {isOpen ? (\n                <X\n                  size={40}\n                  weight=\"bold\"\n                  className={DashStyles.FilterCloseIcon}\n                />\n              ) : (\n                <SlidersHorizontal\n                  size={40}\n                  weight=\"duotone\"\n                  className={DashStyles.FilterIcon}\n                />\n              )}\n            </div>\n            {/* )} */}\n            {/* profile div for smaller screens */}\n            <div\n              className={`${DashStyles.drawer} ${\n                isOpen ? DashStyles.drawerOpen : DashStyles.drawerClosed\n              }`}\n            >\n              {/* <div className={DashStyles.FilterDiv}> */}\n              <div className={DashStyles.FilterProfiles}>\n                <h3 className={DashStyles.FilterProfilesHeading}>\n                  Filter Profiles\n                </h3>\n              </div>\n              <div className={DashStyles.BasicDetailsMainDiv}>\n                <h3 className={DashStyles.BasicDetailsHead}>Basic Details</h3>\n                <div className={DashStyles.BasicDetailsDiv}>\n                  <select\n                    name=\"age\"\n                    className={DashStyles.bdSelect}\n                    value={filters.age}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Age</option>\n                    <option value=\"18-25\">18-25</option>\n                    <option value=\"26-35\">26-35</option>\n                    <option value=\"36-45\">36-45</option>\n                    <option value=\"46-55\">46-55</option>\n                    <option value=\"56-65\">56-65</option>\n                  </select>\n                  <select\n                    name=\"height\"\n                    className={DashStyles.bdSelect}\n                    value={filters.height}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Height</option>\n                    <option value=\"135-145\">135-145</option>\n                    <option value=\"145-155\">145-155</option>\n                    <option value=\"155-165\">155-165</option>\n                    <option value=\"165-175\">165-175</option>\n                    <option value=\"175-185\">175-185</option>\n                    <option value=\"185-195\">185-195</option>\n                    <option value=\"195-200\">195-200</option>\n                  </select>\n\n                  <select\n                    name=\"maritalStatus\"\n                    className={DashStyles.bdSelect}\n                    onChange={handleFilterChange}\n                    value={filters.maritalStatus}\n                  >\n                    <option>Marital Status</option>\n                    <option value=\"Never Married\">Never Married</option>\n                    <option value=\"Widowed\">Widowed</option>\n                    <option value=\"Divorced\">Divorced</option>\n                    <option value=\"Awaiting Divorce\">Awaiting Divorce</option>\n                  </select>\n                  <select\n                    name=\"location\"\n                    className={DashStyles.bdSelect}\n                    value={filters.location}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Location</option>\n                    <option value=\"Aberdeen\">Aberdeen</option>\n                    <option value=\"Antrim\">Antrim</option>\n                    <option value=\"Armagh\">Armagh</option>\n                    <option value=\"Ballymena\">Ballymena</option>\n                    <option value=\"Bangor\">Bangor</option>\n                    <option value=\"Bangor\">Bangor</option>\n                    <option value=\"Barry\">Barry</option>\n                    <option value=\"Belfast\">Belfast</option>\n                    <option value=\"Birmingham\">Birmingham</option>\n                    <option value=\"Blackpool\">Blackpool</option>\n                    <option value=\"Bradford\">Bradford</option>\n                    <option value=\"Bridgend\">Bridgend</option>\n                    <option value=\"Brighton\">Brighton</option>\n                    <option value=\"Bristol\">Bristol</option>\n                    <option value=\"Caerphilly\">Caerphilly</option>\n                    <option value=\"Cambridge\">Cambridge</option>\n                    <option value=\"Carrickfergus\">Carrickfergus</option>\n                    <option value=\"Cardiff\">Cardiff</option>\n                    <option value=\"Coleraine\">Coleraine</option>\n                    <option value=\"Coventry\">Coventry</option>\n                    <option value=\"Derry\">Derry</option>\n                    <option value=\"Dundee\">Dundee</option>\n                    <option value=\"Dunfermline\">Dunfermline</option>\n                    <option value=\"Edinburgh\">Edinburgh</option>\n                    <option value=\"Exeter\">Exeter</option>\n                    <option value=\"Falkirk\">Falkirk</option>\n                    <option value=\"Glasgow\">Glasgow</option>\n                    <option value=\"Inverness\">Inverness</option>\n                    <option value=\"Leeds\">Leeds</option>\n                    <option value=\"Leicester\">Leicester</option>\n                    <option value=\"Lisburn\">Lisburn</option>\n                    <option value=\"Liverpool\">Liverpool</option>\n                    <option value=\"Livingston\">Livingston</option>\n                    <option value=\"London\">London</option>\n                    <option value=\"Luton\">Luton</option>\n                    <option value=\"Llanelli\">Llanelli</option>\n                    <option value=\"Manchester\">Manchester</option>\n                    <option value=\"Merthyr Tydfil\">Merthyr Tydfil</option>\n                    <option value=\"Newcastle\">Newcastle</option>\n                    <option value=\"Newport\">Newport</option>\n                    <option value=\"Newry\">Newry</option>\n                    <option value=\"Nottingham\">Nottingham</option>\n                    <option value=\"Norwich\">Norwich</option>\n                    <option value=\"Oxford\">Oxford</option>\n                    <option value=\"Paisley\">Paisley</option>\n                    <option value=\"Perth\">Perth</option>\n                    <option value=\"Plymouth\">Plymouth</option>\n                    <option value=\"Portsmouth\">Portsmouth</option>\n                    <option value=\"Sheffield\">Sheffield</option>\n                    <option value=\"Southampton\">Southampton</option>\n                    <option value=\"Stirling\">Stirling</option>\n                    <option value=\"Swansea\">Swansea</option>\n                    <option value=\"Wrexham\">Wrexham</option>\n                    <option value=\"York\">York</option>\n                  </select>\n                </div>\n              </div>\n\n              <div className={DashStyles.ProfessionalDetailsMainDiv}>\n                <h3 className={DashStyles.ProfessionalDetailsHead}>\n                  Professional Details\n                </h3>\n                <div className={DashStyles.ProfessionalDetailsDiv}>\n                  <select\n                    name=\"occupation\"\n                    className={DashStyles.pdSelect}\n                    value={filters.occupation}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Occupation</option>\n                    <option value=\"Doctor\">Doctor</option>\n                    <option value=\"Nurse\">Nurse</option>\n                    <option value=\"Pharmacist\">Pharmacist</option>\n                    <option value=\"Dentist\">Dentist</option>\n                    <option value=\"Paramedic\">Paramedic</option>\n                    <option value=\"Physiotherapist\">Physiotherapist</option>\n                    <option value=\"Care Worker\">Care Worker</option>\n\n                    <option value=\"Software Engineer\">Software Engineer</option>\n                    <option value=\"Civil Engineer\">Civil Engineer</option>\n                    <option value=\"Mechanical Engineer\">\n                      Mechanical Engineer\n                    </option>\n                    <option value=\"Electrical Engineer\">\n                      Electrical Engineer\n                    </option>\n                    <option value=\"Data Scientist\">Data Scientist</option>\n                    <option value=\"It Consultant\">IT Consultant</option>\n\n                    <option value=\"Teacher\">Teacher</option>\n                    <option value=\"Lecturer\">University Lecturer</option>\n                    <option value=\"Teaching Assistant\">\n                      Teaching Assistant\n                    </option>\n\n                    <option value=\"Accountant\">Accountant</option>\n                    <option value=\"Banker\">Banker</option>\n                    <option value=\"Financial Analyst\">Financial Analyst</option>\n                    <option value=\"Solicitor\">Solicitor</option>\n                    <option value=\"Barrister\">Barrister</option>\n\n                    <option value=\"Electrician\">Electrician</option>\n                    <option value=\"Plumber\">Plumber</option>\n                    <option value=\"Carpenter\">Carpenter</option>\n                    <option value=\"Mechanic\">Mechanic</option>\n\n                    <option value=\"Police Officer\">Police Officer</option>\n                    <option value=\"Firefighter\">Firefighter</option>\n                    <option value=\"Armed Forces\">Armed Forces</option>\n                    <option value=\"Social Worker\">Social Worker</option>\n\n                    <option value=\"Chef\">Chef</option>\n                    <option value=\"Hotel Manager\">Hotel Manager</option>\n                    <option value=\"Retail Manager\">Retail Manager</option>\n                    <option value=\"Customer Service\">\n                      Customer Service Representative\n                    </option>\n\n                    <option value=\"Journalist\">Journalist</option>\n                    <option value=\"Graphic Designer\">Graphic Designer</option>\n                    <option value=\"Actor\">Actor</option>\n                    <option value=\"Musician\">Musician</option>\n\n                    <option value=\"Truck Driver\">Truck Driver</option>\n                    <option value=\"Delivery Driver\">Delivery Driver</option>\n                    <option value=\"Airline Pilot\">Airline Pilot</option>\n\n                    <option value=\"Self Employed\">Self-Employed</option>\n                    <option value=\"Unemployed\">Unemployed</option>\n                    <option value=\"Student\">Student</option>\n                    <option value=\"Retired\">Retired</option>\n                    <option value=\"Others\">Others</option>\n                  </select>\n                  <select\n                    name=\"annualIncome\"\n                    className={DashStyles.pdSelect}\n                    value={filters.annualIncome}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Annual Income</option>\n                    <option value=\"15000_25000\">£15,000 - £25,000</option>\n                    <option value=\"25000_35000\">£25,000 - £35,000</option>\n                    <option value=\"35000_50000\">£35,000 - £50,000</option>\n                    <option value=\"50000_75000\">£50,000 - £75,000</option>\n                    <option value=\"75000_100000\">£75,000 - £100,000</option>\n                    <option value=\"100000_150000\">£100,000 - £150,000</option>\n                    <option value=\"150000_250000\">£150,000 - £250,000</option>\n                    <option value=\"over_250000\">Over £250,000</option>\n                  </select>\n                  <select\n                    name=\"education\"\n                    className={DashStyles.pdSelect}\n                    value={filters.education}\n                    onChange={handleFilterChange}\n                  >\n                    <option>Education</option>\n                    <option value=\"Below 10\">Below 10th</option>\n                    <option value=\"10th\">10th (SSLC/Matriculation)</option>\n                    <option value=\"12th Science\">12th - Science</option>\n                    <option value=\"12th Humanities\">12th - Humanities</option>\n                    <option value=\"12th Commerce\">12th - Commerce</option>\n                    <option value=\"Diploma\">Diploma</option>\n                    <option value=\"BSc\">BSc (Bachelor of Science)</option>\n                    <option value=\"BA\">BA (Bachelor of Arts)</option>\n                    <option value=\"BCom\">BCom (Bachelor of Commerce)</option>\n                    <option value=\"BTech\">\n                      BTech (Bachelor of Technology)\n                    </option>\n                    <option value=\"BE\">BE (Bachelor of Engineering)</option>\n                    <option value=\"BBA\">\n                      BBA (Bachelor of Business Administration)\n                    </option>\n                    <option value=\"BCA\">\n                      BCA (Bachelor of Computer Applications)\n                    </option>\n                    <option value=\"LLB\">LLB (Bachelor of Law)</option>\n                    <option value=\"MBBS\">\n                      MBBS (Bachelor of Medicine & Surgery)\n                    </option>\n                    <option value=\"BPharm\">\n                      BPharm (Bachelor of Pharmacy)\n                    </option>\n                    <option value=\"BDS\">\n                      BDS (Bachelor of Dental Surgery)\n                    </option>\n                    <option value=\"MSC\">MSc (Master of Science)</option>\n                    <option value=\"MA\">MA (Master of Arts)</option>\n                    <option value=\"MCom\">MCom (Master of Commerce)</option>\n                    <option value=\"MTech\">MTech (Master of Technology)</option>\n                    <option value=\"ME\">ME (Master of Engineering)</option>\n                    <option value=\"MBA\">\n                      MBA (Master of Business Administration)\n                    </option>\n                    <option value=\"MCA\">\n                      MCA (Master of Computer Applications)\n                    </option>\n                    <option value=\"LLM\">LLM (Master of Law)</option>\n                    <option value=\"MD\">MD (Doctor of Medicine)</option>\n                    <option value=\"MS\">MS (Master of Surgery)</option>\n                    <option value=\"MPhil\">MPhil (Master of Philosophy)</option>\n                    <option value=\"PhD\">PhD (Doctorate)</option>\n                  </select>\n                </div>\n              </div>\n\n              <div className={DashStyles.FilterDivButtonsMain}>\n                <button\n                  className={DashStyles.FilterDivButtonOne}\n                  onClick={applyFilters}\n                >\n                  Apply\n                </button>\n                <button\n                  className={DashStyles.FilterDivButtonOne}\n                  onClick={resetFilters}\n                >\n                  Reset\n                </button>\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <div\n          className={`${DashStyles.Container} ${\n            isOpen ? DashStyles.contentDimmed : \"\"\n          }`}\n        >\n          {/*  start */}\n          <div className={DashStyles.TopRecommendation}>\n            <div className={DashStyles.trHeading} ref={setHeadingRef(0)}>\n              <h2 className={DashStyles.TrHead}>\n                All Matches({allMatches.length})\n              </h2>\n            </div>\n            <div className={DashStyles.trContentDisplay}>\n              {paginatedData.length > 0 ? (\n                paginatedData.map((item, index) => (\n                  <div\n                    className={DashStyles.trCard}\n                    key={index}\n                    ref={(el) => setElementRef(-1)(el)}\n                  >\n                    <div\n                      className={DashStyles.trCardImg}\n                      onClick={() => profileView(item._id)}\n                    >\n                      <img\n                        src={\n                          item.profilePicture\n                            ? `${baseUrl}${item.profilePicture}`\n                            : `${avatarImg}`\n                        }\n                        alt=\"CardImage\"\n                        className={DashStyles.cardImage}\n                      />\n                    </div>\n                    <div className={DashStyles.trCardDetails}>\n                      <div\n                        className={DashStyles.trCardDetailSub}\n                        onClick={() => profileView(item._id)}\n                      >\n                        <h5 className={DashStyles.trUserName}>\n                          {item.firstName}\n                        </h5>\n                        <h6 className={DashStyles.trUserDetails}>\n                          {`${item.age} Yrs, ${item.height}cms`}\n                        </h6>\n                      </div>\n                      <div\n                        className={DashStyles.LikeButton}\n                        onClick={() => likedProfile(item._id)}\n                      >\n                        <HeartStraight\n                          size={30}\n                          weight={liked[item._id] ? \"fill\" : \"light\"}\n                          className={`${DashStyles.likedHeartBefore} ${\n                            liked[item._id] ? DashStyles.likedHeart : \"\"\n                          }`}\n                        />\n                      </div>\n                    </div>\n                  </div>\n                ))\n              ) : (\n                <p>No matches found</p>\n              )}\n            </div>\n\n            <PaginationAdmin\n              itemsPerPage={itemsPerPage}\n              userData={currentData}\n              setCurrentPage={setCurrentPage}\n            />\n          </div>\n        </div>\n      </div>\n      <Footer />\n    </div>\n  );\n}\n\nexport default AllMatches;\n","import React, { useEffect, useState } from \"react\";\nimport \"./adminlogin.css\";\nimport { ToastContainer, toast } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport { useNavigate } from \"react-router-dom\";\nimport axios from \"axios\";\nimport { useDispatch } from \"react-redux\";\nimport { setUser } from \"../../../features/slice\";\nimport Modal from \"react-modal\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport Loader from \"../../../component/Loader/Loadertext\"\n\nimport baseUrl from \"../../../baseUrl\";\nimport FooterFront from \"../../../component/FooterFront/FooterFront\";\n\nfunction AdminLogin() {\n  let field = {\n    userEmail: \"\",\n    password: \"\",\n  };\n  const [showPassword, setShowPassword] = useState(false);\n  const [email, setEmail] = useState(\"\");\n  const [isModalOpen, setIsModalOpen] = useState(false);\n  const [form, setForm] = useState(field);\n  const [errorMessage, setErrorMessage] = useState(\"\");\n  const [emailResendTimer, setEmailResendTimer] = useState(0);\n\n  const notifyError = (message) => toast.error(message);\n  const dispatch = useDispatch();\n  const [isLoading, setIsLoading] = useState(false);\n\n  const togglePasswordVisibility = () => {\n    setShowPassword((prev) => !prev);\n  };\n\n  const navigate = useNavigate();\n  const handleEmail = (e) => {\n    setEmail(e.target.value);\n  };\n  const handleChange = (e) => {\n    setForm({\n      ...form,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const submitEmail = async (e) => {\n    e.preventDefault();\n    setIsLoading(true);\n\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/admin/forgotpasswordadmin`,\n        { userEmail: email }\n      );\n      if (response.status === 200) {\n        toast.success(\"Password reset link sent to registered mail ID\", {\n          onClose: () => setIsModalOpen(false),\n        });\n      }\n    } catch (error) {\n      notifyError(error.response?.data?.message);\n    }finally {\n      setIsLoading(false);\n    }\n  };\n  useEffect(() => {\n    let interval = null;\n    if (emailResendTimer > 0) {\n      interval = setInterval(() => {\n        setEmailResendTimer((prev) => prev - 1);\n      }, 1000);\n    }\n    return () => clearInterval(interval);\n  }, [emailResendTimer]);\n  const handleSignin = async (e) => {\n    e.preventDefault();\n    try {\n      const response = await axios.post(`${baseUrl}/api/v1/admin/login`, form);\n      if (response) {\n        navigate(`/Admindashboard`);\n        dispatch(\n          setUser({\n            id: response.data.userId,\n            token: response.data.token,\n            role: Number(response.data.role),\n          })\n        ); // Dispatch Redux action\n      }\n    } catch (error) {\n      console.log(error);\n\n      setErrorMessage(\n        error.response?.data?.message ||\n          \"Invalid email or password. Please try again.\"\n      );\n      notifyError(errorMessage);\n    }\n  };\n  return (\n    <div className=\"mainAdmin\">\n      <ToastContainer\n          position=\"bottom-right\"\n          autoClose={2000}\n          hideProgressBar={false}\n          newestOnTop={false}\n          closeOnClick\n          rtl={false}\n          pauseOnFocusLoss\n          pauseOnHover\n        />\n      <div className=\"landing-main-container\">\n        {isLoading && (\n          <div className=\"loader\">\n            <Loader/>{\" \"}\n          </div>\n        )}\n\n        \n        {/* Left section text */}\n        <div className=\"landing-text-container\">\n          <h1>Ezhava Matrimony</h1>\n          <p>Find Your Perfect Match in the Ezhava Community</p>\n        </div>\n\n        {/* Right section form */}\n        <div className=\"landing-form-container\">\n          <div className=\"landing-form-header\">\n            <h3>Login to your Profile</h3>\n          </div>\n          <div className=\"landing-form-subheader\">\n            <h4>Admin Login</h4>\n          </div>\n          <form onSubmit={handleSignin}>\n            <label>\n              <input\n                type=\"email\"\n                name=\"userEmail\"\n                placeholder=\"Email\"\n                value={form.userEmail}\n                onChange={handleChange}\n                required\n                autocomplete=\"username\"\n              />\n            </label>\n            <label>\n              <div className=\"password-container\">\n                <input\n                  type={showPassword ? \"text\" : \"password\"}\n                  name=\"password\"\n                  placeholder=\"password\"\n                  required\n                  value={form.password}\n                  onChange={handleChange}\n                  autoComplete=\"current-password\"\n                />\n                <span\n                  className=\"password-toggle\"\n                  onClick={togglePasswordVisibility}\n                >\n                  <span className=\"material-icons\">\n                    {showPassword ? \"visibility_off\" : \"visibility\"}\n                  </span>\n                </span>\n              </div>\n            </label>\n            <button type=\"submit\">Sign In</button>\n            <div className=\"fp\">\n              <p\n                className=\"forgot-password-link\"\n                onClick={() => setIsModalOpen(true)}\n              >\n                Forgot Password?\n              </p>\n            </div>\n            <Modal\n              isOpen={isModalOpen}\n              onRequestClose={() => setIsModalOpen(false)}\n              className=\"modal-content\"\n              overlayClassName=\"modal-overlay\"\n            >\n              <div style={{ position: \"relative\" }}>\n                {isLoading && (\n                  <div className=\"modal-loader-overlay\">\n                    <div className=\"loader-div\">\n                      <Loader />{\" \"}\n                    </div>\n                  </div>\n                )}\n\n                <h2>Forgot Password</h2>\n                <p>Enter your email to receive a reset link.</p>\n\n                <input\n                  type=\"email\"\n                  placeholder=\"Enter your email\"\n                  required\n                  value={email}\n                  onChange={handleEmail}\n                  disabled={isLoading}\n                />\n\n                <button\n                  onClick={submitEmail}\n                  disabled={isLoading || emailResendTimer > 0}\n                >\n                  {emailResendTimer > 0\n                    ? `Resend available in ${emailResendTimer}s`\n                    : \"Submit\"}\n                </button>\n                <button\n                  onClick={() => setIsModalOpen(false)}\n                  disabled={isLoading}\n                >\n                  Close\n                </button>\n              </div>\n            </Modal>\n          </form>\n        </div>\n      </div>\n      <link\n        href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n        rel=\"stylesheet\"\n      />\n      <FooterFront/>\n    </div>\n  );\n}\n\nexport default AdminLogin;\n","import React, { useState, useEffect } from \"react\";\nimport \"./report1.css\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport axios from \"axios\";\nimport { useParams } from \"react-router-dom\";\nimport { toast, ToastContainer } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport baseUrl from \"../../baseUrl\";\n\nfunction Report1() {\n  const [formData, setFormData] = useState({\n    subject: \"\",\n    complaint: \"\",\n    abuseCategory: \"\",\n    complainstAgainst: \"\",\n  });\n  const[userData,setUserData]=useState({});\n  const notifySuccess = (message) => toast.success(message);\n\n  const handleChange = (e) => {\n    setFormData({\n      ...formData,\n      [e.target.name]: e.target.value,\n    });\n  };\n  const { userId } = useParams();\n\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n\n    try {\n\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/userReport/${userId}`,\n        formData\n      );\n\n      if (response.status === 200 || response.status === 201) {\n        toast.success(\"Profile Reported Successfully\");\n\n        setFormData({\n          subject: \"\",\n          complaint: \"\",\n          abuseCategory: \"\",\n          complainstAgainst: \"\",\n          \n        });\n      } else {\n        console.error(\"Failed to submit report.\");\n      }\n    } catch (error) {\n      console.error(\"Error submitting report:\", error);\n    }\n  };\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${userId}`\n      );\n      setUserData(response.data.data);\n    } catch (error) {\n      console.log(\"Error fetching user data:\", error);\n    }\n  };\n  useEffect(()=>{\n    fetchUserData()\n  },[userId]);\n  useEffect(() => {\n    if (userData.userId) {\n      setFormData((prevData) => ({\n        ...prevData,\n        complainstAgainst: userData.userId, // Set userId into formData\n      }));\n    }\n  }, [userData]); // Runs when userData updates\n  \n  return (\n    <div className=\"mainContainer-repotPage\">\n      <Nav />\n      <ToastContainer\n        position=\"bottom-right\"\n        autoClose={2000}\n        hideProgressBar={false}\n        newestOnTop={false}\n        closeOnClick\n        rtl={false}\n        pauseOnFocusLoss\n        pauseOnHover\n      />\n      <div className=\"firstheader\">\n        <h1>Report Violation</h1>\n      </div>\n      <div className=\"firstTextContainer\">\n        <p>\n          We work with cyber police to take into custody people who misuse our\n          services. We need your support and co-operation to stop violation. You\n          can reach out to us  by sending an\n          email to ukezhavamatrimony@gmail.com, and we will take necessary\n          action. Also, while reporting such complaints, please provide all\n          evidence including any e-mail (Full header of the e-mail) you may have\n          received.\n        </p>\n        <h2>Note: We will not disclose your identity to the miscreant</h2>\n      </div>\n      <div className=\"ViolationHeader\">\n        <h1>Some examples of violation:</h1>\n        <div className=\"ViolationList\">\n          <ul>\n            <li>If a member sends you a obscene or inappropriate e-mails.</li>\n            <li>\n              If you suspect a member's profile to be obscene or fraudulent.\n            </li>\n            <li>If a member is sending you harrassing e-mails.</li>\n            <li>if you suspect a member's photograph is not real.</li>\n            <li>\n              If you notice any other Business/Individual trying to solicit you\n              with ads or other material.\n            </li>\n          </ul>\n        </div>\n      </div>\n      <form onSubmit={handleSubmit}>\n        \n        <div className=\"form-container5\">\n          <div>\n            <label>Abuse Category</label>\n            <select\n              id=\"abuse-category\"\n              name=\"abuseCategory\"\n              value={formData.abuseCategory}\n              onChange={handleChange}\n              required\n            >\n              <option value=\"\">Select Category</option>\n              <option value=\"Spam\">Spam</option>\n              <option value=\"Verbal Abuse\">Verbal Abuse</option>\n              <option value=\"Financial Abuse\">Financial Abuse</option>\n              <option value=\"Emotional Abuse\">Emotional Abuse</option>\n              <option value=\"Online Harassment\">Online Harassment</option>\n              <option value=\"Stalking\">Stalking</option>\n              <option value=\"Threatening Behavior\">Threatening Behavior</option>\n              <option value=\"Other\">Other</option>\n            </select>\n          </div>\n\n          <div>\n            <label htmlFor=\"subject\">Subject</label>\n            <input\n              id=\"subject\"\n              name=\"subject\"\n              type=\"text\"\n              placeholder=\"Enter subject\"\n              value={formData.subject}\n              onChange={handleChange}\n              required\n            />\n          </div>\n        </div>\n        <div className=\"form-container5_1\">\n          <label htmlFor=\"complaint-details\">Complaint and Details</label>\n          <textarea\n            id=\"complaint-details\"\n            name=\"complaint\"\n            rows=\"4\"\n            placeholder=\"Enter complaint details\"\n            value={formData.complaint}\n            onChange={handleChange}\n            required\n          ></textarea>\n        </div>\n        <div className=\"form-container5_2\">\n          <label htmlFor=\"complaint-against-id\">\n            Complaint against ID/User name\n          </label>\n          <textarea\n            id=\"complaint-details\"\n            name=\"complainstAgainst\"\n            rows=\"4\"\n            placeholder=\"Enter User name\"\n            value={formData.complainstAgainst || userData.userId}\n            onChange={handleChange}\n            required\n          ></textarea>\n          <div className=\"btncontainer\">\n            <button type=\"submit\" className=\"submitButton\">\n              Submit\n            </button>\n            <button type=\"reset\" className=\"submitButton\">\n              Reset\n            </button>\n          </div>\n        </div>\n      </form>\n      <hr className=\"divider\" />\n      <Footer />\n    </div>\n  );\n}\n\nexport default Report1;\n","import React, { useState, useEffect } from \"react\";\nimport \"./usermain.css\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport {  useNavigate, useParams } from \"react-router-dom\";\nimport { Link } from \"react-router-dom\";\nimport Footer from \"../../component/Footer/Footer\";\nimport axios from \"axios\"; // Import axios\nimport { useSelector } from \"react-redux\";\nimport baseUrl from \"../../baseUrl\";\nimport DashStyles from \"../Dashboard/dashboard.module.css\";\nimport avatarImg from \"../../assets/avatar.jpg\"\nfunction UserMain() {\n  const Navigate = useNavigate();\n  const userId = useSelector((state) => state.user.id);\n  const { id } = useParams();\n  const [userData, setUserData] = useState(null);\n  const [loading, setLoading] = useState(true);\n  const [error, setError] = useState(null);\n  const [showDetails, setShowDetails] = useState(false);\n  const [phoneNumber, setPhoneNumber] = useState(\"\");\n  const [topMatches, setTopMatches] = useState([]);\n  const [unlockedProfiles, setUnlockedProfiles] = useState([]);\n  const [isModalOpen, setIsModalOpen] = useState(false);\n  const [isSubscribed, setIsSubscribed] = useState(false);\n\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserData(response.data.data);\n      setPhoneNumber(response.data.data.phoneNumber);\n\n      setLoading(false);\n    } catch (error) {\n      setError(\"Failed to fetch user data. Please try again later.\");\n      setLoading(false);\n      console.error(\"Error fetching user data:\", error);\n    }\n  };\n  const TopMatch = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/topmatch/${userId}`\n      );\n      let user = response.data.matches;\n      const shuffledUsers = user.sort(() => 0.5 - Math.random()).slice(0, 4);\n\n      setTopMatches(shuffledUsers);\n    } catch (error) {\n      console.log(\"error\", error);\n    }\n  };\n  const unlockedProfile = async () => {\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/getunlockedProfile`,\n        { id: userId }\n      );\n      // setUserData(response.data.data);\n      // setPhoneNumber(response.data.data.phoneNumber);\n      setUnlockedProfiles(response.data.data.unlockedProfiles);\n\n    } catch (error) {\n      setError(\"Failed to fetch user data. Please try again later.\");\n      console.error(\"Error fetching user data:\", error);\n    }\n  };\n  const fetchMainUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${userId}`\n      );\n      if (response.status === 200) {\n        setIsSubscribed(response.data.data.subscription);\n      }\n    } catch (error) {\n      console.log(error);\n    }\n  };\n  useEffect(() => {\n    fetchUserData();\n    TopMatch();\n    unlockedProfile();\n    fetchMainUserData();\n  }, [id, userId]);\n\n  useEffect(() => {\n    if (unlockedProfiles.includes(id)) {\n      setShowDetails(true); // Unblur images if the userId is in unlockedProfiles\n    } else {\n      setShowDetails(false); // Otherwise, blur images\n    }\n  }, [unlockedProfiles, id]);\n\n  if (loading) {\n    return <div></div>;\n  }\n\n  if (error) {\n    return <div>{error}</div>;\n  }\n  const handlePayment = async (userId) => {\n    Navigate(`/checkout/${userId}`);\n  };\n\n  return (\n    <div>\n      <Nav userId={userId} />\n      <div className=\"profile-view-main-container\">\n        <div className=\"profile-cards\">\n          <div className=\"image-container\">\n            <img\n              src={\n                userData.profilePicture\n                  ? `${baseUrl}${userData.profilePicture}`\n                  : `${avatarImg}`\n              }\n              alt=\"Profile\"\n              className=\"profile-image\"\n            />\n          </div>\n\n          <div className=\"details-sections\">\n            <div className=\"profile-name-container\">\n              <div className=\"heading-text\">\n                <h2 className=\"profile-name-container\">\n                  {userData ? userData.firstName : \"Gopika Krishnan\"}\n                </h2>\n              </div>\n              <div className=\"option-container\">\n                <div className=\"option\">\n                  <i>\n                    <svg\n                      xmlns=\"http://www.w3.org/2000/svg\"\n                      viewBox=\"0 0 24 24\"\n                      fill=\"currentColor\"\n                      className=\"w-6 h-6 text-gray-600 cursor-pointer\"\n                    >\n                      <path d=\"M12 8.5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm0 5a1.5 1.5 0 110-3 1.5 1.5 0 010 3zm0 5a1.5 1.5 0 110-3 1.5 1.5 0 010 3z\" />\n                    </svg>\n                  </i>\n                  <div className=\"dropdown-menu\">\n                    <Link to={`/report/${id}`}>\n                      {\" \"}\n                      <div className=\"dropdown-item\">Report This Profile</div>\n                    </Link>\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div className=\"profile-age-container\">\n              <p className=\"\">\n                {userData\n                  ? `${userData.age} Yrs, ${userData.height} cms`\n                  : \"25 Yrs, 5'7\\\"\"}\n              </p>\n            </div>\n\n            <div className=\"profile-info-container\">\n              <span className=\"profile-degree-container\">\n                {userData\n                  ? userData.education\n                  : \"Other Bachelor Degree in Medicine, Student\"}\n              </span>\n            </div>\n\n            <div className=\"profile-location-container\">\n              <span>\n                {userData.location || userData.state\n                  ? `${userData.location}  ${userData.state}`\n                  : \"No data Found\"}\n              </span>\n            </div>\n            <div className=\"premium-container\">\n              <h3>Premium</h3>\n            </div>\n          </div>\n          {/* <div className=\"verify-container\">\n            <h3>Verify Profile</h3>\n          </div> */}\n        </div>\n\n        <div className=\"about-similar\">\n          <div className=\"about-card\">\n            <div className=\"about-card-container\">\n              <div className=\"user-description\">\n                <div className=\"about-user-container\">\n                  <h3>About {userData ? userData.name : \"Gopika Krishnan\"}</h3>\n                </div>\n                <div className=\"description-container\">\n                  <p>\n                    {userData\n                      ? userData.about\n                      : \"Lorem ipsum dolor sit, amet consectetur adipisicing elit. Tenetur voluptates itaque excepturi expedita adipisci molestiae vel. Consectetur nisi maiores non nemo quisquam, voluptatem, veritatis qui velit sit delectus commodi quas?\"}\n                  </p>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"basic-details\">\n                  <div className=\"heading\">\n                    <h4>Her basic details</h4>\n                  </div>\n                  <div className=\"age-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        person\n                      </span>\n                      <p>Age</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData ? `${userData.age} Yrs` : \"25 Yrs\"}\n                    </div>\n                  </div>\n                  <div className=\"degree-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        school\n                      </span>\n                      <p>Degree</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData\n                        ? userData.education\n                        : \"Other Bachelor Degree in Medicine, Student\"}\n                    </div>\n                  </div>\n                  <div className=\"location-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        location_on\n                      </span>\n                      <p>Location</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.location || userData.state\n                        ? `${userData.location}  ${userData.state}`\n                        : \"No data Found\"}\n                    </div>\n                  </div>\n                  <div className=\"spoken-language-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        language\n                      </span>\n                      <p>Spoken Language</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData\n                        ? userData.motherTongue\n                        : \"Malayalam, English, Hindi\"}\n                    </div>\n                  </div>\n                  <div className=\"profile-created-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        account_circle\n                      </span>\n                      <p>Profile Created By</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.relation ? userData.relation : \"\"}\n                    </div>\n                  </div>\n                  <div className=\"maritial-status-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        favorite\n                      </span>\n                      <p>Maritial Status</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData ? userData.maritalStatus : \"Never Married\"}\n                    </div>\n                  </div>\n                  <div className=\"citizenship-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">flag</span>\n                      <p>Citizenship</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData ? userData.citizenship : \"India\"}\n                    </div>\n                  </div>\n                  <div className=\"location-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">work</span>\n                      <p>hobbies</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData ? userData.hobbies : \"Demo\"}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className=\"verification-main-container\">\n                <div className=\"verfication-container\">\n                  <div className=\"letter-container\">\n                    <div className=\"letter-main same\">\n                      <span className=\"material-icons\">phone</span>\n                      <h3>PHONE NUMBER</h3>\n                      <div className=\"hr\">\n                        <hr />\n                      </div>\n                      <span className=\"material-icons\">check_circle</span>\n                      <h3>Verified</h3>\n                    </div>\n                  </div>\n                  <div className=\"digit-container\">\n                    <div className=\"digit-main\">\n                      <h3>{isSubscribed ? phoneNumber : \"**********\"}</h3>\n\n                      <div\n                        onClick={() => setIsModalOpen(true)}\n                        className=\"call-now\"\n                        style={{ cursor: \"pointer\" }}\n                      >\n                        <span className=\"material-icons\">phone</span>\n                        <h4>Call Now</h4>\n                      </div>\n                      {isModalOpen && (\n                        <div className=\"modal-overlay\">\n                          <div className=\"modal\">\n                            <h2>Unlock Profile Access</h2>\n                            <p>Pay £10 to view images and phone number.</p>\n                            <button onClick={() => handlePayment(userId, id)}>\n                              Proceed\n                            </button>\n                            <button onClick={() => setIsModalOpen(false)}>\n                              Cancel\n                            </button>\n                          </div>\n                        </div>\n                      )}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Religion</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M80-80v-440h80v80h80l119-395v-85h80v80h81v-80h80v80l120 400h80v-80h80v440H520v-200h-80v200H80Zm268-440h264l-24-80H372l-24 80Zm48-160h168l-24-80H420l-24 80ZM160-160h200v-200h240v200h200v-200H660l-24-80H324l-24 80H160v200Zm320-300Z\" />\n                      </svg>\n                    </span>\n                    <p>Subcaste</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.subCaste : \"Demo\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Gothram</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.gothram : \"Demo\"}\n                  </div>\n                </div>\n                <div className=\"spoken-language-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M620-320v-109l-45-81q-7 5-11 13t-4 17v229L663-80h-93l-90-148v-252q0-31 15-57t41-43l-56-99q-20-38-17.5-80.5T495-832l68-68 276 324 41 496h-80l-39-464-203-238-6 6q-10 10-11.5 23t4.5 25l155 278v130h-80Zm-360 0v-130l155-278q6-12 4.5-25T408-776l-6-6-203 238-39 464H80l41-496 276-324 68 68q30 30 32.5 72.5T480-679l-56 99q26 17 41 43t15 57v252L390-80h-93l103-171v-229q0-9-4-17t-11-13l-45 81v109h-80Z\" />\n                      </svg>\n                    </span>\n                    <p>Dosham</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.dosham : \"Demo\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>Profession Details</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Education</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.education : \"Demo\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Occupation</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.occupation : \"Demo\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Family</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">home</span>\n                    <p>Family Type</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.familyType : \"Demo\"}\n                  </div>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">home</span>\n                    <p>Family Values</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData ? userData.familyValues : \"Demo\"}\n                  </div>\n                </div>\n              </div>\n\n              <div className=\"profile-like-container\">\n                <div className=\"profile-like-main\">\n                  {/* <div className=\"heading\">\n                    <h3>Profiles You May Like</h3>\n                  </div> */}\n                  <div className=\"like-card-container\">\n                    {/* {topMatches &&\n                      topMatches &&\n                      topMatches.map((profile, index) => (\n                        <div className=\"like-card\" key={index}>\n                          <div className=\"image-container\">\n                            <img\n                              src={`${baseUrl}${profile.profilePicture}`}\n                              alt=\"Profile\"\n                            />\n                          </div>\n                          <div className=\"description-container\">\n                            <div className=\"name\">\n                              <h5>{profile.name}</h5>\n                            </div>\n                            <div className=\"age\">\n                              <p>{profile.age} Yrs</p>\n                            </div>\n                            <div className=\"view-button\">\n                              <button onClick={()=>handleChangeProfile(profile.id)}>\n                                View Profile\n                              </button>\n                            </div>\n                          </div>\n                        </div>\n                      ))} */}\n                  </div>\n                </div>\n              </div>\n            </div>\n          </div>\n          <div className=\"similar-profile-container\">\n            {/* <div className=\"main-similar-profile\"> */}\n            <div className=\"container-similar\">\n            </div>\n            <div className=\"like-card-container\">\n              <div className=\"image-container\">\n                {isSubscribed ? (\n                  <div className=\"my-profile-image23\">\n                    {userData.image && userData.image.length > 0 ? (\n                      userData.image.map((imgSrc, index) => (\n                        <img\n                          key={index}\n                          className={`my-profile-image23-single `}\n                          src={`${baseUrl}${imgSrc}`}\n                          alt={`UserImage ${index}`}\n                        />\n                      ))\n                    ) : (\n                      <p>No images uploaded.</p>\n                    )}\n                  </div>\n                ) : (\n                  <div>\n                    <div className={`${DashStyles.AdOffers} backgroundImage`}  >\n                      <h1 className={DashStyles.AdOffersHead}>Welcome Offer</h1>\n                      <h6 className={DashStyles.AdOffersMain}> £ 100</h6>\n                      <h5 className={DashStyles.AdOffersPrice}> £ 25</h5>\n                      <p className={DashStyles.AdOffersPara}>\n                        Unlock all the profiles with just 25 Pounds\n                      </p>\n                      <div className={DashStyles.AdOffersBtn}>\n                        <button\n                          className={DashStyles.paymentButtonAds}\n                          onClick={() => setIsModalOpen(true)}\n                        >\n                          Pay Now\n                        </button>\n                      </div>\n                      {isModalOpen && (\n                        <div className=\"modal-overlay\">\n                          <div className=\"modal\">\n                            <h2>Unlock Unlimited Profiles</h2>\n                            <p>25 Pounds as welcome offer</p>\n                            <button onClick={() => handlePayment(userId)}>\n                              Proceed\n                            </button>\n                            <button onClick={() => setIsModalOpen(false)}>\n                              Cancel\n                            </button>\n                          </div>\n                        </div>\n                      )}\n                    </div>\n                  </div>\n                )}\n              </div>\n\n              {/* </div> */}\n            </div>\n          </div>\n        </div>\n      </div>\n      <link\n        href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n        rel=\"stylesheet\"\n      />\n      <Footer />\n    </div>\n  );\n}\n\nexport default UserMain;\n","import React, { useState, useEffect } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport axios from \"axios\"; // Import Axios\nimport \"./usersettings.css\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport defaultPic from \"../../assets/serious-man-portrait-real-people-high-definition-grey-background-photo.jpg\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport Footer from \"../../component/Footer/Footer\";\nimport baseUrl from \"../../baseUrl\";\n\nfunction UserSettings() {\n  const { id } = useParams();\n  const token = useSelector((state) => state.user.token);\n  \n  const [username, setUsername] = useState(\"\");\n  const [email, setEmail] = useState(\"\");\n  const [password, setPassword] = useState(\"\");\n  const [newUsername, setNewUsername] = useState(\"\");\n  const [profilePic, setProfilePic] = useState(defaultPic);\n  const [loading, setLoading] = useState(true);\n\n  \n  useEffect(() => {\n    const fetchUserData = async () => {\n      try {\n        const response = await axios.get(\n          `${baseUrl}/api/v1/user/usercarddetails/${id}`\n        );\n        const userData = response.data;\n\n        setUsername(userData.firstName);\n        setEmail(userData.email);\n        setProfilePic(userData.profilePic || defaultPic);\n\n        setLoading(false);\n      } catch (error) {\n        console.error(\"Error fetching user data:\", error);\n        setLoading(false);\n      }\n    };\n\n    fetchUserData();\n  }, [id]);\n\n  const handleSave = async () => {\n    try {\n      if (newUsername) {\n        await axios.patch(`${baseUrl}/api/v1/user/edit/${id}`, {\n          firstName: newUsername,\n        });\n\n        setUsername(newUsername);\n      }\n\n      if (password) {\n        await axios.post(\n          `${baseUrl}/api/v1/user/resetpassword/${id}/${token}`,\n          {\n            password: password,\n          }\n        );\n      }\n\n      alert(\"Profile updated successfully!\");\n    } catch (error) {\n      console.error(\"Error updating profile:\", error);\n      alert(\"Failed to update profile. Try again.\");\n    } finally {\n      // Always clear input fields after API calls\n      setNewUsername(\"\");\n      setPassword(\"\");\n    }\n  };\n\n  if (loading) return <p>Loading user data...</p>;\n\n  return (\n    <div>\n      <Nav />\n      <div className=\"settings-container5\">\n        <div className=\"container-main5\">\n          <div className=\"contents5\">\n            <div className=\"first-part5\">\n              <div className=\"report-main5\">\n                <div className=\"heading5\">\n                  <h1>Settings</h1>\n                </div>\n              </div>\n            </div>\n            <div className=\"box-contents5\">\n              <div className=\"part-one5\">\n                <div className=\"profile-container5\">\n                </div>\n              </div>\n              <div className=\"part-two5\">\n                <form onSubmit={(e) => e.preventDefault()}>\n                  <div className=\"form-container-main5\">\n                    <div className=\"user-name5\">\n                      <label>Username</label>\n                      <input\n                        type=\"text\"\n                        value={newUsername}\n                        onChange={(e) => setNewUsername(e.target.value)}\n                        placeholder=\"Enter new username\"\n                      />\n                    </div>\n                    <div className=\"pass-username5\">\n                      <div className=\"password5\">\n                        <label>Reset Password</label>\n                        <input\n                          type=\"password\"\n                          value={password}\n                          onChange={(e) => setPassword(e.target.value)}\n                          placeholder=\"Enter new password\"\n                        />\n                      </div>\n                    </div>\n                  </div>\n                  <div className=\"save-button5\">\n                    <button onClick={handleSave}>Save</button>\n                  </div>\n                </form>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n      <Footer/>\n    </div>\n  );\n}\n\nexport default UserSettings;\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContainer\":\"likedprofiles_mainContainer__1vbA-\",\"SubContainer\":\"likedprofiles_SubContainer__4m-z6\",\"Container\":\"likedprofiles_Container__Ih7FW\",\"OuterBox\":\"likedprofiles_OuterBox__gS5e+\",\"SmallBox\":\"likedprofiles_SmallBox__NeJvK\",\"BigBox\":\"likedprofiles_BigBox__UxEVd\",\"ProfileDiv\":\"likedprofiles_ProfileDiv__bIpKe\",\"ProfileCard\":\"likedprofiles_ProfileCard__uvT2g\",\"ProfileImage\":\"likedprofiles_ProfileImage__gZBN1\",\"ProfileDetails\":\"likedprofiles_ProfileDetails__mT5e2\",\"Greeting\":\"likedprofiles_Greeting__cE2cP\",\"UserName\":\"likedprofiles_UserName__2skjx\",\"MemberId\":\"likedprofiles_MemberId__X85Pf\",\"MembershipStatus\":\"likedprofiles_MembershipStatus__qdclr\",\"UpgradeButton\":\"likedprofiles_UpgradeButton__aXSae\",\"ProfileCompletion\":\"likedprofiles_ProfileCompletion__BIss6\",\"LinkIcon\":\"likedprofiles_LinkIcon__-ETVR\",\"link\":\"likedprofiles_link__FOPvV\",\"Icon\":\"likedprofiles_Icon__TDZKG\",\"SettingsMain\":\"likedprofiles_SettingsMain__4jh9o\",\"Dropdown\":\"likedprofiles_Dropdown__b82na\",\"TopRecommendation\":\"likedprofiles_TopRecommendation__6wA-K\",\"SeeAll\":\"likedprofiles_SeeAll__eOm2z\",\"SpanArrow\":\"likedprofiles_SpanArrow__51uCZ\",\"trContentDisplay\":\"likedprofiles_trContentDisplay__qpJal\",\"TrContent\":\"likedprofiles_TrContent__Zi4Cn\",\"trCard\":\"likedprofiles_trCard__cmJZR\",\"trCardImg\":\"likedprofiles_trCardImg__2jeKr\",\"cardImage\":\"likedprofiles_cardImage__lvOVY\",\"trCardDetails\":\"likedprofiles_trCardDetails__btcrL\",\"trUserName\":\"likedprofiles_trUserName__4MS0F\",\"trUserDetails\":\"likedprofiles_trUserDetails__zgML2\",\"LikeButton\":\"likedprofiles_LikeButton__LiH2X\",\"likedHeartBefore\":\"likedprofiles_likedHeartBefore__ZAv0h\",\"likedHeart\":\"likedprofiles_likedHeart__QNUGW\",\"PreferenceDiv\":\"likedprofiles_PreferenceDiv__JP0Rf\",\"preferenceContent\":\"likedprofiles_preferenceContent__sMxFV\",\"preferenceContentCard\":\"likedprofiles_preferenceContentCard__HpELz\",\"PreferenceNameDiv\":\"likedprofiles_PreferenceNameDiv__VEioO\",\"PreferenceName\":\"likedprofiles_PreferenceName__FHLlG\",\"ExploreMatrimonyDiv\":\"likedprofiles_ExploreMatrimonyDiv__vo64p\",\"ExploreContent\":\"likedprofiles_ExploreContent__442jA\",\"ExploreContentIcons\":\"likedprofiles_ExploreContentIcons__yRRfD\",\"ExploreIcons\":\"likedprofiles_ExploreIcons__lo7Hq\",\"ExplorePara\":\"likedprofiles_ExplorePara__r4CZX\",\"DropdownSecond\":\"likedprofiles_DropdownSecond__bHH8V\",\"DropdownMenuSecond\":\"likedprofiles_DropdownMenuSecond__UUuXX\",\"show\":\"likedprofiles_show__mFRDh\",\"DropdownItemSecond\":\"likedprofiles_DropdownItemSecond__Awr7i\",\"HelpButton\":\"likedprofiles_HelpButton__6vRyP\",\"HamburgerMain\":\"likedprofiles_HamburgerMain__JH0nU\",\"Hamburger\":\"likedprofiles_Hamburger__DzIJe\",\"FilterHam\":\"likedprofiles_FilterHam__phDiC\",\"ham1\":\"likedprofiles_ham1__0kt4U\",\"ham2\":\"likedprofiles_ham2__2pkoE\",\"ham3\":\"likedprofiles_ham3__+Bz8j\",\"open1\":\"likedprofiles_open1__ZmYUe\",\"open2\":\"likedprofiles_open2__F4gu5\",\"open3\":\"likedprofiles_open3__hyKa5\",\"drawer\":\"likedprofiles_drawer__z1Fne\",\"drawerOpen\":\"likedprofiles_drawerOpen__1G5XN\",\"drawerClosed\":\"likedprofiles_drawerClosed__RjSc8\",\"overlay\":\"likedprofiles_overlay__oWC8j\",\"overlayActive\":\"likedprofiles_overlayActive__0XHwK\",\"contentDimmed\":\"likedprofiles_contentDimmed__X5pyk\",\"DropdownMenuSecondSmall\":\"likedprofiles_DropdownMenuSecondSmall__Atw9n\",\"show2\":\"likedprofiles_show2__0m5XA\",\"PageSelection\":\"likedprofiles_PageSelection__qem70\",\"heading\":\"likedprofiles_heading__OuCRD\",\"tabSelected\":\"likedprofiles_tabSelected__w4I3z\",\"FilterDiv\":\"likedprofiles_FilterDiv__xnz7q\",\"FilterProfiles\":\"likedprofiles_FilterProfiles__DfnPb\",\"FilterProfilesHeading\":\"likedprofiles_FilterProfilesHeading__IFYAr\",\"BasicDetailsMainDiv\":\"likedprofiles_BasicDetailsMainDiv__Qa3cp\",\"ProfessionalDetailsMainDiv\":\"likedprofiles_ProfessionalDetailsMainDiv__TfPA+\",\"BasicDetailsHead\":\"likedprofiles_BasicDetailsHead__P+2c9\",\"ProfessionalDetailsHead\":\"likedprofiles_ProfessionalDetailsHead__pP4Vc\",\"BasicDetailsDiv\":\"likedprofiles_BasicDetailsDiv__ziLJ7\",\"ProfessionalDetailsDiv\":\"likedprofiles_ProfessionalDetailsDiv__fjmXb\",\"bdSelect\":\"likedprofiles_bdSelect__NfQUw\",\"pdSelect\":\"likedprofiles_pdSelect__hLEGK\",\"textBox\":\"likedprofiles_textBox__LqsdP\",\"LocationDetailsMainDiv\":\"likedprofiles_LocationDetailsMainDiv__YhWPV\",\"penIconDiv\":\"likedprofiles_penIconDiv__DC9I1\",\"textBoxHead\":\"likedprofiles_textBoxHead__GmXPO\",\"textBoxPara\":\"likedprofiles_textBoxPara__tC2pO\",\"textBoxSubPara\":\"likedprofiles_textBoxSubPara__LHsE6\",\"FilterDivButtonsMain\":\"likedprofiles_FilterDivButtonsMain__lj5Hy\",\"FilterDivButtonOne\":\"likedprofiles_FilterDivButtonOne__orkvK\",\"animateIn\":\"likedprofiles_animateIn__+NToi\",\"FilterIcon\":\"likedprofiles_FilterIcon__FOHEp\"};","import React, { useEffect, useState ,useRef} from \"react\";\nimport DashStyles from \"./likedprofiles.module.css\";\nimport { HeartStraight } from \"phosphor-react\";\nimport { Link, useParams,useNavigate } from \"react-router-dom\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport axios from \"axios\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport PaginationAdmin from \"../Admin/components/PaginationAdmin\";\nimport baseUrl from \"../../baseUrl\";\nimport avatarImg from \"../../assets/avatar.jpg\"\n\nfunction LikedProfiles() {\n  const userId = useSelector((state) => state.user.id);\n  const [getLike, setGetLike] = useState([]);\n  const [liked, setLiked] = useState({});\n  const [isOpen, setIsOpen] = useState(false);\n  const [likedProfiles, setLikedProfiles] = useState([]);\n  const [currentPage, setCurrentPage] = useState(1);\n  const [itemsPerPage, setItemsPerPage] = useState(10);\n  const lastIndex = currentPage * itemsPerPage;\n  const indexOfFirstItem = lastIndex - itemsPerPage;\n  const currentLikedProfiles = likedProfiles.slice(indexOfFirstItem, lastIndex);\nconst navigate=useNavigate();\n  // const[showHamburger,setShowHamburger]=useState(true);\n  const { id } = useParams();\n  const getLikedProfiles = async () => {\n    try {\n      if (!userId) return; // Prevent unnecessary API call\n      const response = await axios.get(`${baseUrl}/api/v1/user/likedProfiles/${userId}`);\n      const likedProfilesMap = response.data.likedUsers.reduce((acc, user) => {\n        acc[user._id] = true;\n        return acc;\n      }, {});\n      setGetLike(response.data.likedUsers);\n      setLiked(likedProfilesMap);\n    } catch (error) {\n      console.error(\"Error fetching liked profiles\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      getLikedProfiles();\n    }\n  }, [userId]);\n  const likedProfile = async (id) => {\n    if (!userId || !id) {\n      console.error(\"User ID or Profile ID is undefined\");\n      return;\n    }\n    // Optimistically update UI before API call\n    setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n    if (liked[id]) {\n      // Remove the unliked profile from state immediately\n      setLikedProfiles((prevProfiles) =>\n        prevProfiles.filter((profile) => profile._id !== id)\n      );\n    }\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/likeProfile/${userId}`,\n        { likedId: id }\n      );\n      if (!liked[id]) {\n        // If liked, re-fetch liked profiles (optional)\n        getLikedProfiles();\n      }\n    } catch (error) {\n      console.error(\"Error liking/unliking profile:\", error);\n      // Revert state if API call fails\n      setLiked((prev) => ({ ...prev, [id]: !prev[id] }));\n    }\n  };\n \n  const fetchLikedUsers = async () => {\n    try {\n      if (!userId) return;\n      const response = await axios.get(`${baseUrl}/api/v1/user/likedProfiles/${userId}`);\n      setLikedProfiles(response.data.likedUsers);\n    } catch (error) {\n      console.log(\"Error fetching liked profiles\", error);\n    }\n  };\n  useEffect(() => {\n    if (userId) {\n      fetchLikedUsers();\n    }\n  }, [userId]);\n  const profileView = async (id) => {\n    if (!id) {\n      console.log(\"Error fetching id\");\n      return;\n    }\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      navigate(`/mainuser/${id}`);\n    } catch (error) {\n      console.log(\"Error fetching the data\", error);\n    }\n  };\n    const myRef = useRef([]);\n    const observerRef = useRef(null); \n      useEffect(() => {\n        if (!observerRef.current) {\n          observerRef.current = new IntersectionObserver((entries) => {\n            entries.forEach((entry) => {\n              if (entry.isIntersecting) {\n                entry.target.classList.add(DashStyles.animateIn);\n              }\n            });\n          });\n        }\n    \n        // ✅ Ensure only unique elements are observed\n      \n    \n        myRef.current.forEach((el) => {\n          if (el && observerRef.current) observerRef.current.observe(el);\n        });\n    \n        return () => {\n          if (observerRef.current) {\n            observerRef.current.disconnect();\n          }\n        };\n      }, []);\n    \n      const setElementRef = (index) => (el) => {\n        if (el) {\n          myRef.current[index] = el;\n          if (observerRef.current) observerRef.current.observe(el);\n        }\n      };\n  return (\n    <div className={DashStyles.mainContainer}>\n      <Nav userId={userId} />\n      <div className={DashStyles.SubContainer}>\n        <div\n          className={`${DashStyles.Container} ${\n            isOpen ? DashStyles.contentDimmed : \"\"\n          }`}\n        >\n          <div className={DashStyles.TopRecommendation}>\n            <div className={DashStyles.trHeading}>\n              <h2 className={DashStyles.TrHead}>Liked Profiles</h2>\n            </div>\n            <div className={DashStyles.trContentDisplay}>\n              {currentLikedProfiles.map((item, index) => (\n                <div className={DashStyles.trCard} key={index}\n                ref={(el) => setElementRef(-1)(el)}\n                >\n                  <div className={DashStyles.trCardImg}\n                    onClick={() => profileView(item._id)}\n                  >\n                    <img\n                          src={\n                            item.profilePicture\n                              ? `${baseUrl}${item.profilePicture}`\n                              : `${avatarImg}`\n                          }\n                          alt=\"\"\n                          className={DashStyles.cardImage}\n                        />\n                  </div>\n                  <div className={DashStyles.trCardDetails}>\n                    <div className={DashStyles.trCardDetailSub}\n                      onClick={() => profileView(item._id)}\n                    >\n                      <h5 className={DashStyles.trUserName}>\n                        {item.firstName}\n                      </h5>\n                      <h6\n                        className={DashStyles.trUserDetails}\n                      >{`${item.age} Yrs,${item.height}`}</h6>\n                    </div>\n                    <div\n                      className={DashStyles.LikeButton}\n                      onClick={() => likedProfile(item._id)}\n                    >\n                      <HeartStraight\n                        size={20}\n                        weight={liked[item._id] ? \"fill\" : \"light\"}\n                        className={`${DashStyles.likedHeartBefore} ${\n                          liked[item._id] ? DashStyles.likedHeart : \"\"\n                        }`}\n                      />\n                    </div>\n                  </div>\n                </div>\n              ))}\n            </div>\n            <PaginationAdmin\n      itemsPerPage={itemsPerPage}\n      userData={likedProfiles} // Use the full array for pagination logic\n      setCurrentPage={setCurrentPage}\n    />\n          </div>\n        </div>\n      </div>\n      <Footer />\n    </div>\n  );\n}\nexport default LikedProfiles;\n","export var IconsManifest = [\n  {\n    \"id\": \"ci\",\n    \"name\": \"Circum Icons\",\n    \"projectUrl\": \"https://circumicons.com/\",\n    \"license\": \"MPL-2.0 license\",\n    \"licenseUrl\": \"https://github.com/Klarr-Agency/Circum-Icons/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"fa\",\n    \"name\": \"Font Awesome 5\",\n    \"projectUrl\": \"https://fontawesome.com/\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"fa6\",\n    \"name\": \"Font Awesome 6\",\n    \"projectUrl\": \"https://fontawesome.com/\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"io\",\n    \"name\": \"Ionicons 4\",\n    \"projectUrl\": \"https://ionicons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"io5\",\n    \"name\": \"Ionicons 5\",\n    \"projectUrl\": \"https://ionicons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"md\",\n    \"name\": \"Material Design icons\",\n    \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"ti\",\n    \"name\": \"Typicons\",\n    \"projectUrl\": \"http://s-ings.com/typicons/\",\n    \"license\": \"CC BY-SA 3.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n  },\n  {\n    \"id\": \"go\",\n    \"name\": \"Github Octicons icons\",\n    \"projectUrl\": \"https://octicons.github.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"fi\",\n    \"name\": \"Feather\",\n    \"projectUrl\": \"https://feathericons.com/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"lu\",\n    \"name\": \"Lucide\",\n    \"projectUrl\": \"https://lucide.dev/\",\n    \"license\": \"ISC\",\n    \"licenseUrl\": \"https://github.com/lucide-icons/lucide/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"gi\",\n    \"name\": \"Game Icons\",\n    \"projectUrl\": \"https://game-icons.net/\",\n    \"license\": \"CC BY 3.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n  },\n  {\n    \"id\": \"wi\",\n    \"name\": \"Weather Icons\",\n    \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n    \"license\": \"SIL OFL 1.1\",\n    \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n  },\n  {\n    \"id\": \"di\",\n    \"name\": \"Devicons\",\n    \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"ai\",\n    \"name\": \"Ant Design Icons\",\n    \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"bs\",\n    \"name\": \"Bootstrap Icons\",\n    \"projectUrl\": \"https://github.com/twbs/icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"ri\",\n    \"name\": \"Remix Icon\",\n    \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"http://www.apache.org/licenses/\"\n  },\n  {\n    \"id\": \"fc\",\n    \"name\": \"Flat Color Icons\",\n    \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"gr\",\n    \"name\": \"Grommet-Icons\",\n    \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n    \"license\": \"Apache License Version 2.0\",\n    \"licenseUrl\": \"http://www.apache.org/licenses/\"\n  },\n  {\n    \"id\": \"hi\",\n    \"name\": \"Heroicons\",\n    \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"hi2\",\n    \"name\": \"Heroicons 2\",\n    \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"si\",\n    \"name\": \"Simple Icons\",\n    \"projectUrl\": \"https://simpleicons.org/\",\n    \"license\": \"CC0 1.0 Universal\",\n    \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n  },\n  {\n    \"id\": \"sl\",\n    \"name\": \"Simple Line Icons\",\n    \"projectUrl\": \"https://thesabbir.github.io/simple-line-icons/\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"im\",\n    \"name\": \"IcoMoon Free\",\n    \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n    \"license\": \"CC BY 4.0 License\",\n    \"licenseUrl\": \"https://github.com/Keyamoon/IcoMoon-Free/blob/master/License.txt\"\n  },\n  {\n    \"id\": \"bi\",\n    \"name\": \"BoxIcons\",\n    \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/atisawd/boxicons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"cg\",\n    \"name\": \"css.gg\",\n    \"projectUrl\": \"https://github.com/astrit/css.gg\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"vsc\",\n    \"name\": \"VS Code Icons\",\n    \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n    \"license\": \"CC BY 4.0\",\n    \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n  },\n  {\n    \"id\": \"tb\",\n    \"name\": \"Tabler Icons\",\n    \"projectUrl\": \"https://github.com/tabler/tabler-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n  },\n  {\n    \"id\": \"tfi\",\n    \"name\": \"Themify Icons\",\n    \"projectUrl\": \"https://github.com/lykmapipo/themify-icons\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/thecreation/standard-icons/blob/master/modules/themify-icons/LICENSE\"\n  },\n  {\n    \"id\": \"rx\",\n    \"name\": \"Radix Icons\",\n    \"projectUrl\": \"https://icons.radix-ui.com\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/radix-ui/icons/blob/master/LICENSE\"\n  },\n  {\n    \"id\": \"pi\",\n    \"name\": \"Phosphor Icons\",\n    \"projectUrl\": \"https://github.com/phosphor-icons/core\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/phosphor-icons/core/blob/main/LICENSE\"\n  },\n  {\n    \"id\": \"lia\",\n    \"name\": \"Icons8 Line Awesome\",\n    \"projectUrl\": \"https://icons8.com/line-awesome\",\n    \"license\": \"MIT\",\n    \"licenseUrl\": \"https://github.com/icons8/line-awesome/blob/master/LICENSE.md\"\n  }\n]","import React from \"react\";\nexport var DefaultContext = {\n  color: undefined,\n  size: undefined,\n  className: undefined,\n  style: undefined,\n  attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\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; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n  return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n    key: i\n  }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n  return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n    attr: _objectSpread({}, data.attr)\n  }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n  var elem = conf => {\n    var {\n        attr,\n        size,\n        title\n      } = props,\n      svgProps = _objectWithoutProperties(props, _excluded);\n    var computedSize = size || conf.size || \"1em\";\n    var className;\n    if (conf.className) className = conf.className;\n    if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n    return /*#__PURE__*/React.createElement(\"svg\", _extends({\n      stroke: \"currentColor\",\n      fill: \"currentColor\",\n      strokeWidth: \"0\"\n    }, conf.attr, attr, svgProps, {\n      className: className,\n      style: _objectSpread(_objectSpread({\n        color: props.color || conf.color\n      }, conf.style), props.style),\n      height: computedSize,\n      width: computedSize,\n      xmlns: \"http://www.w3.org/2000/svg\"\n    }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n  };\n  return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function Fa500Px (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3.3-16 16.5-21.2 23.9l-.5.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAccessibleIcon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"},\"child\":[]}]})(props);\n};\nexport function FaAccusoft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7.8 0 114.5-36.6 114.5-36.6.5-.6-.1-.1.6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8.5-116.5.6-19.2.1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1.2-9.6.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6.2 2.5 2 2.6 4.6 3.5 2.7.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAcquisitionsIncorporated (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-.1-1.6-.2-71.6-1-129.1-.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7.1 4.4-3.4 4.4-10-.2-20-.1-30.4-.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8.4-20.4-.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-.4 41.2-.4 61.8-.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2.8-5.3 1.6-10.7 2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-.8.8 6.4 45.3 63.4 0 71.8.9 101.8.5 12.3-.2 37 3.5 37.7 22.1.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-.2-17-.3-25.4.1-1.9.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4.9 4.6 3 4.6 6.8-.1 42.9.1 85.9.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-.8 5 1.3 5.7 5.3 5.7 183.2.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7zm-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAdn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAdversal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7.4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6.4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1.2-.1.3-.1.5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAffiliatetheme (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9.1-8.5-.3-16.8-1-25z\"},\"child\":[]}]})(props);\n};\nexport function FaAirbnb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 373.12c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.61-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.15 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.07 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.72-231.18 115.87-241.56 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.48 114.84 239.09 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.12C280.27 35.93 273.13 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.19 22 349.81-3.22 419.14 48.74 480 111.63 480c21.71 0 60.61-6.06 112.37-62.4 58.68 63.78 101.26 62.4 112.37 62.4 62.89.05 114.85-60.86 89.61-130.19.02-3.89-16.82-38.9-16.82-39.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAlgolia (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8.9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1.7 1.3.2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7.5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z\"},\"child\":[]}]})(props);\n};\nexport function FaAlipay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.74 32H70.26C31.41 32 0 63.41 0 102.26v307.48C0 448.59 31.41 480 70.26 480h307.48c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.59-60.34-171.6-88.44-32.07 43.97-84.14 81-148.62 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.13 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.44V92.34h50.92v50.42h109.44v19.01H248.63v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100.01 36.04 148.62 52.74V102.26C447.83 63.57 416.43 32 377.74 32zM47.28 322.95c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.87-72.9-44.63-18.68-84.48-31.41-109.44-31.41-67.45 0-79.35 33.06-78.36 50.58z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazonPay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.88 595.88 0 0 0 127.4 46.3 616.61 616.61 0 0 0 63.2 11.8 603.33 603.33 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.66 603.66 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1-9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.31 473.31 0 0 1-75.1 17.6 431 431 0 0 1-53.2 4.8 21.3 21.3 0 0 0-2.5.3H308a21.3 21.3 0 0 0-2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1-50.4-5.3A448.4 448.4 0 0 1 164 420a443.33 443.33 0 0 1-145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3.6a80.92 80.92 0 0 0-38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1-.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1.1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1.9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1.5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1-1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9.4a148 148 0 0 0-28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7.1 3.3-.1 6.6 0 9.9.1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4.3 8.3.2 16.6.3 24.9a7.84 7.84 0 0 1-.2 1.4c-.5-.1-.9 0-1.3-.1a180.56 180.56 0 0 0-32-4.9c-11.3-.6-22.5.1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4.1 10.9.1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0-.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9.1-7.9.1-11.9.1zm35 127.7a3.33 3.33 0 0 1-1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7.6-11.4.4-16.8-1.8a20.08 20.08 0 0 1-12.4-13.3 32.9 32.9 0 0 1-.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4.7 16.6 2.3 25 3.4 1.6.2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0-21-3.9 147.32 147.32 0 0 0-39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0-3.7 3.5 5.11 5.11 0 0 0-.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4.4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0-1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.91 145.91 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6.8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6.2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1-15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.18 108.18 0 0 0 16.9 2c17.1.4 30.7-6.5 39.5-21.4a131.63 131.63 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0-7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAmazon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAmilia (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5.3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAndroid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55\"},\"child\":[]}]})(props);\n};\nexport function FaAngellist (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7.1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3.3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7.1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngrycreative (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8.3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1.6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAngular (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStoreIos (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaAppStore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z\"},\"child\":[]}]})(props);\n};\nexport function FaApper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8.3-3.3.3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z\"},\"child\":[]}]})(props);\n};\nexport function FaApplePay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9.3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5.1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8.4 9.3.7 11.6.7z\"},\"child\":[]}]})(props);\n};\nexport function FaApple (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArtstation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z\"},\"child\":[]}]})(props);\n};\nexport function FaAsymmetrik (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M517.5 309.2c38.8-40 58.1-80 58.5-116.1.8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlassian (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8.1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAudible (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z\"},\"child\":[]}]})(props);\n};\nexport function FaAutoprefixer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z\"},\"child\":[]}]})(props);\n};\nexport function FaAvianex (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAviato (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2.3-2 .5-4.2.6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1.3-.1.7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3.3 4.4.6 6.5.3 2.6.8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1.2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9.9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAws (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M180.41 203.01c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1-4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1-5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.608 78.608 0 0 1-62.61 29.45c-16.28.89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1.02 21.6.37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4.01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.857 76.857 0 0 1 55.69 17.28 70.285 70.285 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.92 23.05c-7.86.72-11.52-4.86-12.68-10.37l-49.8-164.65c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.83 33.16-140.83c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.63L420.98 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.67 110.7l-32.78 136.99c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.48 5.63c-5.88.01-33.92-.3-57.36-12.29a12.802 12.802 0 0 1-7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89.91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.86c-70.03 51.72-171.69 79.25-258.49 79.25A469.127 469.127 0 0 1 2.83 327.46c-6.53-5.89-.77-13.96 7.17-9.47a637.37 637.37 0 0 0 316.88 84.12 630.22 630.22 0 0 0 241.59-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79.77-7.94-5.12-1.79-9.47 40.07-28.17 105.88-20.1 113.44-10.63 7.55 9.47-2.05 75.41-39.56 106.91-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBandcamp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm48.2,326.1h-181L207.9,178h181Z\"},\"child\":[]}]})(props);\n};\nexport function FaBattleNet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448.61 225.62c26.87.18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.05-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.18 7.14 238.7 1.07 228.18.22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.56-9.22 5.22 53 29.75 101.82 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61.15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.82 4.6 143.29-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.22c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.69c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.35c-10.29-5.34-21.16-10.34-32.38-15.05a722.459 722.459 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.18 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.78 718.78 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.34 98-132.75 115.92-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.07 12.3.91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.23 695.23 0 0 0 44.67 152.84c.93-.38 1.84.88 18.67-8.25-26.33-74.47-33.76-138.17-34-173.43 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.32 30.71q-10.69 15.66-23.33 32.47C365.63 152 339.1 145.84 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.63 717.63 0 0 0-115.34-31.71 646.608 646.608 0 0 0-39.39-6.05c-.07.45-1.81 1.85-2.16 20.33C300 190.28 358.78 215.68 389.36 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.55 306.58 111zm-130.65 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.06 74.8\"},\"child\":[]}]})(props);\n};\nexport function FaBehanceSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6.1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3.3-4.8.3-7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBehance (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2.6-8.7.6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBimobject (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBitbucket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0-13.2-18.3 24.58 24.58 0 0 0-2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z\"},\"child\":[]}]})(props);\n};\nexport function FaBitcoin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-141.651-35.33c4.937-32.999-20.191-50.739-54.55-62.573l11.146-44.702-27.213-6.781-10.851 43.524c-7.154-1.783-14.502-3.464-21.803-5.13l10.929-43.81-27.198-6.781-11.153 44.686c-5.922-1.349-11.735-2.682-17.377-4.084l.031-.14-37.53-9.37-7.239 29.062s20.191 4.627 19.765 4.913c11.022 2.751 13.014 10.044 12.68 15.825l-12.696 50.925c.76.194 1.744.473 2.829.907-.907-.225-1.876-.473-2.876-.713l-17.796 71.338c-1.349 3.348-4.767 8.37-12.471 6.464.271.395-19.78-4.937-19.78-4.937l-13.51 31.147 35.414 8.827c6.588 1.651 13.045 3.379 19.4 5.006l-11.262 45.213 27.182 6.781 11.153-44.733a1038.209 1038.209 0 0 0 21.687 5.627l-11.115 44.523 27.213 6.781 11.262-45.128c46.404 8.781 81.299 5.239 95.986-36.727 11.836-33.79-.589-53.281-25.004-65.991 17.78-4.098 31.174-15.792 34.747-39.949zm-62.177 87.179c-8.41 33.79-65.308 15.523-83.755 10.943l14.944-59.899c18.446 4.603 77.6 13.717 68.811 48.956zm8.417-87.667c-7.673 30.736-55.031 15.12-70.393 11.292l13.548-54.327c15.363 3.828 64.836 10.973 56.845 43.035z\"},\"child\":[]}]})(props);\n};\nexport function FaBity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3.8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackTie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z\"},\"child\":[]}]})(props);\n};\nexport function FaBlackberry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1.1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1.1-16.3-11.6-39.7-53.7-39.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBloggerB (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8.6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7.7 165.8.2 246.8c-.6 101.5.1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4.1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5.2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5.9c-68.1.8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBlogger (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1.1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4.1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8.2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9.7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6.2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5.4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7.5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetoothB (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M196.48 260.023l92.626-103.333L143.125 0v206.33l-86.111-86.111-31.406 31.405 108.061 108.399L25.608 368.422l31.406 31.405 86.111-86.111L145.84 512l148.552-148.644-97.912-103.333zm40.86-102.996l-49.977 49.978-.338-100.295 50.315 50.317zM187.363 313.04l49.977 49.978-50.315 50.316.338-100.294z\"},\"child\":[]}]})(props);\n};\nexport function FaBluetooth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBootstrap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.5,201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4,238.2,333.5,225,333.5,201.4z M517,188.6 c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1,0-55.8,28.1-54.7,58.5c1,29.3-0.3,67.2-9.8,98.1 c-9.6,31-25.7,50.6-52.2,53.1v28.5c26.4,2.5,42.6,22.1,52.2,53.1c9.5,30.9,10.9,68.8,9.8,98.1c-1.1,30.5,22.7,58.5,54.7,58.5h328.7 c32.1,0,55.8-28.1,54.7-58.5c-1-29.3,0.3-67.2,9.8-98.1c9.6-31,25.7-50.6,52.1-53.1v-28.5C542.7,239.2,526.5,219.6,517,188.6z M300.2,375.1h-97.9V136.8h97.4c43.3,0,71.7,23.4,71.7,59.4c0,25.3-19.1,47.9-43.5,51.8v1.3c33.2,3.6,55.5,26.6,55.5,58.3 C383.4,349.7,352.1,375.1,300.2,375.1z M290.2,266.4h-50.1v78.4h52.3c34.2,0,52.3-13.7,52.3-39.5 C344.7,279.6,326.1,266.4,290.2,266.4z\"},\"child\":[]}]})(props);\n};\nexport function FaBtc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.204 242.638c27.73-14.18 45.377-39.39 41.28-81.3-5.358-57.351-52.458-76.573-114.85-81.929V0h-48.528v77.203c-12.605 0-25.525.315-38.444.63V0h-48.528v79.409c-17.842.539-38.622.276-97.37 0v51.678c38.314-.678 58.417-3.14 63.023 21.427v217.429c-2.925 19.492-18.524 16.685-53.255 16.071L3.765 443.68c88.481 0 97.37.315 97.37.315V512h48.528v-67.06c13.234.315 26.154.315 38.444.315V512h48.528v-68.005c81.299-4.412 135.647-24.894 142.895-101.467 5.671-61.446-23.32-88.862-69.326-99.89zM150.608 134.553c27.415 0 113.126-8.507 113.126 48.528 0 54.515-85.71 48.212-113.126 48.212v-96.74zm0 251.776V279.821c32.772 0 133.127-9.138 133.127 53.255-.001 60.186-100.355 53.253-133.127 53.253z\"},\"child\":[]}]})(props);\n};\nexport function FaBuffer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.84 380.67l-196.5 97.82a18.6 18.6 0 0 1-14.67 0L20.16 380.67c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.76 67a18.51 18.51 0 0 0 14.67 0l134.76-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.53l-47.06-23.43a18.62 18.62 0 0 0-14.68 0l-134.76 67.08a18.68 18.68 0 0 1-14.67 0L81.91 220.71a18.65 18.65 0 0 0-14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.51 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.42l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.51-90.29c4-1.86 4-4.89 0-6.74L231.33 33.4a19.88 19.88 0 0 0-14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z\"},\"child\":[]}]})(props);\n};\nexport function FaBuromobelexperte (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z\"},\"child\":[]}]})(props);\n};\nexport function FaBuyNLarge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C133.27 32 7.79 132.32 7.79 256S133.27 480 288 480s280.21-100.32 280.21-224S442.73 32 288 32zm-85.39 357.19L64.1 390.55l77.25-290.74h133.44c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1-1.5 6.85 77.39 77.39 0 0 0-17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.71 61.52zM358 207.11h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.86 182.08H306.79L322.63 328a78.8 78.8 0 0 0 11.47.83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.36h103.87zM211.7 269.39H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.71h21.37c18 0 35.38-14.64 39.21-30.14C265.23 168.71 251.07 170 233 170z\"},\"child\":[]}]})(props);\n};\nexport function FaBuysellads (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCanadianMapleLeaf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmazonPay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3.4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5.9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5.9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8.1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7.9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4.2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9.9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3.1 4.6 1.6 6.7 6.2 7.5 4.7.8 9.4 1.6 14.2 1.7 14.3.3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5.6-1.5 1.1-3 1.3-4.6.4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5.4-.3.8-.6 1.4-1 .5 3.2.9 6.2 1.5 9.2.5 2.6 2.1 4.3 4.5 4.4 4.6.1 9.1.1 13.7 0 2.3-.1 3.8-1.6 4-3.9.1-.8.1-1.6.1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8.1-1.6.3-2.5.3-8.2.4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5.1 2.8-.1 5.6 0 8.3.1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4.8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7.3 6.9.2 13.9.3 20.8 0 .4-.1.7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9.1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7.1 2.5.2 2.5 1.7 4.1 4.1 4.2 5.9.1 11.8.1 17.7 0 2.5 0 4-1.7 4.1-4.1.1-.8.1-1.7.1-2.5v-60.7c.9.7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2.2-2.4.3-3.6.5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6.7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4.7 0 1.4.2 2.1.3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2.8-2.4 1.8-3.1 3-.6.9-.7 2.3-.5 3.4.3 1.3 1.7 1.6 3 1.5.6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1.3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7.3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3.8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6.7-3 1.2-6.1 1.7-9.1.2-4.7.2-9.6.2-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcAmex (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.1 167.8c0-16.4-14.1-18.4-27.4-18.4l-39.1-.3v69.3H275v-25.1h18c18.4 0 14.5 10.3 14.8 25.1h16.6v-13.5c0-9.2-1.5-15.1-11-18.4 7.4-3 11.8-10.7 11.7-18.7zm-29.4 11.3H275v-15.3h21c5.1 0 10.7 1 10.7 7.4 0 6.6-5.3 7.9-11 7.9zM279 268.6h-52.7l-21 22.8-20.5-22.8h-66.5l-.1 69.3h65.4l21.3-23 20.4 23h32.2l.1-23.3c18.9 0 49.3 4.6 49.3-23.3 0-17.3-12.3-22.7-27.9-22.7zm-103.8 54.7h-40.6v-13.8h36.3v-14.1h-36.3v-12.5h41.7l17.9 20.2zm65.8 8.2l-25.3-28.1L241 276zm37.8-31h-21.2v-17.6h21.5c5.6 0 10.2 2.3 10.2 8.4 0 6.4-4.6 9.2-10.5 9.2zm-31.6-136.7v-14.6h-55.5v69.3h55.5v-14.3h-38.9v-13.8h37.8v-14.1h-37.8v-12.5zM576 255.4h-.2zm-194.6 31.9c0-16.4-14.1-18.7-27.1-18.7h-39.4l-.1 69.3h16.6l.1-25.3h17.6c11 0 14.8 2 14.8 13.8l-.1 11.5h16.6l.1-13.8c0-8.9-1.8-15.1-11-18.4 7.7-3.1 11.8-10.8 11.9-18.4zm-29.2 11.2h-20.7v-15.6h21c5.1 0 10.7 1 10.7 7.4 0 6.9-5.4 8.2-11 8.2zm-172.8-80v-69.3h-27.6l-19.7 47-21.7-47H83.3v65.7l-28.1-65.7H30.7L1 218.5h17.9l6.4-15.3h34.5l6.4 15.3H100v-54.2l24 54.2h14.6l24-54.2v54.2zM31.2 188.8l11.2-27.6 11.5 27.6zm477.4 158.9v-4.5c-10.8 5.6-3.9 4.5-156.7 4.5 0-25.2.1-23.9 0-25.2-1.7-.1-3.2-.1-9.4-.1 0 17.9-.1 6.8-.1 25.3h-39.6c0-12.1.1-15.3.1-29.2-10 6-22.8 6.4-34.3 6.2 0 14.7-.1 8.3-.1 23h-48.9c-5.1-5.7-2.7-3.1-15.4-17.4-3.2 3.5-12.8 13.9-16.1 17.4h-82v-92.3h83.1c5 5.6 2.8 3.1 15.5 17.2 3.2-3.5 12.2-13.4 15.7-17.2h58c9.8 0 18 1.9 24.3 5.6v-5.6c54.3 0 64.3-1.4 75.7 5.1v-5.1h78.2v5.2c11.4-6.9 19.6-5.2 64.9-5.2v5c10.3-5.9 16.6-5.2 54.3-5V80c0-26.5-21.5-48-48-48h-480c-26.5 0-48 21.5-48 48v109.8c9.4-21.9 19.7-46 23.1-53.9h39.7c4.3 10.1 1.6 3.7 9 21.1v-21.1h46c2.9 6.2 11.1 24 13.9 30 5.8-13.6 10.1-23.9 12.6-30h103c0-.1 11.5 0 11.6 0 43.7.2 53.6-.8 64.4 5.3v-5.3H363v9.3c7.6-6.1 17.9-9.3 30.7-9.3h27.6c0 .5 1.9.3 2.3.3H456c4.2 9.8 2.6 6 8.8 20.6v-20.6h43.3c4.9 8-1-1.8 11.2 18.4v-18.4h39.9v92h-41.6c-5.4-9-1.4-2.2-13.2-21.9v21.9h-52.8c-6.4-14.8-.1-.3-6.6-15.3h-19c-4.2 10-2.2 5.2-6.4 15.3h-26.8c-12.3 0-22.3-3-29.7-8.9v8.9h-66.5c-.3-13.9-.1-24.8-.1-24.8-1.8-.3-3.4-.2-9.8-.2v25.1H151.2v-11.4c-2.5 5.6-2.7 5.9-5.1 11.4h-29.5c-4-8.9-2.9-6.4-5.1-11.4v11.4H58.6c-4.2-10.1-2.2-5.3-6.4-15.3H33c-4.2 10-2.2 5.2-6.4 15.3H0V432c0 26.5 21.5 48 48 48h480.1c26.5 0 48-21.5 48-48v-90.4c-12.7 8.3-32.7 6.1-67.5 6.1zm36.3-64.5H575v-14.6h-32.9c-12.8 0-23.8 6.6-23.8 20.7 0 33 42.7 12.8 42.7 27.4 0 5.1-4.3 6.4-8.4 6.4h-32l-.1 14.8h32c8.4 0 17.6-1.8 22.5-8.9v-25.8c-10.5-13.8-39.3-1.3-39.3-13.5 0-5.8 4.6-6.5 9.2-6.5zm-57 39.8h-32.2l-.1 14.8h32.2c14.8 0 26.2-5.6 26.2-22 0-33.2-42.9-11.2-42.9-26.3 0-5.6 4.9-6.4 9.2-6.4h30.4v-14.6h-33.2c-12.8 0-23.5 6.6-23.5 20.7 0 33 42.7 12.5 42.7 27.4-.1 5.4-4.7 6.4-8.8 6.4zm-42.2-40.1v-14.3h-55.2l-.1 69.3h55.2l.1-14.3-38.6-.3v-13.8H445v-14.1h-37.8v-12.5zm-56.3-108.1c-.3.2-1.4 2.2-1.4 7.6 0 6 .9 7.7 1.1 7.9.2.1 1.1.5 3.4.5l7.3-16.9c-1.1 0-2.1-.1-3.1-.1-5.6 0-7 .7-7.3 1zm20.4-10.5h-.1zm-16.2-15.2c-23.5 0-34 12-34 35.3 0 22.2 10.2 34 33 34h19.2l6.4-15.3h34.3l6.6 15.3h33.7v-51.9l31.2 51.9h23.6v-69h-16.9v48.1l-29.1-48.1h-25.3v65.4l-27.9-65.4h-24.8l-23.5 54.5h-7.4c-13.3 0-16.1-8.1-16.1-19.9 0-23.8 15.7-20 33.1-19.7v-15.2zm42.1 12.1l11.2 27.6h-22.8zm-101.1-12v69.3h16.9v-69.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCcApplePay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3.9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4.7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4.3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5.2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2.4 6.5.5 8.1.5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDinersClub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8.3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcDiscover (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9.1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcJcb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.5 244.3V212c41.2 0 38.5.2 38.5.2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2.4-3.3.3-38.5.3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3.1 42.3-12.9 42.3-33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCcMastercard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8.3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3.3.5.3 1.1 0 .3-.3.5-.3 1.1-.3.3-.3.5-.5.8-.3.3-.5.5-1.1.5-.3.3-.5.3-1.1.3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8.3-1.1 0-.5.3-.8.5-1.1.3-.3.5-.3.8-.5.5-.3.8-.3 1.1-.3.5 0 .8 0 1.1.3.5.3.8.3 1.1.5s.2.6.5 1.1zm-2.2 1.4c.5 0 .5-.3.8-.3.3-.3.3-.5.3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7.8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8.3-1.4.3-.5.3-.8.5-1.1.8-.5.3-.8.8-.8 1.1-.3.5-.3 1.1-.3 1.6 0 .3 0 .8.3 1.4 0 .3.3.8.8 1.1.3.3.5.5 1.1.8.5.3 1.1.3 1.4.3.5 0 1.1 0 1.6-.3.3-.3.8-.5 1.1-.8.3-.3.5-.8.8-1.1.3-.6.3-1.1.3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4.1 138.5-61.9 138.5-138.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCcPaypal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5.5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3.5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5.1-9.8-6.9-15.5-16.2-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCcStripe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCcVisa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2.3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4.2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2.2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2.1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z\"},\"child\":[]}]})(props);\n};\nexport function FaCentercode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCentos (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z\"},\"child\":[]}]})(props);\n};\nexport function FaChrome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M131.5 217.5L55.1 100.1c47.6-59.2 119-91.8 192-92.1 42.3-.3 85.5 10.5 124.8 33.2 43.4 25.2 76.4 61.4 97.4 103L264 133.4c-58.1-3.4-113.4 29.3-132.5 84.1zm32.9 38.5c0 46.2 37.4 83.6 83.6 83.6s83.6-37.4 83.6-83.6-37.4-83.6-83.6-83.6-83.6 37.3-83.6 83.6zm314.9-89.2L339.6 174c37.9 44.3 38.5 108.2 6.6 157.2L234.1 503.6c46.5 2.5 94.4-7.7 137.8-32.9 107.4-62 150.9-192 107.4-303.9zM133.7 303.6L40.4 120.1C14.9 159.1 0 205.9 0 256c0 124 90.8 226.7 209.5 244.9l63.7-124.8c-57.6 10.8-113.2-20.8-139.5-72.5z\"},\"child\":[]}]})(props);\n};\nexport function FaChromecast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8,64H64c-23.6,0-42.7,19.1-42.7,42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6,0,42.7-19.1,42.7-42.7V106.7 C490.7,83.1,471.4,64,447.8,64z M21.3,383.6L21.3,383.6l0,63.9h63.9C85.2,412.2,56.6,383.6,21.3,383.6L21.3,383.6z M21.3,298.6V341 c58.9,0,106.6,48.1,106.6,107h42.7C170.7,365.6,103.7,298.7,21.3,298.6z M213.4,448h42.7c-0.5-129.5-105.3-234.3-234.8-234.6l0,42.4 C127.3,255.6,213.3,342,213.4,448z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudflare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.906,319.913l-230.8-2.928a4.58,4.58,0,0,1-3.632-1.926,4.648,4.648,0,0,1-.494-4.147,6.143,6.143,0,0,1,5.361-4.076L411.281,303.9c27.631-1.26,57.546-23.574,68.022-50.784l13.286-34.542a7.944,7.944,0,0,0,.524-2.936,7.735,7.735,0,0,0-.164-1.631A151.91,151.91,0,0,0,201.257,198.4,68.12,68.12,0,0,0,94.2,269.59C41.924,271.106,0,313.728,0,366.12a96.054,96.054,0,0,0,1.029,13.958,4.508,4.508,0,0,0,4.445,3.871l426.1.051c.043,0,.08-.019.122-.02a5.606,5.606,0,0,0,5.271-4l3.273-11.265c3.9-13.4,2.448-25.8-4.1-34.9C430.124,325.423,420.09,320.487,407.906,319.913ZM513.856,221.1c-2.141,0-4.271.062-6.391.164a3.771,3.771,0,0,0-3.324,2.653l-9.077,31.193c-3.9,13.4-2.449,25.786,4.1,34.89,6.02,8.4,16.054,13.323,28.238,13.9l49.2,2.939a4.491,4.491,0,0,1,3.51,1.894,4.64,4.64,0,0,1,.514,4.169,6.153,6.153,0,0,1-5.351,4.075l-51.125,2.939c-27.754,1.27-57.669,23.574-68.145,50.784l-3.695,9.606a2.716,2.716,0,0,0,2.427,3.68c.046,0,.088.017.136.017h175.91a4.69,4.69,0,0,0,4.539-3.37,124.807,124.807,0,0,0,4.682-34C640,277.3,583.524,221.1,513.856,221.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudscale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6.4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudsmith (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 332 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudversify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCodepen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z\"},\"child\":[]}]})(props);\n};\nexport function FaCodiepie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 472 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z\"},\"child\":[]}]})(props);\n};\nexport function FaConfluence (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1.1-.2.1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8.4 21.7-7.7.1-.1.1-.3.2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2.3-.4.6-.6 1-67.3 112.6-81.1 95.6-280.6.9-8.1-3.9-17.8-.4-21.7 7.7-.1.1-.1.3-.2.4L22.2 141.3c-3.6 8.1.1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"},\"child\":[]}]})(props);\n};\nexport function FaConnectdevelop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M550.5 241l-50.089-86.786c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.733-14.732-15.001l-55.447-95.893c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.268-15.268-15.268-4.821 0-8.839 2.143-11.786 5.625H299.518C296.839 18.143 292.821 16 288 16s-8.839 2.143-11.518 5.625H170.411C167.464 18.143 163.447 16 158.625 16c-8.303 0-15.268 6.696-15.268 15.268 0 1.607.536 3.482 1.072 4.821l-55.983 97.233c-5.356 2.41-9.107 7.5-9.107 13.661 0 .535.268 1.071.268 1.607l-53.304 92.143c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.393 12.054 15l55.179 95.358c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.393 12.054 14.732l51.697 89.732c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.268 15.268 15.268 4.821 0 8.839-2.143 11.518-5.357h106.875C279.161 493.857 283.447 496 288 496s8.839-2.143 11.518-5.357h107.143c2.678 2.946 6.696 4.821 10.982 4.821 8.571 0 15.268-6.964 15.268-15.268 0-1.607-.267-2.946-.803-4.285l51.697-90.268c6.964-1.339 12.054-7.5 12.054-14.732 0-1.607-.268-3.214-.804-4.821l54.911-95.358c6.964-1.339 12.322-7.5 12.322-15-.002-7.232-5.092-13.393-11.788-14.732zM153.535 450.732l-43.66-75.803h43.66v75.803zm0-83.839h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.999-47.41v50.624zm0-62.411l-50.357 53.304c-1.339-.536-2.679-1.34-4.018-1.607L43.447 259.75c.535-1.339.535-2.679.535-4.018s0-2.41-.268-3.482l51.965-90c2.679-.268 5.357-1.072 7.768-2.679l50.089 51.965v92.946zm0-102.322l-45.803-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.928-15.804v72.053zm0-80.625l-43.66 15.804 43.66-75.536v59.732zm326.519 39.108l.804 1.339L445.5 329.125l-63.75-67.232 98.036-101.518.268.268zM291.75 355.107l11.518 11.786H280.5l11.25-11.786zm-.268-11.25l-83.303-85.446 79.553-84.375 83.036 87.589-79.286 82.232zm5.357 5.893l79.286-82.232 67.5 71.25-5.892 28.125H313.714l-16.875-17.143zM410.411 44.393c1.071.536 2.142 1.072 3.482 1.34l57.857 100.714v.536c0 2.946.803 5.624 2.143 7.767L376.393 256l-83.035-87.589L410.411 44.393zm-9.107-2.143L287.732 162.518l-57.054-60.268 166.339-60h4.287zm-123.483 0c2.678 2.678 6.16 4.285 10.179 4.285s7.5-1.607 10.179-4.285h75L224.786 95.821 173.893 42.25h103.928zm-116.249 5.625l1.071-2.142a33.834 33.834 0 0 0 2.679-.804l51.161 53.84-54.911 19.821V47.875zm0 79.286l60.803-21.964 59.732 63.214-79.553 84.107-40.982-42.053v-83.304zm0 92.678L198 257.607l-36.428 38.304v-76.072zm0 87.858l42.053-44.464 82.768 85.982-17.143 17.678H161.572v-59.196zm6.964 162.053c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.732h99.91l-91.607 94.821h-1.339zm129.911 0c-2.679-2.41-6.428-4.285-10.447-4.285s-7.767 1.875-10.447 4.285h-96.429l91.607-94.821h38.304l91.607 94.821H298.447zm120-11.786l-4.286 7.5c-1.339.268-2.41.803-3.482 1.339l-89.196-91.875h114.376l-17.412 83.036zm12.856-22.232l12.858-60.803h21.964l-34.822 60.803zm34.822-68.839h-20.357l4.553-21.16 17.143 18.214c-.535.803-1.071 1.874-1.339 2.946zm66.161-107.411l-55.447 96.697c-1.339.535-2.679 1.071-4.018 1.874l-20.625-21.964 34.554-163.928 45.803 79.286c-.267 1.339-.803 2.678-.803 4.285 0 1.339.268 2.411.536 3.75z\"},\"child\":[]}]})(props);\n};\nexport function FaContao (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z\"},\"child\":[]}]})(props);\n};\nexport function FaCottonBureau (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M474.31 330.41c-23.66 91.85-94.23 144.59-201.9 148.35V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.24 0C110.52 157.72 74 194.63 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.43-5-211.1-85.07-211.1-223 0-141.82 81.35-223.2 223.2-223.2 114.77 0 189.84 53.2 214.69 148.81H500C473.88 71.51 388.22 8 259.82 8 105 8 12 101.19 12 255.82 12 411.14 105.19 504.34 259.82 504c128.27 0 213.87-63.81 239.67-173.59zM357 182.33c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.75zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.41c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.53 71.65 120.75-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.25c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0-33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z\"},\"child\":[]}]})(props);\n};\nexport function FaCpanel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5.2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsBy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcEu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4.9.4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNcJp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsNd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPdAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6.9 41.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsPd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsRemix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4.4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSamplingPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1.4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2.2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1.1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4.3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsSampling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9.6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9.5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6.5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6.6 0 10.6.7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommonsZero (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8.1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4.5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCreativeCommons (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.83 214.87l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.05 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.56 8.05C104.74 8.05 0 123.11 0 256.05c0 138.49 113.6 248 247.56 248 129.93 0 248.44-100.87 248.44-248 0-137.87-106.62-248-248.44-248zm.87 450.81c-112.54 0-203.7-93.04-203.7-202.81 0-105.42 85.43-203.27 203.72-203.27 112.53 0 202.82 89.46 202.82 203.26-.01 121.69-99.68 202.82-202.84 202.82z\"},\"child\":[]}]})(props);\n};\nexport function FaCriticalRole (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.82 0c.26.15 216.57 124.51 217.12 124.72 3 1.18 3.7 3.46 3.7 6.56q-.11 125.17 0 250.36a5.88 5.88 0 0 1-3.38 5.78c-21.37 12-207.86 118.29-218.93 124.58h-3C142 466.34 3.08 386.56 2.93 386.48a3.29 3.29 0 0 1-1.88-3.24c0-.87 0-225.94-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.11 213.2 6 224.07 0zM215.4 20.42l-.22-.16Q118.06 75.55 21 130.87c0 .12.08.23.13.35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.43c.88-1.41 64.07-110.91 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4.09 1.48.22.78 1.42-41.19 71.33-36.4 63-67.48 116.94-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82.29 26.21.15 25.27 1 32.66.52 4.37 2.16 4.2 9.69 4.81 3.14.26 3.88 4.08.52 4.92-1.57.39-31.6.51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16.81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4.88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06.89.13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5.2 1.48 1.33 0 .11.88 26.69.87 26.8-.05 1.52.67 1.62 1.89 1.62h186.71Q386.51 304.6 346 234.33c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.06V138c-1.72.5-103.3 38.72-105.76 39.68-1.08.42-1.55.2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13.65-1.39.1 0 95.53-35.85 103-38.77-65.42-37.57-130.56-75-196-112.6l86.82 150.39-.28.33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.71-82-142.16-9.1 14.67-83.56 146.21-85.37 146.32-2.93.17-5.88.08-9.25.08q43.25-74.74 86.18-149zm51.93 129.92a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53.2 2.6 1.92 0 .11.07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.11 0 .89.52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75.13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.35.05-1.08-.62-1.16-1.35-1.15-32.35.52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95.23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85.68-27.49.58-22.59 1-29.55a2.69 2.69 0 0 0-1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0-2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9.43 1.12 1.24 1.11.1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76.31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1-1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1-2.66-1.79c2.38-3.75 5.89.92 5.86-6.14-.08-25.75.21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05.72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73.95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42.26 4.73.45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49.53 1 3.38 0 .05-.16 0-.24 0-3.61.26-3.94 1-4 4.62-.27 43.93.07 40.23.41 42.82.11.84.27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37.08-20.74 0-31.11.07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37.88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57.83 3.55zm275-10.15c-1.21 7.13.17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1-3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0-2-1.44 138 138 0 0 0-14.58.07 2.23 2.23 0 0 0-1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72.66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61.13 4-1.11 4.13-4.29.09-1.87.08 1.17.07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06.21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0-2.66 2.83c-.07 1.63-.19 38.89.29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25.43 14.92.44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.72 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11.38 37.19-.65 1.68-.19 2.38.24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31.34 15.69-1.52.47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58.32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64.48 14.4 0 16.43-5.71.84-2.37 3.5-1.77 3.18.58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.52c2.46.61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1.57 11.89-6 12.75-1.6.21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.14c3.28 0 3.66 3 .16 3.43-2.61.32-5-.42-5 5.46 0 2-.19 29.05.4 41.45.11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76.84 2.76 1.08.35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94.4 5.13-2.8 1-15.87.57-44.65.34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22.34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61.1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09.41-3.15 1.29 0 20.19-.41 21.17.21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.27a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.57 197.42-112.51-.14-.43 11.26-.18-181.52-.27-1.22 0-1.57.37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1-1.36 7.71c-.55 1.83.38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1-2-10.79c.16-2.46.8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.32 102.57 196 112.76zm-90.9-188.75c0 2.4.36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51.05 8.04.01 11.61.02 41.65zm105.75-15.05c0 2.13 1.07 38.68 1.09 39.13.34 9.94-25.58 5.77-25.23-2.59.08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1-.36.12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88.07-14.91zm-80.15 103.83c0 1.8.41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81.05 4.5-.03 13.68.02 18.59zm212.32 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3Alt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3.1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2.1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCss3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z\"},\"child\":[]}]})(props);\n};\nexport function FaCuttlefish (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndDBeyond (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9.2-5.8 1.6-7.5.6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9.6-.3 1.3 0 .6 1.9-.2.6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3.1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9.9 7.5.2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1.6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6.7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4.2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5.5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4.8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6.5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9.5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8.5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6.3 3 .6 4.3 1.1-2.1.8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2.8.2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8.6-2.6-.2s.3-4.3.3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3.6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7.2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7.6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8.8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5.3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9.3 5.6 1.1V196c-1.1.5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1.2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5.2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1.2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3.3-99.3zm-.3 77.5c-37.4 0-36.9-55.3.2-55.3 36.8.1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8.2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1.1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5.8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6.3-39.9-4 .1.8.5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8.2-39.9-4 .1.7.5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6.3-4 1.1-6.1 2.9.1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"},\"child\":[]}]})(props);\n};\nexport function FaDAndD (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2.3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1.7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5.6-11.4 12.5-14.1 27.4-10.9 43.6.2 1.3.4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6.1.5.1 1.1.1 1.6 0 .3-.1.5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5.9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2.2-1.9.3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3.3.3.7.6 1 .9.3-.6.5-1.2.9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8.7-3.5.9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3.4-.4.9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6.2-.1.3-.2.4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8.9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9.8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7.3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3.2-.2.4-.3.6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8.6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1.1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8.4 4.7.8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1.7-52.3.3 2.2.4 4.3.9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8.1-50.9-10.6.7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6.2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3.8-2.4 2.3-4.6 4-6.6.6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2.5-1 1.1-2 1.9-3.3.5 4.2.6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1.6.5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7.4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6.5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2.4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3.3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5.8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8.8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3.6-4.5.8-9.2.1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6.1-23.3 1.3-.9.1-1.7.3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDailymotion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.93,267a48.4,48.4,0,0,0-24.36-6.21q-19.83,0-33.44,13.27t-13.61,33.42q0,21.16,13.28,34.6t33.43,13.44q20.5,0,34.11-13.78T322,307.47A47.13,47.13,0,0,0,315.9,284,44.13,44.13,0,0,0,298.93,267ZM0,32V480H448V32ZM374.71,405.26h-53.1V381.37h-.67q-15.79,26.2-55.78,26.2-27.56,0-48.89-13.1a88.29,88.29,0,0,1-32.94-35.77q-11.6-22.68-11.59-50.89,0-27.56,11.76-50.22a89.9,89.9,0,0,1,32.93-35.78q21.18-13.09,47.72-13.1a80.87,80.87,0,0,1,29.74,5.21q13.28,5.21,25,17V153l55.79-12.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaDashcube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDeezer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.46,244.71H576V172H451.46Zm0-173.89v72.67H576V70.82Zm0,275.06H576V273.2H451.46ZM0,447.09H124.54V374.42H0Zm150.47,0H275V374.42H150.47Zm150.52,0H425.53V374.42H301Zm150.47,0H576V374.42H451.46ZM301,345.88H425.53V273.2H301Zm-150.52,0H275V273.2H150.47Zm0-101.17H275V172H150.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaDelicious (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1.5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z\"},\"child\":[]}]})(props);\n};\nexport function FaDeploydog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaDeskpro (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7.3 15 .1h82c.2 0 .3.1.5.1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDev (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.12 208.29c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.47h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.41 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.19c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.98h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.68-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16.29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.64 115.29c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.72 29.57-113.72h32.58l-38.46 144.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDeviantart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDhl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4.7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDiaspora (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.64 354.55c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.25s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1.6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3.4-2 1-148.6 1.7-149.6.8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3.8.9 31.9 102.2 31.5 102.6-.9.9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z\"},\"child\":[]}]})(props);\n};\nexport function FaDigg (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalOcean (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscord (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaDiscourse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaDochub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1.8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z\"},\"child\":[]}]})(props);\n};\nexport function FaDocker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4.4 67.6.1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z\"},\"child\":[]}]})(props);\n};\nexport function FaDraft2Digital (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbbleSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z\"},\"child\":[]}]})(props);\n};\nexport function FaDribbble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.252 8 8 119.252 8 256s111.252 248 248 248 248-111.252 248-248S392.748 8 256 8zm163.97 114.366c29.503 36.046 47.369 81.957 47.835 131.955-6.984-1.477-77.018-15.682-147.502-6.818-5.752-14.041-11.181-26.393-18.617-41.614 78.321-31.977 113.818-77.482 118.284-83.523zM396.421 97.87c-3.81 5.427-35.697 48.286-111.021 76.519-34.712-63.776-73.185-116.168-79.04-124.008 67.176-16.193 137.966 1.27 190.061 47.489zm-230.48-33.25c5.585 7.659 43.438 60.116 78.537 122.509-99.087 26.313-186.36 25.934-195.834 25.809C62.38 147.205 106.678 92.573 165.941 64.62zM44.17 256.323c0-2.166.043-4.322.108-6.473 9.268.19 111.92 1.513 217.706-30.146 6.064 11.868 11.857 23.915 17.174 35.949-76.599 21.575-146.194 83.527-180.531 142.306C64.794 360.405 44.17 310.73 44.17 256.323zm81.807 167.113c22.127-45.233 82.178-103.622 167.579-132.756 29.74 77.283 42.039 142.053 45.189 160.638-68.112 29.013-150.015 21.053-212.768-27.882zm248.38 8.489c-2.171-12.886-13.446-74.897-41.152-151.033 66.38-10.626 124.7 6.768 131.947 9.055-9.442 58.941-43.273 109.844-90.795 141.978z\"},\"child\":[]}]})(props);\n};\nexport function FaDropbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 528 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z\"},\"child\":[]}]})(props);\n};\nexport function FaDrupal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.5 114.7c-22.2-14-43.5-19.5-64.7-33.5-13-8.8-31.3-30-46.5-48.3-2.7 29.3-11.5 41.2-22 49.5-21.3 17-34.8 22.2-53.5 32.3C117 123 32 181.5 32 290.5 32 399.7 123.8 480 225.8 480 327.5 480 416 406 416 294c0-112.3-83-171-96.5-179.3zm2.5 325.6c-20.1 20.1-90.1 28.7-116.7 4.2-4.8-4.8.3-12 6.5-12 0 0 17 13.3 51.5 13.3 27 0 46-7.7 54.5-14 6.1-4.6 8.4 4.3 4.2 8.5zm-54.5-52.6c8.7-3.6 29-3.8 36.8 1.3 4.1 2.8 16.1 18.8 6.2 23.7-8.4 4.2-1.2-15.7-26.5-15.7-14.7 0-19.5 5.2-26.7 11-7 6-9.8 8-12.2 4.7-6-8.2 15.9-22.3 22.4-25zM360 405c-15.2-1-45.5-48.8-65-49.5-30.9-.9-104.1 80.7-161.3 42-38.8-26.6-14.6-104.8 51.8-105.2 49.5-.5 83.8 49 108.5 48.5 21.3-.3 61.8-41.8 81.8-41.8 48.7 0 23.3 109.3-15.8 106z\"},\"child\":[]}]})(props);\n};\nexport function FaDyalog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z\"},\"child\":[]}]})(props);\n};\nexport function FaEarlybirds (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.2 47.5c1.2-13 21.3-14 36.6-8.7.9.3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2.3.9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2.8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7.9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2.8-10.5-25.4 21.5-42.6 66.8-73.4.7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1.3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1.6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7.6 11.6.8 12.7 2.6.3.5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"},\"child\":[]}]})(props);\n};\nexport function FaEbay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7.4-42.4.9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6.3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEdgeLegacy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M25.71,228.16l.35-.48c0,.16,0,.32-.07.48Zm460.58,15.51c0-44-7.76-84.46-28.81-122.4C416.5,47.88,343.91,8,258.89,8,119,7.72,40.62,113.21,26.06,227.68c42.42-61.31,117.07-121.38,220.37-125,0,0,109.67,0,99.42,105H170c6.37-37.39,18.55-59,34.34-78.93-75.05,34.9-121.85,96.1-120.75,188.32.83,71.45,50.13,144.84,120.75,172,83.35,31.84,192.77,7.2,240.13-21.33V363.31C363.6,419.8,173.6,424.23,172.21,295.74H486.29V243.67Z\"},\"child\":[]}]})(props);\n};\nexport function FaEdge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.92,134.48C440.87,54.18,352.26,8,255.91,8,137.05,8,37.51,91.68,13.47,203.66c26-46.49,86.22-79.14,149.46-79.14,79.27,0,121.09,48.93,122.25,50.18,22,23.8,33,50.39,33,83.1,0,10.4-5.31,25.82-15.11,38.57-1.57,2-6.39,4.84-6.39,11,0,5.06,3.29,9.92,9.14,14,27.86,19.37,80.37,16.81,80.51,16.81A115.39,115.39,0,0,0,444.94,322a118.92,118.92,0,0,0,58.95-102.44C504.39,176.13,488.39,147.26,481.92,134.48ZM212.77,475.67a154.88,154.88,0,0,1-46.64-45c-32.94-47.42-34.24-95.6-20.1-136A155.5,155.5,0,0,1,203,215.75c59-45.2,94.84-5.65,99.06-1a80,80,0,0,0-4.89-10.14c-9.24-15.93-24-36.41-56.56-53.51-33.72-17.69-70.59-18.59-77.64-18.59-38.71,0-77.9,13-107.53,35.69C35.68,183.3,12.77,208.72,8.6,243c-1.08,12.31-2.75,62.8,23,118.27a248,248,0,0,0,248.3,141.61C241.78,496.26,214.05,476.24,212.77,475.67Zm250.72-98.33a7.76,7.76,0,0,0-7.92-.23,181.66,181.66,0,0,1-20.41,9.12,197.54,197.54,0,0,1-69.55,12.52c-91.67,0-171.52-63.06-171.52-144A61.12,61.12,0,0,1,200.61,228,168.72,168.72,0,0,0,161.85,278c-14.92,29.37-33,88.13,13.33,151.66,6.51,8.91,23,30,56,47.67,23.57,12.65,49,19.61,71.7,19.61,35.14,0,115.43-33.44,163-108.87A7.75,7.75,0,0,0,463.49,377.34Z\"},\"child\":[]}]})(props);\n};\nexport function FaElementor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.6 32H22.4C10 32 0 42 0 54.4v403.2C0 470 10 480 22.4 480h403.2c12.4 0 22.4-10 22.4-22.4V54.4C448 42 438 32 425.6 32M164.3 355.5h-39.8v-199h39.8v199zm159.3 0H204.1v-39.8h119.5v39.8zm0-79.6H204.1v-39.8h119.5v39.8zm0-79.7H204.1v-39.8h119.5v39.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEllo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm143.84 285.2C375.31 358.51 315.79 404.8 248 404.8s-127.31-46.29-143.84-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.56 90.11s102.51-37.2 116.56-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z\"},\"child\":[]}]})(props);\n};\nexport function FaEmber (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6.5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7.8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5.3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7.3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"},\"child\":[]}]})(props);\n};\nexport function FaEmpire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5.8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvira (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"},\"child\":[]}]})(props);\n};\nexport function FaErlang (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9.1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7.5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z\"},\"child\":[]}]})(props);\n};\nexport function FaEthereum (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaEtsy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 348c-1.75 10.75-13.75 110-15.5 132-117.879-4.299-219.895-4.743-368.5 0v-25.5c45.457-8.948 60.627-8.019 61-35.25 1.793-72.322 3.524-244.143 0-322-1.029-28.46-12.13-26.765-61-36v-25.5c73.886 2.358 255.933 8.551 362.999-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.947 115.665 313.241 68 277.25 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.251h25.75c-4.407 101.351-3.91 61.829-1.75 160.25H257c-9.155-40.086-9.065-61.045-39.501-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.636 0 66.564-24.996 98.751-99.75H384z\"},\"child\":[]}]})(props);\n};\nexport function FaEvernote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120.82 132.21c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56.22-.74 0-.37-.37L123.79 46.45c.38-.37.6-.22.38.37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.45v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.92-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.78 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.09 8.91 238.46 7.8 238.46C362.15 485.53 267.06 480 267.06 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.84c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z\"},\"child\":[]}]})(props);\n};\nexport function FaExpeditedssl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookF (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.14 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.43 0 225.36 0c-73.22 0-121.08 44.38-121.08 124.72v70.62H22.89V288h81.39v224h100.17V288z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookMessenger (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.55 8C116.52 8 8 110.34 8 248.57c0 72.3 29.71 134.78 78.07 177.94 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.31c52.91-23.3 53.59-25.14 62.56-22.7C337.85 521.8 504 423.7 504 248.57 504 110.34 396.59 8 256.55 8zm149.24 185.13l-73 115.57a37.37 37.37 0 0 1-53.91 9.93l-58.08-43.47a15 15 0 0 0-18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.57a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebookSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.25V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFacebook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFantasyFlightGames (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32.86L32.86 256 256 479.14 479.14 256 256 32.86zM88.34 255.83c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.77-18.69 24.63 18.4 62.06 58.9 62.15 59 .68.74 1.07 2.86.58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43.12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99a42569.01 42569.01 0 0 1-41.13-40.72zm234.82 101.6c-35.49 35.43-78.09 38.14-106.99 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64.14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29.26-.26.65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z\"},\"child\":[]}]})(props);\n};\nexport function FaFedex (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFedora (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225 32C101.3 31.7.8 131.7.4 255.4L0 425.7a53.6 53.6 0 0 0 53.6 53.9l170.2.4c123.7.3 224.3-99.7 224.6-223.4S348.7 32.3 225 32zm169.8 157.2L333 126.6c2.3-4.7 3.8-9.2 3.8-14.3v-1.6l55.2 56.1a101 101 0 0 1 2.8 22.4zM331 94.3a106.06 106.06 0 0 1 58.5 63.8l-54.3-54.6a26.48 26.48 0 0 0-4.2-9.2zM118.1 247.2a49.66 49.66 0 0 0-7.7 11.4l-8.5-8.5a85.78 85.78 0 0 1 16.2-2.9zM97 251.4l11.8 11.9-.9 8a34.74 34.74 0 0 0 2.4 12.5l-27-27.2a80.6 80.6 0 0 1 13.7-5.2zm-18.2 7.4l38.2 38.4a53.17 53.17 0 0 0-14.1 4.7L67.6 266a107 107 0 0 1 11.2-7.2zm-15.2 9.8l35.3 35.5a67.25 67.25 0 0 0-10.5 8.5L53.5 278a64.33 64.33 0 0 1 10.1-9.4zm-13.3 12.3l34.9 35a56.84 56.84 0 0 0-7.7 11.4l-35.8-35.9c2.8-3.8 5.7-7.2 8.6-10.5zm-11 14.3l36.4 36.6a48.29 48.29 0 0 0-3.6 15.2l-39.5-39.8a99.81 99.81 0 0 1 6.7-12zm-8.8 16.3l41.3 41.8a63.47 63.47 0 0 0 6.7 26.2L25.8 326c1.4-4.9 2.9-9.6 4.7-14.5zm-7.9 43l61.9 62.2a31.24 31.24 0 0 0-3.6 14.3v1.1l-55.4-55.7a88.27 88.27 0 0 1-2.9-21.9zm5.3 30.7l54.3 54.6a28.44 28.44 0 0 0 4.2 9.2 106.32 106.32 0 0 1-58.5-63.8zm-5.3-37a80.69 80.69 0 0 1 2.1-17l72.2 72.5a37.59 37.59 0 0 0-9.9 8.7zm253.3-51.8l-42.6-.1-.1 56c-.2 69.3-64.4 115.8-125.7 102.9-5.7 0-19.9-8.7-19.9-24.2a24.89 24.89 0 0 1 24.5-24.6c6.3 0 6.3 1.6 15.7 1.6a55.91 55.91 0 0 0 56.1-55.9l.1-47c0-4.5-4.5-9-8.9-9l-33.6-.1c-32.6-.1-32.5-49.4.1-49.3l42.6.1.1-56a105.18 105.18 0 0 1 105.6-105 86.35 86.35 0 0 1 20.2 2.3c11.2 1.8 19.9 11.9 19.9 24 0 15.5-14.9 27.8-30.3 23.9-27.4-5.9-65.9 14.4-66 54.9l-.1 47a8.94 8.94 0 0 0 8.9 9l33.6.1c32.5.2 32.4 49.5-.2 49.4zm23.5-.3a35.58 35.58 0 0 0 7.6-11.4l8.5 8.5a102 102 0 0 1-16.1 2.9zm21-4.2L308.6 280l.9-8.1a34.74 34.74 0 0 0-2.4-12.5l27 27.2a74.89 74.89 0 0 1-13.7 5.3zm18-7.4l-38-38.4c4.9-1.1 9.6-2.4 13.7-4.7l36.2 35.9c-3.8 2.5-7.9 5-11.9 7.2zm15.5-9.8l-35.3-35.5a61.06 61.06 0 0 0 10.5-8.5l34.9 35a124.56 124.56 0 0 1-10.1 9zm13.2-12.3l-34.9-35a63.18 63.18 0 0 0 7.7-11.4l35.8 35.9a130.28 130.28 0 0 1-8.6 10.5zm11-14.3l-36.4-36.6a48.29 48.29 0 0 0 3.6-15.2l39.5 39.8a87.72 87.72 0 0 1-6.7 12zm13.5-30.9a140.63 140.63 0 0 1-4.7 14.3L345.6 190a58.19 58.19 0 0 0-7.1-26.2zm1-5.6l-71.9-72.1a32 32 0 0 0 9.9-9.2l64.3 64.7a90.93 90.93 0 0 1-2.3 16.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFigma (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 95.7924C14 42.8877 56.8878 0 109.793 0H274.161C327.066 0 369.954 42.8877 369.954 95.7924C369.954 129.292 352.758 158.776 326.711 175.897C352.758 193.019 369.954 222.502 369.954 256.002C369.954 308.907 327.066 351.795 274.161 351.795H272.081C247.279 351.795 224.678 342.369 207.666 326.904V415.167C207.666 468.777 163.657 512 110.309 512C57.5361 512 14 469.243 14 416.207C14 382.709 31.1945 353.227 57.2392 336.105C31.1945 318.983 14 289.5 14 256.002C14 222.502 31.196 193.019 57.2425 175.897C31.196 158.776 14 129.292 14 95.7924ZM176.288 191.587H109.793C74.2172 191.587 45.3778 220.427 45.3778 256.002C45.3778 291.44 73.9948 320.194 109.381 320.416C109.518 320.415 109.655 320.415 109.793 320.415H176.288V191.587ZM207.666 256.002C207.666 291.577 236.505 320.417 272.081 320.417H274.161C309.737 320.417 338.576 291.577 338.576 256.002C338.576 220.427 309.737 191.587 274.161 191.587H272.081C236.505 191.587 207.666 220.427 207.666 256.002ZM109.793 351.795C109.655 351.795 109.518 351.794 109.381 351.794C73.9948 352.015 45.3778 380.769 45.3778 416.207C45.3778 451.652 74.6025 480.622 110.309 480.622C146.591 480.622 176.288 451.186 176.288 415.167V351.795H109.793ZM109.793 31.3778C74.2172 31.3778 45.3778 60.2173 45.3778 95.7924C45.3778 131.368 74.2172 160.207 109.793 160.207H176.288V31.3778H109.793ZM207.666 160.207H274.161C309.737 160.207 338.576 131.368 338.576 95.7924C338.576 60.2173 309.737 31.3778 274.161 31.3778H207.666V160.207Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefoxBrowser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189.37,152.86Zm-58.74-29.37C130.79,123.5,130.71,123.5,130.63,123.49Zm351.42,45.35c-10.61-25.5-32.08-53-48.94-61.73,13.72,26.89,21.67,53.88,24.7,74,0,0,0,.14.05.41-27.58-68.75-74.35-96.47-112.55-156.83-1.93-3.05-3.86-6.11-5.74-9.33-1-1.65-1.86-3.34-2.69-5.05A44.88,44.88,0,0,1,333.24.69a.63.63,0,0,0-.55-.66.9.9,0,0,0-.46,0l-.12.07-.18.1.1-.14c-54.23,31.77-76.72,87.38-82.5,122.78a130,130,0,0,0-48.33,12.33,6.25,6.25,0,0,0-3.09,7.75,6.13,6.13,0,0,0,7.79,3.79l.52-.21a117.84,117.84,0,0,1,42.11-11l1.42-.1c2-.12,4-.2,6-.22A122.61,122.61,0,0,1,291,140c.67.2,1.32.42,2,.63,1.89.57,3.76,1.2,5.62,1.87,1.36.5,2.71,1,4.05,1.58,1.09.44,2.18.88,3.25,1.35q2.52,1.13,5,2.35c.75.37,1.5.74,2.25,1.13q2.4,1.26,4.74,2.63,1.51.87,3,1.8a124.89,124.89,0,0,1,42.66,44.13c-13-9.15-36.35-18.19-58.82-14.28,87.74,43.86,64.18,194.9-57.39,189.2a108.43,108.43,0,0,1-31.74-6.12c-2.42-.91-4.8-1.89-7.16-2.93-1.38-.63-2.76-1.27-4.12-2C174.5,346,149.9,316.92,146.83,281.59c0,0,11.25-41.95,80.62-41.95,7.5,0,28.93-20.92,29.33-27-.09-2-42.54-18.87-59.09-35.18-8.85-8.71-13.05-12.91-16.77-16.06a69.58,69.58,0,0,0-6.31-4.77A113.05,113.05,0,0,1,173.92,97c-25.06,11.41-44.55,29.45-58.71,45.37h-.12c-9.67-12.25-9-52.65-8.43-61.08-.12-.53-7.22,3.68-8.15,4.31a178.54,178.54,0,0,0-23.84,20.43A214,214,0,0,0,51.9,133.36l0,0a.08.08,0,0,1,0,0,205.84,205.84,0,0,0-32.73,73.9c-.06.27-2.33,10.21-4,22.48q-.42,2.87-.78,5.74c-.57,3.69-1,7.71-1.44,14,0,.24,0,.48-.05.72-.18,2.71-.34,5.41-.49,8.12,0,.41,0,.82,0,1.24,0,134.7,109.21,243.89,243.92,243.89,120.64,0,220.82-87.58,240.43-202.62.41-3.12.74-6.26,1.11-9.41,4.85-41.83-.54-85.79-15.82-122.55Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirefox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.52,241.48c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.86,245.86,0,0,0-7.32-41.15c0-.12,0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27,8.27,0,0,0-.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48,0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07,18.07,0,0,0-1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63,15.63,0,0,0-1.2-1.8L463.2,119a15.63,15.63,0,0,0-1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.76,248.76,0,0,0-23.51-26.64A186.82,186.82,0,0,0,412,62.46c-4-3.48-8.16-6.72-12.48-9.84a162.49,162.49,0,0,0-24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254,254,0,0,0-55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.35,236.35,0,0,0-38-4H255.14a234.62,234.62,0,0,0-45.48,5c-33.59,7.08-63.23,21.24-82.91,39-1.08,1-1.92,1.68-2.4,2.16l-.48.48H124l-.12.12.12-.12a.12.12,0,0,0,.12-.12l-.12.12a.42.42,0,0,1,.24-.12c14.64-8.76,34.92-16,49.44-19.56l5.88-1.44c.36-.12.84-.12,1.2-.24,1.68-.36,3.36-.72,5.16-1.08.24,0,.6-.12.84-.12C250.94,20.94,319.34,40.14,367,85.61a171.49,171.49,0,0,1,26.88,32.76c30.36,49.2,27.48,111.11,3.84,147.59-34.44,53-111.35,71.27-159,24.84a84.19,84.19,0,0,1-25.56-59,74.05,74.05,0,0,1,6.24-31c1.68-3.84,13.08-25.67,18.24-24.59-13.08-2.76-37.55,2.64-54.71,28.19-15.36,22.92-14.52,58.2-5,83.28a132.85,132.85,0,0,1-12.12-39.24c-12.24-82.55,43.31-153,94.31-170.51-27.48-24-96.47-22.31-147.71,15.36-29.88,22-51.23,53.16-62.51,90.36,1.68-20.88,9.6-52.08,25.8-83.88-17.16,8.88-39,37-49.8,62.88-15.6,37.43-21,82.19-16.08,124.79.36,3.24.72,6.36,1.08,9.6,19.92,117.11,122,206.38,244.78,206.38C392.77,503.42,504,392.19,504,255,503.88,250.48,503.76,245.92,503.52,241.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrderAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 488.21C115.34 496.21 7.79 388.66 7.79 256S115.34 15.79 248 15.79 488.21 123.34 488.21 256 380.66 496.21 248 496.21zm0-459.92C126.66 36.29 28.29 134.66 28.29 256S126.66 475.71 248 475.71 467.71 377.34 467.71 256 369.34 36.29 248 36.29zm0 431.22c-116.81 0-211.51-94.69-211.51-211.51S131.19 44.49 248 44.49 459.51 139.19 459.51 256 364.81 467.51 248 467.51zm186.23-162.98a191.613 191.613 0 0 1-20.13 48.69l-74.13-35.88 61.48 54.82a193.515 193.515 0 0 1-37.2 37.29l-54.8-61.57 35.88 74.27a190.944 190.944 0 0 1-48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.365 191.365 0 0 1-48.65-20.2l35.93-74.34-54.87 61.64a193.85 193.85 0 0 1-37.22-37.28l61.59-54.9-74.26 35.93a191.638 191.638 0 0 1-20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.726 191.726 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.85 193.85 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.49 191.49 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71.62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.13 193.13 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.515 191.515 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstOrder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.9 229.2c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4h-.2zM224 96.6c-7.1 0-14.6.6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstdraft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z\"},\"child\":[]}]})(props);\n};\nexport function FaFlickr (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFly (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9.3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3.1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32Zm16 400a16 16 0 0 1-16 16H48a16 16 0 0 1-16-16V80A16 16 0 0 1 48 64H400a16 16 0 0 1 16 16ZM201.6 152c-25.4 0-37.4 10.4-57.6 14.4V160a16 16 0 0 0-32 0V352a16 16 0 0 0 32 0V198.4c20.2-4 32.2-14.4 57.6-14.4 31.4 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.4-16-74.6-16a85.9 85.9 0 0 0-25.6 4v32a80 80 0 0 1 25.6-4c31.4 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16V152c-31.6 11.2-41.2 16-59.8 16C244.8 168 232.8 152 201.6 152Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48V384c-63 23-82 32-119 32-63 0-87-32-150-32-20 0-36 4-51 8V328c15-4 31-8 51-8 63 0 87 32 150 32 20 0 35-3 55-9V135c-20 6-35 9-55 9-63 0-87-32-150-32-51 0-75 21-115 29V448a31.6 31.6 0 0 1-32 32A31.6 31.6 0 0 1 0 448V64A31.6 31.6 0 0 1 32 32 31.6 31.6 0 0 1 64 64V77c40-8 64-29 115-29 63 0 87 32 150 32C366 80 385 71 448 48Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesomeLogoFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 3992 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1209.7 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C1311.7 200.4 1267.5 156.5 1209.7 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C1261.1 281.8 1244.8 309.2 1209.7 309.2Zm962.1-136.1c-4.4-10.9-12.3-16.5-23.5-16.5s-19.1 5.6-23.5 16.5l-59.4 145.8c-7.2 17.7 2.8 27.4 4.4 29a24.6 24.6 0 0 0 17.5 6.8c10.8 0 18.7-6 23.1-18.1l4-10.1h67.7l4 10.1c4.8 12.1 12.3 18.1 23.1 18.1a24.6 24.6 0 0 0 17.5-6.8c10-10.1 6.8-22.6 4.4-29Zm-43 113.6 19.1-56 19.1 56Zm-574.5-130.1c-14.3 0-24.7 10.9-24.7 25.4v76.5l-68.5-85.8c-4.4-5.6-11.6-16.1-25.5-16.1-19.1 0-24.3 17.7-24.3 25.4V329.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V252.8l68.9 86.2c4.8 5.6 11.6 16.1 25.5 16.1 19.1 0 23.9-17.3 23.9-25.4V181.9C1579 167.4 1568.6 156.5 1554.3 156.5Zm-554.1 1.6H916.5c-19.9 0-25.1 17.3-25.1 25.4V328.1c0 19.7 16.7 25.4 24.7 25.4 8 0 24.7-5.2 24.7-25.4V285h44.6c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.1-22.7-22.1H940.8V203.6h59.4c12.8 0 22.7-9.3 22.7-22.6C1022.9 163 1007.3 158.1 1000.2 158.1Zm815.1 0H1691.7c-7.2 0-22.7 4.4-22.7 22.2 0 13.3 10 22.6 22.7 22.6h37V327.7c0 14.1 10.4 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V202.8h37c12.7 0 22.7-9.3 22.7-22.6C1837.9 163 1822.4 158.1 1815.2 158.1Zm1789.5-1.6c-9.6 0-17.5 6-25.1 18.1l-46.6 76.1L3486.4 174.6q-10.8-18.1-25.1-18.1c-19.5 0-24.7 18.1-24.7 25.8V329.7c0 14.1 10.4 25.4 24.7 25.4s24.7-10.9 24.7-25.4V262.8L3510.7 302.7c6.4 10.1 13.9 15.3 22.3 15.3 8.8 0 15.9-5.2 22.3-15.3l24.7-39.9v66.9c0 14.1 10.3 25.4 24.7 25.4 14.3 0 24.7-10.9 24.7-25.4V182.3C3629.4 174.2 3624.6 156.5 3604.7 156.5Zm248.6 149.8h-65.7V272.9h39.4c11.9 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.6-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.8 0 22.7-9.3 22.7-22.6C3876 311.2 3860.5 306.3 3853.3 306.3ZM3235 156.5c-57.8 0-102 43.9-102 99.1 0 56 44.6 99.1 102 99.1 57.4 0 102-43.1 102-99.1C3337 200.4 3292.8 156.5 3235 156.5Zm0 152.7c-35.1 0-51.8-27.4-51.8-53.2 0-25.8 16.7-53.2 51.8-53.2 35.1 0 51.8 27.8 51.8 53.2C3286.8 281.8 3270.1 309.2 3235 309.2ZM2550.2 156.5c-11.2 0-19.1 5.6-23.1 16.5l-34.3 94.7-31.5-92.2c-4.4-12.5-12.3-18.9-24.3-18.9-11.9 0-19.9 6.4-24.3 18.9l-31.5 92.2-34.3-95.5q-5.4-15.7-22.7-15.7c-6.8 0-12.3 2.4-17.5 7.3-5.2 5.2-10.8 14.5-4.8 28.6l55.8 145.8c4 11.3 11.6 16.9 23.1 16.9q16.7 0 22.7-16.9l33.5-91.8 33.5 91.8q6 16.9 22.7 16.9c11.2 0 19.1-5.6 23.1-16.9l55.8-145.8c3.6-9.3 4.4-19.3-4.8-28.6A23 23 0 0 0 2550.2 156.5Zm444.2 81-21.9-9.3c-11.9-4.8-16.3-8.5-16.3-15.7q0-12.1 16.7-12.1c12.7 0 19.5 7.7 24.3 10.9 7.2 5.2 18.3 6.8 27.9-2 10.8-10.5 6.8-23.8 1.2-30.6-12.3-14.9-30.3-22.2-53.8-22.2-19.1 0-35.1 5.2-47.4 15.7-12.3 10.5-18.7 24.2-18.7 41.1 0 24.2 15.9 43.5 47.8 57.6l19.5 8.9c15.9 6.8 19.1 9.7 19.1 17.7 0 9.3-6.4 14.1-19.5 14.1-19.1 0-34.7-14.9-36.3-16.1-10.8-7.3-21.5-2-26.3 2.8-6.8 6.4-12.7 20.9 3.2 36.2 6.8 6.4 15.5 11.7 26.7 15.3a94.6 94.6 0 0 0 32.7 5.6c19.9 0 36.7-5.2 49.8-16.1 13.1-10.9 19.5-25.4 19.5-43.5q0-20.5-12-33.8C3022.7 253.2 3010.7 244.3 2994.4 237.5Zm-206.4 68.9h-65.7V272.9h39.4c12 0 21.1-8.9 21.1-20.9 0-12.1-9.2-20.9-21.1-20.9h-39.4V204.8h62.1c12.8 0 22.7-9.3 22.7-22.6 0-17.7-15.5-22.2-22.7-22.2h-86.4c-19.9 0-25.1 17.3-25.1 25.4V326.5c0 8.1 5.2 25.4 25.1 25.4h90c12.7 0 22.7-9.3 22.7-22.6C2810.8 311.2 2795.2 306.3 2788 306.3ZM178.3 49.1c-50.5 0-74.4 20.7-114.6 28.7V65A31.8 31.8 0 1 0 0 65V447a31.8 31.8 0 0 0 63.7 0V141.4c40.2-8 64.1-28.7 114.6-28.7 62.5 0 86 31.8 148.4 31.8 20.3 0 35.4-2.8 55.3-9.2v191c-19.9 6.4-35 9.2-55.3 9.2-62.5 0-86.4-31.8-148.4-31.8-20.3 0-36.2 3.6-50.9 8V375.4a159.1 159.1 0 0 1 50.9-8c62.5 0 86 31.8 148.4 31.8 37 0 56.1-9.6 119-31.8V49.1C382.8 71.4 363.7 80.9 326.7 80.9 264.2 80.9 240.4 49.1 178.3 49.1Z\"},\"child\":[]}]})(props);\n};\nexport function FaFontAwesome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32ZM336 312c-31.6 11.2-41.2 16-59.8 16-31.4 0-43.2-16-74.6-16a80 80 0 0 0-25.6 4V284a85.9 85.9 0 0 1 25.6-4c31.2 0 43.2 16 74.6 16 10.2 0 17.8-1.4 27.8-4.6v-96c-10 3.2-17.6 4.6-27.8 4.6-31.4 0-43.2-16-74.6-16-25.4 0-37.4 10.4-57.6 14.4V352a16 16 0 0 1-32 0V160a16 16 0 0 1 32 0v6.4c20.2-4 32.2-14.4 57.6-14.4 31.2 0 43.2 16 74.6 16 18.6 0 28.2-4.8 59.8-16Z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticonsFi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFonticons (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesomeAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1.7.1 1.3.1 2 .1 1.3.1 2.7.2 4 0 .8.1 1.5.1 2.3 0 1.3.1 2.5.2 3.7.1.8.1 1.6.2 2.4.1 1.1.2 2.3.3 3.5 0 .8.1 1.6.2 2.4.1 1.2.3 2.4.4 3.6.1.8.2 1.5.3 2.3.1 1.3.3 2.6.5 3.9.1.6.2 1.3.3 1.9l.9 5.7c.1.6.2 1.1.3 1.7.3 1.3.5 2.7.8 4 .2.8.3 1.6.5 2.4.2 1 .5 2.1.7 3.2.2.9.4 1.7.6 2.6.2 1 .4 2 .7 3 .2.9.5 1.8.7 2.7.3 1 .5 1.9.8 2.9.3.9.5 1.8.8 2.7.2.9.5 1.9.8 2.8s.5 1.8.8 2.7c.3 1 .6 1.9.9 2.8.6 1.6 1.1 3.3 1.7 4.9.4 1 .7 1.9 1 2.8.3 1 .7 2 1.1 3 .3.8.6 1.5.9 2.3l1.2 3c.3.7.6 1.5.9 2.2.4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3.7.6 1.3.9 2 .5 1 1 2.1 1.5 3.1.2.6.5 1.1.8 1.7.6 1.1 1.1 2.2 1.7 3.3.1.2.2.3.3.5 2.2 4.1 4.4 8.2 6.8 12.2.2.4.5.8.7 1.2.7 1.1 1.3 2.2 2 3.3.3.5.6.9.9 1.4.6 1.1 1.3 2.1 2 3.2.3.5.6.9.9 1.4.7 1.1 1.4 2.1 2.1 3.2.2.4.5.8.8 1.2.7 1.1 1.5 2.2 2.3 3.3.2.2.3.5.5.7 37.5 51.7 94.4 88.5 160 99.4.9.1 1.7.3 2.6.4 1 .2 2.1.4 3.1.5s1.9.3 2.8.4c1 .2 2 .3 3 .4.9.1 1.9.2 2.9.3s1.9.2 2.9.3 2.1.2 3.1.3c.9.1 1.8.1 2.7.2 1.1.1 2.3.1 3.4.2.8 0 1.7.1 2.5.1 1.3 0 2.6.1 3.9.1.7.1 1.4.1 2.1.1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1.8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2.9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5.9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4.2-.2.3-.5.5-.7.8-1.1 1.5-2.2 2.3-3.3.2-.4.5-.8.8-1.2.7-1.1 1.4-2.1 2.1-3.2.3-.5.6-.9.9-1.4.6-1.1 1.3-2.1 2-3.2.3-.5.6-.9.9-1.4.7-1.1 1.3-2.2 2-3.3.2-.4.5-.8.7-1.2 2.4-4 4.6-8.1 6.8-12.2.1-.2.2-.3.3-.5.6-1.1 1.1-2.2 1.7-3.3.2-.6.5-1.1.8-1.7.5-1 1-2.1 1.5-3.1.3-.7.6-1.3.9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7.6-1.5.9-2.2l1.2-3c.3-.8.6-1.5.9-2.3.4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9.3-1 .6-1.9.9-2.8s.5-1.8.8-2.7c.2-.9.5-1.9.8-2.8s.6-1.8.8-2.7c.3-1 .5-1.9.8-2.9.2-.9.5-1.8.7-2.7.2-1 .5-2 .7-3 .2-.9.4-1.7.6-2.6.2-1 .5-2.1.7-3.2.2-.8.3-1.6.5-2.4.3-1.3.6-2.7.8-4 .1-.6.2-1.1.3-1.7l.9-5.7c.1-.6.2-1.3.3-1.9.1-1.3.3-2.6.5-3.9.1-.8.2-1.5.3-2.3.1-1.2.3-2.4.4-3.6 0-.8.1-1.6.2-2.4.1-1.1.2-2.3.3-3.5.1-.8.1-1.6.2-2.4.1 1.7.1.5.2-.7 0-.8.1-1.5.1-2.3.1-1.3.2-2.7.2-4 .1-.7.1-1.3.1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFortAwesome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z\"},\"child\":[]}]})(props);\n};\nexport function FaForumbee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z\"},\"child\":[]}]})(props);\n};\nexport function FaFoursquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 368 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9.9-1.8.6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFreeCodeCamp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.22,96.21c10.36-10.65,16-17.12,16-21.9,0-2.76-1.92-5.51-3.83-7.42A14.81,14.81,0,0,0,101,64.05c-8.48,0-20.92,8.79-35.84,25.69C23.68,137,2.51,182.81,3.37,250.34s17.47,117,54.06,161.87C76.22,435.86,90.62,448,100.9,448a13.55,13.55,0,0,0,8.37-3.84c1.91-2.76,3.81-5.63,3.81-8.38,0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25,188.8,54,137.83,97.22,96.21ZM239.47,420.07c.58.37.91.55.91.55Zm93.79.55.17-.13C333.24,420.62,333.17,420.67,333.26,420.62Zm3.13-158.18c-16.24-4.15,50.41-82.89-68.05-177.17,0,0,15.54,49.38-62.83,159.57-74.27,104.35,23.46,168.73,34,175.23-6.73-4.35-47.4-35.7,9.55-128.64,11-18.3,25.53-34.87,43.5-72.16,0,0,15.91,22.45,7.6,71.13C287.7,364,354,342.91,355,343.94c22.75,26.78-17.72,73.51-21.58,76.55,5.49-3.65,117.71-78,33-188.1C360.43,238.4,352.62,266.59,336.39,262.44ZM510.88,89.69C496,72.79,483.52,64,475,64a14.81,14.81,0,0,0-8.39,2.84c-1.91,1.91-3.83,4.66-3.83,7.42,0,4.78,5.6,11.26,16,21.9,43.23,41.61,65,92.59,64.82,154.06-.16,68-23,122.63-67.48,165-9.34,8.35-13.18,14.92-13.2,20.55,0,2.75,1.9,5.62,3.81,8.38A13.61,13.61,0,0,0,475.1,448c10.28,0,24.68-12.13,43.47-35.79,36.59-44.85,53.14-94.38,54.06-161.87S552.32,137,510.88,89.69Z\"},\"child\":[]}]})(props);\n};\nexport function FaFreebsd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4.9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"},\"child\":[]}]})(props);\n};\nexport function FaFulcrum (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M95.75 164.14l-35.38 43.55L25 164.14l35.38-43.55zM144.23 0l-20.54 198.18L72.72 256l51 57.82L144.23 512V300.89L103.15 256l41.08-44.89zm79.67 164.14l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.82 247 256l-51-57.82L175.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticRepublic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111.25 504 0 392.75 0 256S111.25 8 248 8s248 111.25 248 248-111.25 248-248 248zm0-479.47C120.37 24.53 16.53 128.37 16.53 256S120.37 487.47 248 487.47 479.47 383.63 479.47 256 375.63 24.53 248 24.53zm27.62 21.81v24.62a185.933 185.933 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.96-41.8zm-55.37.07c-37.64 4.94-72.16 19.8-100.88 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.873 77.873 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.24 30.72l-17.36 17.36a186.337 186.337 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101.03zm-335.55.13c-22.06 28.72-36.91 63.26-41.85 100.91h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.67c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.96h-24.62zM136.66 406.38l-17.36 17.36c28.73 22.09 63.3 36.98 100.96 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.53.05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.96-41.85l-17.31-17.39h-.08z\"},\"child\":[]}]})(props);\n};\nexport function FaGalacticSenate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M249.86 33.48v26.07C236.28 80.17 226 168.14 225.39 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32.75-10.53 2.19-15.65.65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.76-10.91-194.73-24.49-215.35V33.48h-12.28zm-26.34 147.77c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68.18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51.73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47.96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.49 147.49 0 0 0-27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.75-1.45-156.37 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.26 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87.01.01-.01.04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19.02 16.37-1.07 24.04-3.21.01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43.39 95.49 20.26 108.02 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.37-29.17-156.37-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.81 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19.07-21.6.36-30.5 1.66.43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28.94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76.42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09.02-.17.04-.27.05-.05.01-.11.04-.16.05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z\"},\"child\":[]}]})(props);\n};\nexport function FaGetPocket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGgCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGg (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z\"},\"child\":[]}]})(props);\n};\nexport function FaGitAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.55 236.05L244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z\"},\"child\":[]}]})(props);\n};\nexport function FaGitSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.59 334.24c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52.01-5.09 3.29-9.4 6.6-13.46zm27.95-116.64c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47.75-44.47zM448 80v352a48 48 0 0 1-48 48H48a48 48 0 0 1-48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.62 127 243.88 127c-14.48 0-22.88 7.84-22.88 22.31zM199.18 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.23 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.35 81.53 385 127.52 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.84l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.52h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216.29 158.39H137C97 147.9 6.51 150.63 6.51 233.18c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.61 0 393.35 0 411.65c0 32.11 28.05 50.82 101.63 50.82 70.75 0 111.79-26.42 111.79-73.18 0-58.66-45.16-56.5-151.63-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.89 32.1-104.89 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.58c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.51v-32.1c26.75-3.66 27.24-2 27.24-11V203.61c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.71c0 6.51.4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.31c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.46c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.75c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGithubSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4.2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9.2 36.5.2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9.4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7.6 3.9 1.9.3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2.2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7.9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2.4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8.9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1.9-1.1 2.8-.9 4.3.6 1.3 1.3 1.8 3.3.9 4.1zm-9.1-9.1c-.9.6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9.9-2.4.4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5.9-.9 2.4-.4 3.5.6 1.1 1.3 1.3 2.8.4 3.5zm-6.7-7.4c-.4.9-1.7 1.1-2.8.4-1.3-.6-1.9-1.7-1.5-2.6.4-.6 1.5-.9 2.8-.4 1.3.7 1.9 1.8 1.5 2.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGithub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"},\"child\":[]}]})(props);\n};\nexport function FaGitkraken (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 592 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8.4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGitlab (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z\"},\"child\":[]}]})(props);\n};\nexport function FaGitter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z\"},\"child\":[]}]})(props);\n};\nexport function FaGlideG (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9.1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGlide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8.1 4.1-1.7 4.1-3.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGofore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreadsG (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.6 403.3h2.8c12.7 0 25.5 0 38.2.1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5.1-5.8.3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3.6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3.5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3.1 332.2.1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"},\"child\":[]}]})(props);\n};\nexport function FaGoodreads (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8.3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9.4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2.5-1 1.1-1.9 1.7-2.9.2.1.4.1.6.2.3 3.8.2 30.7.1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleDrive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.72,215v41.25h57.1a49.66,49.66,0,0,1-21.14,32.6c-9.54,6.55-21.72,10.28-36,10.28-27.6,0-50.93-18.91-59.3-44.22a65.61,65.61,0,0,1,0-41l0,0c8.37-25.46,31.7-44.37,59.3-44.37a56.43,56.43,0,0,1,40.51,16.08L176.47,155a101.24,101.24,0,0,0-70.75-27.84,105.55,105.55,0,0,0-94.38,59.11,107.64,107.64,0,0,0,0,96.18v.15a105.41,105.41,0,0,0,94.38,59c28.47,0,52.55-9.53,70-25.91,20-18.61,31.41-46.15,31.41-78.91A133.76,133.76,0,0,0,205.38,215Zm389.41-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46,0-39.34,8.34-50.5,24.86l20.85,13.26q11.45-17,31.26-17a34.05,34.05,0,0,1,22.75,8.79A28.14,28.14,0,0,1,487.79,248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44,0-29.65,3.88-39.49,11.77s-14.82,18.31-14.82,31.56a39.74,39.74,0,0,0,13.94,31.27c9.25,8.34,21,12.51,34.79,12.51,16.29,0,29.21-7.3,39-21.89h1v17.72h22.61V250C510.25,233.45,505.26,220.34,495.13,211ZM475.9,300.3a37.32,37.32,0,0,1-26.57,11.16A28.61,28.61,0,0,1,431,305.21a19.41,19.41,0,0,1-7.77-15.63c0-7,3.22-12.81,9.54-17.42s14.53-7,24.07-7C470,265,480.3,268,487.64,273.94,487.64,284.07,483.68,292.85,475.9,300.3Zm-93.65-142A55.71,55.71,0,0,0,341.74,142H279.07V328.74H302.7V253.1h39c16,0,29.5-5.36,40.51-15.93.88-.89,1.76-1.79,2.65-2.68A54.45,54.45,0,0,0,382.25,158.26Zm-16.58,62.23a30.65,30.65,0,0,1-23.34,9.68H302.7V165h39.63a32,32,0,0,1,22.6,9.23A33.18,33.18,0,0,1,365.67,220.49ZM614.31,201,577.77,292.7h-.45L539.9,201H514.21L566,320.55l-29.35,64.32H561L640,201Z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusG (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.061 228.496c1.834 9.692 3.143 19.384 3.143 31.956C389.204 370.205 315.599 448 204.8 448c-106.084 0-192-85.915-192-192s85.916-192 192-192c51.864 0 95.083 18.859 128.611 50.292l-52.126 50.03c-14.145-13.621-39.028-29.599-76.485-29.599-65.484 0-118.92 54.221-118.92 121.277 0 67.056 53.436 121.277 118.92 121.277 75.961 0 104.513-54.745 108.965-82.773H204.8v-66.009h181.261zm185.406 6.437V179.2h-56.001v55.733h-55.733v56.001h55.733v55.733h56.001v-55.733H627.2v-56.001h-55.733z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGooglePlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119.1,8,8,119.1,8,256S119.1,504,256,504,504,392.9,504,256,392.9,8,256,8ZM185.3,380a124,124,0,0,1,0-248c31.3,0,60.1,11,83,32.3l-33.6,32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9,0-77.2,35.5-77.2,78.1S142.3,334,185.3,334c32.6,0,64.9-19.1,70.1-53.3H185.3V238.1H302.2a109.2,109.2,0,0,1,1.9,20.7c0,70.8-47.5,121.2-118.8,121.2ZM415.5,273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5Z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogleWallet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGoogle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 488 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaGratipay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z\"},\"child\":[]}]})(props);\n};\nexport function FaGrav (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8.8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1.3-6.4 0-13-9.4-24.9 3.9-12.5.3-22.4.3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8.1-.2.3-.4.4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7.3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z\"},\"child\":[]}]})(props);\n};\nexport function FaGripfire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4.4 3.3.6 6.7.6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrunt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1.7-7.5 2.2-12.8 4-16.6.4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8.6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6.6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1.4-4.7.8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5.9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3.2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7.3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7.5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2.8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6.7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4.1-6.6.5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4.3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6.9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7.2.2.4.3.4.3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1.4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5.6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9.7.6 1.5 1.2 2.2 1.8l.5.4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6.9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3.3-11.7.7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2.9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6.9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2.9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"},\"child\":[]}]})(props);\n};\nexport function FaGuilded (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.427,64H4.571c0,103.26,22.192,180.06,43.418,222.358C112.046,414.135,224,448,225.256,448a312.824,312.824,0,0,0,140.55-103.477c25.907-33.923,53.1-87.19,65.916-145.761H171.833c4.14,36.429,22.177,67.946,45.1,86.944h88.589c-17.012,28.213-48.186,54.4-80.456,69.482-31.232-13.259-69.09-46.544-96.548-98.362-26.726-53.833-27.092-105.883-27.092-105.883H437.573A625.91,625.91,0,0,0,443.427,64Z\"},\"child\":[]}]})(props);\n};\nexport function FaGulp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7.9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3.2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5.9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9.1-1.8.3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6.8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5.6.2 1.1.4 1.6.7 2.6 1.8 1.6 4.5.3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3.5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4.5 3.2 1.5 1.7 2.2 1.3 4.5.4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9.9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2.4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3.5-.4.9-.6.6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3.8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7.2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3.9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3.2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8.1 26.3.4l12.6-48.7L228.1.6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1.1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2.8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2.1-.3l.2-.7c-1.8.6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7.1 13.9-1.6 13.9-3.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNewsSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerNews (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm21.2 197.2H21c.1-.1.2-.3.3-.4 0 .1 0 .3-.1.4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHackerrank (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.5 128C463 103.05 285.13 0 256.16 0S49.25 102.79 34.84 128s-14.49 230.8 0 256 192.38 128 221.32 128S463 409.08 477.49 384s14.51-231 .01-256zM316.13 414.22c-4 0-40.91-35.77-38-38.69.87-.87 6.26-1.48 17.55-1.83 0-26.23.59-68.59.94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88.23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11.92-33.44 3-84-.15-212.67v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87.87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.39h80.26c0-4.55.39-34.74-1.2-83.64-.1-3.39.95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.64 336 341.29 336 373.69c8.87.35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z\"},\"child\":[]}]})(props);\n};\nexport function FaHips (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7.9-2.7 2.7v279.2c0 1.9.9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5.4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4.2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3.7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8.6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7.1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2.1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHireAHelper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4.1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.353,254.878,131.538,33.1a2.208,2.208,0,0,0-3.829.009L.3,254.887A2.234,2.234,0,0,0,.3,257.122L129.116,478.9a2.208,2.208,0,0,0,3.83-.009L260.358,257.113A2.239,2.239,0,0,0,260.353,254.878Zm39.078-25.713a2.19,2.19,0,0,0,1.9,1.111h66.509a2.226,2.226,0,0,0,1.9-3.341L259.115,33.111a2.187,2.187,0,0,0-1.9-1.111H190.707a2.226,2.226,0,0,0-1.9,3.341ZM511.7,254.886,384.9,33.112A2.2,2.2,0,0,0,382.99,32h-66.6a2.226,2.226,0,0,0-1.906,3.34L440.652,256,314.481,476.66a2.226,2.226,0,0,0,1.906,3.34h66.6a2.2,2.2,0,0,0,1.906-1.112L511.7,257.114A2.243,2.243,0,0,0,511.7,254.886ZM366.016,284.917H299.508a2.187,2.187,0,0,0-1.9,1.111l-108.8,190.631a2.226,2.226,0,0,0,1.9,3.341h66.509a2.187,2.187,0,0,0,1.9-1.111l108.8-190.631A2.226,2.226,0,0,0,366.016,284.917Z\"},\"child\":[]}]})(props);\n};\nexport function FaHooli (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.5 352l38.3.8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4.8c36.5 12.5 69.9 14.2 94.7 7.2-19.9.2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3.1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHornbill (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M76.38 370.3a37.8 37.8 0 1 1-32.07-32.42c-78.28-111.35 52-190.53 52-190.53-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49.93 64.06 39.81 72.87a140.38 140.38 0 0 0 131.66 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.94-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0-31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.42 140.42 0 0 1 207 132.71c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.59-54.06zm304.19 134.17a37.94 37.94 0 1 0-53.84-28.7C403 126.13 344.89 99 251.28 100.33l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.37 140.37 0 0 1 130.49 88.76c39.1 9 105.06 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.45-81.16 49-194.61a37.45 37.45 0 0 0 19.31-3.5zM374.06 436.24c21.43-32.46 46.42-89.69 45.14-179.66l-19.52.14c.08 2.06.3 4.07.3 6.15a140.34 140.34 0 0 1-91.39 131.45c-8.85 38.95-31.44 106.66-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.34 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z\"},\"child\":[]}]})(props);\n};\nexport function FaHotjar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHouzz (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHtml5 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHubspot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z\"},\"child\":[]}]})(props);\n};\nexport function FaIdeal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.61,165.48a49.07,49.07,0,1,0,49.06,49.06A49.08,49.08,0,0,0,125.61,165.48ZM86.15,425.84h78.94V285.32H86.15Zm151.46-211.6c0-20-10-22.53-18.74-22.53H204.82V237.5h14.05C228.62,237.5,237.61,234.69,237.61,214.24Zm201.69,46V168.93h22.75V237.5h33.69C486.5,113.08,388.61,86.19,299.67,86.19H204.84V169h14c25.6,0,41.5,17.35,41.5,45.26,0,28.81-15.52,46-41.5,46h-14V425.88h94.83c144.61,0,194.94-67.16,196.72-165.64Zm-109.75,0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51Zm74.66,0-5.16-17.67H369.31l-5.18,17.67H340.47L368,168.92h32.35l27.53,91.34ZM299.65,32H32V480H299.65c161.85,0,251-79.73,251-224.52C550.62,172,518,32,299.65,32Zm0,426.92H53.07V53.07H299.65c142.1,0,229.9,64.61,229.9,202.41C529.55,389.57,448.55,458.92,299.65,458.92Zm83.86-264.85L376,219.88H392.4l-7.52-25.81Z\"},\"child\":[]}]})(props);\n};\nexport function FaImdb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.3 229.2H21c.1-.1.2-.3.3-.4zM97 319.8H64V192h33zm113.2 0h-28.7v-86.4l-11.6 86.4h-20.6l-12.2-84.5v84.5h-29V192h42.8c3.3 19.8 6 39.9 8.7 59.9l7.6-59.9h43zm11.4 0V192h24.6c17.6 0 44.7-1.6 49 20.9 1.7 7.6 1.4 16.3 1.4 24.4 0 88.5 11.1 82.6-75 82.5zm160.9-29.2c0 15.7-2.4 30.9-22.2 30.9-9 0-15.2-3-20.9-9.8l-1.9 8.1h-29.8V192h31.7v41.7c6-6.5 12-9.2 20.9-9.2 21.4 0 22.2 12.8 22.2 30.1zM265 229.9c0-9.7 1.6-16-10.3-16v83.7c12.2.3 10.3-8.7 10.3-18.4zm85.5 26.1c0-5.4 1.1-12.7-6.2-12.7-6 0-4.9 8.9-4.9 12.7 0 .6-1.1 39.6 1.1 44.7.8 1.6 2.2 2.4 3.8 2.4 7.8 0 6.2-9 6.2-14.4z\"},\"child\":[]}]})(props);\n};\nexport function FaInnosoft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.559,159.71a27.379,27.379,0,0,0-13.866-23.337,26.42,26.42,0,0,0-26.211.133L73.943,314.647V176.261a11.955,11.955,0,0,1,6.047-10.34L218.066,86.208a12.153,12.153,0,0,1,11.922.025l32.656,18.853L112.581,191.723v56L359.642,105.086,241.129,36.679c-10.992-6.129-22.3-6.255-33.8-.27l-164.6,95.026c-10.634,6.12-16.771,16.39-17.29,29.124l0,191.5c.17,10.135,5.08,18.672,13.474,23.428a27.037,27.037,0,0,0,26.736-.045L374.057,197.376V335.657a11.976,11.976,0,0,1-5.92,10.368L230.025,425.77a12.175,12.175,0,0,1-11.937.062l-32.723-18.9,150.051-86.627v-56L88.367,406.932l118.794,68.583a33.88,33.88,0,0,0,34.25-.327l164.527-94.995c10.746-6.631,16.649-17.118,16.624-29.528Z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagramSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224,202.66A53.34,53.34,0,1,0,277.36,256,53.38,53.38,0,0,0,224,202.66Zm124.71-41a54,54,0,0,0-30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31,6.43a54,54,0,0,0-30.41,30.41c-8.28,21-6.43,71.05-6.43,94.33S91,329.26,99.32,350.33a54,54,0,0,0,30.41,30.41c21,8.29,71,6.43,94.31,6.43s73.24,1.93,94.3-6.43a54,54,0,0,0,30.41-30.41c8.35-21,6.43-71.05,6.43-94.33S357.1,182.74,348.75,161.67ZM224,338a82,82,0,1,1,82-82A81.9,81.9,0,0,1,224,338Zm85.38-148.3a19.14,19.14,0,1,1,19.13-19.14A19.1,19.1,0,0,1,309.42,189.74ZM400,32H48A48,48,0,0,0,0,80V432a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V80A48,48,0,0,0,400,32ZM382.88,322c-1.29,25.63-7.14,48.34-25.85,67s-41.4,24.63-67,25.85c-26.41,1.49-105.59,1.49-132,0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.61,0-132,1.29-25.63,7.07-48.34,25.85-67s41.47-24.56,67-25.78c26.41-1.49,105.59-1.49,132,0,25.63,1.29,48.33,7.15,67,25.85s24.63,41.42,25.85,67.05C384.37,216.44,384.37,295.56,382.88,322Z\"},\"child\":[]}]})(props);\n};\nexport function FaInstagram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"},\"child\":[]}]})(props);\n};\nexport function FaInstalod (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.384,480H387.113L502.554,275.765,204.229,333.211ZM504.726,240.078,387.113,32H155.669L360.23,267.9ZM124.386,48.809,7.274,256,123.236,461.154,225.627,165.561Z\"},\"child\":[]}]})(props);\n};\nexport function FaIntercom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z\"},\"child\":[]}]})(props);\n};\nexport function FaInternetExplorer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.049 159.706c10.855-24.575 21.424-60.438 21.424-87.871 0-72.722-79.641-98.371-209.673-38.577-107.632-7.181-211.221 73.67-237.098 186.457 30.852-34.862 78.271-82.298 121.977-101.158C125.404 166.85 79.128 228.002 43.992 291.725 23.246 329.651 0 390.94 0 436.747c0 98.575 92.854 86.5 180.251 42.006 31.423 15.43 66.559 15.573 101.695 15.573 97.124 0 184.249-54.294 216.814-146.022H377.927c-52.509 88.593-196.819 52.996-196.819-47.436H509.9c6.407-43.581-1.655-95.715-26.851-141.162zM64.559 346.877c17.711 51.15 53.703 95.871 100.266 123.304-88.741 48.94-173.267 29.096-100.266-123.304zm115.977-108.873c2-55.151 50.276-94.871 103.98-94.871 53.418 0 101.981 39.72 103.981 94.871H180.536zm184.536-187.6c21.425-10.287 48.563-22.003 72.558-22.003 31.422 0 54.274 21.717 54.274 53.722 0 20.003-7.427 49.007-14.569 67.867-26.28-42.292-65.986-81.584-112.263-99.586z\"},\"child\":[]}]})(props);\n};\nexport function FaInvision (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9.7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3.1-14.3.9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"},\"child\":[]}]})(props);\n};\nexport function FaIoxhost (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaItchIo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.92 34.77C50.2 47.67 7.4 96.84 7 109.73v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.56 32.4 325.76 32 256 32S91.14 33.1 71.92 34.77zm132.32 134.39c-22 38.4-77.9 38.71-99.85.25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.13 17.73 269.15 80 18.67 302.08 18.12 379.76 0 31.65-32.27 21.32-232 17.75-269.15-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1-51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.91 436.91 0 0 1 88.18 0C318.22 223 332.85 223 349.31 223c52.33 0 65.22 77.53 83.87 144.45 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.93 8.79-155.55 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.45 83.88-144.45zM256 270.79s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34.16 23.33.16 11.65.54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z\"},\"child\":[]}]})(props);\n};\nexport function FaItunesNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2.8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6.2 344.5 1.1 326-1.8 338.5z\"},\"child\":[]}]})(props);\n};\nexport function FaItunes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1.5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7.9-127 2.6-133.7.4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6.4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z\"},\"child\":[]}]})(props);\n};\nexport function FaJava (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.74 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.84 0 242.84 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1-2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0-8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6.7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.84 509.4 401 461.3 348 437.4zM124.44 396c-78.7 22 47.9 67.4 148.1 24.5a185.89 185.89 0 0 1-28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.64 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1-21.1-12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaJediOrder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJenkins (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8.2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2.7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8.7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4.7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4.7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7.3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2.5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8.7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1.6-16.5zm-17.2-20c-16.8.8-26-1.2-38.3-10.8.2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3.8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5.7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2.5-.4.8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5.4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9.8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8.6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1.8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7.5 0 1 0 1.4.1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9.9-36.6-17.1 11.9.7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"},\"child\":[]}]})(props);\n};\nexport function FaJira (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJoget (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaJoomla (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1.6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6.6 120.7.6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"},\"child\":[]}]})(props);\n};\nexport function FaJsSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"},\"child\":[]}]})(props);\n};\nexport function FaJsfiddle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.634 237.462c-4.727-2.621-5.664-5.748-6.381-10.776-2.352-16.488-3.539-33.619-9.097-49.095-35.895-99.957-153.99-143.386-246.849-91.646-27.37 15.25-48.971 36.369-65.493 63.903-3.184-1.508-5.458-2.71-7.824-3.686-30.102-12.421-59.049-10.121-85.331 9.167-25.531 18.737-36.422 44.548-32.676 76.408.355 3.025-1.967 7.621-4.514 9.545-39.712 29.992-56.031 78.065-41.902 124.615 13.831 45.569 57.514 79.796 105.608 81.433 30.291 1.031 60.637.546 90.959.539 84.041-.021 168.09.531 252.12-.48 52.664-.634 96.108-36.873 108.212-87.293 11.54-48.074-11.144-97.3-56.832-122.634zm21.107 156.88c-18.23 22.432-42.343 35.253-71.28 35.65-56.874.781-113.767.23-170.652.23 0 .7-163.028.159-163.728.154-43.861-.332-76.739-19.766-95.175-59.995-18.902-41.245-4.004-90.848 34.186-116.106 9.182-6.073 12.505-11.566 10.096-23.136-5.49-26.361 4.453-47.956 26.42-62.981 22.987-15.723 47.422-16.146 72.034-3.083 10.269 5.45 14.607 11.564 22.198-2.527 14.222-26.399 34.557-46.727 60.671-61.294 97.46-54.366 228.37 7.568 230.24 132.697.122 8.15 2.412 12.428 9.848 15.894 57.56 26.829 74.456 96.122 35.142 144.497zm-87.789-80.499c-5.848 31.157-34.622 55.096-66.666 55.095-16.953-.001-32.058-6.545-44.079-17.705-27.697-25.713-71.141-74.98-95.937-93.387-20.056-14.888-41.99-12.333-60.272 3.782-49.996 44.071 15.859 121.775 67.063 77.188 4.548-3.96 7.84-9.543 12.744-12.844 8.184-5.509 20.766-.884 13.168 10.622-17.358 26.284-49.33 38.197-78.863 29.301-28.897-8.704-48.84-35.968-48.626-70.179 1.225-22.485 12.364-43.06 35.414-55.965 22.575-12.638 46.369-13.146 66.991 2.474C295.68 280.7 320.467 323.97 352.185 343.47c24.558 15.099 54.254 7.363 68.823-17.506 28.83-49.209-34.592-105.016-78.868-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.975 6.811-17.333-4.113-12.809-10.353 20.703-28.554 50.464-40.44 83.271-28.214 31.429 11.714 49.108 44.366 42.76 78.186z\"},\"child\":[]}]})(props);\n};\nexport function FaKaggle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z\"},\"child\":[]}]})(props);\n};\nexport function FaKeybase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M286.17 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18zm111.92-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0-47.88-104.13c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.66 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0-8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93.54a214 214 0 0 0-46.29 35.54C14 304.66 14 374 14 429.77v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.29 178.29 0 0 1-15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.38-61.76 236.25-38.59 34.2 10.05 67.45.69 84.74-23.84.72-1 1.2-2.16 1.85-3.22a156.09 156.09 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.32c0-38.58-13-77.46-35.91-110.92zM142.37 128.58l-15.7-.93-1.39 21.79 13.13.78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1-11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.35 144.35 0 0 0-7 19.17zm148.42 172.18a10.51 10.51 0 0 1-14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1-11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1-10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.19s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1-1.74 13.44zM187.44 419a18 18 0 1 0 18 18 18 18 0 0 0-18-18z\"},\"child\":[]}]})(props);\n};\nexport function FaKeycdn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5.7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4.3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3.3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2.7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3.1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9.4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1.8-57.3 24.8-58.2 58.3zM256 160\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarterK (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z\"},\"child\":[]}]})(props);\n};\nexport function FaKickstarter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z\"},\"child\":[]}]})(props);\n};\nexport function FaKorvue (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 446 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaravel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.4,115.83a5.72,5.72,0,0,0-.28-.68,8.52,8.52,0,0,0-.53-1.25,6,6,0,0,0-.54-.71,9.36,9.36,0,0,0-.72-.94c-.23-.22-.52-.4-.77-.6a8.84,8.84,0,0,0-.9-.68L404.4,55.55a8,8,0,0,0-8,0L300.12,111h0a8.07,8.07,0,0,0-.88.69,7.68,7.68,0,0,0-.78.6,8.23,8.23,0,0,0-.72.93c-.17.24-.39.45-.54.71a9.7,9.7,0,0,0-.52,1.25c-.08.23-.21.44-.28.68a8.08,8.08,0,0,0-.28,2.08V223.18l-80.22,46.19V63.44a7.8,7.8,0,0,0-.28-2.09c-.06-.24-.2-.45-.28-.68a8.35,8.35,0,0,0-.52-1.24c-.14-.26-.37-.47-.54-.72a9.36,9.36,0,0,0-.72-.94,9.46,9.46,0,0,0-.78-.6,9.8,9.8,0,0,0-.88-.68h0L115.61,1.07a8,8,0,0,0-8,0L11.34,56.49h0a6.52,6.52,0,0,0-.88.69,7.81,7.81,0,0,0-.79.6,8.15,8.15,0,0,0-.71.93c-.18.25-.4.46-.55.72a7.88,7.88,0,0,0-.51,1.24,6.46,6.46,0,0,0-.29.67,8.18,8.18,0,0,0-.28,2.1v329.7a8,8,0,0,0,4,6.95l192.5,110.84a8.83,8.83,0,0,0,1.33.54c.21.08.41.2.63.26a7.92,7.92,0,0,0,4.1,0c.2-.05.37-.16.55-.22a8.6,8.6,0,0,0,1.4-.58L404.4,400.09a8,8,0,0,0,4-6.95V287.88l92.24-53.11a8,8,0,0,0,4-7V117.92A8.63,8.63,0,0,0,504.4,115.83ZM111.6,17.28h0l80.19,46.15-80.2,46.18L31.41,63.44Zm88.25,60V278.6l-46.53,26.79-33.69,19.4V123.5l46.53-26.79Zm0,412.78L23.37,388.5V77.32L57.06,96.7l46.52,26.8V338.68a6.94,6.94,0,0,0,.12.9,8,8,0,0,0,.16,1.18h0a5.92,5.92,0,0,0,.38.9,6.38,6.38,0,0,0,.42,1v0a8.54,8.54,0,0,0,.6.78,7.62,7.62,0,0,0,.66.84l0,0c.23.22.52.38.77.58a8.93,8.93,0,0,0,.86.66l0,0,0,0,92.19,52.18Zm8-106.17-80.06-45.32,84.09-48.41,92.26-53.11,80.13,46.13-58.8,33.56Zm184.52,4.57L215.88,490.11V397.8L346.6,323.2l45.77-26.15Zm0-119.13L358.68,250l-46.53-26.79V131.79l33.69,19.4L392.37,178Zm8-105.28-80.2-46.17,80.2-46.16,80.18,46.15Zm8,105.28V178L455,151.19l33.68-19.4v91.39h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfmSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5.1 36.7-30.7 50.6-76.1 50.6z\"},\"child\":[]}]})(props);\n};\nexport function FaLastfm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"},\"child\":[]}]})(props);\n};\nexport function FaLeanpub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M386.539 111.485l15.096 248.955-10.979-.275c-36.232-.824-71.64 8.783-102.657 27.997-31.016-19.214-66.424-27.997-102.657-27.997-45.564 0-82.07 10.705-123.516 27.723L93.117 129.6c28.546-11.803 61.484-18.115 92.226-18.115 41.173 0 73.836 13.175 102.657 42.544 27.723-28.271 59.013-41.721 98.539-42.544zM569.07 448c-25.526 0-47.485-5.215-70.542-15.645-34.31-15.645-69.993-24.978-107.871-24.978-38.977 0-74.934 12.901-102.657 40.623-27.723-27.723-63.68-40.623-102.657-40.623-37.878 0-73.561 9.333-107.871 24.978C55.239 442.236 32.731 448 8.303 448H6.93L49.475 98.859C88.726 76.626 136.486 64 181.775 64 218.83 64 256.984 71.685 288 93.095 319.016 71.685 357.17 64 394.225 64c45.289 0 93.049 12.626 132.3 34.859L569.07 448zm-43.368-44.741l-34.036-280.246c-30.742-13.999-67.248-21.41-101.009-21.41-38.428 0-74.385 12.077-102.657 38.702-28.272-26.625-64.228-38.702-102.657-38.702-33.761 0-70.267 7.411-101.009 21.41L50.298 403.259c47.211-19.487 82.894-33.486 135.045-33.486 37.604 0 70.817 9.606 102.657 29.644 31.84-20.038 65.052-29.644 102.657-29.644 52.151 0 87.834 13.999 135.045 33.486z\"},\"child\":[]}]})(props);\n};\nexport function FaLess (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5.5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1.8-4.6.8-6.2.8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4.6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z\"},\"child\":[]}]})(props);\n};\nexport function FaLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1.5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9.3 1.6.9 2.2.6.5 1.3.9 2.2.9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8.1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedinIn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.28 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.58 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.28 61.9 111.28 142.3V448z\"},\"child\":[]}]})(props);\n};\nexport function FaLinkedin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z\"},\"child\":[]}]})(props);\n};\nexport function FaLinode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.4 226.3c-.3-.9-.9-1.4-1.4-2l-70-38.6c-.9-.6-2-.6-3.1 0l-58.9 36c-.9.6-1.4 1.7-1.4 2.6l-.9 31.4-24-16c-.9-.6-2.3-.6-3.1 0L240 260.9l-1.4-35.1c0-.9-.6-2-1.4-2.3l-36-24.3 33.7-17.4c1.1-.6 1.7-1.7 1.7-2.9l-5.7-132.3c0-.9-.9-2-1.7-2.6L138.6.3c-.9-.3-1.7-.3-2.3-.3L12.6 38.6c-1.4.6-2.3 2-2 3.7L38 175.4c.9 3.4 34 27.4 38.6 30.9l-26.9 12.9c-1.4.9-2 2.3-1.7 3.4l20.6 100.3c.6 2.9 23.7 23.1 27.1 26.3l-17.4 10.6c-.9.6-1.7 2-1.4 3.1 1.4 7.1 15.4 77.7 16.9 79.1l65.1 69.1c.6.6 1.4.6 2.3.9.6 0 1.1-.3 1.7-.6l83.7-66.9c.9-.6 1.1-1.4 1.1-2.3l-2-46 28 23.7c1.1.9 2.9.9 4 0l66.9-53.4c.9-.6 1.1-1.4 1.1-2.3l2.3-33.4 20.3 14c1.1.9 2.6.9 3.7 0l54.6-43.7c.6-.3 1.1-1.1 1.1-2 .9-6.5 10.3-70.8 9.7-72.8zm-204.8 4.8l4 92.6-90.6 61.2-14-96.6 100.6-57.2zm-7.7-180l5.4 126-106.6 55.4L104 97.7l120.9-46.6zM44 173.1L18 48l79.7 49.4 19.4 132.9L44 173.1zm30.6 147.8L55.7 230l70 58.3 13.7 93.4-64.8-60.8zm24.3 117.7l-13.7-67.1 61.7 60.9 9.7 67.4-57.7-61.2zm64.5 64.5l-10.6-70.9 85.7-61.4 3.1 70-78.2 62.3zm82-115.1c0-3.4.9-22.9-2-25.1l-24.3-20 22.3-14.9c2.3-1.7 1.1-5.7 1.1-8l29.4 22.6.6 68.3-27.1-22.9zm94.3-25.4l-60.9 48.6-.6-68.6 65.7-46.9-4.2 66.9zm27.7-25.7l-19.1-13.4 2-34c.3-.9-.3-2-1.1-2.6L308 259.7l.6-30 64.6 40.6-5.8 66.6zm54.6-39.8l-48.3 38.3 5.7-65.1 51.1-36.6-8.5 63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaLinux (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5.2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4.2-.8.7-.6 1.1.3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6.2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5.1-1.3.6-3.4 1.5-3.2 2.9.1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7.1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9.6 7.9 1.2 11.8 1.2 8.1 2.5 15.7.8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1.6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3.4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4.7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6.6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7.8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4.6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1.8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7.4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6.8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1.3-.2.7-.3 1-.5.8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaLyft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z\"},\"child\":[]}]})(props);\n};\nexport function FaMagento (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6.1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z\"},\"child\":[]}]})(props);\n};\nexport function FaMailchimp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.61 243.52a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43.45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277.05 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0-30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06.85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1.9.34 1.17.81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92.34 4.31.52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81.28-15.96zm-218.79 78.9c-1.32.31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27.57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0-.2-2.33c.03.89.68-1.3-3.35-.39zm299.72-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.42-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.81 25.78 273.85l14.76 12.51a72.49 72.49 0 0 0-4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.06 267.9 133.28 322.29 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.55C69.14 252.5 55.78 261.09 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.21C112.42 90.56 186.19 39.68 220.36 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.18 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.85 102.85 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.86 106.86 0 0 1 362.55 421a132.45 132.45 0 0 1-20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1-3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0-1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48.5 15.89 1.59 22.88 1.88 11.69.5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49.29 6.72 1.1 23 1.38 27.63.63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.48 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.37-21.35.69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.46 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73.73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75.75 0 0 0 1.16.79c11.49-7.83 31.48-16.22 49-17.3a.77.77 0 0 1 .52 1.38 41.86 41.86 0 0 0-7.71 7.74.75.75 0 0 0 .59 1.19c12.31.09 29.66 4.4 41 10.74.76.43.22 1.91-.64 1.72-69.55-15.94-123.08 18.53-134.5 26.83a.76.76 0 0 1-1-1.12z\"},\"child\":[]}]})(props);\n};\nexport function FaMandalorian (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232.27 511.89c-1-3.26-1.69-15.83-1.39-24.58.55-15.89 1-24.72 1.4-28.76.64-6.2 2.87-20.72 3.28-21.38.6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0-.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.54 109.54 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39.37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34.21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1-1.55 4.26c-1 1-1.14.91-2.05-.53a14.87 14.87 0 0 1-1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36.66.51 1.35.34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64.73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95.7-3 2.26-18.29 3.33-32.62.36-4.78.81-10.5 1-12.71.83-9.37 1.66-20.35 2.61-34.78.56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81.75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0-2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79.1 18.55a101.2 101.2 0 0 0-1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18.8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.88 132.88 0 0 0-2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.24 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0-2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0-1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0-2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22.29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15.88.22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51.68 3 .57 7.05-1.67l4.35-2.4L268.32 5c10.44-.4 10.81-.47 15.26-2.68L288.16 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1-1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1-4.09 3.71 13.62 13.62 0 0 0-4.38 4.78 5.89 5.89 0 0 1-2.49 2.91 6.88 6.88 0 0 0-2.45 1.71 67.62 67.62 0 0 1-7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0-2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56.71 8.84a33.45 33.45 0 0 0-1.06 8.91c0 4.88.22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09.11 8.42c.06 4.63.47 9.53.92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12.83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69.52 12.69-11 22.84l-4 3.49.07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27.63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36.47 2.26.78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43.17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1-1.73-10.79 100.5 100.5 0 0 0-1.73-10.79 37.53 37.53 0 0 1-1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62.62 0 0 1-1-.14zm-87.18-266.59c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.28 86.25 255 78.55 268c-31 52-6 101.59 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.66zm210.79 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.61 92.46 149.36 4.3 70.64-78.7 91.18-105.29 61.71z\"},\"child\":[]}]})(props);\n};\nexport function FaMarkdown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z\"},\"child\":[]}]})(props);\n};\nexport function FaMastodon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z\"},\"child\":[]}]})(props);\n};\nexport function FaMaxcdn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.1 442.7h-97.4L415.6 200c2.3-10.2.9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMdb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.37 160.41L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.59H146.7L106 277.74 63.67 160.41zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.46V204.78s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.29-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.58H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.46l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z\"},\"child\":[]}]})(props);\n};\nexport function FaMedapps (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7.2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMediumM (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M71.5 142.3c.6-5.9-1.7-11.8-6.1-15.8L20.3 72.1V64h140.2l108.4 237.7L364.2 64h133.7v8.1l-38.6 37c-3.3 2.5-5 6.7-4.3 10.8v272c-.7 4.1 1 8.3 4.3 10.8l37.7 37v8.1H307.3v-8.1l39.1-37.9c3.8-3.8 3.8-5 3.8-10.8V171.2L241.5 447.1h-14.7L100.4 171.2v184.9c-1.1 7.8 1.5 15.6 7 21.2l50.8 61.6v8.1h-144v-8L65 377.3c5.4-5.6 7.9-13.5 6.5-21.2V142.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMedium (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm372.2 106.1l-24 23c-2.1 1.6-3.1 4.2-2.7 6.7v169.3c-.4 2.6.6 5.2 2.7 6.7l23.5 23v5.1h-118V367l24.3-23.6c2.4-2.4 2.4-3.1 2.4-6.7V199.8l-67.6 171.6h-9.1L125 199.8v115c-.7 4.8 1 9.7 4.4 13.2l31.6 38.3v5.1H71.2v-5.1l31.6-38.3c3.4-3.5 4.9-8.4 4.1-13.2v-133c.4-3.7-1-7.3-3.8-9.8L75 138.1V133h87.3l67.4 148L289 133.1h83.2v5z\"},\"child\":[]}]})(props);\n};\nexport function FaMedrt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaMeetup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1.9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9.6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3.9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMegaport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMendeley (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4.7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1.1-.2.2-.3.4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroblog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M399.36,362.23c29.49-34.69,47.1-78.34,47.1-125.79C446.46,123.49,346.86,32,224,32S1.54,123.49,1.54,236.44,101.14,440.87,224,440.87a239.28,239.28,0,0,0,79.44-13.44,7.18,7.18,0,0,1,8.12,2.56c18.58,25.09,47.61,42.74,79.89,49.92a4.42,4.42,0,0,0,5.22-3.43,4.37,4.37,0,0,0-.85-3.62,87,87,0,0,1,3.69-110.69ZM329.52,212.4l-57.3,43.49L293,324.75a6.5,6.5,0,0,1-9.94,7.22L224,290.92,164.94,332a6.51,6.51,0,0,1-9.95-7.22l20.79-68.86-57.3-43.49a6.5,6.5,0,0,1,3.8-11.68l71.88-1.51,23.66-67.92a6.5,6.5,0,0,1,12.28,0l23.66,67.92,71.88,1.51a6.5,6.5,0,0,1,3.88,11.68Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrosoft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z\"},\"child\":[]}]})(props);\n};\nexport function FaMixcloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.43 219.729C416.124 134.727 344.135 68 256.919 68c-72.266 0-136.224 46.516-159.205 114.074-54.545 8.029-96.63 54.822-96.63 111.582 0 62.298 50.668 112.966 113.243 112.966h289.614c52.329 0 94.969-42.362 94.969-94.693 0-45.131-32.118-83.063-74.48-92.2zm-20.489 144.53H114.327c-39.04 0-70.881-31.564-70.881-70.604s31.841-70.604 70.881-70.604c18.827 0 36.548 7.475 49.838 20.766 19.963 19.963 50.133-10.227 30.18-30.18-14.675-14.398-32.672-24.365-52.053-29.349 19.935-44.3 64.79-73.926 114.628-73.926 69.496 0 125.979 56.483 125.979 125.702 0 13.568-2.215 26.857-6.369 39.594-8.943 27.517 32.133 38.939 40.147 13.29 2.769-8.306 4.984-16.889 6.369-25.472 19.381 7.476 33.502 26.303 33.502 48.453 0 28.795-23.535 52.33-52.607 52.33zm235.069-52.33c0 44.024-12.737 86.386-37.102 122.657-4.153 6.092-10.798 9.414-17.72 9.414-16.317 0-27.127-18.826-17.443-32.949 19.381-29.349 29.903-63.682 29.903-99.122s-10.521-69.773-29.903-98.845c-15.655-22.831 19.361-47.24 35.163-23.534 24.366 35.993 37.102 78.356 37.102 122.379zm-70.88 0c0 31.565-9.137 62.021-26.857 88.325-4.153 6.091-10.798 9.136-17.72 9.136-17.201 0-27.022-18.979-17.443-32.948 13.013-19.104 19.658-41.255 19.658-64.513 0-22.981-6.645-45.408-19.658-64.512-15.761-22.986 19.008-47.095 35.163-23.535 17.719 26.026 26.857 56.483 26.857 88.047z\"},\"child\":[]}]})(props);\n};\nexport function FaMixer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114.57,76.07a45.71,45.71,0,0,0-67.51-6.41c-17.58,16.18-19,43.52-4.75,62.77l91.78,123L41.76,379.58c-14.23,19.25-13.11,46.59,4.74,62.77A45.71,45.71,0,0,0,114,435.94L242.89,262.7a12.14,12.14,0,0,0,0-14.23ZM470.24,379.58,377.91,255.45l91.78-123c14.22-19.25,12.83-46.59-4.75-62.77a45.71,45.71,0,0,0-67.51,6.41l-128,172.12a12.14,12.14,0,0,0,0,14.23L398,435.94a45.71,45.71,0,0,0,67.51,6.41C483.35,426.17,484.47,398.83,470.24,379.58Z\"},\"child\":[]}]})(props);\n};\nexport function FaMizuni (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z\"},\"child\":[]}]})(props);\n};\nexport function FaModx (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z\"},\"child\":[]}]})(props);\n};\nexport function FaMonero (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z\"},\"child\":[]}]})(props);\n};\nexport function FaNapster (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9.1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1.1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7.2-158.2V93.2c-17.3.5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5.1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaNeos (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.44 512h-95.11L212.12 357.46v91.1L125.69 512H28V29.82L68.47 0h108.05l123.74 176.13V63.45L386.69 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.64h84.79l52.35-38.17h-78.27L69 13zm82.54 466.61l80-58.78v-101l-79.76-114.4v220.94L49 501.89h72.34zM80.63 10.77l310.6 442.57h82.37V10.77h-79.75v317.56L170.91 10.77zM311 191.65l72 102.81V15.93l-72 53v122.72z\"},\"child\":[]}]})(props);\n};\nexport function FaNimblr (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M246.6 299.29c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.25c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.76 159C157 159 89.45 178.77 59.25 227L14 0v335.48C14 433.13 93.61 512 191.76 512s177.76-78.95 177.76-176.52S290.13 159 191.76 159zm0 308.12c-73.27 0-132.51-58.9-132.51-131.59s59.24-131.59 132.51-131.59 132.51 58.86 132.51 131.54S265 467.07 191.76 467.07z\"},\"child\":[]}]})(props);\n};\nexport function FaNodeJs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6.4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2.7 376.3.7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8.5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"},\"child\":[]}]})(props);\n};\nexport function FaNode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4.1l14.8 8.8c.5.3 1.3.3 1.8 0L375 408c.5-.3.9-.9.9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6.3-.9 1-.9 1.6v66.7c0 .6.4 1.2.9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9.7-1.7 1.7-1.7h7.3c.9 0 1.7.7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6.2.8.8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5.3-.4.5-.8.4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7.7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7.1 1.8 1.2 2.1 2.8.1 1 .3 2.7.6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3.4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3.7 2.5 1.8 3.2 1.1.7 2.5.7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6.3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1.7 2.6.7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6.3-.9.9-.9 1.6v24.3c0 .7.4 1.3.9 1.6l21 12.1c.6.3 1.3.3 1.8 0l21-12.1c.6-.3.9-.9.9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3.7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1.7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4.3-.7.7-.7 1.2v13.6c0 .5.3 1 .7 1.2l11.8 6.8c.4.3 1 .3 1.4 0L584 235c.4-.3.7-.7.7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7.1-.5.2-1.1.2-1.7zm-74.3-124.9l-.8.5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z\"},\"child\":[]}]})(props);\n};\nexport function FaNpm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z\"},\"child\":[]}]})(props);\n};\nexport function FaNs8 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.324,269.172h26.067V242.994H104.324Zm52.466-26.178-.055-26.178v-.941a39.325,39.325,0,0,0-78.644.941v.166h26.4v-.166a12.98,12.98,0,0,1,25.956,0v26.178Zm52.356,25.846a91.1,91.1,0,0,1-91.1,91.1h-.609a91.1,91.1,0,0,1-91.1-91.1H0v.166A117.33,117.33,0,0,0,117.44,386.28h.775A117.331,117.331,0,0,0,235.49,268.84V242.828H209.146Zm-157.233,0a65.362,65.362,0,0,0,130.723,0H156.292a39.023,39.023,0,0,1-78.035,0V242.883H51.968v-26.62A65.42,65.42,0,0,1,182.8,217.48v25.293h26.344V217.48a91.761,91.761,0,0,0-183.522,0v25.4H51.913Zm418.4-71.173c13.67,0,24.573,6.642,30.052,18.264l.719,1.549,23.245-11.511-.609-1.439c-8.025-19.26-28.5-31.27-53.407-31.27-23.134,0-43.611,11.4-50.972,28.447-.123,26.876-.158,23.9,0,24.85,4.7,11.013,14.555,19.37,28.668,24.241a102.033,102.033,0,0,0,19.813,3.984c5.479.72,10.626,1.384,15.829,3.1,6.364,2.1,10.46,5.257,12.84,9.851v9.851c-3.708,7.527-13.781,12.342-25.791,12.342-14.334,0-25.956-6.918-31.933-19.039l-.72-1.494L415.026,280.9l.553,1.439c7.915,19.426,29.609,32.044,55.289,32.044,23.632,0,44.608-11.4,52.3-28.447l.166-25.9-.166-.664c-4.87-11.014-15.219-19.647-28.944-24.241-7.693-2.712-14.335-3.6-20.7-4.427a83.777,83.777,0,0,1-14.832-2.878c-6.31-1.937-10.4-5.092-12.619-9.63v-8.412C449.45,202.427,458.969,197.667,470.315,197.667ZM287.568,311.344h26.067v-68.4H287.568Zm352.266-53.3c-2.933-6.254-8.3-12.01-15.441-16.714A37.99,37.99,0,0,0,637.4,226l.166-25.347-.166-.664C630.038,184,610.667,173.26,589.25,173.26S548.461,184,541.1,199.992l-.166,25.347.166.664a39.643,39.643,0,0,0,13.006,15.331c-7.2,4.7-12.508,10.46-15.441,16.714l-.166,28.889.166.72c7.582,15.994,27.893,26.731,50.585,26.731s43.057-10.737,50.584-26.731l.166-28.89Zm-73.22-50.806c3.6-6.31,12.563-10.516,22.58-10.516s19.038,4.206,22.636,10.516v13.725c-3.542,6.2-12.563,10.349-22.636,10.349s-19.094-4.15-22.58-10.349Zm47.319,72.169c-3.764,6.641-13.338,10.9-24.683,10.9-11.125,0-20.976-4.372-24.684-10.9V263.25c3.708-6.309,13.5-10.515,24.684-10.515,11.345,0,20.919,4.15,24.683,10.515ZM376.4,265.962l-59.827-89.713h-29v40.623h26.51v.387l62.539,94.085H402.3V176.249H376.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaNutritionix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 400 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"},\"child\":[]}]})(props);\n};\nexport function FaOctopusDeploy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.6,349.2c-45.891-39.09-36.67-77.877-16.095-128.11C475.16,134.04,415.967,34.14,329.93,8.3,237.04-19.6,134.252,24.341,99.677,117.147a180.862,180.862,0,0,0-10.988,73.544c1.733,29.543,14.717,52.97,24.09,80.3,17.2,50.161-28.1,92.743-66.662,117.582-46.806,30.2-36.319,39.857-8.428,41.858,23.378,1.68,44.478-4.548,65.265-15.045,9.2-4.647,40.687-18.931,45.13-28.588C135.9,413.388,111.122,459.5,126.621,488.9c19.1,36.229,67.112-31.77,76.709-45.812,8.591-12.572,42.963-81.279,63.627-46.926,18.865,31.361,8.6,76.391,35.738,104.622,32.854,34.2,51.155-18.312,51.412-44.221.163-16.411-6.1-95.852,29.9-59.944C405.428,418,436.912,467.8,472.568,463.642c38.736-4.516-22.123-67.967-28.262-78.695,5.393,4.279,53.665,34.128,53.818,9.52C498.234,375.678,468.039,359.8,455.6,349.2Z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassnikiSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z\"},\"child\":[]}]})(props);\n};\nexport function FaOdnoklassniki (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaOldRepublic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.76 10.23c7.5-.31 15-.28 22.5-.09 3.61.14 7.2.4 10.79.73 4.92.27 9.79 1.03 14.67 1.62 2.93.43 5.83.98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83.57 3.14 1.04 6.3 1.4 9.47.55 3.83.94 7.69 1.18 11.56.83 8.34.84 16.73.77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.503 246.503 0 0 1-56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66.91-9.34 1.73-14.03 2.48-5.25.66-10.5 1.44-15.79 1.74-6.69.66-13.41.84-20.12.81-6.82.03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49.14-3.51.34-7.01.7-10.51.31-3.17.46-6.37.92-9.52.41-2.81.65-5.65 1.16-8.44.7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23.1-18.43.99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.69-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8.11 7.14.38 14.28 1.22 21.37.62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91.29 5.81.61 8.72.9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.26 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75.13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1.9 3.02.66 6.2.69 9.31.02 4.1-.04 8.2.03 12.3.14 3.54-.02 7.09.11 10.63.08 2.38.02 4.76.05 7.14.16 5.77.06 11.53.15 17.3.11 2.91.02 5.82.13 8.74.03 1.63.13 3.28-.03 4.91-.91.12-1.82.18-2.73.16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73.84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.37-20.12c2.74.74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57.41 4.54.44 9.09.45 13.64.07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51.69-7.08 1.08-10.66 1.21-1.85.06-3.72.16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73.14-7.45.1-11.17.19-7.02.02-14.05.21-21.07.03-2.38-.03-4.76.03-7.14.17-5.07-.04-10.14.14-15.21.1-2.99-.24-6.04.51-8.96.66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46.86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61.93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07.32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.34-.01 221.02 0 1.35-.08 2.7.04 4.04.13 1.48.82 2.83 1.47 4.15.86 1.66 1.78 3.34 3.18 4.62.85.77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57.96-1.51 1.68-3.16 2.28-4.85.76-2.13.44-4.42.54-6.63.14-4.03-.02-8.06.14-12.09.03-5.89.03-11.77.06-17.66.14-3.62.03-7.24.11-10.86.15-4.03-.02-8.06.14-12.09.03-5.99.03-11.98.07-17.97.14-3.62.02-7.24.11-10.86.14-3.93-.02-7.86.14-11.78.03-5.99.03-11.98.06-17.97.16-3.94-.01-7.88.19-11.82.29 1.44.13 2.92.22 4.38.19 3.61.42 7.23.76 10.84.32 3.44.44 6.89.86 10.32.37 3.1.51 6.22.95 9.31.57 4.09.87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21.27.25.55.51.88.71.6.25 1.31-.07 1.7-.57.71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31.7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11.75 19.56 1.85 3.69.58 7.4 1.17 11.13 1.41 3.74.1 7.48.05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46.37 2.96.46 4.45.6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66.24-9.32.36-13.98.36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11.73 6.32.47 9.47.81 2.77.28 5.56.2 8.34.3 5.05.06 10.11.04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83.61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52.67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13.56-3.98.83-7.99 1.31-11.97.87-10.64 1.9-21.27 2.24-31.94.08-1.86.24-3.71.25-5.57.01-4.35.25-8.69.22-13.03-.01-2.38-.01-4.76 0-7.13.05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64.07-2.99.7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06.71-.12 1.07-.19.19 1.79.09 3.58.1 5.37v38.13c-.01 1.74.13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32.09-4.98-.03-.03-.39-.26-.91.16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54.04-.56.02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2.06 15.3-.12 3.36-.13 6.73.08 10.09-.07.12-.39.26-.77.37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36.05.72.12 1.08.2.98 3.85 1.73 7.76 2.71 11.61.36 1.42.56 2.88 1.03 4.27 2.53.18 5.07-.01 7.61.05 5.16.12 10.33.12 15.49.07.76-.01 1.52.03 2.28.08-.04.36-.07.72-.1 1.08-1.82.83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57.17-1.12.42-1.67.64-.15.55-.18 1.12-.12 1.69.87.48 1.82.81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6.38.13.78.27 1.13.49.4.27.23.79.15 1.18-1.66.13-3.31.03-4.97.04-5.17.01-10.33-.01-15.5.01-1.61.03-3.22-.02-4.82.21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36.01-.71.02-1.06.06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58.11-5.37zM65.05 168.33c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83.96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67.99 2.9 1.59 5.91 2.17 8.92.15.75.22 1.52.16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11.78-8.29.99-12.46 1.08-10.25.24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43.11-6.18.25-12.37 1.07-18.5.4-2.86.67-5.74 1.15-8.6.98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.73-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05.02 1.76.07 3.52.11 5.29.13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51.25-2.99.53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05.63-2.87 1.04-5.78 1.52-8.68.87-6.09 1.59-12.22 1.68-18.38.12-6.65.14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z\"},\"child\":[]}]})(props);\n};\nexport function FaOpencart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"},\"child\":[]}]})(props);\n};\nexport function FaOpenid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z\"},\"child\":[]}]})(props);\n};\nexport function FaOpera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"},\"child\":[]}]})(props);\n};\nexport function FaOptinMonster (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7.3-6.5.3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8.9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8.5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4.5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3.5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1.2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3.3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1.5-8.1.8-11.6.8-1.9-21.9-6.8-44-14.3-64.6 3.7.3 8.1.3 11.8.3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1.8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3.3 26.6.3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6.8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3.3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2.8 2.2.8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8.3 1.9.5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3.9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5.9-8.4-20.2-23.5-29.1-25.1z\"},\"child\":[]}]})(props);\n};\nexport function FaOrcid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.75 188.19h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.76h-29.84v-207.5h29.84zm-14.92-231.14a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1-19.57 19.57zM300 369h-81V161.26h80.6c76.73 0 110.44 54.83 110.44 103.85C410 318.39 368.38 369 300 369z\"},\"child\":[]}]})(props);\n};\nexport function FaOsi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 266.44C10.3 130.64 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0-64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6.6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4.8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3.6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPage4 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPagelines (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4.5 1.6.5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"},\"child\":[]}]})(props);\n};\nexport function FaPalfed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8.7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4.9 74.4 2.7 100v.2c.2 3.4.6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4.2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9.2 2.5.4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPatreon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z\"},\"child\":[]}]})(props);\n};\nexport function FaPaypal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4.7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9.7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPennyArcade (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M421.91 164.27c-4.49 19.45-1.4 6.06-15.1 65.29l39.73-10.61c-22.34-49.61-17.29-38.41-24.63-54.68zm-206.09 51.11c-20.19 5.4-11.31 3.03-39.63 10.58l4.46 46.19c28.17-7.59 20.62-5.57 34.82-9.34 42.3-9.79 32.85-56.42.35-47.43zm326.16-26.19l-45.47-99.2c-5.69-12.37-19.46-18.84-32.62-15.33-70.27 18.75-38.72 10.32-135.59 36.23a27.618 27.618 0 0 0-18.89 17.41C144.26 113.27 0 153.75 0 226.67c0 33.5 30.67 67.11 80.9 95.37l1.74 17.88a27.891 27.891 0 0 0-17.77 28.67l4.3 44.48c1.39 14.31 13.43 25.21 27.8 25.2 5.18-.01-3.01 1.78 122.53-31.76 12.57-3.37 21.12-15.02 20.58-28.02 216.59 45.5 401.99-5.98 399.89-84.83.01-28.15-22.19-66.56-97.99-104.47zM255.14 298.3l-21.91 5.88-48.44 12.91 2.46 23.55 20.53-5.51 4.51 44.51-115.31 30.78-4.3-44.52 20.02-5.35-11.11-114.64-20.12 5.39-4.35-44.5c178.15-47.54 170.18-46.42 186.22-46.65 56.66-1.13 64.15 71.84 42.55 104.43a86.7 86.7 0 0 1-50.75 33.72zm199.18 16.62l-3.89-39.49 14.9-3.98-6.61-14.68-57.76 15.42-4.1 17.54 19.2-5.12 4.05 39.54-112.85 30.07-4.46-44.43 20.99-5.59 33.08-126.47-17.15 4.56-4.2-44.48c93.36-24.99 65.01-17.41 135.59-36.24l66.67 145.47 20.79-5.56 4.3 44.48-108.55 28.96z\"},\"child\":[]}]})(props);\n};\nexport function FaPerbyte (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.314,284.578H246.6V383.3h58.711q24.423,0,38.193-13.77t13.77-36.11q0-21.826-14.032-35.335T305.314,284.578ZM149.435,128.7H90.724v98.723h58.711q24.42,0,38.19-13.773t13.77-36.107q0-21.826-14.029-35.338T149.435,128.7ZM366.647,32H81.353A81.445,81.445,0,0,0,0,113.352V398.647A81.445,81.445,0,0,0,81.353,480H366.647A81.445,81.445,0,0,0,448,398.647V113.352A81.445,81.445,0,0,0,366.647,32Zm63.635,366.647a63.706,63.706,0,0,1-63.635,63.635H81.353a63.706,63.706,0,0,1-63.635-63.635V113.352A63.706,63.706,0,0,1,81.353,49.718H366.647a63.706,63.706,0,0,1,63.635,63.634ZM305.314,128.7H246.6v98.723h58.711q24.423,0,38.193-13.773t13.77-36.107q0-21.826-14.032-35.338T305.314,128.7Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeriscope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3.1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhabricator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4.5.2 28.9.2 28.9l-9.1 9.1s-29.2-.9-29.7.4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5.5 29.5.5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4.6 20.7-23.5 20.7-23.5l13.1.2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2.9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3.8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1.1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixFramework (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4.1-.8.2-1.1.3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8.6-1.5 1.2-2.2 1.8.1.2.1.3.2.5.8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7.3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1.2-.3.3-.4.5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6.1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2.1-.2 2.1.6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4.2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7.3.2.4.5.7.9-.5 0-.7.1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1.2-.1.4-.2.6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2.1-.3.1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7.4-.1.9 0 1.5.3-.6.4-1.2.9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4.6-.8.9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5.1-.1.2 0 .4.4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7.5-.2.8-.4 1.1-.4 13.1.1 26.1.7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoenixSquadron (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 63.38C142.49 27.25 201.55 7.31 260.51 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.17 27 191 48.84 162.21 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3.3a203 203 0 0 1-35.82 15.37c-20 6.17-42.16 8.46-62.1.78 12.79 1.73 26.06.31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.57 526.57 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0-51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28.75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.64 183.64 0 0 0-14.21-104.64c20.78 32 32.34 69.58 35.71 107.48.49 12.73.49 25.51 0 38.23A243.21 243.21 0 0 1 482 371.34c-26.12 47.34-68 85.63-117.19 108-78.29 36.23-174.68 31.32-248-14.68A248.34 248.34 0 0 1 25.36 366 238.34 238.34 0 0 1 0 273.08v-31.34C3.93 172 40.87 105.82 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPhp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3.9.6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9.6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperHat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9.6 2.8.8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1.6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperPp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4.2-9.6.7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiperSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPiedPiper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M455.93,23.2C429.23,30,387.79,51.69,341.35,90.66A206,206,0,0,0,240,64C125.13,64,32,157.12,32,272s93.13,208,208,208,208-93.13,208-208a207.25,207.25,0,0,0-58.75-144.81,155.35,155.35,0,0,0-17,27.4A176.16,176.16,0,0,1,417.1,272c0,97.66-79.44,177.11-177.09,177.11a175.81,175.81,0,0,1-87.63-23.4c82.94-107.33,150.79-37.77,184.31-226.65,5.79-32.62,28-94.26,126.23-160.18C471,33.45,465.35,20.8,455.93,23.2ZM125,406.4A176.66,176.66,0,0,1,62.9,272C62.9,174.34,142.35,94.9,240,94.9a174,174,0,0,1,76.63,17.75C250.64,174.76,189.77,265.52,125,406.4Z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestP (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterestSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3.8-3.4 5-20.1 6.8-27.8.6-2.5.3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2.8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaPinterest (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3.8-3.4 5-20.3 6.9-28.1.6-2.5.3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaystation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9.6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z\"},\"child\":[]}]})(props);\n};\nexport function FaProductHunt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z\"},\"child\":[]}]})(props);\n};\nexport function FaPushed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 432 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPython (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4.1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8.1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3.1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z\"},\"child\":[]}]})(props);\n};\nexport function FaQq (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.754 420.445c-11.526 1.393-44.86-52.741-44.86-52.741 0 31.345-16.136 72.247-51.051 101.786 16.842 5.192 54.843 19.167 45.803 34.421-7.316 12.343-125.51 7.881-159.632 4.037-34.122 3.844-152.316 8.306-159.632-4.037-9.045-15.25 28.918-29.214 45.783-34.415-34.92-29.539-51.059-70.445-51.059-101.792 0 0-33.334 54.134-44.859 52.741-5.37-.65-12.424-29.644 9.347-99.704 10.261-33.024 21.995-60.478 40.144-105.779C60.683 98.063 108.982.006 224 0c113.737.006 163.156 96.133 160.264 214.963 18.118 45.223 29.912 72.85 40.144 105.778 21.768 70.06 14.716 99.053 9.346 99.704z\"},\"child\":[]}]})(props);\n};\nexport function FaQuinscape (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.36 237.36 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4.1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0-99.2-99.2z\"},\"child\":[]}]})(props);\n};\nexport function FaQuora (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7.1 41.8-5.4 75.6-16.7 100.5z\"},\"child\":[]}]})(props);\n};\nexport function FaRProject (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 581 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRaspberryPi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 407 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2.7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6.8C271.6.6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9.1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6.1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7.8 14.1.6 23.9.8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8.4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2.1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7.9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6.9 2.7 3.6 4.4 6.7 5.8-15.4.9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8.7 8.3.1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6.4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3.4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6.2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9.5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6.2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRavelry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.252,234.223c-1.208-10.34-1.7-20.826-3.746-31a310.306,310.306,0,0,0-9.622-36.6,184.068,184.068,0,0,0-30.874-57.5,251.154,251.154,0,0,0-18.818-21.689,237.362,237.362,0,0,0-47.113-36.116A240.8,240.8,0,0,0,331.356,26.65c-11.018-3.1-22.272-5.431-33.515-7.615-6.78-1.314-13.749-1.667-20.627-2.482-.316-.036-.6-.358-.9-.553q-16.143.009-32.288.006c-2.41.389-4.808.925-7.236,1.15a179.331,179.331,0,0,0-34.256,7.1,221.5,221.5,0,0,0-39.768,16.355,281.385,281.385,0,0,0-38.08,24.158c-6.167,4.61-12.268,9.36-17.974,14.518C96.539,88.494,86.34,97.72,76.785,107.555a243.878,243.878,0,0,0-33.648,43.95,206.488,206.488,0,0,0-20.494,44.6,198.2,198.2,0,0,0-7.691,34.759A201.13,201.13,0,0,0,13.4,266.385a299.716,299.716,0,0,0,4.425,40.24,226.865,226.865,0,0,0,16.73,53.3,210.543,210.543,0,0,0,24,39.528,213.589,213.589,0,0,0,26.358,28.416A251.313,251.313,0,0,0,126.7,458.455a287.831,287.831,0,0,0,55.9,25.277,269.5,269.5,0,0,0,40.641,9.835c6.071,1.01,12.275,1.253,18.412,1.873a4.149,4.149,0,0,1,1.19.56h32.289c2.507-.389,5-.937,7.527-1.143,16.336-1.332,32.107-5.335,47.489-10.717A219.992,219.992,0,0,0,379.1,460.322c9.749-6.447,19.395-13.077,28.737-20.1,5.785-4.348,10.988-9.5,16.3-14.457,3.964-3.7,7.764-7.578,11.51-11.5a232.162,232.162,0,0,0,31.427-41.639c9.542-16.045,17.355-32.905,22.3-50.926,2.859-10.413,4.947-21.045,7.017-31.652,1.032-5.279,1.251-10.723,1.87-16.087.036-.317.358-.6.552-.9V236.005A9.757,9.757,0,0,1,498.252,234.223Zm-161.117-1.15s-16.572-2.98-28.47-2.98c-27.2,0-33.57,14.9-33.57,37.04V360.8H201.582V170.062H275.1v31.931c8.924-26.822,26.771-36.189,62.04-36.189Z\"},\"child\":[]}]})(props);\n};\nexport function FaReact (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1.9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2.6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6.4 19.5.6 29.5.6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8.9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z\"},\"child\":[]}]})(props);\n};\nexport function FaReacteurope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M250.6 211.74l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2.1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0-4.2-3.4h-6.9a3.68 3.68 0 0 0-4 3.4l-11 59.2c-.5 2.7.9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5.04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0-2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0-2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.42 364.42 0 0 0-35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.83 587.83 0 0 0-84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2.1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0-93.9.9 547.76 547.76 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.25 598.25 0 0 0-50.7 64.2 569.69 569.69 0 0 0-84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.38 695.38 0 0 0 93.9-.9 547.76 547.76 0 0 1-42.2 52.4q5.1 5.25 10.2 10.2a588.47 588.47 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1-10.7-5.7l-.1.1a19.61 19.61 0 0 1-5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1-72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1-6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.91 711.91 0 0 1-112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1-3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.81 548.81 0 0 1-72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4.2-8.4-1a17.58 17.58 0 0 1-6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.64c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.72 711.72 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1.1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.71 359.71 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0-1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0-1.9-1.9H309a1.81 1.81 0 0 0-2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0-2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0-2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0-2-1.9h-22.2a1.81 1.81 0 0 0-2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0-2-2.06zm-7.4-99.4L286 192l-7.1.1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaReadme (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z\"},\"child\":[]}]})(props);\n};\nexport function FaRebel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1.8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7.8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4.6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5.8-2.8.8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z\"},\"child\":[]}]})(props);\n};\nexport function FaRedRiver (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditAlien (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRedditSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z\"},\"child\":[]}]})(props);\n};\nexport function FaReddit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRedhat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M341.52 285.56c33.65 0 82.34-6.94 82.34-47 .22-6.74.86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.11 228.47 106.11M429 254.84c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.74.08-235.91-73.65-235.91-122.33a49.55 49.55 0 0 1 4.06-19.72C58.56 200.86 0 208.93 0 260.63c0 84.67 200.63 189 359.49 189 121.79 0 152.51-55.08 152.51-98.58 0-34.21-29.59-73.05-82.93-96.24\"},\"child\":[]}]})(props);\n};\nexport function FaRenren (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9.5-4.4.7-8.6.7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResearchgate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1.6-33.6.8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaResolving (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRev (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M289.67 274.89a65.57 65.57 0 1 1-65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.55-5.05h-.13a204.69 204.69 0 0 0-74.32-153l-45.38 26.2a157.07 157.07 0 0 1 71.81 131.84C381.2 361.5 310.73 432 224.11 432S67 361.5 67 274.88c0-81.88 63-149.27 143-156.43v39.12l108.77-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.57 0 111.59 89.12 202.29 200.06 205v.11h210.16V269.84z\"},\"child\":[]}]})(props);\n};\nexport function FaRocketchat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M284.046,224.8a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,284.046,224.8Zm-110.45,0a34.114,34.114,0,1,0,34.317,34.113A34.217,34.217,0,0,0,173.6,224.8Zm220.923,0a34.114,34.114,0,1,0,34.317,34.113A34.215,34.215,0,0,0,394.519,224.8Zm153.807-55.319c-15.535-24.172-37.31-45.57-64.681-63.618-52.886-34.817-122.374-54-195.666-54a405.975,405.975,0,0,0-72.032,6.357,238.524,238.524,0,0,0-49.51-36.588C99.684-11.7,40.859.711,11.135,11.421A14.291,14.291,0,0,0,5.58,34.782C26.542,56.458,61.222,99.3,52.7,138.252c-33.142,33.9-51.112,74.776-51.112,117.337,0,43.372,17.97,84.248,51.112,118.148,8.526,38.956-26.154,81.816-47.116,103.491a14.284,14.284,0,0,0,5.555,23.34c29.724,10.709,88.549,23.147,155.324-10.2a238.679,238.679,0,0,0,49.51-36.589A405.972,405.972,0,0,0,288,460.14c73.313,0,142.8-19.159,195.667-53.975,27.371-18.049,49.145-39.426,64.679-63.619,17.309-26.923,26.07-55.916,26.07-86.125C574.394,225.4,565.634,196.43,548.326,169.485ZM284.987,409.9a345.65,345.65,0,0,1-89.446-11.5l-20.129,19.393a184.366,184.366,0,0,1-37.138,27.585,145.767,145.767,0,0,1-52.522,14.87c.983-1.771,1.881-3.563,2.842-5.356q30.258-55.68,16.325-100.078c-32.992-25.962-52.778-59.2-52.778-95.4,0-83.1,104.254-150.469,232.846-150.469s232.867,67.373,232.867,150.469C517.854,342.525,413.6,409.9,284.987,409.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaRockrms (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2.2-74.2.2l101.5 118.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRust (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.52,249.75,486.7,236.24c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35,7.35,0,0,0-2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35,7.35,0,0,0-4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35,7.35,0,0,0-6.95-10.39l-25.82.91q-1.79-2.22-3.61-4.4L439,81.84A7.36,7.36,0,0,0,430.16,73L405,78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35,7.35,0,0,0-10.39-7L367.7,53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4,25.08a7.35,7.35,0,0,0-11.54-4.79L326,35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35,7.35,0,0,0-12.25-2.44l-17.5,18.72c-1.95-.21-3.91-.38-5.88-.55L262.25,3.48a7.35,7.35,0,0,0-12.5,0L236.24,25.3c-2,.17-3.93.34-5.88.55L212.86,7.13a7.35,7.35,0,0,0-12.25,2.44l-9,24c-1.89.55-3.79,1.08-5.66,1.68l-20.82-15a7.35,7.35,0,0,0-11.54,4.79l-4.15,25.41c-1.73.9-3.45,1.79-5.16,2.73L120.88,42.55a7.35,7.35,0,0,0-10.39,7l.92,25.81c-1.49,1.19-3,2.39-4.42,3.61L81.84,73A7.36,7.36,0,0,0,73,81.84L78.93,107c-1.23,1.45-2.43,2.93-3.62,4.41l-25.81-.91a7.42,7.42,0,0,0-6.37,3.26,7.35,7.35,0,0,0-.57,7.13l10.66,23.41c-.94,1.7-1.83,3.43-2.73,5.16L25.08,153.6a7.35,7.35,0,0,0-4.79,11.54l15,20.82c-.59,1.87-1.13,3.77-1.68,5.66l-24,9a7.35,7.35,0,0,0-2.44,12.25l18.72,17.5c-.21,1.95-.38,3.91-.55,5.88L3.48,249.75a7.35,7.35,0,0,0,0,12.5L25.3,275.76c.17,2,.34,3.92.55,5.87L7.13,299.13a7.35,7.35,0,0,0,2.44,12.25l24,9c.55,1.89,1.08,3.78,1.68,5.65l-15,20.83a7.35,7.35,0,0,0,4.79,11.54l25.42,4.15c.9,1.72,1.79,3.45,2.73,5.14L42.56,391.12a7.35,7.35,0,0,0,.57,7.13,7.13,7.13,0,0,0,6.37,3.26l25.83-.91q1.77,2.22,3.6,4.4L73,430.16A7.36,7.36,0,0,0,81.84,439L107,433.07q2.18,1.83,4.41,3.61l-.92,25.82a7.35,7.35,0,0,0,10.39,6.95l23.43-10.68c1.69.94,3.42,1.83,5.14,2.73l4.15,25.42a7.34,7.34,0,0,0,11.54,4.78l20.83-15c1.86.6,3.76,1.13,5.65,1.68l9,24a7.36,7.36,0,0,0,12.25,2.44l17.5-18.72c1.95.21,3.92.38,5.88.55l13.51,21.82a7.35,7.35,0,0,0,12.5,0l13.51-21.82c2-.17,3.93-.34,5.88-.56l17.5,18.73a7.36,7.36,0,0,0,12.25-2.44l9-24c1.89-.55,3.78-1.08,5.65-1.68l20.82,15a7.34,7.34,0,0,0,11.54-4.78l4.15-25.42c1.72-.9,3.45-1.79,5.15-2.73l23.42,10.68a7.35,7.35,0,0,0,10.39-6.95l-.91-25.82q2.22-1.79,4.4-3.61L430.16,439a7.36,7.36,0,0,0,8.84-8.84L433.07,405q1.83-2.17,3.61-4.4l25.82.91a7.23,7.23,0,0,0,6.37-3.26,7.35,7.35,0,0,0,.58-7.13L458.77,367.7c.94-1.7,1.83-3.43,2.73-5.15l25.42-4.15a7.35,7.35,0,0,0,4.79-11.54l-15-20.83c.59-1.87,1.13-3.76,1.67-5.65l24-9a7.35,7.35,0,0,0,2.44-12.25l-18.72-17.5c.21-1.95.38-3.91.55-5.87l21.82-13.51a7.35,7.35,0,0,0,0-12.5Zm-151,129.08A13.91,13.91,0,0,0,341,389.51l-7.64,35.67A187.51,187.51,0,0,1,177,424.44l-7.64-35.66a13.87,13.87,0,0,0-16.46-10.68l-31.51,6.76a187.38,187.38,0,0,1-16.26-19.21H258.3c1.72,0,2.89-.29,2.89-1.91V309.55c0-1.57-1.17-1.91-2.89-1.91H213.47l.05-34.35H262c4.41,0,23.66,1.28,29.79,25.87,1.91,7.55,6.17,32.14,9.06,40,2.89,8.82,14.6,26.46,27.1,26.46H407a187.3,187.3,0,0,1-17.34,20.09Zm25.77,34.49A15.24,15.24,0,1,1,368,398.08h.44A15.23,15.23,0,0,1,383.24,413.32Zm-225.62-.68a15.24,15.24,0,1,1-15.25-15.25h.45A15.25,15.25,0,0,1,157.62,412.64ZM69.57,234.15l32.83-14.6a13.88,13.88,0,0,0,7.06-18.33L102.69,186h26.56V305.73H75.65A187.65,187.65,0,0,1,69.57,234.15ZM58.31,198.09a15.24,15.24,0,0,1,15.23-15.25H74a15.24,15.24,0,1,1-15.67,15.24Zm155.16,24.49.05-35.32h63.26c3.28,0,23.07,3.77,23.07,18.62,0,12.29-15.19,16.7-27.68,16.7ZM399,306.71c-9.8,1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4,18.86-11.95,38.46-29.64,38.46-53.26,0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.32A187.49,187.49,0,0,1,221.21,70.06l23.47,24.6a13.82,13.82,0,0,0,19.6.44l26.26-25a187.51,187.51,0,0,1,128.37,91.43l-18,40.57A14,14,0,0,0,408,220.43l34.59,15.33a187.12,187.12,0,0,1,.4,32.54H423.71c-1.91,0-2.69,1.27-2.69,3.13v8.82C421,301,409.31,305.58,399,306.71ZM240,60.21A15.24,15.24,0,0,1,255.21,45h.45A15.24,15.24,0,1,1,240,60.21ZM436.84,214a15.24,15.24,0,1,1,0-30.48h.44a15.24,15.24,0,0,1-.44,30.48Z\"},\"child\":[]}]})(props);\n};\nexport function FaSafari (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M274.69,274.69l-37.38-37.38L166,346ZM256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8ZM411.85,182.79l14.78-6.13A8,8,0,0,1,437.08,181h0a8,8,0,0,1-4.33,10.46L418,197.57a8,8,0,0,1-10.45-4.33h0A8,8,0,0,1,411.85,182.79ZM314.43,94l6.12-14.78A8,8,0,0,1,331,74.92h0a8,8,0,0,1,4.33,10.45l-6.13,14.78a8,8,0,0,1-10.45,4.33h0A8,8,0,0,1,314.43,94ZM256,60h0a8,8,0,0,1,8,8V84a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V68A8,8,0,0,1,256,60ZM181,74.92a8,8,0,0,1,10.46,4.33L197.57,94a8,8,0,1,1-14.78,6.12l-6.13-14.78A8,8,0,0,1,181,74.92Zm-63.58,42.49h0a8,8,0,0,1,11.31,0L140,128.72A8,8,0,0,1,140,140h0a8,8,0,0,1-11.31,0l-11.31-11.31A8,8,0,0,1,117.41,117.41ZM60,256h0a8,8,0,0,1,8-8H84a8,8,0,0,1,8,8h0a8,8,0,0,1-8,8H68A8,8,0,0,1,60,256Zm40.15,73.21-14.78,6.13A8,8,0,0,1,74.92,331h0a8,8,0,0,1,4.33-10.46L94,314.43a8,8,0,0,1,10.45,4.33h0A8,8,0,0,1,100.15,329.21Zm4.33-136h0A8,8,0,0,1,94,197.57l-14.78-6.12A8,8,0,0,1,74.92,181h0a8,8,0,0,1,10.45-4.33l14.78,6.13A8,8,0,0,1,104.48,193.24ZM197.57,418l-6.12,14.78a8,8,0,0,1-14.79-6.12l6.13-14.78A8,8,0,1,1,197.57,418ZM264,444a8,8,0,0,1-8,8h0a8,8,0,0,1-8-8V428a8,8,0,0,1,8-8h0a8,8,0,0,1,8,8Zm67-6.92h0a8,8,0,0,1-10.46-4.33L314.43,418a8,8,0,0,1,4.33-10.45h0a8,8,0,0,1,10.45,4.33l6.13,14.78A8,8,0,0,1,331,437.08Zm63.58-42.49h0a8,8,0,0,1-11.31,0L372,383.28A8,8,0,0,1,372,372h0a8,8,0,0,1,11.31,0l11.31,11.31A8,8,0,0,1,394.59,394.59ZM286.25,286.25,110.34,401.66,225.75,225.75,401.66,110.34ZM437.08,331h0a8,8,0,0,1-10.45,4.33l-14.78-6.13a8,8,0,0,1-4.33-10.45h0A8,8,0,0,1,418,314.43l14.78,6.12A8,8,0,0,1,437.08,331ZM444,264H428a8,8,0,0,1-8-8h0a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8h0A8,8,0,0,1,444,264Z\"},\"child\":[]}]})(props);\n};\nexport function FaSalesforce (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248.89 245.64h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.66-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.22 23.76a8.63 8.63 0 0 0-3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93.95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.39-165.36 136.43-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.89 92.18-213.81-5.17C8.91 428.78-50.19 266.52 53.36 205.61 18.61 126.18 76 32 167.67 32a124.24 124.24 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.69 640 232zm-519.55 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17.71 1.64-.47.24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0-.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1-19-6.35c-.47-.23-1.42-.71-1.65.71l-2.4 7.47c-.47.94.23 1.18.23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0-.24 1.41l2.59 7.06a1 1 0 0 0 1.18.7c.65 0 6.8-4 16.93-4 4 0 7.06.71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0-7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61.32-21.64-22.78-21.64zM199 200.24a1.11 1.11 0 0 0-1.18-1.18H188a1.11 1.11 0 0 0-1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16.23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12.15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.35-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18.71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0-.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1-19-6.35 1 1 0 0 0-1.65.71l-2.35 7.52c-.47.94.23 1.18.23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.09 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14.94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17.47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0-1.17 1.18l-1.42 7.76c0 .7.24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41.71-.24.71-2.59 6.82-2.83 7.53s0 1.41.47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52.09.3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0-1.18-1.17h-9.4a1.11 1.11 0 0 0-1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91.05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0-.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94.47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53.23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59.74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0-1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76.47-.24.71-.71.24-1.88l-2.36-6.83a1.26 1.26 0 0 0-1.41-.7c-2.59.94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01.94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z\"},\"child\":[]}]})(props);\n};\nexport function FaSass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.84 378.92c-.3.6-.6 1.08 0 0zm249.13-87a131.16 131.16 0 0 0-58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.83 122.83 0 0 0-5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4.8-.7 1.3-.9 1.7.3-.5.5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4.3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.87-65.2-99.07-116.5 1-18.7 7.5-67.8 127.07-127.4 98-48.8 176.35-35.4 189.84-5.6 19.4 42.5-41.89 121.6-143.66 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.17-11.8 61.78-23.8 109.87-90.1 95.77-145.6C386.52 18.32 293-.18 204.57 31.22c-52.69 18.7-109.67 48.1-150.66 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.06 125.7-1.6.9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.57-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4.7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.24 201.24 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31.31 0 0 0 .1.2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.72 450.1 270 450.1 270a201.24 201.24 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.18 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.42 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9.8-.5 1.2-.7 1.2-.7.9-.6 1.9-1.1 2.9-1.7 8.29 30.4.3 57.2-19.1 78.3zm134.36-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5.1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSchlix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2.4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"},\"child\":[]}]})(props);\n};\nexport function FaScribd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9.6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9.2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchengin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 460 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSellcast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8.1.1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8.1.1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSellsy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M539.71 237.308c3.064-12.257 4.29-24.821 4.29-37.384C544 107.382 468.618 32 376.076 32c-77.22 0-144.634 53.012-163.02 127.781-15.322-13.176-34.934-20.53-55.157-20.53-46.271 0-83.962 37.69-83.962 83.961 0 7.354.92 15.015 3.065 22.369-42.9 20.225-70.785 63.738-70.785 111.234C6.216 424.843 61.68 480 129.401 480h381.198c67.72 0 123.184-55.157 123.184-123.184.001-56.384-38.916-106.025-94.073-119.508zM199.88 401.554c0 8.274-7.048 15.321-15.321 15.321H153.61c-8.274 0-15.321-7.048-15.321-15.321V290.626c0-8.273 7.048-15.321 15.321-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v110.928zm89.477 0c0 8.274-7.048 15.321-15.322 15.321h-30.949c-8.274 0-15.321-7.048-15.321-15.321V270.096c0-8.274 7.048-15.321 15.321-15.321h30.949c8.274 0 15.322 7.048 15.322 15.321v131.458zm89.477 0c0 8.274-7.047 15.321-15.321 15.321h-30.949c-8.274 0-15.322-7.048-15.322-15.321V238.84c0-8.274 7.048-15.321 15.322-15.321h30.949c8.274 0 15.321 7.048 15.321 15.321v162.714zm87.027 0c0 8.274-7.048 15.321-15.322 15.321h-28.497c-8.274 0-15.321-7.048-15.321-15.321V176.941c0-8.579 7.047-15.628 15.321-15.628h28.497c8.274 0 15.322 7.048 15.322 15.628v224.613z\"},\"child\":[]}]})(props);\n};\nexport function FaServicestack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z\"},\"child\":[]}]})(props);\n};\nexport function FaShirtsinbulk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z\"},\"child\":[]}]})(props);\n};\nexport function FaShopify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M388.32,104.1a4.66,4.66,0,0,0-4.4-4c-2,0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.76,472S388.72,106.5,388.32,104.1ZM288.65,70.47a116.67,116.67,0,0,0-7.21-17.61C271,32.85,255.42,22,237,22a15,15,0,0,0-4,.4c-.4-.8-1.2-1.2-1.6-2C223.4,11.63,213,7.63,200.58,8c-24,.8-48,18-67.25,48.83-13.61,21.62-24,48.84-26.82,70.06-27.62,8.4-46.83,14.41-47.23,14.81-14,4.4-14.41,4.8-16,18-1.2,10-38,291.82-38,291.82L307.86,504V65.67a41.66,41.66,0,0,0-4.4.4S297.86,67.67,288.65,70.47ZM233.41,87.69c-16,4.8-33.63,10.4-50.84,15.61,4.8-18.82,14.41-37.63,25.62-50,4.4-4.4,10.41-9.61,17.21-12.81C232.21,54.86,233.81,74.48,233.41,87.69ZM200.58,24.44A27.49,27.49,0,0,1,215,28c-6.4,3.2-12.81,8.41-18.81,14.41-15.21,16.42-26.82,42-31.62,66.45-14.42,4.41-28.83,8.81-42,12.81C131.33,83.28,163.75,25.24,200.58,24.44ZM154.15,244.61c1.6,25.61,69.25,31.22,73.25,91.66,2.8,47.64-25.22,80.06-65.65,82.47-48.83,3.2-75.65-25.62-75.65-25.62l10.4-44s26.82,20.42,48.44,18.82c14-.8,19.22-12.41,18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44,27.22-93.27,94.47-97.68,26-1.6,39.23,4.81,39.23,4.81L221.4,225.39s-17.21-8-37.63-6.4C154.15,221,153.75,239.8,154.15,244.61ZM249.42,82.88c0-12-1.6-29.22-7.21-43.63,18.42,3.6,27.22,24,31.23,36.43Q262.63,78.68,249.42,82.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaShopware (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.5 455.41A246.17 246.17 0 0 1 256 504C118.81 504 8 393 8 256 8 118.81 119 8 256 8a247.39 247.39 0 0 1 165.7 63.5 3.57 3.57 0 0 1-2.86 6.18A418.62 418.62 0 0 0 362.13 74c-129.36 0-222.4 53.47-222.4 155.35 0 109 92.13 145.88 176.83 178.73 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.09a3.64 3.64 0 0 0-1.27-2.44c-51.76-43-93.62-60.48-144.48-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.34 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.09z\"},\"child\":[]}]})(props);\n};\nexport function FaSimplybuilt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSistrix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSith (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 32l69.71 118.75-58.86-11.52 69.84 91.03a146.741 146.741 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.75-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.78 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.75 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21.78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.21 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.21 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.87s89.65 34.18 123.84 0c34.18-34.18 34.19-89.68 0-123.87-17.09-17.09-39.5-25.61-61.92-25.61z\"},\"child\":[]}]})(props);\n};\nexport function FaSketch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSkyatlas (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4.1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSkype (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSlackHash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.2 270.4c-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-30.3-90 45.4-15.1c19.1-6.2 29.1-26.8 23-45.9-6.2-19-26.9-29.1-46-22.9l-45.4 15.1-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-93.4 31.2-15.7-47c-6.2-19-26.9-29.1-46-22.9-19.1 6.2-29.1 26.8-23 45.9l15.7 47-45.3 15c-19.1 6.2-29.1 26.8-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l30.3 90L78 354.8c-19 6.2-29.1 26.9-23 45.9 5 14.5 19.1 24 33.6 24.6 6.8 1 12-1.6 57.7-16.8l15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 93.6-31.3 15.7 47c5.9 16.9 24.7 29 46 22.9 19.1-6.2 29.1-26.8 23-45.9l-15.7-47 45.4-15.1c19-6 29.1-26.7 22.9-45.7zm-254.1 47.2l-30.3-90.2 93.5-31.3 30.3 90.2-93.5 31.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSlack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.84c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.98c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.96 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.98 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.88c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.84c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z\"},\"child\":[]}]})(props);\n};\nexport function FaSlideshare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7.1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7.3-56.6.3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7.3 92.8.3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchatGhost (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.846 392.673c-5.211 12.157-27.239 21.089-67.36 27.318-2.064 2.786-3.775 14.686-6.507 23.956-1.625 5.566-5.623 8.869-12.128 8.869l-.297-.005c-9.395 0-19.203-4.323-38.852-4.323-26.521 0-35.662 6.043-56.254 20.588-21.832 15.438-42.771 28.764-74.027 27.399-31.646 2.334-58.025-16.908-72.871-27.404-20.714-14.643-29.828-20.582-56.241-20.582-18.864 0-30.736 4.72-38.852 4.72-8.073 0-11.213-4.922-12.422-9.04-2.703-9.189-4.404-21.263-6.523-24.13-20.679-3.209-67.31-11.344-68.498-32.15a10.627 10.627 0 0 1 8.877-11.069c69.583-11.455 100.924-82.901 102.227-85.934.074-.176.155-.344.237-.515 3.713-7.537 4.544-13.849 2.463-18.753-5.05-11.896-26.872-16.164-36.053-19.796-23.715-9.366-27.015-20.128-25.612-27.504 2.437-12.836 21.725-20.735 33.002-15.453 8.919 4.181 16.843 6.297 23.547 6.297 5.022 0 8.212-1.204 9.96-2.171-2.043-35.936-7.101-87.29 5.687-115.969C158.122 21.304 229.705 15.42 250.826 15.42c.944 0 9.141-.089 10.11-.089 52.148 0 102.254 26.78 126.723 81.643 12.777 28.65 7.749 79.792 5.695 116.009 1.582.872 4.357 1.942 8.599 2.139 6.397-.286 13.815-2.389 22.069-6.257 6.085-2.846 14.406-2.461 20.48.058l.029.01c9.476 3.385 15.439 10.215 15.589 17.87.184 9.747-8.522 18.165-25.878 25.018-2.118.835-4.694 1.655-7.434 2.525-9.797 3.106-24.6 7.805-28.616 17.271-2.079 4.904-1.256 11.211 2.46 18.748.087.168.166.342.239.515 1.301 3.03 32.615 74.46 102.23 85.934 6.427 1.058 11.163 7.877 7.725 15.859z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchatSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6.5 314.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C159.1 100 206.7 96 220.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSnapchat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm169.5 338.9c-3.5 8.1-18.1 14-44.8 18.2-1.4 1.9-2.5 9.8-4.3 15.9-1.1 3.7-3.7 5.9-8.1 5.9h-.2c-6.2 0-12.8-2.9-25.8-2.9-17.6 0-23.7 4-37.4 13.7-14.5 10.3-28.4 19.1-49.2 18.2-21 1.6-38.6-11.2-48.5-18.2-13.8-9.7-19.8-13.7-37.4-13.7-12.5 0-20.4 3.1-25.8 3.1-5.4 0-7.5-3.3-8.3-6-1.8-6.1-2.9-14.1-4.3-16-13.8-2.1-44.8-7.5-45.5-21.4-.2-3.6 2.3-6.8 5.9-7.4 46.3-7.6 67.1-55.1 68-57.1 0-.1.1-.2.2-.3 2.5-5 3-9.2 1.6-12.5-3.4-7.9-17.9-10.7-24-13.2-15.8-6.2-18-13.4-17-18.3 1.6-8.5 14.4-13.8 21.9-10.3 5.9 2.8 11.2 4.2 15.7 4.2 3.3 0 5.5-.8 6.6-1.4-1.4-23.9-4.7-58 3.8-77.1C183.1 100 230.7 96 244.7 96c.6 0 6.1-.1 6.7-.1 34.7 0 68 17.8 84.3 54.3 8.5 19.1 5.2 53.1 3.8 77.1 1.1.6 2.9 1.3 5.7 1.4 4.3-.2 9.2-1.6 14.7-4.2 4-1.9 9.6-1.6 13.6 0 6.3 2.3 10.3 6.8 10.4 11.9.1 6.5-5.7 12.1-17.2 16.6-1.4.6-3.1 1.1-4.9 1.7-6.5 2.1-16.4 5.2-19 11.5-1.4 3.3-.8 7.5 1.6 12.5.1.1.1.2.2.3.9 2 21.7 49.5 68 57.1 4 1 7.1 5.5 4.9 10.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSoundcloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2.8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1.6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7.6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3.1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSourcetree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.86 202.86 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.18 203.18 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 391.78C-15.41 303.59-8 167.42 80.64 87.64s224.8-73 304.21 15.24 72 224.36-16.64 304.14c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.91 35-346.23-67.5zm213.31-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33.29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23.18 96.42.33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75.41-23.25 31-25.37 37.53-25.26.43 0 26.62.26 39.62 17.37z\"},\"child\":[]}]})(props);\n};\nexport function FaSpeakerDeck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M213.86 296H100a100 100 0 0 1 0-200h132.84a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.82a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.86c26.48 0 26.46-40 0-40zM298 416a120.21 120.21 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0-19.66-20H296.42a60.77 60.77 0 0 0 0-80h136.93c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpotify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSquarespace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.12 343.34c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.24 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.95 445.1c19.27 19.29 50.53 19.31 69.82.04l.04-.04 119.25-119.24c38.59-38.59 38.59-101.14 0-139.72-38.59-38.59-101.15-38.59-139.72 0l-157.22 157.2zm244.53-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.18c-19.27 19.29-50.53 19.31-69.82.05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01.01c-9.65 9.64-9.66 25.28-.02 34.93l.02.02c38.58 38.57 101.14 38.57 139.72 0l157.2-157.2c9.65-9.65 9.65-25.29.01-34.93zm-261.99 87.33l157.18-157.18c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.72 290.93c-19.28 19.29-50.56 19.3-69.85.01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218.03 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02.02L28.93 186.14c-38.58 38.59-38.58 101.14 0 139.72 38.6 38.59 101.13 38.59 139.73.01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.21-157.19c19.28-19.29 50.55-19.3 69.84-.02l.02.02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.13-38.59-139.72 0L81.33 238.54c-9.65 9.64-9.65 25.28-.01 34.93h.01z\"},\"child\":[]}]})(props);\n};\nexport function FaStackExchange (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStackOverflow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"},\"child\":[]}]})(props);\n};\nexport function FaStackpath (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.84c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18.56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.38-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.18h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.94 325L347 186.78h-31.09L268 325zm106.52-138.22h-31.09L325.46 325h29.94z\"},\"child\":[]}]})(props);\n};\nexport function FaStaylinked (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 440 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7.7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3.4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7.9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1.1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9.5l160.4 159c3.7 3.5 10 3.7 14.1.5l45.8-35.8c4.1-3.2 4.4-8.7.7-12.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4.5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z\"},\"child\":[]}]})(props);\n};\nexport function FaSteamSymbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5.2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9.1 76.2-33.9 76.2-76.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSteam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3.1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaStickerMule (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.7 199.6c-1.3.3.3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3.5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8.4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5.5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5.5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4.5 1 1 2 1.5 3.5.5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5.5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5.3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6.5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3.8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStrava (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z\"},\"child\":[]}]})(props);\n};\nexport function FaStripeS (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.09 396.09 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStripe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z\"},\"child\":[]}]})(props);\n};\nexport function FaStudiovinari (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3.7 20.3.7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleuponCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaStumbleupon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperpowers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"},\"child\":[]}]})(props);\n};\nexport function FaSupple (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7.4 15.5.6 23.4.6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6.2 23.3.5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSuse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.08 102.66s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.06a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2.3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9.5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5.4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3.5-76.2-25.4-81.6-28.2-.3-.4.1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7.8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3.1-.1-.9-.3-.9.7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0-25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z\"},\"child\":[]}]})(props);\n};\nexport function FaSwift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 156.09c0-4.51-.08-9-.2-13.52a196.31 196.31 0 0 0-2.58-29.42 99.62 99.62 0 0 0-9.22-28A94.08 94.08 0 0 0 394.84 44a99.17 99.17 0 0 0-28-9.22 195 195 0 0 0-29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.14c-4.51 0-9 .08-13.52.2-2.45.07-4.91.15-7.37.27a171.68 171.68 0 0 0-22.06 2.32 103.06 103.06 0 0 0-21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0-18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0-9.22 28 196.31 196.31 0 0 0-2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.83c0 4.51.08 9 .21 13.51a196.08 196.08 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5.12 9 .17 13.52.2H323.91c4.51 0 9-.08 13.52-.2a196.59 196.59 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.84a99.3 99.3 0 0 0 9.22-28 194.79 194.79 0 0 0 2.59-29.42c.12-4.5.17-9 .2-13.51V172.14c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42.25c-39.5 21-92.53 22.54-145.85-.38A234.64 234.64 0 0 1 45 290.12a230.63 230.63 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.09-147.22a197.09 197.09 0 0 1-18.78-25.9c43.7 40 112.7 90.22 137.48 104.12-52.57-55.49-98.89-123.94-96.72-121.74 82.79 83.42 159.18 130.59 159.18 130.59 2.88 1.58 5 2.85 6.73 4a127.44 127.44 0 0 0 4.16-12.47c13.22-48.33-1.66-103.58-35.31-149.2C329.61 141.75 375 229.34 356.4 303.42c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSymfony (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.74 143.54c-11.47.41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.85 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.72-29 34.46-58.4 39.82-71.58 40.26-24.65.85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71.11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.35 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.23 140.13 251.94 197 262 205.29c37.17-109 100.53-105.46 102.43-105.53 25.16-.81 44.19 10.59 44.83 28.65.25 7.69-4.17 22.59-19.52 23.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTeamspeak (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M244.2 346.79c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6.6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0-8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.64 222.64 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.59 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.29v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.79c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegramPlane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"},\"child\":[]}]})(props);\n};\nexport function FaTelegram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm121.8 169.9l-40.7 191.8c-3 13.6-11.1 16.9-22.4 10.5l-62-45.7-29.9 28.8c-3.3 3.3-6.1 6.1-12.5 6.1l4.4-63.1 114.9-103.8c5-4.4-1.1-6.9-7.7-2.5l-142 89.4-61.2-19.1c-13.3-4.2-13.6-13.3 2.8-19.7l239.1-92.2c11.1-4 20.8 2.7 17.2 19.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTencentWeibo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1.1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaTheRedYeti (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.23 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0-25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5.5a239.36 239.36 0 0 0-68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0-.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.26 194.26 0 0 0-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.18 200.18 0 0 0-27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7.7 3.4 1.2 5.2 0 25.5.4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.84 181.84 0 0 0 495 255a44.74 44.74 0 0 0-6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.44 242.44 0 0 1-27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1-1.7-15.2c5.4.5 8.8 3.4 9.3 10.1.5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8.9-.7 14.8h-2.5a62.32 62.32 0 0 0-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5.5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.68 234.68 0 0 0-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1.5c-11.8 13.5-27.8 21.9-48.5 24.8a201.26 201.26 0 0 1-23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0-14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7.5 1.2c2 .2 3.9.5 6.2.7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4.5 13 1 19.4 1.2 6.4 0 8.4.5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.13 141.13 0 0 1-3 28.3 209.91 209.91 0 0 1-16 46l2.5.5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2.2-.2.2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.27-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3.5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.57 262.57 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2.7 89.5zm115.3-214.4l-2.5.5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.82 214.82 0 0 1-93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2.4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7.5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.21 254.21 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0-14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2.5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5.5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6.3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5.5.5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0-.5-1.7 14.21 14.21 0 0 0-13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0-2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9.5.5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1.5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2.5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1.5c-5.9 1.2-12.3 4.2-19.4 8.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeco (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.85c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.81 503.74c-9.93 5.66-26 5.57-35.85-.21L17.86 395.12C8 389.34 0 375.38 0 364V146.71c0-11.44 8-25.36 17.91-31.08zm-77.4 199.83c-15.94 0-31.89.14-47.83.14v101.45H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.14 100.29l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.59h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.65-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaThemeisle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 88.286c0-10 6.286-21.714 17.715-21.714 11.142 0 17.714 11.714 17.714 21.714 0 10.285-6.572 21.714-17.714 21.714C214.286 110 208 98.571 208 88.286zm304 160c0 36.001-11.429 102.286-36.286 129.714-22.858 24.858-87.428 61.143-120.857 70.572l-1.143.286v32.571c0 16.286-12.572 30.571-29.143 30.571-10 0-19.429-5.714-24.572-14.286-5.427 8.572-14.856 14.286-24.856 14.286-10 0-19.429-5.714-24.858-14.286-5.142 8.572-14.571 14.286-24.57 14.286-10.286 0-19.429-5.714-24.858-14.286-5.143 8.572-14.571 14.286-24.571 14.286-18.857 0-29.429-15.714-29.429-32.857-16.286 12.285-35.715 19.428-56.571 19.428-22 0-43.429-8.285-60.286-22.857 10.285-.286 20.571-2.286 30.285-5.714-20.857-5.714-39.428-18.857-52-36.286 21.37 4.645 46.209 1.673 67.143-11.143-22-22-56.571-58.857-68.572-87.428C1.143 321.714 0 303.714 0 289.429c0-49.714 20.286-160 86.286-160 10.571 0 18.857 4.858 23.143 14.857a158.792 158.792 0 0 1 12-15.428c2-2.572 5.714-5.429 7.143-8.286 7.999-12.571 11.714-21.142 21.714-34C182.571 45.428 232 17.143 285.143 17.143c6 0 12 .285 17.714 1.143C313.714 6.571 328.857 0 344.572 0c14.571 0 29.714 6 40 16.286.857.858 1.428 2.286 1.428 3.428 0 3.714-10.285 13.429-12.857 16.286 4.286 1.429 15.714 6.858 15.714 12 0 2.857-2.857 5.143-4.571 7.143 31.429 27.714 49.429 67.143 56.286 108 4.286-5.143 10.285-8.572 17.143-8.572 10.571 0 20.857 7.144 28.571 14.001C507.143 187.143 512 221.714 512 248.286zM188 89.428c0 18.286 12.571 37.143 32.286 37.143 19.714 0 32.285-18.857 32.285-37.143 0-18-12.571-36.857-32.285-36.857-19.715 0-32.286 18.858-32.286 36.857zM237.714 194c0-19.714 3.714-39.143 8.571-58.286-52.039 79.534-13.531 184.571 68.858 184.571 21.428 0 42.571-7.714 60-20 2-7.429 3.714-14.857 3.714-22.572 0-14.286-6.286-21.428-20.572-21.428-4.571 0-9.143.857-13.429 1.714-63.343 12.668-107.142 3.669-107.142-63.999zm-41.142 254.858c0-11.143-8.858-20.857-20.286-20.857-11.429 0-20 9.715-20 20.857v32.571c0 11.143 8.571 21.142 20 21.142 11.428 0 20.286-9.715 20.286-21.142v-32.571zm49.143 0c0-11.143-8.572-20.857-20-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20-10 20-21.142v-32.571zm49.713 0c0-11.143-8.857-20.857-20.285-20.857-11.429 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.857 21.142 20.286 21.142 11.428 0 20.285-9.715 20.285-21.142v-32.571zm49.715 0c0-11.143-8.857-20.857-20.286-20.857-11.428 0-20.286 9.715-20.286 20.857v32.571c0 11.143 8.858 21.142 20.286 21.142 11.429 0 20.286-10 20.286-21.142v-32.571zM421.714 286c-30.857 59.142-90.285 102.572-158.571 102.572-96.571 0-160.571-84.572-160.571-176.572 0-16.857 2-33.429 6-49.714-20 33.715-29.714 72.572-29.714 111.429 0 60.286 24.857 121.715 71.429 160.857 5.143-9.714 14.857-16.286 26-16.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.571-14.286 24.858-14.286 10 0 19.428 5.714 24.571 14.286 5.429-8.571 14.857-14.286 24.858-14.286 10 0 19.428 5.714 24.857 14.286 5.143-8.571 14.571-14.286 24.572-14.286 10.857 0 20.857 6.572 25.714 16 43.427-36.286 68.569-92 71.426-148.286zm10.572-99.714c0-53.714-34.571-105.714-92.572-105.714-30.285 0-58.571 15.143-78.857 36.857C240.862 183.812 233.41 254 302.286 254c28.805 0 97.357-28.538 84.286 36.857 28.857-26 45.714-65.714 45.714-104.571z\"},\"child\":[]}]})(props);\n};\nexport function FaThinkPeaks (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5.1-235.8-404.6z\"},\"child\":[]}]})(props);\n};\nexport function FaTiktok (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,209.91a210.06,210.06,0,0,1-122.77-39.25V349.38A162.55,162.55,0,1,1,185,188.31V278.2a74.62,74.62,0,1,0,52.23,71.18V0l88,0a121.18,121.18,0,0,0,1.86,22.17h0A122.18,122.18,0,0,0,381,102.39a121.43,121.43,0,0,0,67,20.14Z\"},\"child\":[]}]})(props);\n};\nexport function FaTradeFederation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5.1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTrello (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8.1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTripadvisor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.91,178.82,576,127.58H471.66a326.11,326.11,0,0,0-367,0H0l47.09,51.24A143.911,143.911,0,0,0,241.86,390.73L288,440.93l46.11-50.17A143.94,143.94,0,0,0,575.88,285.18h-.03A143.56,143.56,0,0,0,528.91,178.82ZM144.06,382.57a97.39,97.39,0,1,1,97.39-97.39A97.39,97.39,0,0,1,144.06,382.57ZM288,282.37c0-64.09-46.62-119.08-108.09-142.59a281,281,0,0,1,216.17,0C334.61,163.3,288,218.29,288,282.37Zm143.88,100.2h-.01a97.405,97.405,0,1,1,.01,0ZM144.06,234.12h-.01a51.06,51.06,0,1,0,51.06,51.06v-.11A51,51,0,0,0,144.06,234.12Zm287.82,0a51.06,51.06,0,1,0,51.06,51.06A51.06,51.06,0,0,0,431.88,234.12Z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblrSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2.5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2.5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTumblr (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M391.17,103.47H352.54v109.7h38.63ZM285,103H246.37V212.75H285ZM120.83,0,24.31,91.42V420.58H140.14V512l96.53-91.42h77.25L487.69,256V0ZM449.07,237.75l-77.22,73.12H294.61l-67.6,64v-64H140.14V36.58H449.07Z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitterSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8.2 5.7.2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3.6 10.4.8 15.8.8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.447 65.447 0 0 1-29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z\"},\"child\":[]}]})(props);\n};\nexport function FaTwitter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z\"},\"child\":[]}]})(props);\n};\nexport function FaTypo3 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"},\"child\":[]}]})(props);\n};\nexport function FaUber (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUbuntu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1.7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaUikit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbraco (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 510 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.35 8C118.36 7.83 7.14 118.72 7 255.68c-.07 137 111 248.2 248 248.27 136.85 0 247.82-110.7 248-247.67S392.34 8.17 255.35 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78.22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.81 224.81 0 0 1 0-30.71 418.37 418.37 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.62 380.62 0 0 0-2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.64 242.64 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0-2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05.81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.71 415.71 0 0 1 3.61 43.88 228.06 228.06 0 0 1-.04 30.73z\"},\"child\":[]}]})(props);\n};\nexport function FaUncharted (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M171.73,232.813A5.381,5.381,0,0,0,176.7,229.5,48.081,48.081,0,0,1,191.6,204.244c1.243-.828,1.657-2.484,1.657-4.141a4.22,4.22,0,0,0-2.071-3.312L74.429,128.473,148.958,85a9.941,9.941,0,0,0,4.968-8.281,9.108,9.108,0,0,0-4.968-8.281L126.6,55.6a9.748,9.748,0,0,0-9.523,0l-100.2,57.966a9.943,9.943,0,0,0-4.969,8.281V236.954a9.109,9.109,0,0,0,4.969,8.281L39.235,258.07a8.829,8.829,0,0,0,4.968,1.242,9.4,9.4,0,0,0,6.625-2.484,10.8,10.8,0,0,0,2.9-7.039V164.5L169.66,232.4A4.5,4.5,0,0,0,171.73,232.813ZM323.272,377.73a12.478,12.478,0,0,0-4.969,1.242l-74.528,43.062V287.882c0-2.9-2.9-5.8-6.211-4.555a53.036,53.036,0,0,1-28.984.414,4.86,4.86,0,0,0-6.21,4.555V421.619l-74.529-43.061a8.83,8.83,0,0,0-4.969-1.242,9.631,9.631,0,0,0-9.523,9.523v26.085a9.107,9.107,0,0,0,4.969,8.281l100.2,57.553A8.829,8.829,0,0,0,223.486,480a11.027,11.027,0,0,0,4.969-1.242l100.2-57.553a9.941,9.941,0,0,0,4.968-8.281V386.839C332.8,382.285,328.24,377.73,323.272,377.73ZM286.007,78a23,23,0,1,0-23-23A23,23,0,0,0,286.007,78Zm63.627-10.086a23,23,0,1,0,23,23A23,23,0,0,0,349.634,67.914ZM412.816,151.6a23,23,0,1,0-23-23A23,23,0,0,0,412.816,151.6Zm-63.182-9.2a23,23,0,1,0,23,23A23,23,0,0,0,349.634,142.4Zm-63.627,83.244a23,23,0,1,0-23-23A23,23,0,0,0,286.007,225.648Zm-62.074,36.358a23,23,0,1,0-23-23A23,23,0,0,0,223.933,262.006Zm188.883-82.358a23,23,0,1,0,23,23A23,23,0,0,0,412.816,179.648Zm0,72.272a23,23,0,1,0,23,23A23,23,0,0,0,412.816,251.92Z\"},\"child\":[]}]})(props);\n};\nexport function FaUniregistry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5.2-4.9.2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z\"},\"child\":[]}]})(props);\n};\nexport function FaUnity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M498.11,206.4,445.31,14.72,248.2,66.08,219,116.14l-59.2-.43L15.54,256,159.82,396.32l59.17-.43,29.24,50,197.08,51.36,52.8-191.62-30-49.63ZM223.77,124.2,374.55,86.51,288,232.33H114.87Zm0,263.63L114.87,279.71H288l86.55,145.81Zm193,14L330.17,256l86.58-145.84L458.56,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaUnsplash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448,230.17V480H0V230.17H141.13V355.09H306.87V230.17ZM306.87,32H141.13V156.91H306.87Z\"},\"child\":[]}]})(props);\n};\nexport function FaUntappd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1.6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4.9-2.5 4.4-2.3 7.4.1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4.9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3.5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5.1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6.3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6.5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUps (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4.6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2.6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUsb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4.8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9.3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUsps (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8.1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z\"},\"child\":[]}]})(props);\n};\nexport function FaUssunnah (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2.8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7.2-9.4.5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5.2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6.5 9.3.5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3.8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3.2.6.5 1.4.6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2.3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8.5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6.9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z\"},\"child\":[]}]})(props);\n};\nexport function FaVaadin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViacoin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeoSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4.2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z\"},\"child\":[]}]})(props);\n};\nexport function FaViadeo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"},\"child\":[]}]})(props);\n};\nexport function FaViber (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444 49.9C431.3 38.2 379.9.9 265.3.4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9.4-85.7.4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9.4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9.6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4.7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5.9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9.1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7.5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1.8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeoV (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVimeo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3.9 49 22.5 47.1 64.7z\"},\"child\":[]}]})(props);\n};\nexport function FaVine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M545 117.7c3.7-12.5 0-21.7-17.8-21.7h-58.9c-15 0-21.9 7.9-25.6 16.7 0 0-30 73.1-72.4 120.5-13.7 13.7-20 18.1-27.5 18.1-3.7 0-9.4-4.4-9.4-16.9V117.7c0-15-4.2-21.7-16.6-21.7h-92.6c-9.4 0-15 7-15 13.5 0 14.2 21.2 17.5 23.4 57.5v86.8c0 19-3.4 22.5-10.9 22.5-20 0-68.6-73.4-97.4-157.4-5.8-16.3-11.5-22.9-26.6-22.9H38.8c-16.8 0-20.2 7.9-20.2 16.7 0 15.6 20 93.1 93.1 195.5C160.4 378.1 229 416 291.4 416c37.5 0 42.1-8.4 42.1-22.9 0-66.8-3.4-73.1 15.4-73.1 8.7 0 23.7 4.4 58.7 38.1 40 40 46.6 57.9 69 57.9h58.9c16.8 0 25.3-8.4 20.4-25-11.2-34.9-86.9-106.7-90.3-111.5-8.7-11.2-6.2-16.2 0-26.2.1-.1 72-101.3 79.4-135.6z\"},\"child\":[]}]})(props);\n};\nexport function FaVnv (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z\"},\"child\":[]}]})(props);\n};\nexport function FaVuejs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWatchmanMonitoring (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,16C123.452,16,16,123.452,16,256S123.452,496,256,496,496,388.548,496,256,388.548,16,256,16ZM121.69,429.122C70.056,388.972,36.741,326.322,36.741,256a218.519,218.519,0,0,1,9.587-64.122l102.9-17.895-.121,10.967-13.943,2.013s-.144,12.5-.144,19.549a12.778,12.778,0,0,0,4.887,10.349l9.468,7.4Zm105.692-283.27,8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46,0,0,0-32.342,30.474-39.529,34.5-7.078,3.964-.144,9.344-.144,9.344l8.481,7.618-.048,4.369L75.982,131.045c39.644-56.938,105.532-94.3,180.018-94.3A218.754,218.754,0,0,1,420.934,111.77l-193.512,37.7Zm34.063,329.269-33.9-250.857,9.467-7.4a12.778,12.778,0,0,0,4.888-10.349c0-7.044-.144-19.549-.144-19.549l-13.943-2.013-.116-10.474,241.711,31.391A218.872,218.872,0,0,1,475.259,256C475.259,375.074,379.831,472.212,261.445,475.121Z\"},\"child\":[]}]})(props);\n};\nexport function FaWaze (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.17 201.67C516.69 287.53 471.23 369.59 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1-51.57-49c-6.44.19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.92c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.26C94.8 95.2 193.12 32 288.09 32c102.48 0 197.15 70.67 214.08 169.67zM373.51 388.28c42-19.18 81.33-56.71 96.29-102.14 40.48-123.09-64.15-228-181.71-228-83.45 0-170.32 55.42-186.07 136-9.53 48.91 5 131.35-68.75 131.35C58.21 358.6 91.6 378.11 127 389.54c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9.82a51.69 51.69 0 0 1 78.78-16.42zM205.12 187.13c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.57 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.61 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06.28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z\"},\"child\":[]}]})(props);\n};\nexport function FaWeebly (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.09 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143.03c0 28.96 4.18 33.27 77.17 233.48 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.65 77.5-205.58 77.5-227.2.63-48.32-36.01-83.47-86.92-83.47zm26.34 114.81l-65.57 176.44c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.42h-.95L216.08 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.55c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.82h.95l44.66-136.79c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.79h.95l44.03-139.82c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z\"},\"child\":[]}]})(props);\n};\nexport function FaWeibo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8.3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4.6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"},\"child\":[]}]})(props);\n};\nexport function FaWeixin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M385.2 167.6c6.4 0 12.6.3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2.1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3.1 10-9.9 19.6-24.4 19.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsappSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4.9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6.1 2.4.1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3.3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9.9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWhatsapp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWhmcs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6.3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1.5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2.2 6.9.1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"},\"child\":[]}]})(props);\n};\nexport function FaWikipediaW (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 51.2l-.3 12.2c-28.1.8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3.3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4.2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5.3v13.1c-19.4.6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4.3-3.6 0-10.3.3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5.8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1.2.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindows (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.38 131.69c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.66-28.48-108.57c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.89 55.28 167.23C49.73 140.51 23.86 128.96 0 131.96l65.57 247.93s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.41 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.93c-24.42-3.07-49.82 8.93-55.3 35.27zm115.78 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.07s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.41l-.02.01v-8.98zm163.44 84.08L640 132.78s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47.73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.74-82.97 123.36s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.52z\"},\"child\":[]}]})(props);\n};\nexport function FaWizardsOfTheCoast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M219.19 345.69c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92.26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.75 75.94c-.34 1.7-.55 1.67.79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.34-78.03-54.73-6.02-124.38 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79.26c63.89-58.4 131.19-77.25 184.35-73.85 58.4 3.67 100.03 34.04 100.03 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.28 240.42c.79 7.07 4.19 10.21 9.17 10.47 5.5.26 9.43-2.62 10.47-6.55.79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.75 89.32 13.1 226.8.79 241.2c-1.05.52-1.31.79.79 1.31 60.49 16.5 155.81 81.18 196.13 202.16l1.05.26c55.25-69.92 140.88-128.05 236.99-128.05 80.92 0 130.15 42.16 130.15 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2.79.79.79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26.52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78.79 3.4 2.09 9.69 2.36 14.93 0 1.05.79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.74 176 489.43 89.32 342.26 89.32zm-99.24 289.62c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5.28.39 12.13 16.57-4.71 31.16zm2.09-136.43l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.58l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52.26c1.31 1.83 2.09 2.88 3.4 4.71l-.26.52c-1.05-.26-2.36-.79-5.24.26-2.09.79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83.52 1.83 1.83 5.5l-.26.26c-3.06.61-4.65.34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26.26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76.26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52.26 3.14 4.98-.26.52c-3.53-1.76-7.35.76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26.52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4.79-8.9 2.62-12.83 3.93l-.26.26c.79 2.62 3.14 9.95 4.19 13.88.79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88.26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26.26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26.26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45.54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26.26c-4.71.52-14.14 2.36-22.52 4.19l-.26-.26.79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26.26c.52 2.36.79 3.14 1.57 5.5l-.26.26c-1.14-1.14-3.34-3.2-16.24-.79l-.26.26c.26 1.57 1.05 6.55 1.57 9.95l.26.26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26.26c.26 2.09 1.57 9.43 2.09 12.57l.26.26c1.15.38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25.02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24.79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69.26 2.36.52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26.26c-.52 1.83-1.83 6.02-1.83 6.28l-.52.52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26.52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69.79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.44c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24.59-7.27.26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09.79 5.5 2.09 7.59 2.88.48.48.18-1.87-1.05 25.14-.24 1.81.02 2.6.8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27.09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26.26-5.76-4.45.26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26.26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59.75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38.79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.53-191.95-129.62-53.42-1.05-94.27 15.45-132.76 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05.26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.58 101.05 231.87 93.23 231.52c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4.52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.98-35.88 67.04 1.05 167.33 40.85 199.8 139.83.78 2.1-.01 2.63-.79.27zM203.48 152.43s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.76 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.43 67.07c-58.4 0-106.05 12.05-114.96 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57.26c6.55-1.83 48.97-13.88 110.24-13.88 180.16 0 301.67 116.79 301.67 223.37v9.95c0 1.31.79 2.62 1.05.52.52-2.09.79-8.64.79-19.64.26-83.79-96.63-227.55-321.57-227.55zm211.06 169.68c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81.52 13.35 6.02 14.66 3.67 1.05 8.9.52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.65c1.83.52 3.14 1.05 5.76 1.83 0-1.83.52-8.38.79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z\"},\"child\":[]}]})(props);\n};\nexport function FaWodu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M178.414 339.706H141.1L112.166 223.475h-.478L83.228 339.706H45.2L0 168.946H37.548L64.574 285.177h.478L94.707 168.946h35.157l29.178 117.667h.479L187.5 168.946h36.831zM271.4 212.713c38.984 0 64.1 25.828 64.1 65.291 0 39.222-25.111 65.05-64.1 65.05-38.743 0-63.855-25.828-63.855-65.05C207.547 238.541 232.659 212.713 271.4 212.713zm0 104.753c23.2 0 30.133-19.852 30.133-39.462 0-19.852-6.934-39.7-30.133-39.7-27.7 0-29.894 19.85-29.894 39.7C241.508 297.614 248.443 317.466 271.4 317.466zM435.084 323.922h-.478c-7.893 13.392-21.765 19.132-37.548 19.132-37.31 0-55.485-32.045-55.485-66.246 0-33.243 18.415-64.095 54.767-64.095 14.589 0 28.938 6.218 36.831 18.416h.24V168.946h33.96v170.76H435.084zM405.428 238.3c-22.24 0-29.894 19.134-29.894 39.463 0 19.371 8.848 39.7 29.894 39.7 22.482 0 29.178-19.613 29.178-39.94C434.606 257.436 427.432 238.3 405.428 238.3zM592.96 339.706H560.673V322.487h-.718c-8.609 13.87-23.436 20.567-37.786 20.567-36.113 0-45.2-20.328-45.2-50.941V216.061h33.959V285.9c0 20.329 5.979 30.372 21.765 30.372 18.415 0 26.306-10.283 26.306-35.393V216.061H592.96zM602.453 302.876H640v36.83H602.453z\"},\"child\":[]}]})(props);\n};\nexport function FaWolfPackBattalion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.73 471.53l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.11-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.21 456.43 239.73l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.18l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.79l-58 38.71-3.52 93.25L369.78 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.64 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.64-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.33 59.82-3.52-93.25-58.06-38.71C185 65.1 135.77 22.87 95.3 0c-17.54 61.12-4.4 118.76 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.35 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.23 81.37 149.11 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.06 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1-18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.68 376.52L181.52 366c-7.47-4.36-13.76-8.42-19.35-12.32.6 7.26.27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94.9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpressSimple (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"},\"child\":[]}]})(props);\n};\nexport function FaWordpress (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8.9 0 1.8.1 2.8.2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7.3 13.7.3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWpbeginner (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.799 322.374C519.01 386.682 466.961 480 370.944 480c-39.602 0-78.824-17.687-100.142-50.04-6.887.356-22.702.356-29.59 0C219.848 462.381 180.588 480 141.069 480c-95.49 0-148.348-92.996-91.855-157.626C-29.925 190.523 80.479 32 256.006 32c175.632 0 285.87 158.626 206.793 290.374zm-339.647-82.972h41.529v-58.075h-41.529v58.075zm217.18 86.072v-23.839c-60.506 20.915-132.355 9.198-187.589-33.971l.246 24.897c51.101 46.367 131.746 57.875 187.343 32.913zm-150.753-86.072h166.058v-58.075H189.579v58.075z\"},\"child\":[]}]})(props);\n};\nexport function FaWpexplorer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWpforms (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2.1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z\"},\"child\":[]}]})(props);\n};\nexport function FaWpressr (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm171.33 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03.06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.81 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24.1 28.48.02 42.72.05 6.24.01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6.23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21.08 30.43.02 45.64.04 5.56.01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33.04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43.05 52.86 0 79.29.05 12.44.02 13.93-13.65 3.9-13.64-25.26.03-50.52.02-75.78.02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09.06 25.98.02 130.78.03 6.08-.01 8.03 2.79 5.62 8.27z\"},\"child\":[]}]})(props);\n};\nexport function FaXbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7.1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"},\"child\":[]}]})(props);\n};\nexport function FaXingSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6.2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1.1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z\"},\"child\":[]}]})(props);\n};\nexport function FaXing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8.3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1.2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYCombinator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z\"},\"child\":[]}]})(props);\n};\nexport function FaYahoo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.69,141.06,167,284.23,111,141.06H14.93L120.76,390.19,82.19,480h94.17L317.27,141.06Zm105.4,135.79a58.22,58.22,0,1,0,58.22,58.22A58.22,58.22,0,0,0,329.09,276.85ZM394.65,32l-93,223.47H406.44L499.07,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaYammer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M421.78 152.17A23.06 23.06 0 0 0 400.9 112c-.83.43-1.71.9-2.63 1.4-15.25 8.4-118.33 80.62-106.69 88.77s82.04-23.61 130.2-50zm0 217.17c-48.16-26.38-118.64-58.1-130.2-50s91.42 80.35 106.69 88.74c.92.51 1.8 1 2.63 1.41a23.07 23.07 0 0 0 20.88-40.15zM464.21 237c-.95 0-1.95-.06-3-.06-17.4 0-142.52 13.76-136.24 26.51s83.3 18.74 138.21 18.76a23 23 0 0 0 1-45.21zM31 96.65a24.88 24.88 0 0 1 46.14-18.4l81 205.06h1.21l77-203.53a23.52 23.52 0 0 1 44.45 15.27L171.2 368.44C152.65 415.66 134.08 448 77.91 448a139.67 139.67 0 0 1-23.81-1.95 21.31 21.31 0 0 1 6.9-41.77c.66.06 10.91.66 13.86.66 30.47 0 43.74-18.94 58.07-59.41z\"},\"child\":[]}]})(props);\n};\nexport function FaYandexInternational (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z\"},\"child\":[]}]})(props);\n};\nexport function FaYandex (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYarn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4.1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3.8-10.8-5.7.8-19.2.8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3.8 1.4 13.7.8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2.9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4.2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"},\"child\":[]}]})(props);\n};\nexport function FaYelp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M42.9 240.32l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.45a22.79 22.79 0 0 1-28.21-19.6 197.16 197.16 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.25a199.45 199.45 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.94 490l3.9-110.82c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.34-109.92l58.81 94a22.93 22.93 0 0 0 34 5.5 198.36 198.36 0 0 0 52.71-67.61A23 23 0 0 0 364.17 370l-105.42-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.33-132.23a197.44 197.44 0 0 0-50.41-69.31 22.85 22.85 0 0 0-34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.63a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0-9.9 32l104.12 180.44c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0-24.5-22.8 320.37 320.37 0 0 0-112.33 30.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1.6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutubeSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z\"},\"child\":[]}]})(props);\n};\nexport function FaYoutube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z\"},\"child\":[]}]})(props);\n};\nexport function FaZhihu (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M170.54 148.13v217.54l23.43.01 7.71 26.37 42.01-26.37h49.53V148.13H170.54zm97.75 193.93h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.75h72.82v170.31zm-118.46-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.12 0 396.34c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.95c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412.02-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.09-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.35c-19.78 0-130.91.93-131.06.93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.22 16.49-232.36 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15.89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.41s2.82 22.31 25.51 22.85h107.94v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08.11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.36c9.68 0 8.7-23.78 8.7-23.78l.03-.01z\"},\"child\":[]}]})(props);\n};\nexport function FaAd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressBook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaAddressCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaAdjust (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z\"},\"child\":[]}]})(props);\n};\nexport function FaAirFreshener (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignCenter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignJustify (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaAlignRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z\"},\"child\":[]}]})(props);\n};\nexport function FaAllergies (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaAmbulance (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaAmericanSignLanguageInterpreting (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z\"},\"child\":[]}]})(props);\n};\nexport function FaAnchor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDoubleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z\"},\"child\":[]}]})(props);\n};\nexport function FaAngleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z\"},\"child\":[]}]})(props);\n};\nexport function FaAngry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z\"},\"child\":[]}]})(props);\n};\nexport function FaAnkh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z\"},\"child\":[]}]})(props);\n};\nexport function FaAppleAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z\"},\"child\":[]}]})(props);\n};\nexport function FaArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaArchway (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowAltCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAltH (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAltV (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z\"},\"child\":[]}]})(props);\n};\nexport function FaArrowsAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z\"},\"child\":[]}]})(props);\n};\nexport function FaAssistiveListeningSystems (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaAsterisk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"},\"child\":[]}]})(props);\n};\nexport function FaAt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z\"},\"child\":[]}]})(props);\n};\nexport function FaAtlas (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z\"},\"child\":[]}]})(props);\n};\nexport function FaAtom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z\"},\"child\":[]}]})(props);\n};\nexport function FaAudioDescription (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z\"},\"child\":[]}]})(props);\n};\nexport function FaAward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z\"},\"child\":[]}]})(props);\n};\nexport function FaBabyCarriage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBaby (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBackspace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z\"},\"child\":[]}]})(props);\n};\nexport function FaBackward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBacon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z\"},\"child\":[]}]})(props);\n};\nexport function FaBacteria (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z\"},\"child\":[]}]})(props);\n};\nexport function FaBacterium (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z\"},\"child\":[]}]})(props);\n};\nexport function FaBahai (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScaleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScaleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z\"},\"child\":[]}]})(props);\n};\nexport function FaBalanceScale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z\"},\"child\":[]}]})(props);\n};\nexport function FaBandAid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBarcode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z\"},\"child\":[]}]})(props);\n};\nexport function FaBars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBaseballBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBasketballBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z\"},\"child\":[]}]})(props);\n};\nexport function FaBath (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryEmpty (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryQuarter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBatteryThreeQuarters (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z\"},\"child\":[]}]})(props);\n};\nexport function FaBed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z\"},\"child\":[]}]})(props);\n};\nexport function FaBeer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBellSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z\"},\"child\":[]}]})(props);\n};\nexport function FaBezierCurve (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBible (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"},\"child\":[]}]})(props);\n};\nexport function FaBicycle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z\"},\"child\":[]}]})(props);\n};\nexport function FaBiking (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBinoculars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z\"},\"child\":[]}]})(props);\n};\nexport function FaBiohazard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaBirthdayCake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z\"},\"child\":[]}]})(props);\n};\nexport function FaBlenderPhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBlender (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z\"},\"child\":[]}]})(props);\n};\nexport function FaBlind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z\"},\"child\":[]}]})(props);\n};\nexport function FaBlog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z\"},\"child\":[]}]})(props);\n};\nexport function FaBold (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z\"},\"child\":[]}]})(props);\n};\nexport function FaBolt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z\"},\"child\":[]}]})(props);\n};\nexport function FaBomb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z\"},\"child\":[]}]})(props);\n};\nexport function FaBong (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z\"},\"child\":[]}]})(props);\n};\nexport function FaBookDead (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaBookMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBookOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z\"},\"child\":[]}]})(props);\n};\nexport function FaBookReader (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z\"},\"child\":[]}]})(props);\n};\nexport function FaBook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderAll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderNone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBorderStyle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBowlingBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxTissue (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z\"},\"child\":[]}]})(props);\n};\nexport function FaBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z\"},\"child\":[]}]})(props);\n};\nexport function FaBoxes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaBraille (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaBrain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z\"},\"child\":[]}]})(props);\n};\nexport function FaBreadSlice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcaseMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z\"},\"child\":[]}]})(props);\n};\nexport function FaBriefcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z\"},\"child\":[]}]})(props);\n};\nexport function FaBroadcastTower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z\"},\"child\":[]}]})(props);\n};\nexport function FaBroom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z\"},\"child\":[]}]})(props);\n};\nexport function FaBrush (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaBug (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z\"},\"child\":[]}]})(props);\n};\nexport function FaBuilding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaBullhorn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z\"},\"child\":[]}]})(props);\n};\nexport function FaBullseye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaBurn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z\"},\"child\":[]}]})(props);\n};\nexport function FaBusAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaBusinessTime (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalculator (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarDay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarTimes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendarWeek (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaCameraRetro (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCamera (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z\"},\"child\":[]}]})(props);\n};\nexport function FaCampground (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z\"},\"child\":[]}]})(props);\n};\nexport function FaCandyCane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCannabis (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z\"},\"child\":[]}]})(props);\n};\nexport function FaCapsules (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z\"},\"child\":[]}]})(props);\n};\nexport function FaCarAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCarBattery (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaCarCrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z\"},\"child\":[]}]})(props);\n};\nexport function FaCarSide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCaravan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretSquareUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z\"},\"child\":[]}]})(props);\n};\nexport function FaCaretUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z\"},\"child\":[]}]})(props);\n};\nexport function FaCarrot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCartArrowDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z\"},\"child\":[]}]})(props);\n};\nexport function FaCartPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCashRegister (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z\"},\"child\":[]}]})(props);\n};\nexport function FaCat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaCertificate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z\"},\"child\":[]}]})(props);\n};\nexport function FaChair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboardTeacher (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChalkboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChargingStation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z\"},\"child\":[]}]})(props);\n};\nexport function FaChartArea (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z\"},\"child\":[]}]})(props);\n};\nexport function FaChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChartLine (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChartPie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckDouble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCheckSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"},\"child\":[]}]})(props);\n};\nexport function FaCheese (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBishop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessBoard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z\"},\"child\":[]}]})(props);\n};\nexport function FaChessKnight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessPawn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChessQueen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z\"},\"child\":[]}]})(props);\n};\nexport function FaChessRook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaChess (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaChevronUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"},\"child\":[]}]})(props);\n};\nexport function FaChild (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z\"},\"child\":[]}]})(props);\n};\nexport function FaChurch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z\"},\"child\":[]}]})(props);\n};\nexport function FaCircleNotch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z\"},\"child\":[]}]})(props);\n};\nexport function FaCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z\"},\"child\":[]}]})(props);\n};\nexport function FaCity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaClinicMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboardList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z\"},\"child\":[]}]})(props);\n};\nexport function FaClone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z\"},\"child\":[]}]})(props);\n};\nexport function FaClosedCaptioning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudDownloadAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMeatball (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoonRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudShowersHeavy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSunRain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCloudUploadAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z\"},\"child\":[]}]})(props);\n};\nexport function FaCloud (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z\"},\"child\":[]}]})(props);\n};\nexport function FaCocktail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z\"},\"child\":[]}]})(props);\n};\nexport function FaCodeBranch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z\"},\"child\":[]}]})(props);\n};\nexport function FaCoffee (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z\"},\"child\":[]}]})(props);\n};\nexport function FaCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCogs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z\"},\"child\":[]}]})(props);\n};\nexport function FaCoins (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z\"},\"child\":[]}]})(props);\n};\nexport function FaColumns (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentDots (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaComment (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCommentsDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z\"},\"child\":[]}]})(props);\n};\nexport function FaComments (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z\"},\"child\":[]}]})(props);\n};\nexport function FaCompactDisc (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCompass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z\"},\"child\":[]}]})(props);\n};\nexport function FaCompressAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z\"},\"child\":[]}]})(props);\n};\nexport function FaCompressArrowsAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaCompress (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaConciergeBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaCookieBite (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCookie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaCopyright (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z\"},\"child\":[]}]})(props);\n};\nexport function FaCouch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaCropAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z\"},\"child\":[]}]})(props);\n};\nexport function FaCrop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaCross (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaCrosshairs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaCrow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaCrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaCrutch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z\"},\"child\":[]}]})(props);\n};\nexport function FaCube (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z\"},\"child\":[]}]})(props);\n};\nexport function FaCubes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z\"},\"child\":[]}]})(props);\n};\nexport function FaCut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDatabase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z\"},\"child\":[]}]})(props);\n};\nexport function FaDeaf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z\"},\"child\":[]}]})(props);\n};\nexport function FaDemocrat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z\"},\"child\":[]}]})(props);\n};\nexport function FaDesktop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z\"},\"child\":[]}]})(props);\n};\nexport function FaDharmachakra (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z\"},\"child\":[]}]})(props);\n};\nexport function FaDiagnoses (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD20 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceD6 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceFour (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceOne (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceSix (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceThree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDiceTwo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaDigitalTachograph (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z\"},\"child\":[]}]})(props);\n};\nexport function FaDirections (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z\"},\"child\":[]}]})(props);\n};\nexport function FaDisease (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDivide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDizzy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDna (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z\"},\"child\":[]}]})(props);\n};\nexport function FaDollarSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z\"},\"child\":[]}]})(props);\n};\nexport function FaDollyFlatbed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDolly (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaDonate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorClosed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDoorOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z\"},\"child\":[]}]})(props);\n};\nexport function FaDotCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaDove (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaDraftingCompass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaDragon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z\"},\"child\":[]}]})(props);\n};\nexport function FaDrawPolygon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumSteelpan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z\"},\"child\":[]}]})(props);\n};\nexport function FaDrum (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z\"},\"child\":[]}]})(props);\n};\nexport function FaDrumstickBite (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z\"},\"child\":[]}]})(props);\n};\nexport function FaDumbbell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpsterFire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z\"},\"child\":[]}]})(props);\n};\nexport function FaDumpster (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaDungeon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z\"},\"child\":[]}]})(props);\n};\nexport function FaEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"},\"child\":[]}]})(props);\n};\nexport function FaEgg (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z\"},\"child\":[]}]})(props);\n};\nexport function FaEject (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisH (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z\"},\"child\":[]}]})(props);\n};\nexport function FaEllipsisV (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpenText (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelopeSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z\"},\"child\":[]}]})(props);\n};\nexport function FaEnvelope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z\"},\"child\":[]}]})(props);\n};\nexport function FaEquals (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaEraser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z\"},\"child\":[]}]})(props);\n};\nexport function FaEthernet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaEuroSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z\"},\"child\":[]}]})(props);\n};\nexport function FaExchangeAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamationCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamationTriangle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z\"},\"child\":[]}]})(props);\n};\nexport function FaExclamation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z\"},\"child\":[]}]})(props);\n};\nexport function FaExpandAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z\"},\"child\":[]}]})(props);\n};\nexport function FaExpandArrowsAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaExpand (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaExternalLinkAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"},\"child\":[]}]})(props);\n};\nexport function FaExternalLinkSquareAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeDropper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z\"},\"child\":[]}]})(props);\n};\nexport function FaEyeSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"},\"child\":[]}]})(props);\n};\nexport function FaEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"},\"child\":[]}]})(props);\n};\nexport function FaFan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFastBackward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaFastForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaFaucet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z\"},\"child\":[]}]})(props);\n};\nexport function FaFax (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFeatherAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFeather (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z\"},\"child\":[]}]})(props);\n};\nexport function FaFemale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z\"},\"child\":[]}]})(props);\n};\nexport function FaFighterJet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z\"},\"child\":[]}]})(props);\n};\nexport function FaFileAudio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z\"},\"child\":[]}]})(props);\n};\nexport function FaFileContract (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileCsv (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileDownload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExcel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileExport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z\"},\"child\":[]}]})(props);\n};\nexport function FaFileImport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoiceDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z\"},\"child\":[]}]})(props);\n};\nexport function FaFileInvoice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedicalAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePdf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePowerpoint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z\"},\"child\":[]}]})(props);\n};\nexport function FaFilePrescription (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileSignature (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"},\"child\":[]}]})(props);\n};\nexport function FaFileUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFileVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaFileWord (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaFillDrip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z\"},\"child\":[]}]})(props);\n};\nexport function FaFill (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z\"},\"child\":[]}]})(props);\n};\nexport function FaFilm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaFilter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z\"},\"child\":[]}]})(props);\n};\nexport function FaFingerprint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z\"},\"child\":[]}]})(props);\n};\nexport function FaFireAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z\"},\"child\":[]}]})(props);\n};\nexport function FaFireExtinguisher (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFire (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z\"},\"child\":[]}]})(props);\n};\nexport function FaFirstAid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFish (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFistRaised (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagCheckered (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaFlagUsa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z\"},\"child\":[]}]})(props);\n};\nexport function FaFlask (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z\"},\"child\":[]}]})(props);\n};\nexport function FaFlushed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z\"},\"child\":[]}]})(props);\n};\nexport function FaFolderPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z\"},\"child\":[]}]})(props);\n};\nexport function FaFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaFont (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z\"},\"child\":[]}]})(props);\n};\nexport function FaFootballBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z\"},\"child\":[]}]})(props);\n};\nexport function FaForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z\"},\"child\":[]}]})(props);\n};\nexport function FaFrog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaFrownOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaFrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaFunnelDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z\"},\"child\":[]}]})(props);\n};\nexport function FaFutbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z\"},\"child\":[]}]})(props);\n};\nexport function FaGamepad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaGasPump (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z\"},\"child\":[]}]})(props);\n};\nexport function FaGavel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z\"},\"child\":[]}]})(props);\n};\nexport function FaGem (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGenderless (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z\"},\"child\":[]}]})(props);\n};\nexport function FaGhost (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaGift (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaGifts (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassCheers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassMartiniAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassMartini (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGlassWhiskey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGlasses (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAfrica (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAmericas (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeAsia (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobeEurope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGlobe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"},\"child\":[]}]})(props);\n};\nexport function FaGolfBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGopuram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaGraduationCap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThanEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaGreaterThan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z\"},\"child\":[]}]})(props);\n};\nexport function FaGrimace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinBeamSweat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinHearts (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinSquintTears (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinStars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTears (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongueSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongueWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinTongue (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGrinWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z\"},\"child\":[]}]})(props);\n};\nexport function FaGrin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaGripHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLinesVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaGripLines (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaGripVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaGuitar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHamburger (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHammer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z\"},\"child\":[]}]})(props);\n};\nexport function FaHamsa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingUsd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHoldingWater (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandHolding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHandLizard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z\"},\"child\":[]}]})(props);\n};\nexport function FaHandMiddleFinger (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPeace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaHandPointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z\"},\"child\":[]}]})(props);\n};\nexport function FaHandRock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z\"},\"child\":[]}]})(props);\n};\nexport function FaHandScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSparkles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandSpock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsHelping (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z\"},\"child\":[]}]})(props);\n};\nexport function FaHandsWash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z\"},\"child\":[]}]})(props);\n};\nexport function FaHands (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeAltSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshakeSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z\"},\"child\":[]}]})(props);\n};\nexport function FaHandshake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHanukiah (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHardHat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHashtag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboySide (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z\"},\"child\":[]}]})(props);\n};\nexport function FaHatCowboy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z\"},\"child\":[]}]})(props);\n};\nexport function FaHatWizard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z\"},\"child\":[]}]})(props);\n};\nexport function FaHdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCoughSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideCough (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideMask (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadSideVirus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z\"},\"child\":[]}]})(props);\n};\nexport function FaHeading (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphonesAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadphones (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z\"},\"child\":[]}]})(props);\n};\nexport function FaHeadset (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartBroken (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z\"},\"child\":[]}]})(props);\n};\nexport function FaHeartbeat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHelicopter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z\"},\"child\":[]}]})(props);\n};\nexport function FaHighlighter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 544 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z\"},\"child\":[]}]})(props);\n};\nexport function FaHiking (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaHippo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHistory (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z\"},\"child\":[]}]})(props);\n};\nexport function FaHockeyPuck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z\"},\"child\":[]}]})(props);\n};\nexport function FaHollyBerry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z\"},\"child\":[]}]})(props);\n};\nexport function FaHome (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z\"},\"child\":[]}]})(props);\n};\nexport function FaHorseHead (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaHorse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalSymbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z\"},\"child\":[]}]})(props);\n};\nexport function FaHospitalUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaHospital (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaHotTub (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHotdog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z\"},\"child\":[]}]})(props);\n};\nexport function FaHotel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassEnd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglassStart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z\"},\"child\":[]}]})(props);\n};\nexport function FaHourglass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseDamage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaHouseUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z\"},\"child\":[]}]})(props);\n};\nexport function FaHryvnia (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z\"},\"child\":[]}]})(props);\n};\nexport function FaICursor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z\"},\"child\":[]}]})(props);\n};\nexport function FaIceCream (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z\"},\"child\":[]}]})(props);\n};\nexport function FaIcicles (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z\"},\"child\":[]}]})(props);\n};\nexport function FaIcons (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z\"},\"child\":[]}]})(props);\n};\nexport function FaIdBadge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCardAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z\"},\"child\":[]}]})(props);\n};\nexport function FaIdCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z\"},\"child\":[]}]})(props);\n};\nexport function FaIgloo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z\"},\"child\":[]}]})(props);\n};\nexport function FaImages (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaInbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z\"},\"child\":[]}]})(props);\n};\nexport function FaIndent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaIndustry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z\"},\"child\":[]}]})(props);\n};\nexport function FaInfinity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z\"},\"child\":[]}]})(props);\n};\nexport function FaInfoCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z\"},\"child\":[]}]})(props);\n};\nexport function FaInfo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"},\"child\":[]}]})(props);\n};\nexport function FaItalic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaJedi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z\"},\"child\":[]}]})(props);\n};\nexport function FaJoint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaJournalWhills (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z\"},\"child\":[]}]})(props);\n};\nexport function FaKaaba (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z\"},\"child\":[]}]})(props);\n};\nexport function FaKey (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaKeyboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaKhanda (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z\"},\"child\":[]}]})(props);\n};\nexport function FaKissBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z\"},\"child\":[]}]})(props);\n};\nexport function FaKissWinkHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z\"},\"child\":[]}]})(props);\n};\nexport function FaKiss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaKiwiBird (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z\"},\"child\":[]}]})(props);\n};\nexport function FaLandmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLanguage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopHouse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptopMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLaptop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaughWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z\"},\"child\":[]}]})(props);\n};\nexport function FaLaugh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z\"},\"child\":[]}]})(props);\n};\nexport function FaLayerGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z\"},\"child\":[]}]})(props);\n};\nexport function FaLeaf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z\"},\"child\":[]}]})(props);\n};\nexport function FaLemon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThanEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaLessThan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z\"},\"child\":[]}]})(props);\n};\nexport function FaLevelDownAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z\"},\"child\":[]}]})(props);\n};\nexport function FaLevelUpAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z\"},\"child\":[]}]})(props);\n};\nexport function FaLifeRing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z\"},\"child\":[]}]})(props);\n};\nexport function FaLightbulb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaLink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"},\"child\":[]}]})(props);\n};\nexport function FaLiraSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z\"},\"child\":[]}]})(props);\n};\nexport function FaListAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaListOl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z\"},\"child\":[]}]})(props);\n};\nexport function FaListUl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaLocationArrow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z\"},\"child\":[]}]})(props);\n};\nexport function FaLockOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z\"},\"child\":[]}]})(props);\n};\nexport function FaLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z\"},\"child\":[]}]})(props);\n};\nexport function FaLongArrowAltUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z\"},\"child\":[]}]})(props);\n};\nexport function FaLowVision (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z\"},\"child\":[]}]})(props);\n};\nexport function FaLuggageCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z\"},\"child\":[]}]})(props);\n};\nexport function FaLungsVirus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z\"},\"child\":[]}]})(props);\n};\nexport function FaLungs (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z\"},\"child\":[]}]})(props);\n};\nexport function FaMagic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z\"},\"child\":[]}]})(props);\n};\nexport function FaMagnet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMailBulk (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMale (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarkedAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarked (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarkerAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMapMarker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMapPin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaMapSigns (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z\"},\"child\":[]}]})(props);\n};\nexport function FaMarker (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsDouble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeH (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStrokeV (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMarsStroke (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaMask (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z\"},\"child\":[]}]})(props);\n};\nexport function FaMedal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z\"},\"child\":[]}]})(props);\n};\nexport function FaMedkit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaMehBlank (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMehRollingEyes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaMeh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMemory (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z\"},\"child\":[]}]})(props);\n};\nexport function FaMenorah (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z\"},\"child\":[]}]})(props);\n};\nexport function FaMercury (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaMeteor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrochip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneAltSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophoneSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicrophone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMicroscope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaMinusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z\"},\"child\":[]}]})(props);\n};\nexport function FaMinusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z\"},\"child\":[]}]})(props);\n};\nexport function FaMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaMitten (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z\"},\"child\":[]}]})(props);\n};\nexport function FaMobileAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z\"},\"child\":[]}]})(props);\n};\nexport function FaMobile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWaveAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBillWave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyBill (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheckAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaMoneyCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMonument (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z\"},\"child\":[]}]})(props);\n};\nexport function FaMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z\"},\"child\":[]}]})(props);\n};\nexport function FaMortarPestle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaMosque (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z\"},\"child\":[]}]})(props);\n};\nexport function FaMotorcycle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z\"},\"child\":[]}]})(props);\n};\nexport function FaMountain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z\"},\"child\":[]}]})(props);\n};\nexport function FaMousePointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z\"},\"child\":[]}]})(props);\n};\nexport function FaMouse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z\"},\"child\":[]}]})(props);\n};\nexport function FaMugHot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaMusic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z\"},\"child\":[]}]})(props);\n};\nexport function FaNetworkWired (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z\"},\"child\":[]}]})(props);\n};\nexport function FaNeuter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaNewspaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaNotEqual (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z\"},\"child\":[]}]})(props);\n};\nexport function FaNotesMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z\"},\"child\":[]}]})(props);\n};\nexport function FaObjectUngroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z\"},\"child\":[]}]})(props);\n};\nexport function FaOilCan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z\"},\"child\":[]}]})(props);\n};\nexport function FaOm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z\"},\"child\":[]}]})(props);\n};\nexport function FaOtter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z\"},\"child\":[]}]})(props);\n};\nexport function FaOutdent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPager (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintBrush (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z\"},\"child\":[]}]})(props);\n};\nexport function FaPaintRoller (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPalette (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPallet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperPlane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPaperclip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z\"},\"child\":[]}]})(props);\n};\nexport function FaParachuteBox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z\"},\"child\":[]}]})(props);\n};\nexport function FaParagraph (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaParking (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPassport (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z\"},\"child\":[]}]})(props);\n};\nexport function FaPastafarianism (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaPaste (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaPauseCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaPause (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPaw (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z\"},\"child\":[]}]})(props);\n};\nexport function FaPeace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z\"},\"child\":[]}]})(props);\n};\nexport function FaPenAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z\"},\"child\":[]}]})(props);\n};\nexport function FaPenFancy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z\"},\"child\":[]}]})(props);\n};\nexport function FaPenNib (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z\"},\"child\":[]}]})(props);\n};\nexport function FaPenSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaPen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z\"},\"child\":[]}]})(props);\n};\nexport function FaPencilAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z\"},\"child\":[]}]})(props);\n};\nexport function FaPencilRuler (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleArrows (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z\"},\"child\":[]}]})(props);\n};\nexport function FaPeopleCarry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPepperHot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z\"},\"child\":[]}]})(props);\n};\nexport function FaPercent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPercentage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z\"},\"child\":[]}]})(props);\n};\nexport function FaPersonBooth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSquareAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z\"},\"child\":[]}]})(props);\n};\nexport function FaPhoneVolume (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z\"},\"child\":[]}]})(props);\n};\nexport function FaPhone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPhotoVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaPiggyBank (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPills (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z\"},\"child\":[]}]})(props);\n};\nexport function FaPizzaSlice (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaceOfWorship (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneArrival (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneDeparture (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z\"},\"child\":[]}]})(props);\n};\nexport function FaPlaneSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaPlane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPlayCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z\"},\"child\":[]}]})(props);\n};\nexport function FaPlay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z\"},\"child\":[]}]})(props);\n};\nexport function FaPlug (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"},\"child\":[]}]})(props);\n};\nexport function FaPlusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z\"},\"child\":[]}]})(props);\n};\nexport function FaPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPodcast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPollH (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z\"},\"child\":[]}]})(props);\n};\nexport function FaPoll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z\"},\"child\":[]}]})(props);\n};\nexport function FaPooStorm (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z\"},\"child\":[]}]})(props);\n};\nexport function FaPoo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaPoop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z\"},\"child\":[]}]})(props);\n};\nexport function FaPortrait (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaPoundSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaPowerOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPray (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z\"},\"child\":[]}]})(props);\n};\nexport function FaPrayingHands (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottleAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescriptionBottle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaPrescription (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z\"},\"child\":[]}]})(props);\n};\nexport function FaPrint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaProcedures (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaProjectDiagram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpMedical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z\"},\"child\":[]}]})(props);\n};\nexport function FaPumpSoap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z\"},\"child\":[]}]})(props);\n};\nexport function FaPuzzlePiece (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z\"},\"child\":[]}]})(props);\n};\nexport function FaQrcode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestionCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z\"},\"child\":[]}]})(props);\n};\nexport function FaQuestion (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z\"},\"child\":[]}]})(props);\n};\nexport function FaQuidditch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaQuoteRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaQuran (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiationAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRadiation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRainbow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRandom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z\"},\"child\":[]}]})(props);\n};\nexport function FaReceipt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaRecordVinyl (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaRecycle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z\"},\"child\":[]}]})(props);\n};\nexport function FaRedoAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z\"},\"child\":[]}]})(props);\n};\nexport function FaRedo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegistered (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z\"},\"child\":[]}]})(props);\n};\nexport function FaRemoveFormat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z\"},\"child\":[]}]})(props);\n};\nexport function FaReplyAll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaReply (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaRepublican (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRestroom (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRetweet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRibbon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z\"},\"child\":[]}]})(props);\n};\nexport function FaRoad (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z\"},\"child\":[]}]})(props);\n};\nexport function FaRobot (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaRocket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z\"},\"child\":[]}]})(props);\n};\nexport function FaRoute (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRssSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z\"},\"child\":[]}]})(props);\n};\nexport function FaRss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z\"},\"child\":[]}]})(props);\n};\nexport function FaRubleSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerCombined (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerHorizontal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRulerVertical (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z\"},\"child\":[]}]})(props);\n};\nexport function FaRuler (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRunning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z\"},\"child\":[]}]})(props);\n};\nexport function FaRupeeSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z\"},\"child\":[]}]})(props);\n};\nexport function FaSadCry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSadTear (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSatelliteDish (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z\"},\"child\":[]}]})(props);\n};\nexport function FaSatellite (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z\"},\"child\":[]}]})(props);\n};\nexport function FaSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z\"},\"child\":[]}]})(props);\n};\nexport function FaSchool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaScrewdriver (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z\"},\"child\":[]}]})(props);\n};\nexport function FaScroll (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z\"},\"child\":[]}]})(props);\n};\nexport function FaSdCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchDollar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchLocation (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"},\"child\":[]}]})(props);\n};\nexport function FaSearchPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z\"},\"child\":[]}]})(props);\n};\nexport function FaSearch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaSeedling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z\"},\"child\":[]}]})(props);\n};\nexport function FaServer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaShapes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z\"},\"child\":[]}]})(props);\n};\nexport function FaShareAltSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z\"},\"child\":[]}]})(props);\n};\nexport function FaShareAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaShareSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z\"},\"child\":[]}]})(props);\n};\nexport function FaShare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z\"},\"child\":[]}]})(props);\n};\nexport function FaShekelSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"},\"child\":[]}]})(props);\n};\nexport function FaShieldVirus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaShip (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z\"},\"child\":[]}]})(props);\n};\nexport function FaShippingFast (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaShoePrints (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingBag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingBasket (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaShoppingCart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z\"},\"child\":[]}]})(props);\n};\nexport function FaShower (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z\"},\"child\":[]}]})(props);\n};\nexport function FaShuttleVan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z\"},\"child\":[]}]})(props);\n};\nexport function FaSignInAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z\"},\"child\":[]}]})(props);\n};\nexport function FaSignLanguage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z\"},\"child\":[]}]})(props);\n};\nexport function FaSignOutAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z\"},\"child\":[]}]})(props);\n};\nexport function FaSignal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSignature (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z\"},\"child\":[]}]})(props);\n};\nexport function FaSimCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z\"},\"child\":[]}]})(props);\n};\nexport function FaSitemap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkating (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkiingNordic (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z\"},\"child\":[]}]})(props);\n};\nexport function FaSkiing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z\"},\"child\":[]}]})(props);\n};\nexport function FaSkullCrossbones (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSkull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z\"},\"child\":[]}]})(props);\n};\nexport function FaSleigh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z\"},\"child\":[]}]})(props);\n};\nexport function FaSlidersH (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSmileBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSmileWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z\"},\"child\":[]}]})(props);\n};\nexport function FaSmile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z\"},\"child\":[]}]})(props);\n};\nexport function FaSmog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z\"},\"child\":[]}]})(props);\n};\nexport function FaSmokingBan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSmoking (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z\"},\"child\":[]}]})(props);\n};\nexport function FaSms (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowboarding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowflake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowman (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaSnowplow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSoap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z\"},\"child\":[]}]})(props);\n};\nexport function FaSocks (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z\"},\"child\":[]}]})(props);\n};\nexport function FaSolarPanel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaDownAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaUpAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAlphaUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountDownAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountUpAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z\"},\"child\":[]}]})(props);\n};\nexport function FaSortAmountUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSortDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericDownAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericUpAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z\"},\"child\":[]}]})(props);\n};\nexport function FaSortNumericUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z\"},\"child\":[]}]})(props);\n};\nexport function FaSortUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"},\"child\":[]}]})(props);\n};\nexport function FaSort (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"},\"child\":[]}]})(props);\n};\nexport function FaSpa (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z\"},\"child\":[]}]})(props);\n};\nexport function FaSpaceShuttle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSpellCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z\"},\"child\":[]}]})(props);\n};\nexport function FaSpider (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z\"},\"child\":[]}]})(props);\n};\nexport function FaSpinner (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSplotch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z\"},\"child\":[]}]})(props);\n};\nexport function FaSprayCan (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 512H0V0h512v512z\"},\"child\":[]}]})(props);\n};\nexport function FaSquareRootAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaStamp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaStarAndCrescent (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalfAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 536 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z\"},\"child\":[]}]})(props);\n};\nexport function FaStarHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfDavid (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 464 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z\"},\"child\":[]}]})(props);\n};\nexport function FaStarOfLife (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z\"},\"child\":[]}]})(props);\n};\nexport function FaStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z\"},\"child\":[]}]})(props);\n};\nexport function FaStepBackward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaStepForward (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaStethoscope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaStickyNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z\"},\"child\":[]}]})(props);\n};\nexport function FaStopCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z\"},\"child\":[]}]})(props);\n};\nexport function FaStop (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch20 (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z\"},\"child\":[]}]})(props);\n};\nexport function FaStopwatch (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreAltSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z\"},\"child\":[]}]})(props);\n};\nexport function FaStoreSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z\"},\"child\":[]}]})(props);\n};\nexport function FaStore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 616 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z\"},\"child\":[]}]})(props);\n};\nexport function FaStream (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaStreetView (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaStrikethrough (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z\"},\"child\":[]}]})(props);\n};\nexport function FaStroopwafel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z\"},\"child\":[]}]})(props);\n};\nexport function FaSubscript (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSubway (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcaseRolling (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z\"},\"child\":[]}]})(props);\n};\nexport function FaSuitcase (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z\"},\"child\":[]}]})(props);\n};\nexport function FaSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z\"},\"child\":[]}]})(props);\n};\nexport function FaSuperscript (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaSurprise (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaSwatchbook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z\"},\"child\":[]}]})(props);\n};\nexport function FaSwimmer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaSwimmingPool (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z\"},\"child\":[]}]})(props);\n};\nexport function FaSynagogue (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z\"},\"child\":[]}]})(props);\n};\nexport function FaSyncAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaSync (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z\"},\"child\":[]}]})(props);\n};\nexport function FaSyringe (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z\"},\"child\":[]}]})(props);\n};\nexport function FaTableTennis (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaTable (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"},\"child\":[]}]})(props);\n};\nexport function FaTabletAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z\"},\"child\":[]}]})(props);\n};\nexport function FaTablet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTablets (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z\"},\"child\":[]}]})(props);\n};\nexport function FaTachometerAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaTags (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z\"},\"child\":[]}]})(props);\n};\nexport function FaTape (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z\"},\"child\":[]}]})(props);\n};\nexport function FaTasks (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTaxi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTeethOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z\"},\"child\":[]}]})(props);\n};\nexport function FaTeeth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureHigh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTemperatureLow (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTenge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaTerminal (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaTextHeight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z\"},\"child\":[]}]})(props);\n};\nexport function FaTextWidth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z\"},\"child\":[]}]})(props);\n};\nexport function FaThLarge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaThList (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTheaterMasks (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerEmpty (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerQuarter (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometerThreeQuarters (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaThermometer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z\"},\"child\":[]}]})(props);\n};\nexport function FaThumbtack (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z\"},\"child\":[]}]})(props);\n};\nexport function FaTicketAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z\"},\"child\":[]}]})(props);\n};\nexport function FaTimesCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\"},\"child\":[]}]})(props);\n};\nexport function FaTimes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"},\"child\":[]}]})(props);\n};\nexport function FaTintSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z\"},\"child\":[]}]})(props);\n};\nexport function FaTint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaTired (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaToggleOn (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaperSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaToiletPaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z\"},\"child\":[]}]})(props);\n};\nexport function FaToilet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z\"},\"child\":[]}]})(props);\n};\nexport function FaToolbox (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z\"},\"child\":[]}]})(props);\n};\nexport function FaTools (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaTooth (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z\"},\"child\":[]}]})(props);\n};\nexport function FaTorah (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z\"},\"child\":[]}]})(props);\n};\nexport function FaToriiGate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z\"},\"child\":[]}]})(props);\n};\nexport function FaTractor (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z\"},\"child\":[]}]})(props);\n};\nexport function FaTrademark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z\"},\"child\":[]}]})(props);\n};\nexport function FaTrafficLight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTrailer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z\"},\"child\":[]}]})(props);\n};\nexport function FaTrain (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z\"},\"child\":[]}]})(props);\n};\nexport function FaTram (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgenderAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaTransgender (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashRestoreAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrashRestore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaTrash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"},\"child\":[]}]})(props);\n};\nexport function FaTree (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z\"},\"child\":[]}]})(props);\n};\nexport function FaTrophy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckLoading (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMonster (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckMoving (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaTruckPickup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z\"},\"child\":[]}]})(props);\n};\nexport function FaTruck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z\"},\"child\":[]}]})(props);\n};\nexport function FaTshirt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z\"},\"child\":[]}]})(props);\n};\nexport function FaTty (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaTv (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrellaBeach (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUmbrella (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z\"},\"child\":[]}]})(props);\n};\nexport function FaUnderline (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUndoAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z\"},\"child\":[]}]})(props);\n};\nexport function FaUndo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversalAccess (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z\"},\"child\":[]}]})(props);\n};\nexport function FaUniversity (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlockAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z\"},\"child\":[]}]})(props);\n};\nexport function FaUnlock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaUpload (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAltSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z\"},\"child\":[]}]})(props);\n};\nexport function FaUserAstronaut (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z\"},\"child\":[]}]})(props);\n};\nexport function FaUserClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z\"},\"child\":[]}]})(props);\n};\nexport function FaUserCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z\"},\"child\":[]}]})(props);\n};\nexport function FaUserEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserFriends (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z\"},\"child\":[]}]})(props);\n};\nexport function FaUserGraduate (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z\"},\"child\":[]}]})(props);\n};\nexport function FaUserInjured (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserLock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNinja (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaUserNurse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z\"},\"child\":[]}]})(props);\n};\nexport function FaUserPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSecret (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserShield (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z\"},\"child\":[]}]})(props);\n};\nexport function FaUserSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTie (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUserTimes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersCog (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUsersSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z\"},\"child\":[]}]})(props);\n};\nexport function FaUsers (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensilSpoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z\"},\"child\":[]}]})(props);\n};\nexport function FaUtensils (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 416 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z\"},\"child\":[]}]})(props);\n};\nexport function FaVectorSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusDouble (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVenusMars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaVenus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaVestPatches (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z\"},\"child\":[]}]})(props);\n};\nexport function FaVest (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z\"},\"child\":[]}]})(props);\n};\nexport function FaVial (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 480 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z\"},\"child\":[]}]})(props);\n};\nexport function FaVials (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z\"},\"child\":[]}]})(props);\n};\nexport function FaVideoSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z\"},\"child\":[]}]})(props);\n};\nexport function FaVihara (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z\"},\"child\":[]}]})(props);\n};\nexport function FaVirusSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z\"},\"child\":[]}]})(props);\n};\nexport function FaVirus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z\"},\"child\":[]}]})(props);\n};\nexport function FaViruses (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z\"},\"child\":[]}]})(props);\n};\nexport function FaVoicemail (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z\"},\"child\":[]}]})(props);\n};\nexport function FaVolleyballBall (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeMute (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeOff (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 256 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z\"},\"child\":[]}]})(props);\n};\nexport function FaVolumeUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z\"},\"child\":[]}]})(props);\n};\nexport function FaVoteYea (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z\"},\"child\":[]}]})(props);\n};\nexport function FaVrCardboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaWalking (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWallet (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWarehouse (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWater (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z\"},\"child\":[]}]})(props);\n};\nexport function FaWaveSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z\"},\"child\":[]}]})(props);\n};\nexport function FaWeightHanging (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaWeight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z\"},\"child\":[]}]})(props);\n};\nexport function FaWheelchair (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z\"},\"child\":[]}]})(props);\n};\nexport function FaWifi (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z\"},\"child\":[]}]})(props);\n};\nexport function FaWind (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMaximize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowMinimize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaWindowRestore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z\"},\"child\":[]}]})(props);\n};\nexport function FaWineBottle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlassAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z\"},\"child\":[]}]})(props);\n};\nexport function FaWineGlass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 288 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z\"},\"child\":[]}]})(props);\n};\nexport function FaWonSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z\"},\"child\":[]}]})(props);\n};\nexport function FaWrench (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaXRay (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z\"},\"child\":[]}]})(props);\n};\nexport function FaYenSign (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z\"},\"child\":[]}]})(props);\n};\nexport function FaYinYang (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressBook (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAddressCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegAngry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegArrowAltCircleUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBellSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBell (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBookmark (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z\"},\"child\":[]}]})(props);\n};\nexport function FaRegBuilding (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarCheck (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarMinus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarPlus (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendarTimes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCalendar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCaretSquareUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegChartBar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCheckCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCheckSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClipboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClone (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegClosedCaptioning (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCommentDots (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComment (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegComments (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCompass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCopyright (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z\"},\"child\":[]}]})(props);\n};\nexport function FaRegCreditCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegDizzy (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegDotCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEdit (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelopeOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEnvelope (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEyeSlash (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegEye (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileArchive (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileAudio (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileCode (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileExcel (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePdf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFilePowerpoint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileVideo (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFileWord (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlag (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFlushed (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolderOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFolder (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFontAwesomeLogoFull (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 3992 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFrownOpen (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFrown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z\"},\"child\":[]}]})(props);\n};\nexport function FaRegFutbol (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGem (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrimace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinBeamSweat (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinHearts (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinSquintTears (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinStars (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTears (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongueSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongueWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinTongue (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrinWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z\"},\"child\":[]}]})(props);\n};\nexport function FaRegGrin (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandLizard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPeace (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointLeft (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointRight (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandPointer (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandRock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandScissors (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandSpock (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHandshake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHdd (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHospital (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegHourglass (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdBadge (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 384 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z\"},\"child\":[]}]})(props);\n};\nexport function FaRegIdCard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImage (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegImages (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKeyboard (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKissBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKissWinkHeart (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 504 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegKiss (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughSquint (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaughWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLaugh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLemon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLifeRing (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z\"},\"child\":[]}]})(props);\n};\nexport function FaRegLightbulb (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegListAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMap (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMehBlank (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMehRollingEyes (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMeh (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMinusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoneyBillAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z\"},\"child\":[]}]})(props);\n};\nexport function FaRegMoon (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z\"},\"child\":[]}]})(props);\n};\nexport function FaRegNewspaper (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectGroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z\"},\"child\":[]}]})(props);\n};\nexport function FaRegObjectUngroup (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPaperPlane (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPauseCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPlayCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z\"},\"child\":[]}]})(props);\n};\nexport function FaRegPlusSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegQuestionCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z\"},\"child\":[]}]})(props);\n};\nexport function FaRegRegistered (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSadCry (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSadTear (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSave (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z\"},\"child\":[]}]})(props);\n};\nexport function FaRegShareSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmileBeam (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmileWink (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSmile (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSnowflake (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSquare (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStarHalf (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStar (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStickyNote (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z\"},\"child\":[]}]})(props);\n};\nexport function FaRegStopCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSun (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z\"},\"child\":[]}]})(props);\n};\nexport function FaRegSurprise (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsDown (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z\"},\"child\":[]}]})(props);\n};\nexport function FaRegThumbsUp (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTimesCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTired (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z\"},\"child\":[]}]})(props);\n};\nexport function FaRegTrashAlt (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUserCircle (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z\"},\"child\":[]}]})(props);\n};\nexport function FaRegUser (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowClose (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMaximize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowMinimize (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z\"},\"child\":[]}]})(props);\n};\nexport function FaRegWindowRestore (props) {\n  return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z\"},\"child\":[]}]})(props);\n};\n","import React, { useState } from \"react\";\nimport { FaEye, FaEyeSlash } from \"react-icons/fa\";\nimport \"./passwordrename.css\";\nimport axios from \"axios\";\nimport { toast, ToastContainer } from \"react-toastify\";  // Ensure ToastContainer is imported\nimport \"react-toastify/dist/ReactToastify.css\";  // Import the CSS for Toast\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport baseUrl from \"../../../baseUrl\";\n\nfunction PasswordReset() {\n  const [showPassword, setShowPassword] = useState('');\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false);\n  const navigate = useNavigate();\n  const { token } = useParams();\n\n  const handleChange = (e) => {\n    setShowPassword(e.target.value);\n  };\n\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/admin/resetpasswordadmin/${token}`,\n        { password: showPassword }\n      );\n\n      if (response.status === 200) {\n        toast.success(\"Password reset successfully\", {\n          onClose: () => navigate('/adminlanding'),  // Navigate after the toast is closed\n        });\n      }\n    } catch (error) {\n      console.log(error);\n      toast.error(\"Error resetting password. Please try again.\");\n    }\n  };\n\n  return (\n    <div className=\"main-reset-container\">\n      <ToastContainer/>\n      <div className=\"reset-container\">\n        <h1>Reset Your Password</h1>\n\n        <form id=\"resetForm\" onSubmit={handleSubmit}>\n          {/* New Password Field */}\n          <div className=\"form-group\">\n            <label htmlFor=\"confirm-password\">New Password</label>\n            <div className=\"password-input\">\n              <input\n                type={showConfirmPassword ? \"text\" : \"password\"}\n                id=\"confirm-password\"\n                name=\"confirmPassword\"\n                required\n                minLength=\"8\"\n                placeholder=\"Enter new password\"\n                value={showPassword}\n                onChange={handleChange}\n              />\n              <div className=\"eye-container\">\n                <span\n                  className=\"eye-icon\"\n                  onClick={() => setShowConfirmPassword(!showConfirmPassword)}\n                >\n                  {showConfirmPassword ? <FaEyeSlash /> : <FaEye />}\n                </span>\n              </div>\n            </div>\n          </div>\n\n          <button>Reset Password</button>\n        </form>\n      </div>\n    </div>\n  );\n}\n\nexport default PasswordReset;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport Nav from \"../../component/Navbar/Nav\";\nimport Footer from \"../../component/Footer/Footer\";\nimport \"../MyProfile/myprofile.css\";\nimport axios from \"axios\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport baseUrl from \"../../baseUrl\";\nimport { ToastContainer, toast } from \"react-toastify\";\n\n\nfunction MyProfile() {\n  const [userData, setUserData] = useState({});\n  const [file, setFile] = useState([]);\n  const fileInputRef = useRef(null);\n  const userId = useSelector((state) => state.user.id);\n\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${userId}`\n      );\n      setUserData(response.data.data);\n    } catch (error) {\n      console.log(\"Error fetching user data:\", error);\n    }\n  };\n\n  useEffect(() => {\n    fetchUserData();\n  }, []);\n\n  const handleFileChange = (e) => {\n    const selectedFiles = Array.from(e.target.files);\n    if (selectedFiles.length > 0) {\n      setFile((prevFiles) => [...prevFiles, ...selectedFiles]);\n    }\n  };\n\n  useEffect(() => {\n    const handleUpload = async () => {\n      if (file.length === 0) return;\n\n      const formData = new FormData();\n      file.forEach((file) => formData.append(\"image\", file));\n\n      try {\n        const response = await axios.patch(\n          `${baseUrl}/api/v1/user/edit/${userId}`,\n          formData\n        );\n        toast.success(\"uploaded successfully\");\n        setFile([]); // Clear file after upload\n        fetchUserData(); // Refresh user data to reflect new images\n      } catch (error) {\n        console.log(\"Upload error:\", error);\n        toast.error(\"upload error, try another image\");\n\n      }\n    };\n\n    handleUpload();\n  }, [file]);\n\n  return (\n    <div>\n      <ToastContainer/>\n      <Nav userId={userId}/>\n      <div className=\"profile-view-main-container\">\n      <h2 className=\"all-match\">My Profile</h2>\n        <div className=\"profile-cards\">\n          <div className=\"image-container\">\n            <img\n              src={\n                userData.profilePicture\n                  ? `${baseUrl}${userData.profilePicture}`\n                  : \"\"\n              }\n              alt=\"Profile\"\n              className=\"profile-image\"\n            />\n          </div>\n\n          <div className=\"details-sections\">\n            <div className=\"profile-name-container\">\n              <div className=\"heading-text\">\n                <h2 className=\"profile-name-container\">\n                  {userData.firstName ? userData.firstName : \"\"}\n                </h2>\n              </div>\n              <div className=\"option-container\">\n                <div className=\"option\">\n                  <i\n                    class=\"material-icons text-gray-600 cursor-pointer w-6 h-6\"\n                    style={{ marginLeft: \"-50px\", fontSize: \"40px\" }}\n                \n                  >\n                    add_a_photo\n                  \n                </i>\n\n                  <div className=\"dropdown-menu\">\n                    <div\n                      className=\"dropdown-item\"\n                      onClick={() => fileInputRef.current.click()}\n                      style={{ cursor: \"pointer\" }}\n                    >\n                      Upload Images\n                    </div>\n                    <input\n                      type=\"file\"\n                      ref={fileInputRef}\n                      multiple\n                      style={{ display: \"none\" }}\n                      onChange={handleFileChange}\n                      accept=\"image/*\"\n                    />\n                  </div>\n                </div>\n              </div>\n            </div>\n            <div className=\"profile-age-container\">\n              <p className=\"\">\n                {userData\n                  ? `${userData.age} Yrs, ${userData.height} cms`\n                  : \"25 Yrs, 5'7\\\"\"}\n                {/* 25 Yrs,5'7 */}\n              </p>\n            </div>\n\n            <div className=\"profile-info-container\">\n              <span className=\"profile-degree-container\">\n              {userData.education\n                      ? userData.education\n                          .split(\"_\")\n                          .map(\n                            (education) =>\n                              education.trim().charAt(0).toUpperCase() +\n                              education.trim().slice(1)\n                          )\n                          .join(\" \")\n                      : \"\"}\n              </span>\n            </div>\n\n            <div className=\"profile-location-container\">\n              <span>\n                {userData.location || userData.state\n                  ? `${userData.location}  ${userData.state}`\n                  : \"No data Found\"}\n              </span>\n            </div>\n            <div className=\"premium-container\">\n              <h3>Premium</h3>\n            </div>\n          </div>\n          {/* <div className=\"verify-container\">\n            <h3>Verify Profile</h3>\n          </div> */}\n        </div>\n\n        <div className=\"about-similar\">\n          <div className=\"about-card\">\n            <div className=\"about-card-container\">\n              <div className=\"user-description\">\n                <div className=\"about-user-container\">\n                  <h3>\n                    {`About ${\n                      userData.firstName\n                        ? userData.firstName\n                        : \"No details found\"\n                    }`}{\" \"}\n                  </h3>\n                </div>\n                <div className=\"description-container\">\n                  <p>{userData.about ? userData.about : \"No Deatils Found\"}</p>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"basic-details\">\n                  <div className=\"heading\">\n                    <h4>\n                      {userData.gender === \"male\"\n                        ? `His Details`\n                        : \"Her Details\"}\n                    </h4>\n                  </div>\n                  <div className=\"age-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        person\n                      </span>\n                      <p>Age</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.age ? `${userData.age} Yrs` : \"\"}\n                    </div>\n                  </div>\n                  <div className=\"degree-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        school\n                      </span>\n                      <p>Degree</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                    {userData.education\n                      ? userData.education\n                          .split(\"_\")\n                          .map(\n                            (education) =>\n                              education.trim().charAt(0).toUpperCase() +\n                              education.trim().slice(1)\n                          )\n                          .join(\" \")\n                      : \"\"}\n                    </div>\n                  </div>\n                  <div className=\"location-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        location_on\n                      </span>\n                      <p>Location</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.location || userData.state\n                        ? `${userData.location}  ${userData.state}`\n                        : \"No data Found\"}\n                    </div>\n                  </div>\n                  <div className=\"spoken-language-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        language\n                      </span>\n                      <p>Spoken Language</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.motherTongue ? `${userData.motherTongue} ` : \"\"}\n                    </div>\n                  </div>\n                  <div className=\"profile-created-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        account_circle\n                      </span>\n                      <p>Profile Created By</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.relation ? userData.relation : \"\"}\n                    </div>\n                  </div>\n                  <div className=\"maritial-status-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">\n                        favorite\n                      </span>\n                      <p>Maritial Status</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.maritalStatus ? userData.maritalStatus : \"\"}\n                    </div>\n                  </div>\n                  {/* <div className=\"citizenship-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">flag</span>\n                      <p>Citizenship</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\"India\"</div>\n                  </div> */}\n                  <div className=\"location-container details-main\">\n                    <div className=\"prof-detail same\">\n                      <span className=\"material-icons profiles-icon\">work</span>\n                      <p>hobbies</p>\n                    </div>\n                    <div className=\"prof-detail same1\">\n                      {userData.hobbies\n                        ? userData.hobbies\n                            .split(\",\")\n                            .map(\n                              (hobby) =>\n                                hobby.trim().charAt(0).toUpperCase() +\n                                hobby.trim().slice(1)\n                            )\n                            .join(\", \")\n                        : \"\"}\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Religion</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M80-80v-440h80v80h80l119-395v-85h80v80h81v-80h80v80l120 400h80v-80h80v440H520v-200h-80v200H80Zm268-440h264l-24-80H372l-24 80Zm48-160h168l-24-80H420l-24 80ZM160-160h200v-200h240v200h200v-200H660l-24-80H324l-24 80H160v200Zm320-300Z\" />\n                      </svg>\n                    </span>\n                    <p>Subcaste</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.subCaste ? userData.subCaste : \"Optional\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Gothram</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.gothram ? userData.gothram : \"Optional\"}\n                  </div>\n                </div>\n                <div className=\"spoken-language-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">\n                      <svg\n                        xmlns=\"http://www.w3.org/2000/svg\"\n                        height=\"24px\"\n                        viewBox=\"0 -960 960 960\"\n                        width=\"24px\"\n                        fill=\"#5f6368\"\n                      >\n                        <path d=\"M620-320v-109l-45-81q-7 5-11 13t-4 17v229L663-80h-93l-90-148v-252q0-31 15-57t41-43l-56-99q-20-38-17.5-80.5T495-832l68-68 276 324 41 496h-80l-39-464-203-238-6 6q-10 10-11.5 23t4.5 25l155 278v130h-80Zm-360 0v-130l155-278q6-12 4.5-25T408-776l-6-6-203 238-39 464H80l41-496 276-324 68 68q30 30 32.5 72.5T480-679l-56 99q26 17 41 43t15 57v252L390-80h-93l103-171v-229q0-9-4-17t-11-13l-45 81v109h-80Z\" />\n                      </svg>\n                    </span>\n                    <p>Dosham</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.dosham ? userData.dosham : \"Optional\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>Profession Details</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Education</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                  {userData.education\n                      ? userData.education\n                          .split(\"_\")\n                          .map(\n                            (education) =>\n                              education.trim().charAt(0).toUpperCase() +\n                              education.trim().slice(1)\n                          )\n                          .join(\" \")\n                      : \"\"}\n                  </div>\n                </div>\n                <div className=\"location-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">school</span>\n                    <p>Occupation</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.occupation\n                      ? userData.occupation\n                          .split(\"_\")\n                          .map(\n                            (occupation) =>\n                              occupation.trim().charAt(0).toUpperCase() +\n                              occupation.trim().slice(1)\n                          )\n                          .join(\" \")\n                      : \"\"}\n                  </div>\n                </div>\n              </div>\n              <div className=\"basic-details-container\">\n                <div className=\"about-user-container\">\n                  <h3>About Family</h3>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">home</span>\n                    <p>Family Type</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.familyType\n                      ? userData.familyType\n                      : \"No Data Found\"}\n                  </div>\n                </div>\n                <div className=\"degree-container details-main\">\n                  <div className=\"prof-detail same\">\n                    <span className=\"material-icons profiles-icon\">home</span>\n                    <p>Family Values</p>\n                  </div>\n                  <div className=\"prof-detail same1\">\n                    {userData.familyValues\n                      ? userData.familyValues\n                      : \"No Data Found\"}\n                  </div>\n                </div>\n              </div>\n              \n            </div>\n          </div>\n          <div className=\"similar-profile-container\">\n            {/* <div className=\"main-similar-profile\"> */}\n              <div className=\"container-similar\">\n                <h3>Uploaded Images</h3>\n              </div>\n              <div className=\"like-card-container\">\n                <div className=\"my-profile-image23\">\n                  {userData.image?.map((imgSrc, index) => (\n                    <img\n                      key={index}\n                      className=\"my-profile-image23-single\"\n                      src={`${baseUrl}${imgSrc}`}\n                      alt={`User Image ${index}`}\n                    />\n                  ))}\n                </div>\n              {/* </div> */}\n            </div>\n          </div>\n        </div>\n        <hr className=\"separator\"></hr>\n      </div>\n      <link\n        href=\"https://fonts.googleapis.com/icon?family=Material+Icons\"\n        rel=\"stylesheet\"\n      />\n      <Footer />\n    </div>\n  );\n}\n\nexport default MyProfile;\n","import React, { useState, useEffect } from 'react'\nimport axios from 'axios';\nimport Profilebox from \"../components/ReportComponent.jsx\";\nimport \"./GetFullReport.css\"\nimport Pagination from \"../components/PaginationAdmin\"\nimport baseUrl from '../../../baseUrl.js';\nimport Nav from '../../../component/AdminNav/Adminnav.jsx';\nfunction GetFullReport() {\n  const [userData, setUserData] = useState([]);\n  const [currentPage, setCurrentPage] = useState(1)\n  const [itemsPerPage, setItemsPerPage] = useState(10)\n\n  let lastIndex = currentPage * itemsPerPage;\n  let indexOfFirstItem = lastIndex - itemsPerPage;\n  let showItem = userData.slice(indexOfFirstItem, lastIndex)\n  console.log(\"userdata in admin\", userData);\n\n  useEffect(() => {\n    fetchUserData();\n  }, []);\n  const fetchUserData = async () => {   \n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/getComplaint`\n      );\n      setUserData(response.data.reportedUser);\n    } catch (error) {\n      console.error(\"Error fetching user details:\", error);\n    }\n  };\n  if (!fetchUserData) return (<div>loading...</div>)\n  return (\n    <div>\n      <Nav/>\n      <div className=\"user-page-main\">\n        <h1>Reported Users</h1>\n        {userData.length > 0 ? (\n          showItem.map((user) => {\n            return <Profilebox key={user._id} data={user} />\n          })\n        ) : (<p>Loading...</p>)}\n      </div>\n      <div className=\"pageination-container\">\n        <Pagination\n          userData={userData}\n          itemsPerPage={itemsPerPage}\n          setCurrentPage={setCurrentPage}\n        />\n      </div>\n    </div>\n  )\n}\n\nexport default GetFullReport\n","import React, { useEffect, useState } from \"react\";\nimport Sidebar from \"../../../component/sidebar/Sidebar.jsx\";\nimport \"./report.css\";\nimport axios from \"axios\";\nimport { useParams } from \"react-router-dom\";\nimport baseUrl from \"../../../baseUrl.js\";\nfunction Report() {\n  const{id}=useParams()  \n  const [userData,setUserData]=useState({});  \n  \n  useEffect(()=>{\n    fetchUserData()\n  })\n  const fetchUserData=async(req,res)=>{\n    try {\n      const response=await axios.get (`${baseUrl}/api/v1/user/usercarddetails/${id}`)\n      setUserData(response.data);\n      \n    } catch (error) {\n      res.status(400)(\"server error\")\n    }\n  }\n  return (\n    <div>\n      <div className=\"report-container\">\n        <div className=\"container-main\">\n          <div className=\"nav\">\n            <Sidebar /> \n          </div>\n          <div className=\"contents\">\n            <div className=\"first-part\">\n              <div className=\"report-main\">\n                <div className=\"heading\">\n                  <h1>Reports & Complaints</h1>\n                </div>\n              </div>\n            </div>\n            <div className=\"box-contents\">\n              <div className=\"second-part\">\n                <div className=\"sub-container\">\n                  <div className=\"left-content\">\n                    <div className=\"heading\">\n                      <h3>Abuse Category</h3>\n                    </div>\n                    <div className=\"description\">\n                      <p>{userData.data?.abuseCategory||\"nil\"}</p>\n                    </div>\n                  </div>\n                  <div className=\"right-content\">\n                    <div className=\"heading\">\n                      <h3>Subject</h3>\n                    </div>\n                    <div className=\"description\">\n                      <p>{userData.data?.subject||\"nil\"}</p>\n                    </div>\n                  </div>\n                </div>\n              </div>\n              <div className=\"third-part\">\n                <div className=\"heading\">\n                  <h3>Complaint and Details</h3>\n                </div>\n                <div className=\"description\">\n                  <p>\n                  {userData.data?.subject||\"nil\"}\n                  </p>\n                </div>\n              </div>\n              <div className=\"third-part\">\n                <div className=\"heading\">\n                  <h3>Complaint and Details</h3>\n                </div>\n                <div className=\"description\">\n                  <p>\n                  {userData.data?.complaint|| \"nil\"}\n                  </p>\n                </div>\n              </div>\n              <div className=\"fourth-part\">\n                <div className=\"heading\">\n                  <h3>Complaint aginst ID / User name </h3>\n                </div>\n                <div className=\"description\">\n                  <p>{userData.data?.complainstAgainst}</p>\n                </div>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>  \n  );\n}\n\nexport default Report;\n","import React from 'react'\nimport { Link } from \"react-router-dom\";\nimport \"./ProfileComponent\"\n\nfunction ReportComponent({data} ) {\n    \n  if (!data) return <p>No user data available</p>;\n  \n\n  return (\n    \n    <div className=\"main-container-profiles\">\n      <div className=\"profiles\">\n        <div className=\"profile-content\">\n          <div className=\"profile-names\">\n            <p>Name: {data.firstName || \"N/A\"}</p>\n          </div>\n          <div className=\"profiles-id\">\n            <p>ID: {data._id || \"Unknown\"}</p>\n          </div>\n          <div className=\"profile-view\">\n            <Link to={`/userProfileVerify/${data._id}`} className=\"custom-link\">\n              View\n            </Link>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default ReportComponent\n","import React from \"react\";\nimport \"./Profile.css\";\nimport Sidebar from \"../../../component/sidebar/Sidebar\";\nimport Profilebox from \"./ProfileComponent\"\nimport {useState,useEffect} from \"react\"\nimport axios from \"axios\"\nimport { Link } from \"react-router-dom\";\nimport baseUrl from \"../../../baseUrl\";\n\n\nfunction Profile() {\n\nconst [UserData,setuserData]=useState([])\nconst showData=UserData.slice(0,4)\nconst fetchuserData=async (req,res) => {\n  \n  const response=await axios.get(`${baseUrl}/api/v1/user/unverfieduser`)\n  if(response.status===200){\n    setuserData(response.data.unverfiedUser || [  ])\n    console.log(\"this\",response.data.unverfiedUser);\n    \n  }else{\n    console.log(\"no users found\");\n    \n  }\n}\nuseEffect(()=>{\nfetchuserData()\n},[])\n\n\n  return (\n    <div>\n      <div className=\"report-container\">\n        <div className=\"container-main\">\n          <div className=\"nav\">\n            <Sidebar />\n          </div>\n          <div className=\"contents\">\n            <div className=\"first-part\">\n              <div className=\"report-main\">\n                <div className=\"heading\">\n                  <h1>Profile Verification</h1>\n                </div>\n              </div>\n              <div className=\"main-second-part-report\">\n                <div className=\"second-part-report\">\n                  <div className=\"second-part-profile-container\">\n                  {showData.length > 0 ? (\n                      showData.map((user) => {\n                        return <Profilebox key={user._id} data={user} />;\n                       \n                        \n                      })\n                    ) : (\n                      <p>No profiles available</p>\n                    )}\n                  </div>\n                </div>\n              </div>\n              <div className=\"see-all-link\">\n                <Link className=\"custom-link\" to={\"/unverifieduser\"}>\n                  See all\n                </Link>\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default Profile;\n","import React from \"react\";\nimport { useState, useEffect } from \"react\";\nimport axios from \"axios\";\nimport Profilebox from \"./ProfileComponent\";\nimport Pagination from \"../components/PaginationAdmin\";\nimport \"./GetFullProfile.css\";\nimport baseUrl from \"../../../baseUrl\";\nimport Nav from \"../../../component/AdminNav/Adminnav\";\n\n\nfunction GetFullProfile() {\n  const [userData, setUserData] = useState([]);\n  const [currentPage, setCurrentPage] = useState(1);\n  const [itemsPerPage, setItemsPerPage] = useState(10);\n\n  let lastIndex = currentPage * itemsPerPage;\n  let indexOfFirstItem = lastIndex - itemsPerPage;\n  let showItem = userData.slice(indexOfFirstItem, lastIndex);\n\n  useEffect(() => {\n    fetchUserData();\n  }, []);\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/unverfieduser`\n      );\n      setUserData(response.data.unverfiedUser || []);\n    } catch (error) {\n      console.error(\"Error fetching user details:\", error);\n    }\n  };\n  if (!fetchUserData) return <div>loading...</div>;\n  return (\n    <div>\n      <Nav/>\n      <div className=\"getfullprofile-main\">\n        <h1>All Unverified Users</h1>\n        {userData.length > 0 ? (\n          showItem.map((user) => {\n            return <Profilebox key={user._id} data={user} />;\n          })\n        ) : (\n          <p>Loading...</p>\n        )}\n      </div>\n      <div className=\"pagination-container\">\n        <Pagination\n          userData={userData}\n          itemsPerPage={itemsPerPage}\n          setCurrentPage={setCurrentPage}\n        />\n      </div>\n    </div>\n  );\n}\n\nexport default GetFullProfile;\n","import React, { useEffect, useState } from \"react\";\nimport axios from \"axios\";\nimport { useParams } from \"react-router-dom\";\nimport \"./AdminVerfication.css\";\nimport Sidebar from \"../../../component/sidebar/Sidebar.jsx\";\nimport { Worker, Viewer } from \"@react-pdf-viewer/core\";\nimport \"@react-pdf-viewer/core/lib/styles/index.css\";\nimport baseUrl from \"../../../baseUrl.js\";\n\nfunction AdminVerification() {\n  const { id } = useParams();\n  const [userData, setUserData] = useState(null);\n\n  useEffect(() => {\n    fetchUserData();\n  }, [id]);\n\n  const fetchUserData = async () => {\n    try {\n      const response = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${id}`\n      );\n      setUserData(response.data);\n    } catch (error) {\n      console.error(\"Error fetching user data:\", error);\n    }\n  };\n\n  return (\n    <div className=\"main-container-admin-verification\">\n      <div className=\"sub-container-1\">\n        <div className=\"nav\">\n          <Sidebar />\n        </div>\n        <div className=\"verification-sub\">\n          <h1>PDF Document Review</h1>\n\n          {/* Check if userData and pdfFile exist before rendering */}\n          {userData?.data?.pdfFile ? (\n            <div style={{ height: \"600px\", border: \"1px solid #ccc\" }}>\n              <Worker workerUrl=\"https://unpkg.com/pdfjs-dist@3.11.174/build/pdf.worker.min.js\">\n                <Viewer fileUrl={`${baseUrl}${userData.data.pdfFile}`} />\n              </Worker>\n            </div>\n          ) : (\n            <p>No PDF available for this user.</p>\n          )}\n\n          {/* <div className=\"button-container\">\n            <button id=\"reject-btn\" disabled>\n              Reject\n            </button>\n            <button id=\"verify-btn\" disabled>\n              Verify\n            </button>\n          </div> */}\n        </div>\n      </div>\n    </div>\n  );\n}\n\nexport default AdminVerification;\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n  var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n  for (var i = 0; i < scripts.length; i++) {\n    var script = scripts[i];\n\n    if (!V3_URL_REGEX.test(script.src)) {\n      continue;\n    }\n\n    return script;\n  }\n\n  return null;\n};\n\nvar injectScript = function injectScript(params) {\n  var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n  var script = document.createElement('script');\n  script.src = \"\".concat(V3_URL).concat(queryString);\n  var headOrBody = document.head || document.body;\n\n  if (!headOrBody) {\n    throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n  }\n\n  headOrBody.appendChild(script);\n  return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n  if (!stripe || !stripe._registerWrapper) {\n    return;\n  }\n\n  stripe._registerWrapper({\n    name: 'stripe-js',\n    version: \"5.6.0\",\n    startTime: startTime\n  });\n};\n\nvar stripePromise$1 = null;\nvar onErrorListener = null;\nvar onLoadListener = null;\n\nvar onError = function onError(reject) {\n  return function () {\n    reject(new Error('Failed to load Stripe.js'));\n  };\n};\n\nvar onLoad = function onLoad(resolve, reject) {\n  return function () {\n    if (window.Stripe) {\n      resolve(window.Stripe);\n    } else {\n      reject(new Error('Stripe.js not available'));\n    }\n  };\n};\n\nvar loadScript = function loadScript(params) {\n  // Ensure that we only attempt to load Stripe.js at most once\n  if (stripePromise$1 !== null) {\n    return stripePromise$1;\n  }\n\n  stripePromise$1 = new Promise(function (resolve, reject) {\n    if (typeof window === 'undefined' || typeof document === 'undefined') {\n      // Resolve to null when imported server side. This makes the module\n      // safe to import in an isomorphic code base.\n      resolve(null);\n      return;\n    }\n\n    if (window.Stripe && params) {\n      console.warn(EXISTING_SCRIPT_MESSAGE);\n    }\n\n    if (window.Stripe) {\n      resolve(window.Stripe);\n      return;\n    }\n\n    try {\n      var script = findScript();\n\n      if (script && params) {\n        console.warn(EXISTING_SCRIPT_MESSAGE);\n      } else if (!script) {\n        script = injectScript(params);\n      } else if (script && onLoadListener !== null && onErrorListener !== null) {\n        var _script$parentNode;\n\n        // remove event listeners\n        script.removeEventListener('load', onLoadListener);\n        script.removeEventListener('error', onErrorListener); // if script exists, but we are reloading due to an error,\n        // reload script to trigger 'load' event\n\n        (_script$parentNode = script.parentNode) === null || _script$parentNode === void 0 ? void 0 : _script$parentNode.removeChild(script);\n        script = injectScript(params);\n      }\n\n      onLoadListener = onLoad(resolve, reject);\n      onErrorListener = onError(reject);\n      script.addEventListener('load', onLoadListener);\n      script.addEventListener('error', onErrorListener);\n    } catch (error) {\n      reject(error);\n      return;\n    }\n  }); // Resets stripePromise on error\n\n  return stripePromise$1[\"catch\"](function (error) {\n    stripePromise$1 = null;\n    return Promise.reject(error);\n  });\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n  if (maybeStripe === null) {\n    return null;\n  }\n\n  var stripe = maybeStripe.apply(undefined, args);\n  registerWrapper(stripe, startTime);\n  return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nvar stripePromise;\nvar loadCalled = false;\n\nvar getStripePromise = function getStripePromise() {\n  if (stripePromise) {\n    return stripePromise;\n  }\n\n  stripePromise = loadScript(null)[\"catch\"](function (error) {\n    // clear cache on error\n    stripePromise = null;\n    return Promise.reject(error);\n  });\n  return stripePromise;\n}; // Execute our own script injection after a tick to give users time to do their\n// own script injection.\n\n\nPromise.resolve().then(function () {\n  return getStripePromise();\n})[\"catch\"](function (error) {\n  if (!loadCalled) {\n    console.warn(error);\n  }\n});\nvar loadStripe = function loadStripe() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n\n  loadCalled = true;\n  var startTime = Date.now(); // if previous attempts are unsuccessful, will re-load script\n\n  return getStripePromise().then(function (maybeStripe) {\n    return initStripe(maybeStripe, args, startTime);\n  });\n};\n\nexport { loadStripe };\n","import React, { useState, useEffect } from 'react';\nimport { useStripe, useElements, PaymentElement, Elements } from '@stripe/react-stripe-js';\nimport axios from 'axios';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport './CheckoutForm.css'\nimport Loader from '../../component/Loader/Loadertext';\nimport baseUrl from \"../../baseUrl\"\nconst CheckoutForm = ({ userId,  }) => {\n  const stripe = useStripe();\n  const elements = useElements();\n  const [isLoading, setIsLoading] = useState(false);\n  const handleSubmit = async (event) => {\n    event.preventDefault();\n    if (!stripe || !elements) return;\n\n    setIsLoading(true);\n\n    const { error } = await stripe.confirmPayment({\n      elements,\n      confirmParams: {\n        return_url: `${baseUrl}:3000/payment-success/?userId=${userId}`,\n      },\n    });\n\n    if (error) {\n      toast.error(error.message);\n    } else {\n      toast.success(\"Payment successful!\");\n\n    }\n\n    setIsLoading(false);\n  };\n\n  \n\n  return (\n    <div className=\"checkout-main-container\">\n      <form onSubmit={handleSubmit} className='checkout-main-container-form' >\n        <PaymentElement />\n        <div className=\"button-container-checkout\">\n          <button disabled={isLoading || !stripe || !elements} className='checkout-main-container-button'>\n            {isLoading ? \"Processing...\" : \"Pay Now\"}\n          </button>\n        </div>\n      </form>\n    </div>\n  );\n};\n\nconst CheckoutWrapper = ({ userId, stripePromise }) => {\n  const [clientSecret, setClientSecret] = useState('');\n\n  useEffect(() => {\n    // Create PaymentIntent when component mounts\n    axios.post(`${baseUrl}/api/v1/user/create-payment-intent/${userId}`)\n      .then((res) => {\n        setClientSecret(res.data.clientSecret);\n      })\n      .catch((err) => {\n        console.error(err);\n        toast.error('Failed to create payment intent.');\n      });\n  }, [userId]);\n\n  // Only render the Elements when clientSecret is available\n  if (!clientSecret) {\n    return <div style={{height:\"100vh\",width:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"}}><Loader/></div>; // Handle case where clientSecret is not set yet\n  }\n\n  return (\n    <Elements stripe={stripePromise} options={{ clientSecret }}>\n      <CheckoutForm userId={userId} />\n      <ToastContainer />\n    </Elements>\n  );\n};\n\nexport default CheckoutWrapper;","  import React from 'react';\n  import { Elements } from '@stripe/react-stripe-js';\n  import { loadStripe } from '@stripe/stripe-js';\n  import CheckoutWrapper from './CheckoutForm';\n  import { useParams } from 'react-router-dom';\n\n  const stripePromise = loadStripe(process.env.REACT_APP_STRIPE_PUBLIC_KEY);\n\n  const Checkout = () => {\n      const {  userId } = useParams(); \n    return (\n      <Elements stripe={stripePromise}>\n        <CheckoutWrapper userId={userId} stripePromise={stripePromise}/>\n      </Elements>\n    );\n  };\n\n  export default Checkout;\n","import React, { useState } from \"react\";\nimport { FaEye, FaEyeSlash } from \"react-icons/fa\";\nimport \"./passwordrename.css\";\nimport axios from \"axios\";\nimport { toast, ToastContainer } from \"react-toastify\"; // Ensure ToastContainer is imported\nimport \"react-toastify/dist/ReactToastify.css\"; // Import the CSS for Toast\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport baseUrl from \"../../baseUrl\";\n\nfunction PasswordReset() {\n  const [showPassword, setShowPassword] = useState(\"\");\n  const [showConfirmPassword, setShowConfirmPassword] = useState(false);\n  const navigate = useNavigate();\n  const { token } = useParams();\n  const { id } = useParams();\n\n  const handleChange = (e) => {\n    setShowPassword(e.target.value);\n  };\n\n  const handleSubmit = async (e) => {\n    e.preventDefault();\n    try {\n      const response = await axios.post(\n        `${baseUrl}/api/v1/user/resetpassword/${id}/${token}`,\n        { password: showPassword }\n      );\n\n      if (response.status === 200) {\n        toast.success(\"Password reset successfully\", {\n          onClose: () => navigate(\"/\"), // Navigate after the toast is closed\n        });\n      }\n    } catch (error) {\n      console.log(error);\n      toast.error(\"Error resetting password. Please try again.\");\n    }\n  };\n\n  return (\n    <div className=\"main-reset-container\">\n      <ToastContainer/>\n      <div className=\"reset-container\">\n        <h1>Reset Your Password</h1>\n\n        <form id=\"resetForm\" onSubmit={handleSubmit}>\n          {/* New Password Field */}\n          <div className=\"form-group\">\n            <label htmlFor=\"confirm-password\">New Password</label>\n            <div className=\"password-input\">\n              <input\n                type={showConfirmPassword ? \"text\" : \"password\"}\n                id=\"confirm-password\"\n                name=\"confirmPassword\"\n                required\n                minLength=\"8\"\n                placeholder=\"Enter new password\"\n                value={showPassword}\n                onChange={handleChange}\n              />\n              <div className=\"eye-container\">\n                <span\n                  className=\"eye-icon\"\n                  onClick={() => setShowConfirmPassword(!showConfirmPassword)}\n                >\n                  {showConfirmPassword ? <FaEyeSlash /> : <FaEye />}\n                </span>\n              </div>\n            </div>\n          </div>\n\n          <button>Reset Password</button>\n        </form>\n      </div>\n    </div>\n  );\n}\n\nexport default PasswordReset;\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n    for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n    result.default = mod;\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","/*\n * The `chars`, `lookup`, `encode`, and `decode` members of this file are\n * licensed under the following:\n *\n *     base64-arraybuffer\n *     https://github.com/niklasvh/base64-arraybuffer\n *\n *     Copyright (c) 2012 Niklas von Hertzen\n *     Licensed under the MIT license.\n *\n */\n\nconst chars =\n  'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n  lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encodeToBase64 = (bytes: Uint8Array): string => {\n  let base64 = '';\n  const len = bytes.length;\n  for (let i = 0; i < len; i += 3) {\n    base64 += chars[bytes[i] >> 2];\n    base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n    base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n    base64 += chars[bytes[i + 2] & 63];\n  }\n\n  if (len % 3 === 2) {\n    base64 = base64.substring(0, base64.length - 1) + '=';\n  } else if (len % 3 === 1) {\n    base64 = base64.substring(0, base64.length - 2) + '==';\n  }\n\n  return base64;\n};\n\nexport const decodeFromBase64 = (base64: string): Uint8Array => {\n  let bufferLength = base64.length * 0.75;\n  const len = base64.length;\n  let i;\n  let p = 0;\n  let encoded1;\n  let encoded2;\n  let encoded3;\n  let encoded4;\n\n  if (base64[base64.length - 1] === '=') {\n    bufferLength--;\n    if (base64[base64.length - 2] === '=') {\n      bufferLength--;\n    }\n  }\n\n  const bytes = new Uint8Array(bufferLength);\n\n  for (i = 0; i < len; i += 4) {\n    encoded1 = lookup[base64.charCodeAt(i)];\n    encoded2 = lookup[base64.charCodeAt(i + 1)];\n    encoded3 = lookup[base64.charCodeAt(i + 2)];\n    encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n    bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n    bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n    bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n  }\n\n  return bytes;\n};\n\n// This regex is designed to be as flexible as possible. It will parse certain\n// invalid data URIs.\nconst DATA_URI_PREFIX_REGEX = /^(data)?:?([\\w\\/\\+]+)?;?(charset=[\\w-]+|base64)?.*,/i;\n\n/**\n * If the `dataUri` input is a data URI, then the data URI prefix must not be\n * longer than 100 characters, or this function will fail to decode it.\n *\n * @param dataUri a base64 data URI or plain base64 string\n * @returns a Uint8Array containing the decoded input\n */\nexport const decodeFromBase64DataUri = (dataUri: string): Uint8Array => {\n  const trimmedUri = dataUri.trim();\n\n  const prefix = trimmedUri.substring(0, 100);\n  const res = prefix.match(DATA_URI_PREFIX_REGEX);\n\n  // Assume it's not a data URI - just a plain base64 string\n  if (!res) return decodeFromBase64(trimmedUri);\n\n  // Remove the data URI prefix and parse the remainder as a base64 string\n  const [fullMatch] = res;\n  const data = trimmedUri.substring(fullMatch.length);\n\n  return decodeFromBase64(data);\n};\n","import { toHexString } from 'src/utils/strings';\n\n/**\n * Encodes a string to UTF-8.\n *\n * @param input The string to be encoded.\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be added\n *                      to the start of the encoding. (default `true`)\n * @returns A Uint8Array containing the UTF-8 encoding of the input string.\n *\n * -----------------------------------------------------------------------------\n *\n * JavaScript strings are composed of Unicode code points. Code points are\n * integers in the range 0 to 1,114,111 (0x10FFFF). When serializing a string,\n * it must be encoded as a sequence of words. A word is typically 8, 16, or 32\n * bytes in size. As such, Unicode defines three encoding forms: UTF-8, UTF-16,\n * and UTF-32. These encoding forms are described in the Unicode standard [1].\n * This function implements the UTF-8 encoding form.\n *\n * -----------------------------------------------------------------------------\n *\n * In UTF-8, each code point is mapped to a sequence of 1, 2, 3, or 4 bytes.\n * Note that the logic which defines this mapping is slightly convoluted, and\n * not as straightforward as the mapping logic for UTF-16 or UTF-32. The UTF-8\n * mapping logic is as follows [2]:\n *\n * • If a code point is in the range U+0000..U+007F, then view it as a 7-bit\n *   integer: 0bxxxxxxx. Map the code point to 1 byte with the first high order\n *   bit set to 0:\n *\n *       b1=0b0xxxxxxx\n *\n * • If a code point is in the range U+0080..U+07FF, then view it as an 11-bit\n *   integer: 0byyyyyxxxxxx. Map the code point to 2 bytes with the first 5 bits\n *   of the code point stored in the first byte, and the last 6 bits stored in\n *   the second byte:\n *\n *       b1=0b110yyyyy    b2=0b10xxxxxx\n *\n * • If a code point is in the range U+0800..U+FFFF, then view it as a 16-bit\n *   integer, 0bzzzzyyyyyyxxxxxx. Map the code point to 3 bytes with the first\n *   4 bits stored in the first byte, the next 6 bits stored in the second byte,\n *   and the last 6 bits in the third byte:\n *\n *       b1=0b1110zzzz    b2=0b10yyyyyy    b3=0b10xxxxxx\n *\n * • If a code point is in the range U+10000...U+10FFFF, then view it as a\n *   21-bit integer, 0bvvvzzzzzzyyyyyyxxxxxx. Map the code point to 4 bytes with\n *   the first 3 bits stored in the first byte, the next 6 bits stored in the\n *   second byte, the next 6 bits stored in the third byte, and the last 6 bits\n *   stored in the fourth byte:\n *\n *       b1=0b11110xxx    b2=0b10zzzzzz    b3=0b10yyyyyy    b4=0b10xxxxxx\n *\n * -----------------------------------------------------------------------------\n *\n * It is important to note, when iterating through the code points of a string\n * in JavaScript, that if a character is encoded as a surrogate pair it will\n * increase the string's length by 2 instead of 1 [4]. For example:\n *\n * ```\n * > 'a'.length\n * 1\n * > '💩'.length\n * 2\n * > '語'.length\n * 1\n * > 'a💩語'.length\n * 4\n * ```\n *\n * The results of the above example are explained by the fact that the\n * characters 'a' and '語' are not represented by surrogate pairs, but '💩' is.\n *\n * Because of this idiosyncrasy in JavaScript's string implementation and APIs,\n * we must \"jump\" an extra index after encoding a character as a surrogate\n * pair. In practice, this means we must increment the index of our for loop by\n * 2 if we encode a surrogate pair, and 1 in all other cases.\n *\n * -----------------------------------------------------------------------------\n *\n * References:\n *   - [1] https://www.unicode.org/versions/Unicode12.0.0/UnicodeStandard-12.0.pdf\n *         3.9  Unicode Encoding Forms - UTF-8\n *   - [2] http://www.herongyang.com/Unicode/UTF-8-UTF-8-Encoding.html\n *   - [3] http://www.herongyang.com/Unicode/UTF-8-UTF-8-Encoding-Algorithm.html\n *   - [4] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description\n *\n */\nexport const utf8Encode = (input: string, byteOrderMark = true): Uint8Array => {\n  const encoded = [];\n\n  if (byteOrderMark) encoded.push(0xef, 0xbb, 0xbf);\n\n  for (let idx = 0, len = input.length; idx < len; ) {\n    const codePoint = input.codePointAt(idx)!;\n\n    // One byte encoding\n    if (codePoint < 0x80) {\n      const byte1 = codePoint & 0x7f;\n      encoded.push(byte1);\n      idx += 1;\n    }\n\n    // Two byte encoding\n    else if (codePoint < 0x0800) {\n      const byte1 = ((codePoint >> 6) & 0x1f) | 0xc0;\n      const byte2 = (codePoint & 0x3f) | 0x80;\n      encoded.push(byte1, byte2);\n      idx += 1;\n    }\n\n    // Three byte encoding\n    else if (codePoint < 0x010000) {\n      const byte1 = ((codePoint >> 12) & 0x0f) | 0xe0;\n      const byte2 = ((codePoint >> 6) & 0x3f) | 0x80;\n      const byte3 = (codePoint & 0x3f) | 0x80;\n      encoded.push(byte1, byte2, byte3);\n      idx += 1;\n    }\n\n    // Four byte encoding (surrogate pair)\n    else if (codePoint < 0x110000) {\n      const byte1 = ((codePoint >> 18) & 0x07) | 0xf0;\n      const byte2 = ((codePoint >> 12) & 0x3f) | 0x80;\n      const byte3 = ((codePoint >> 6) & 0x3f) | 0x80;\n      const byte4 = ((codePoint >> 0) & 0x3f) | 0x80;\n      encoded.push(byte1, byte2, byte3, byte4);\n      idx += 2;\n    }\n\n    // Should never reach this case\n    else throw new Error(`Invalid code point: 0x${toHexString(codePoint)}`);\n  }\n\n  return new Uint8Array(encoded);\n};\n\n/**\n * Encodes a string to UTF-16.\n *\n * @param input The string to be encoded.\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be added\n *                      to the start of the encoding. (default `true`)\n * @returns A Uint16Array containing the UTF-16 encoding of the input string.\n *\n * -----------------------------------------------------------------------------\n *\n * JavaScript strings are composed of Unicode code points. Code points are\n * integers in the range 0 to 1,114,111 (0x10FFFF). When serializing a string,\n * it must be encoded as a sequence of words. A word is typically 8, 16, or 32\n * bytes in size. As such, Unicode defines three encoding forms: UTF-8, UTF-16,\n * and UTF-32. These encoding forms are described in the Unicode standard [1].\n * This function implements the UTF-16 encoding form.\n *\n * -----------------------------------------------------------------------------\n *\n * In UTF-16, each code point is mapped to one or two 16-bit integers. The\n * UTF-16 mapping logic is as follows [2]:\n *\n * • If a code point is in the range U+0000..U+FFFF, then map the code point to\n *   a 16-bit integer with the most significant byte first.\n *\n * • If a code point is in the range U+10000..U+10000, then map the code point\n *   to two 16-bit integers. The first integer should contain the high surrogate\n *   and the second integer should contain the low surrogate. Both surrogates\n *   should be written with the most significant byte first.\n *\n * -----------------------------------------------------------------------------\n *\n * It is important to note, when iterating through the code points of a string\n * in JavaScript, that if a character is encoded as a surrogate pair it will\n * increase the string's length by 2 instead of 1 [4]. For example:\n *\n * ```\n * > 'a'.length\n * 1\n * > '💩'.length\n * 2\n * > '語'.length\n * 1\n * > 'a💩語'.length\n * 4\n * ```\n *\n * The results of the above example are explained by the fact that the\n * characters 'a' and '語' are not represented by surrogate pairs, but '💩' is.\n *\n * Because of this idiosyncrasy in JavaScript's string implementation and APIs,\n * we must \"jump\" an extra index after encoding a character as a surrogate\n * pair. In practice, this means we must increment the index of our for loop by\n * 2 if we encode a surrogate pair, and 1 in all other cases.\n *\n * -----------------------------------------------------------------------------\n *\n * References:\n *   - [1] https://www.unicode.org/versions/Unicode12.0.0/UnicodeStandard-12.0.pdf\n *         3.9  Unicode Encoding Forms - UTF-8\n *   - [2] http://www.herongyang.com/Unicode/UTF-16-UTF-16-Encoding.html\n *   - [3] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length#Description\n *\n */\nexport const utf16Encode = (\n  input: string,\n  byteOrderMark = true,\n): Uint16Array => {\n  const encoded = [];\n\n  if (byteOrderMark) encoded.push(0xfeff);\n\n  for (let idx = 0, len = input.length; idx < len; ) {\n    const codePoint = input.codePointAt(idx)!;\n\n    // Two byte encoding\n    if (codePoint < 0x010000) {\n      encoded.push(codePoint);\n      idx += 1;\n    }\n\n    // Four byte encoding (surrogate pair)\n    else if (codePoint < 0x110000) {\n      encoded.push(highSurrogate(codePoint), lowSurrogate(codePoint));\n      idx += 2;\n    }\n\n    // Should never reach this case\n    else throw new Error(`Invalid code point: 0x${toHexString(codePoint)}`);\n  }\n\n  return new Uint16Array(encoded);\n};\n\n/**\n * Returns `true` if the `codePoint` is within the\n * Basic Multilingual Plane (BMP). Code points inside the BMP are not encoded\n * with surrogate pairs.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nexport const isWithinBMP = (codePoint: number) =>\n  codePoint >= 0 && codePoint <= 0xffff;\n\n/**\n * Returns `true` if the given `codePoint` is valid and must be represented\n * with a surrogate pair when encoded.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nexport const hasSurrogates = (codePoint: number) =>\n  codePoint >= 0x010000 && codePoint <= 0x10ffff;\n\n// From Unicode 3.0 spec, section 3.7:\n//   http://unicode.org/versions/Unicode3.0.0/ch03.pdf\nexport const highSurrogate = (codePoint: number) =>\n  Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n\n// From Unicode 3.0 spec, section 3.7:\n//   http://unicode.org/versions/Unicode3.0.0/ch03.pdf\nexport const lowSurrogate = (codePoint: number) =>\n  ((codePoint - 0x10000) % 0x400) + 0xdc00;\n\nenum ByteOrder {\n  BigEndian = 'BigEndian',\n  LittleEndian = 'LittleEndian',\n}\n\nconst REPLACEMENT = '�'.codePointAt(0)!;\n\n/**\n * Decodes a Uint8Array of data to a string using UTF-16.\n *\n * Note that this function attempts to recover from erronous input by\n * inserting the replacement character (�) to mark invalid code points\n * and surrogate pairs.\n *\n * @param input A Uint8Array containing UTF-16 encoded data\n * @param byteOrderMark Whether or not a byte order marker (BOM) should be read\n *                      at the start of the encoding. (default `true`)\n * @returns The decoded string.\n */\nexport const utf16Decode = (\n  input: Uint8Array,\n  byteOrderMark = true,\n): string => {\n  // Need at least 2 bytes of data in UTF-16 encodings\n  if (input.length <= 1) return String.fromCodePoint(REPLACEMENT);\n\n  const byteOrder = byteOrderMark ? readBOM(input) : ByteOrder.BigEndian;\n\n  // Skip byte order mark if needed\n  let idx = byteOrderMark ? 2 : 0;\n\n  const codePoints: number[] = [];\n\n  while (input.length - idx >= 2) {\n    const first = decodeValues(input[idx++], input[idx++], byteOrder);\n\n    if (isHighSurrogate(first)) {\n      if (input.length - idx < 2) {\n        // Need at least 2 bytes left for the low surrogate that is required\n        codePoints.push(REPLACEMENT);\n      } else {\n        const second = decodeValues(input[idx++], input[idx++], byteOrder);\n        if (isLowSurrogate(second)) {\n          codePoints.push(first, second);\n        } else {\n          // Low surrogates should always follow high surrogates\n          codePoints.push(REPLACEMENT);\n        }\n      }\n    } else if (isLowSurrogate(first)) {\n      // High surrogates should always come first since `decodeValues()`\n      // accounts for the byte ordering\n      idx += 2;\n      codePoints.push(REPLACEMENT);\n    } else {\n      codePoints.push(first);\n    }\n  }\n\n  // There shouldn't be extra byte(s) left over\n  if (idx < input.length) codePoints.push(REPLACEMENT);\n\n  return String.fromCodePoint(...codePoints);\n};\n\n/**\n * Returns `true` if the given `codePoint` is a high surrogate.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nconst isHighSurrogate = (codePoint: number) =>\n  codePoint >= 0xd800 && codePoint <= 0xdbff;\n\n/**\n * Returns `true` if the given `codePoint` is a low surrogate.\n * @param codePoint The code point to be evaluated.\n *\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Description\n */\nconst isLowSurrogate = (codePoint: number) =>\n  codePoint >= 0xdc00 && codePoint <= 0xdfff;\n\n/**\n * Decodes the given utf-16 values first and second using the specified\n * byte order.\n * @param first The first byte of the encoding.\n * @param second The second byte of the encoding.\n * @param byteOrder The byte order of the encoding.\n * Reference: https://en.wikipedia.org/wiki/UTF-16#Examples\n */\nconst decodeValues = (first: number, second: number, byteOrder: ByteOrder) => {\n  // Append the binary representation of the preceding byte by shifting the\n  // first one 8 to the left and than applying a bitwise or-operator to append\n  // the second one.\n  if (byteOrder === ByteOrder.LittleEndian) return (second << 8) | first;\n  if (byteOrder === ByteOrder.BigEndian) return (first << 8) | second;\n  throw new Error(`Invalid byteOrder: ${byteOrder}`);\n};\n\n/**\n * Returns whether the given array contains a byte order mark for the\n * UTF-16BE or UTF-16LE encoding. If it has neither, BigEndian is assumed.\n *\n * Reference: https://en.wikipedia.org/wiki/Byte_order_mark#UTF-16\n *\n * @param bytes The byte array to be evaluated.\n */\n// prettier-ignore\nconst readBOM = (bytes: Uint8Array): ByteOrder => (\n    hasUtf16BigEndianBOM(bytes) ? ByteOrder.BigEndian\n  : hasUtf16LittleEndianBOM(bytes) ? ByteOrder.LittleEndian\n  : ByteOrder.BigEndian\n);\n\nconst hasUtf16BigEndianBOM = (bytes: Uint8Array) =>\n  bytes[0] === 0xfe && bytes[1] === 0xff;\n\nconst hasUtf16LittleEndianBOM = (bytes: Uint8Array) =>\n  bytes[0] === 0xff && bytes[1] === 0xfe;\n\nexport const hasUtf16BOM = (bytes: Uint8Array) =>\n  hasUtf16BigEndianBOM(bytes) || hasUtf16LittleEndianBOM(bytes);\n","export const toCharCode = (character: string) => character.charCodeAt(0);\n\nexport const toCodePoint = (character: string) => character.codePointAt(0);\n\nexport const toHexStringOfMinLength = (num: number, minLength: number) =>\n  padStart(num.toString(16), minLength, '0').toUpperCase();\n\nexport const toHexString = (num: number) => toHexStringOfMinLength(num, 2);\n\nexport const charFromCode = (code: number) => String.fromCharCode(code);\n\nexport const charFromHexCode = (hex: string) => charFromCode(parseInt(hex, 16));\n\nexport const padStart = (value: string, length: number, padChar: string) => {\n  let padding = '';\n  for (let idx = 0, len = length - value.length; idx < len; idx++) {\n    padding += padChar;\n  }\n  return padding + value;\n};\n\nexport const copyStringIntoBuffer = (\n  str: string,\n  buffer: Uint8Array,\n  offset: number,\n): number => {\n  const length = str.length;\n  for (let idx = 0; idx < length; idx++) {\n    buffer[offset++] = str.charCodeAt(idx);\n  }\n  return length;\n};\n\nexport const addRandomSuffix = (prefix: string, suffixLength = 4) =>\n  `${prefix}-${Math.floor(Math.random() * 10 ** suffixLength)}`;\n\nexport const escapeRegExp = (str: string) =>\n  str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\nexport const cleanText = (text: string) =>\n  text.replace(/\\t|\\u0085|\\u2028|\\u2029/g, '    ').replace(/[\\b\\v]/g, '');\n\nexport const escapedNewlineChars = ['\\\\n', '\\\\f', '\\\\r', '\\\\u000B'];\n\nexport const newlineChars = ['\\n', '\\f', '\\r', '\\u000B'];\n\nexport const isNewlineChar = (text: string) => /^[\\n\\f\\r\\u000B]$/.test(text);\n\nexport const lineSplit = (text: string) => text.split(/[\\n\\f\\r\\u000B]/);\n\nexport const mergeLines = (text: string) =>\n  text.replace(/[\\n\\f\\r\\u000B]/g, ' ');\n\n// JavaScript's String.charAt() method doesn work on strings containing UTF-16\n// characters (with high and low surrogate pairs), such as 💩 (poo emoji). This\n// `charAtIndex()` function does.\n//\n// Credit: https://github.com/mathiasbynens/String.prototype.at/blob/master/at.js#L14-L48\nexport const charAtIndex = (text: string, index: number): [string, number] => {\n  // Get the first code unit and code unit value\n  const cuFirst = text.charCodeAt(index);\n  let cuSecond: number;\n  const nextIndex = index + 1;\n  let length = 1;\n  if (\n    // Check if it's the start of a surrogate pair.\n    cuFirst >= 0xd800 &&\n    cuFirst <= 0xdbff && // high surrogate\n    text.length > nextIndex // there is a next code unit\n  ) {\n    cuSecond = text.charCodeAt(nextIndex);\n    if (cuSecond >= 0xdc00 && cuSecond <= 0xdfff) length = 2; // low surrogate\n  }\n  return [text.slice(index, index + length), length];\n};\n\nexport const charSplit = (text: string) => {\n  const chars: string[] = [];\n\n  for (let idx = 0, len = text.length; idx < len; ) {\n    const [c, cLen] = charAtIndex(text, idx);\n    chars.push(c);\n    idx += cLen;\n  }\n\n  return chars;\n};\n\nconst buildWordBreakRegex = (wordBreaks: string[]) => {\n  const newlineCharUnion = escapedNewlineChars.join('|');\n\n  const escapedRules: string[] = ['$'];\n  for (let idx = 0, len = wordBreaks.length; idx < len; idx++) {\n    const wordBreak = wordBreaks[idx];\n    if (isNewlineChar(wordBreak)) {\n      throw new TypeError(`\\`wordBreak\\` must not include ${newlineCharUnion}`);\n    }\n    escapedRules.push(wordBreak === '' ? '.' : escapeRegExp(wordBreak));\n  }\n\n  const breakRules = escapedRules.join('|');\n  return new RegExp(`(${newlineCharUnion})|((.*?)(${breakRules}))`, 'gm');\n};\n\nexport const breakTextIntoLines = (\n  text: string,\n  wordBreaks: string[],\n  maxWidth: number,\n  computeWidthOfText: (t: string) => number,\n): string[] => {\n  const regex = buildWordBreakRegex(wordBreaks);\n\n  const words = cleanText(text).match(regex)!;\n\n  let currLine = '';\n  let currWidth = 0;\n  const lines: string[] = [];\n\n  const pushCurrLine = () => {\n    if (currLine !== '') lines.push(currLine);\n    currLine = '';\n    currWidth = 0;\n  };\n\n  for (let idx = 0, len = words.length; idx < len; idx++) {\n    const word = words[idx];\n    if (isNewlineChar(word)) {\n      pushCurrLine();\n    } else {\n      const width = computeWidthOfText(word);\n      if (currWidth + width > maxWidth) pushCurrLine();\n      currLine += word;\n      currWidth += width;\n    }\n  }\n  pushCurrLine();\n\n  return lines;\n};\n\n// See section \"7.9.4 Dates\" of the PDF specification\nconst dateRegex = /^D:(\\d\\d\\d\\d)(\\d\\d)?(\\d\\d)?(\\d\\d)?(\\d\\d)?(\\d\\d)?([+\\-Z])?(\\d\\d)?'?(\\d\\d)?'?$/;\n\nexport const parseDate = (dateStr: string): Date | undefined => {\n  const match = dateStr.match(dateRegex);\n\n  if (!match) return undefined;\n\n  const [\n    ,\n    year,\n    month = '01',\n    day = '01',\n    hours = '00',\n    mins = '00',\n    secs = '00',\n    offsetSign = 'Z',\n    offsetHours = '00',\n    offsetMins = '00',\n  ] = match;\n\n  // http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15\n  const tzOffset =\n    offsetSign === 'Z' ? 'Z' : `${offsetSign}${offsetHours}:${offsetMins}`;\n  const date = new Date(\n    `${year}-${month}-${day}T${hours}:${mins}:${secs}${tzOffset}`,\n  );\n\n  return date;\n};\n\nexport const findLastMatch = (value: string, regex: RegExp) => {\n  let position = 0;\n  let lastMatch: RegExpMatchArray | undefined;\n  while (position < value.length) {\n    const match = value.substring(position).match(regex);\n    if (!match) return { match: lastMatch, pos: position };\n    lastMatch = match;\n    position += (match.index ?? 0) + match[0].length;\n  }\n  return { match: lastMatch, pos: position };\n};\n","import { decodeFromBase64DataUri } from 'src/utils/base64';\nimport { charFromCode } from 'src/utils/strings';\n\nexport const last = <T>(array: T[]): T => array[array.length - 1];\n\n// export const dropLast = <T>(array: T[]): T[] =>\n// array.slice(0, array.length - 1);\n\nexport const typedArrayFor = (value: string | Uint8Array): Uint8Array => {\n  if (value instanceof Uint8Array) return value;\n  const length = value.length;\n  const typedArray = new Uint8Array(length);\n  for (let idx = 0; idx < length; idx++) {\n    typedArray[idx] = value.charCodeAt(idx);\n  }\n  return typedArray;\n};\n\nexport const mergeIntoTypedArray = (...arrays: (string | Uint8Array)[]) => {\n  const arrayCount = arrays.length;\n\n  const typedArrays: Uint8Array[] = [];\n  for (let idx = 0; idx < arrayCount; idx++) {\n    const element = arrays[idx];\n    typedArrays[idx] =\n      element instanceof Uint8Array ? element : typedArrayFor(element);\n  }\n\n  let totalSize = 0;\n  for (let idx = 0; idx < arrayCount; idx++) {\n    totalSize += arrays[idx].length;\n  }\n\n  const merged = new Uint8Array(totalSize);\n  let offset = 0;\n  for (let arrIdx = 0; arrIdx < arrayCount; arrIdx++) {\n    const arr = typedArrays[arrIdx];\n    for (let byteIdx = 0, arrLen = arr.length; byteIdx < arrLen; byteIdx++) {\n      merged[offset++] = arr[byteIdx];\n    }\n  }\n\n  return merged;\n};\n\nexport const mergeUint8Arrays = (arrays: Uint8Array[]): Uint8Array => {\n  let totalSize = 0;\n  for (let idx = 0, len = arrays.length; idx < len; idx++) {\n    totalSize += arrays[idx].length;\n  }\n\n  const mergedBuffer = new Uint8Array(totalSize);\n  let offset = 0;\n  for (let idx = 0, len = arrays.length; idx < len; idx++) {\n    const array = arrays[idx];\n    mergedBuffer.set(array, offset);\n    offset += array.length;\n  }\n\n  return mergedBuffer;\n};\n\nexport const arrayAsString = (array: Uint8Array | number[]): string => {\n  let str = '';\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    str += charFromCode(array[idx]);\n  }\n  return str;\n};\n\nexport const byAscendingId = <T extends { id: any }>(a: T, b: T) => a.id - b.id;\n\nexport const sortedUniq = <T>(array: T[], indexer: (elem: T) => any): T[] => {\n  const uniq: T[] = [];\n\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    const curr = array[idx];\n    const prev = array[idx - 1];\n    if (idx === 0 || indexer(curr) !== indexer(prev)) {\n      uniq.push(curr);\n    }\n  }\n\n  return uniq;\n};\n\n// Arrays and TypedArrays in JS both have .reverse() methods, which would seem\n// to negate the need for this function. However, not all runtimes support this\n// method (e.g. React Native). This function compensates for that fact.\nexport const reverseArray = (array: Uint8Array) => {\n  const arrayLen = array.length;\n  for (let idx = 0, len = Math.floor(arrayLen / 2); idx < len; idx++) {\n    const leftIdx = idx;\n    const rightIdx = arrayLen - idx - 1;\n    const temp = array[idx];\n\n    array[leftIdx] = array[rightIdx];\n    array[rightIdx] = temp;\n  }\n  return array;\n};\n\nexport const sum = (array: number[] | Uint8Array): number => {\n  let total = 0;\n  for (let idx = 0, len = array.length; idx < len; idx++) {\n    total += array[idx];\n  }\n  return total;\n};\n\nexport const range = (start: number, end: number): number[] => {\n  const arr = new Array(end - start);\n  for (let idx = 0, len = arr.length; idx < len; idx++) {\n    arr[idx] = start + idx;\n  }\n  return arr;\n};\n\nexport const pluckIndices = <T>(arr: T[], indices: number[]) => {\n  const plucked = new Array<T>(indices.length);\n  for (let idx = 0, len = indices.length; idx < len; idx++) {\n    plucked[idx] = arr[indices[idx]];\n  }\n  return plucked;\n};\n\nexport const canBeConvertedToUint8Array = (\n  input: any,\n): input is string | ArrayBuffer | Uint8Array =>\n  input instanceof Uint8Array ||\n  input instanceof ArrayBuffer ||\n  typeof input === 'string';\n\nexport const toUint8Array = (input: string | ArrayBuffer | Uint8Array) => {\n  if (typeof input === 'string') {\n    return decodeFromBase64DataUri(input);\n  } else if (input instanceof ArrayBuffer) {\n    return new Uint8Array(input);\n  } else if (input instanceof Uint8Array) {\n    return input;\n  } else {\n    throw new TypeError(\n      '`input` must be one of `string | ArrayBuffer | Uint8Array`',\n    );\n  }\n};\n","/**\n * Returns a Promise that resolves after at least one tick of the\n * Macro Task Queue occurs.\n */\nexport const waitForTick = (): Promise<void> =>\n  new Promise((resolve) => {\n    setTimeout(() => resolve(), 0);\n  });\n","/*\n * The `chars`, `lookup`, and `decodeFromBase64` members of this file are\n * licensed under the following:\n *\n *     base64-arraybuffer\n *     https://github.com/niklasvh/base64-arraybuffer\n *\n *     Copyright (c) 2012 Niklas von Hertzen\n *     Licensed under the MIT license.\n *\n */\nimport pako from 'pako';\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n}\nexport var decodeFromBase64 = function (base64) {\n    var bufferLength = base64.length * 0.75;\n    var len = base64.length;\n    var i;\n    var p = 0;\n    var encoded1;\n    var encoded2;\n    var encoded3;\n    var encoded4;\n    if (base64[base64.length - 1] === '=') {\n        bufferLength--;\n        if (base64[base64.length - 2] === '=') {\n            bufferLength--;\n        }\n    }\n    var bytes = new Uint8Array(bufferLength);\n    for (i = 0; i < len; i += 4) {\n        encoded1 = lookup[base64.charCodeAt(i)];\n        encoded2 = lookup[base64.charCodeAt(i + 1)];\n        encoded3 = lookup[base64.charCodeAt(i + 2)];\n        encoded4 = lookup[base64.charCodeAt(i + 3)];\n        bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n        bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n        bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n    return bytes;\n};\nvar arrayToString = function (array) {\n    var str = '';\n    for (var i = 0; i < array.length; i++) {\n        str += String.fromCharCode(array[i]);\n    }\n    return str;\n};\nexport var decompressJson = function (compressedJson) {\n    return arrayToString(pako.inflate(decodeFromBase64(compressedJson)));\n};\nexport var padStart = function (value, length, padChar) {\n    var padding = '';\n    for (var idx = 0, len = length - value.length; idx < len; idx++) {\n        padding += padChar;\n    }\n    return padding + value;\n};\n","// tslint:disable radix\n\n/**\n * Converts a number to its string representation in decimal. This function\n * differs from simply converting a number to a string with `.toString()`\n * because this function's output string will **not** contain exponential\n * notation.\n *\n * Credit: https://stackoverflow.com/a/46545519\n */\nexport const numberToString = (num: number) => {\n  let numStr = String(num);\n\n  if (Math.abs(num) < 1.0) {\n    const e = parseInt(num.toString().split('e-')[1]);\n    if (e) {\n      const negative = num < 0;\n      if (negative) num *= -1;\n      num *= Math.pow(10, e - 1);\n      numStr = '0.' + new Array(e).join('0') + num.toString().substring(2);\n      if (negative) numStr = '-' + numStr;\n    }\n  } else {\n    let e = parseInt(num.toString().split('+')[1]);\n    if (e > 20) {\n      e -= 20;\n      num /= Math.pow(10, e);\n      numStr = num.toString() + new Array(e + 1).join('0');\n    }\n  }\n\n  return numStr;\n};\n\nexport const sizeInBytes = (n: number) => Math.ceil(n.toString(2).length / 8);\n\n/**\n * Converts a number into its constituent bytes and returns them as\n * a number[].\n *\n * Returns most significant byte as first element in array. It may be necessary\n * to call .reverse() to get the bits in the desired order.\n *\n * Example:\n *   bytesFor(0x02A41E) => [ 0b10, 0b10100100, 0b11110 ]\n *\n * Credit for algorithm: https://stackoverflow.com/a/1936865\n */\nexport const bytesFor = (n: number) => {\n  const bytes = new Uint8Array(sizeInBytes(n));\n  for (let i = 1; i <= bytes.length; i++) {\n    bytes[i - 1] = n >> ((bytes.length - i) * 8);\n  }\n  return bytes;\n};\n","export const error = (msg: string) => {\n  throw new Error(msg);\n};\n","import { decompressJson } from './utils';\nimport CourierBoldCompressed from './Courier-Bold.compressed.json';\nimport CourierBoldObliqueCompressed from './Courier-BoldOblique.compressed.json';\nimport CourierObliqueCompressed from './Courier-Oblique.compressed.json';\nimport CourierCompressed from './Courier.compressed.json';\nimport HelveticaBoldCompressed from './Helvetica-Bold.compressed.json';\nimport HelveticaBoldObliqueCompressed from './Helvetica-BoldOblique.compressed.json';\nimport HelveticaObliqueCompressed from './Helvetica-Oblique.compressed.json';\nimport HelveticaCompressed from './Helvetica.compressed.json';\nimport TimesBoldCompressed from './Times-Bold.compressed.json';\nimport TimesBoldItalicCompressed from './Times-BoldItalic.compressed.json';\nimport TimesItalicCompressed from './Times-Italic.compressed.json';\nimport TimesRomanCompressed from './Times-Roman.compressed.json';\nimport SymbolCompressed from './Symbol.compressed.json';\nimport ZapfDingbatsCompressed from './ZapfDingbats.compressed.json';\n// prettier-ignore\nvar compressedJsonForFontName = {\n    'Courier': CourierCompressed,\n    'Courier-Bold': CourierBoldCompressed,\n    'Courier-Oblique': CourierObliqueCompressed,\n    'Courier-BoldOblique': CourierBoldObliqueCompressed,\n    'Helvetica': HelveticaCompressed,\n    'Helvetica-Bold': HelveticaBoldCompressed,\n    'Helvetica-Oblique': HelveticaObliqueCompressed,\n    'Helvetica-BoldOblique': HelveticaBoldObliqueCompressed,\n    'Times-Roman': TimesRomanCompressed,\n    'Times-Bold': TimesBoldCompressed,\n    'Times-Italic': TimesItalicCompressed,\n    'Times-BoldItalic': TimesBoldItalicCompressed,\n    'Symbol': SymbolCompressed,\n    'ZapfDingbats': ZapfDingbatsCompressed,\n};\nexport var FontNames;\n(function (FontNames) {\n    FontNames[\"Courier\"] = \"Courier\";\n    FontNames[\"CourierBold\"] = \"Courier-Bold\";\n    FontNames[\"CourierOblique\"] = \"Courier-Oblique\";\n    FontNames[\"CourierBoldOblique\"] = \"Courier-BoldOblique\";\n    FontNames[\"Helvetica\"] = \"Helvetica\";\n    FontNames[\"HelveticaBold\"] = \"Helvetica-Bold\";\n    FontNames[\"HelveticaOblique\"] = \"Helvetica-Oblique\";\n    FontNames[\"HelveticaBoldOblique\"] = \"Helvetica-BoldOblique\";\n    FontNames[\"TimesRoman\"] = \"Times-Roman\";\n    FontNames[\"TimesRomanBold\"] = \"Times-Bold\";\n    FontNames[\"TimesRomanItalic\"] = \"Times-Italic\";\n    FontNames[\"TimesRomanBoldItalic\"] = \"Times-BoldItalic\";\n    FontNames[\"Symbol\"] = \"Symbol\";\n    FontNames[\"ZapfDingbats\"] = \"ZapfDingbats\";\n})(FontNames || (FontNames = {}));\nvar fontCache = {};\nvar Font = /** @class */ (function () {\n    function Font() {\n        var _this = this;\n        this.getWidthOfGlyph = function (glyphName) {\n            return _this.CharWidths[glyphName];\n        };\n        this.getXAxisKerningForPair = function (leftGlyphName, rightGlyphName) {\n            return (_this.KernPairXAmounts[leftGlyphName] || {})[rightGlyphName];\n        };\n    }\n    Font.load = function (fontName) {\n        var cachedFont = fontCache[fontName];\n        if (cachedFont)\n            return cachedFont;\n        var json = decompressJson(compressedJsonForFontName[fontName]);\n        var font = Object.assign(new Font(), JSON.parse(json));\n        font.CharWidths = font.CharMetrics.reduce(function (acc, metric) {\n            acc[metric.N] = metric.WX;\n            return acc;\n        }, {});\n        font.KernPairXAmounts = font.KernPairs.reduce(function (acc, _a) {\n            var name1 = _a[0], name2 = _a[1], width = _a[2];\n            if (!acc[name1])\n                acc[name1] = {};\n            acc[name1][name2] = width;\n            return acc;\n        }, {});\n        fontCache[fontName] = font;\n        return font;\n    };\n    return Font;\n}());\nexport { Font };\n","import { toCharCode } from 'src/utils/strings';\n\n// Mapping from PDFDocEncoding to Unicode code point\nconst pdfDocEncodingToUnicode = new Uint16Array(256);\n\n// Initialize the code points which are the same\nfor (let idx = 0; idx < 256; idx++) {\n  pdfDocEncodingToUnicode[idx] = idx;\n}\n\n// Set differences (see \"Table D.2 – PDFDocEncoding Character Set\" of the PDF spec)\npdfDocEncodingToUnicode[0x16] = toCharCode('\\u0017'); // SYNCRONOUS IDLE\npdfDocEncodingToUnicode[0x18] = toCharCode('\\u02D8'); // BREVE\npdfDocEncodingToUnicode[0x19] = toCharCode('\\u02C7'); // CARON\npdfDocEncodingToUnicode[0x1a] = toCharCode('\\u02C6'); // MODIFIER LETTER CIRCUMFLEX ACCENT\npdfDocEncodingToUnicode[0x1b] = toCharCode('\\u02D9'); // DOT ABOVE\npdfDocEncodingToUnicode[0x1c] = toCharCode('\\u02DD'); // DOUBLE ACUTE ACCENT\npdfDocEncodingToUnicode[0x1d] = toCharCode('\\u02DB'); // OGONEK\npdfDocEncodingToUnicode[0x1e] = toCharCode('\\u02DA'); // RING ABOVE\npdfDocEncodingToUnicode[0x1f] = toCharCode('\\u02DC'); // SMALL TILDE\npdfDocEncodingToUnicode[0x7f] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\npdfDocEncodingToUnicode[0x80] = toCharCode('\\u2022'); // BULLET\npdfDocEncodingToUnicode[0x81] = toCharCode('\\u2020'); // DAGGER\npdfDocEncodingToUnicode[0x82] = toCharCode('\\u2021'); // DOUBLE DAGGER\npdfDocEncodingToUnicode[0x83] = toCharCode('\\u2026'); // HORIZONTAL ELLIPSIS\npdfDocEncodingToUnicode[0x84] = toCharCode('\\u2014'); // EM DASH\npdfDocEncodingToUnicode[0x85] = toCharCode('\\u2013'); // EN DASH\npdfDocEncodingToUnicode[0x86] = toCharCode('\\u0192'); // LATIN SMALL LETTER SCRIPT F\npdfDocEncodingToUnicode[0x87] = toCharCode('\\u2044'); // FRACTION SLASH (solidus)\npdfDocEncodingToUnicode[0x88] = toCharCode('\\u2039'); // SINGLE LEFT-POINTING ANGLE QUOTATION MARK\npdfDocEncodingToUnicode[0x89] = toCharCode('\\u203A'); // SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\npdfDocEncodingToUnicode[0x8a] = toCharCode('\\u2212'); // MINUS SIGN\npdfDocEncodingToUnicode[0x8b] = toCharCode('\\u2030'); // PER MILLE SIGN\npdfDocEncodingToUnicode[0x8c] = toCharCode('\\u201E'); // DOUBLE LOW-9 QUOTATION MARK (quotedblbase)\npdfDocEncodingToUnicode[0x8d] = toCharCode('\\u201C'); // LEFT DOUBLE QUOTATION MARK (quotedblleft)\npdfDocEncodingToUnicode[0x8e] = toCharCode('\\u201D'); // RIGHT DOUBLE QUOTATION MARK (quotedblright)\npdfDocEncodingToUnicode[0x8f] = toCharCode('\\u2018'); // LEFT SINGLE QUOTATION MARK (quoteleft)\npdfDocEncodingToUnicode[0x90] = toCharCode('\\u2019'); // RIGHT SINGLE QUOTATION MARK (quoteright)\npdfDocEncodingToUnicode[0x91] = toCharCode('\\u201A'); // SINGLE LOW-9 QUOTATION MARK (quotesinglbase)\npdfDocEncodingToUnicode[0x92] = toCharCode('\\u2122'); // TRADE MARK SIGN\npdfDocEncodingToUnicode[0x93] = toCharCode('\\uFB01'); // LATIN SMALL LIGATURE FI\npdfDocEncodingToUnicode[0x94] = toCharCode('\\uFB02'); // LATIN SMALL LIGATURE FL\npdfDocEncodingToUnicode[0x95] = toCharCode('\\u0141'); // LATIN CAPITAL LETTER L WITH STROKE\npdfDocEncodingToUnicode[0x96] = toCharCode('\\u0152'); // LATIN CAPITAL LIGATURE OE\npdfDocEncodingToUnicode[0x97] = toCharCode('\\u0160'); // LATIN CAPITAL LETTER S WITH CARON\npdfDocEncodingToUnicode[0x98] = toCharCode('\\u0178'); // LATIN CAPITAL LETTER Y WITH DIAERESIS\npdfDocEncodingToUnicode[0x99] = toCharCode('\\u017D'); // LATIN CAPITAL LETTER Z WITH CARON\npdfDocEncodingToUnicode[0x9a] = toCharCode('\\u0131'); // LATIN SMALL LETTER DOTLESS I\npdfDocEncodingToUnicode[0x9b] = toCharCode('\\u0142'); // LATIN SMALL LETTER L WITH STROKE\npdfDocEncodingToUnicode[0x9c] = toCharCode('\\u0153'); // LATIN SMALL LIGATURE OE\npdfDocEncodingToUnicode[0x9d] = toCharCode('\\u0161'); // LATIN SMALL LETTER S WITH CARON\npdfDocEncodingToUnicode[0x9e] = toCharCode('\\u017E'); // LATIN SMALL LETTER Z WITH CARON\npdfDocEncodingToUnicode[0x9f] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\npdfDocEncodingToUnicode[0xa0] = toCharCode('\\u20AC'); // EURO SIGN\npdfDocEncodingToUnicode[0xad] = toCharCode('\\uFFFD'); // REPLACEMENT CHARACTER (box with questionmark)\n\n/**\n * Decode a byte array into a string using PDFDocEncoding.\n *\n * @param bytes a byte array (decimal representation) containing a string\n *              encoded with PDFDocEncoding.\n */\nexport const pdfDocEncodingDecode = (bytes: Uint8Array): string => {\n  const codePoints = new Array(bytes.length);\n  for (let idx = 0, len = bytes.length; idx < len; idx++) {\n    codePoints[idx] = pdfDocEncodingToUnicode[bytes[idx]];\n  }\n  return String.fromCodePoint(...codePoints);\n};\n","/* tslint:disable max-classes-per-file */\nimport { decompressJson, padStart } from './utils';\nimport AllEncodingsCompressed from './all-encodings.compressed.json';\nvar decompressedEncodings = decompressJson(AllEncodingsCompressed);\nvar allUnicodeMappings = JSON.parse(decompressedEncodings);\nvar Encoding = /** @class */ (function () {\n    function Encoding(name, unicodeMappings) {\n        var _this = this;\n        this.canEncodeUnicodeCodePoint = function (codePoint) {\n            return codePoint in _this.unicodeMappings;\n        };\n        this.encodeUnicodeCodePoint = function (codePoint) {\n            var mapped = _this.unicodeMappings[codePoint];\n            if (!mapped) {\n                var str = String.fromCharCode(codePoint);\n                var hexCode = \"0x\" + padStart(codePoint.toString(16), 4, '0');\n                var msg = _this.name + \" cannot encode \\\"\" + str + \"\\\" (\" + hexCode + \")\";\n                throw new Error(msg);\n            }\n            return { code: mapped[0], name: mapped[1] };\n        };\n        this.name = name;\n        this.supportedCodePoints = Object.keys(unicodeMappings)\n            .map(Number)\n            .sort(function (a, b) { return a - b; });\n        this.unicodeMappings = unicodeMappings;\n    }\n    return Encoding;\n}());\nexport var Encodings = {\n    Symbol: new Encoding('Symbol', allUnicodeMappings.symbol),\n    ZapfDingbats: new Encoding('ZapfDingbats', allUnicodeMappings.zapfdingbats),\n    WinAnsi: new Encoding('WinAnsi', allUnicodeMappings.win1252),\n};\n","import { FontNames } from '@pdf-lib/standard-fonts';\n\nexport const values = (obj: any) => Object.keys(obj).map((k) => obj[k]);\n\nexport const StandardFontValues = values(FontNames);\n\nexport const isStandardFont = (input: any): input is FontNames =>\n  StandardFontValues.includes(input);\n\nexport const rectanglesAreEqual = (\n  a: { x: number; y: number; width: number; height: number },\n  b: { x: number; y: number; width: number; height: number },\n) => a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n","/* tslint:disable:ban-types */\n\nimport { values as objectValues } from 'src/utils/objects';\n\nexport const backtick = (val: any) => `\\`${val}\\``;\nexport const singleQuote = (val: any) => `'${val}'`;\n\ntype Primitive = string | number | boolean | undefined | null;\n\n// prettier-ignore\nconst formatValue = (value: any) => {\n  const type = typeof value;\n  if (type ==='string') return singleQuote(value);\n  else if (type ==='undefined') return backtick(value);\n  else return value;\n};\n\nexport const createValueErrorMsg = (\n  value: any,\n  valueName: string,\n  values: Primitive[],\n) => {\n  const allowedValues = new Array(values.length);\n\n  for (let idx = 0, len = values.length; idx < len; idx++) {\n    const v = values[idx];\n    allowedValues[idx] = formatValue(v);\n  }\n\n  const joinedValues = allowedValues.join(' or ');\n\n  // prettier-ignore\n  return `${backtick(valueName)} must be one of ${joinedValues}, but was actually ${formatValue(value)}`;\n};\n\nexport const assertIsOneOf = (\n  value: any,\n  valueName: string,\n  allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n  if (!Array.isArray(allowedValues)) {\n    allowedValues = objectValues(allowedValues);\n  }\n  for (let idx = 0, len = allowedValues.length; idx < len; idx++) {\n    if (value === allowedValues[idx]) return;\n  }\n  throw new TypeError(createValueErrorMsg(value, valueName, allowedValues));\n};\n\nexport const assertIsOneOfOrUndefined = (\n  value: any,\n  valueName: string,\n  allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n  if (!Array.isArray(allowedValues)) {\n    allowedValues = objectValues(allowedValues);\n  }\n  assertIsOneOf(value, valueName, allowedValues.concat(undefined));\n};\n\nexport const assertIsSubset = (\n  values: any[],\n  valueName: string,\n  allowedValues: Primitive[] | { [key: string]: Primitive },\n) => {\n  if (!Array.isArray(allowedValues)) {\n    allowedValues = objectValues(allowedValues);\n  }\n  for (let idx = 0, len = values.length; idx < len; idx++) {\n    assertIsOneOf(values[idx], valueName, allowedValues);\n  }\n};\n\nexport const getType = (val: any) => {\n  if (val === null) return 'null';\n  if (val === undefined) return 'undefined';\n  if (typeof val === 'string') return 'string';\n  if (isNaN(val)) return 'NaN';\n  if (typeof val === 'number') return 'number';\n  if (typeof val === 'boolean') return 'boolean';\n  if (typeof val === 'symbol') return 'symbol';\n  if (typeof val === 'bigint') return 'bigint';\n  if (val.constructor && val.constructor.name) return val.constructor.name;\n  if (val.name) return val.name;\n  if (val.constructor) return String(val.constructor);\n  return String(val);\n};\n\nexport type TypeDescriptor =\n  | 'null'\n  | 'undefined'\n  | 'string'\n  | 'number'\n  | 'boolean'\n  | 'symbol'\n  | 'bigint'\n  | DateConstructor\n  | ArrayConstructor\n  | Uint8ArrayConstructor\n  | ArrayBufferConstructor\n  | FunctionConstructor\n  | [Function, string];\n\nexport const isType = (value: any, type: TypeDescriptor) => {\n  if (type === 'null') return value === null;\n  if (type === 'undefined') return value === undefined;\n  if (type === 'string') return typeof value === 'string';\n  if (type === 'number') return typeof value === 'number' && !isNaN(value);\n  if (type === 'boolean') return typeof value === 'boolean';\n  if (type === 'symbol') return typeof value === 'symbol';\n  if (type === 'bigint') return typeof value === 'bigint';\n  if (type === Date) return value instanceof Date;\n  if (type === Array) return value instanceof Array;\n  if (type === Uint8Array) return value instanceof Uint8Array;\n  if (type === ArrayBuffer) return value instanceof ArrayBuffer;\n  if (type === Function) return value instanceof Function;\n  return value instanceof (type as [Function, string])[0];\n};\n\nexport const createTypeErrorMsg = (\n  value: any,\n  valueName: string,\n  types: TypeDescriptor[],\n) => {\n  const allowedTypes = new Array(types.length);\n\n  for (let idx = 0, len = types.length; idx < len; idx++) {\n    const type = types[idx];\n    if (type === 'null') allowedTypes[idx] = backtick('null');\n    if (type === 'undefined') allowedTypes[idx] = backtick('undefined');\n    if (type === 'string') allowedTypes[idx] = backtick('string');\n    else if (type === 'number') allowedTypes[idx] = backtick('number');\n    else if (type === 'boolean') allowedTypes[idx] = backtick('boolean');\n    else if (type === 'symbol') allowedTypes[idx] = backtick('symbol');\n    else if (type === 'bigint') allowedTypes[idx] = backtick('bigint');\n    else if (type === Array) allowedTypes[idx] = backtick('Array');\n    else if (type === Uint8Array) allowedTypes[idx] = backtick('Uint8Array');\n    else if (type === ArrayBuffer) allowedTypes[idx] = backtick('ArrayBuffer');\n    else allowedTypes[idx] = backtick((type as [Function, string])[1]);\n  }\n\n  const joinedTypes = allowedTypes.join(' or ');\n\n  // prettier-ignore\n  return `${backtick(valueName)} must be of type ${joinedTypes}, but was actually of type ${backtick(getType(value))}`;\n};\n\nexport const assertIs = (\n  value: any,\n  valueName: string,\n  types: TypeDescriptor[],\n) => {\n  for (let idx = 0, len = types.length; idx < len; idx++) {\n    if (isType(value, types[idx])) return;\n  }\n  throw new TypeError(createTypeErrorMsg(value, valueName, types));\n};\n\nexport const assertOrUndefined = (\n  value: any,\n  valueName: string,\n  types: TypeDescriptor[],\n) => {\n  assertIs(value, valueName, types.concat('undefined'));\n};\n\nexport const assertEachIs = (\n  values: any[],\n  valueName: string,\n  types: TypeDescriptor[],\n) => {\n  for (let idx = 0, len = values.length; idx < len; idx++) {\n    assertIs(values[idx], valueName, types);\n  }\n};\n\nexport const assertRange = (\n  value: any,\n  valueName: string,\n  min: number,\n  max: number,\n) => {\n  assertIs(value, valueName, ['number']);\n  assertIs(min, 'min', ['number']);\n  assertIs(max, 'max', ['number']);\n  max = Math.max(min, max);\n  if (value < min || value > max) {\n    // prettier-ignore\n    throw new Error(`${backtick(valueName)} must be at least ${min} and at most ${max}, but was actually ${value}`);\n  }\n};\n\nexport const assertRangeOrUndefined = (\n  value: any,\n  valueName: string,\n  min: number,\n  max: number,\n) => {\n  assertIs(value, valueName, ['number', 'undefined']);\n  if (typeof value === 'number') assertRange(value, valueName, min, max);\n};\n\nexport const assertMultiple = (\n  value: any,\n  valueName: string,\n  multiplier: number,\n) => {\n  assertIs(value, valueName, ['number']);\n  if (value % multiplier !== 0) {\n    // prettier-ignore\n    throw new Error(`${backtick(valueName)} must be a multiple of ${multiplier}, but was actually ${value}`);\n  }\n};\n\nexport const assertInteger = (value: any, valueName: string) => {\n  if (!Number.isInteger(value)) {\n    throw new Error(\n      `${backtick(valueName)} must be an integer, but was actually ${value}`,\n    );\n  }\n};\n\nexport const assertPositive = (value: number, valueName: string) => {\n  if (![1, 0].includes(Math.sign(value))) {\n    // prettier-ignore\n    throw new Error(`${backtick(valueName)} must be a positive number or 0, but was actually ${value}`);\n  }\n};\n","class Cache<T> {\n  static readonly populatedBy = <T>(populate: () => T) => new Cache(populate);\n\n  private readonly populate: () => T;\n  private value: T | undefined;\n\n  private constructor(populate: () => T) {\n    this.populate = populate;\n    this.value = undefined;\n  }\n\n  getValue(): T | undefined {\n    return this.value;\n  }\n\n  access(): T {\n    if (!this.value) this.value = this.populate();\n    return this.value;\n  }\n\n  invalidate(): void {\n    this.value = undefined;\n  }\n}\n\nexport default Cache;\n","// tslint:disable: max-classes-per-file\nimport PDFObject from 'src/core/objects/PDFObject';\nimport { arrayAsString } from 'src/utils';\n\nexport class MethodNotImplementedError extends Error {\n  constructor(className: string, methodName: string) {\n    const msg = `Method ${className}.${methodName}() not implemented`;\n    super(msg);\n  }\n}\n\nexport class PrivateConstructorError extends Error {\n  constructor(className: string) {\n    const msg = `Cannot construct ${className} - it has a private constructor`;\n    super(msg);\n  }\n}\n\nexport class UnexpectedObjectTypeError extends Error {\n  constructor(expected: any | any[], actual: any) {\n    const name = (t: any) => t?.name ?? t?.constructor?.name;\n\n    const expectedTypes = Array.isArray(expected)\n      ? expected.map(name)\n      : [name(expected)];\n\n    const msg =\n      `Expected instance of ${expectedTypes.join(' or ')}, ` +\n      `but got instance of ${actual ? name(actual) : actual}`;\n\n    super(msg);\n  }\n}\n\nexport class UnsupportedEncodingError extends Error {\n  constructor(encoding: string) {\n    const msg = `${encoding} stream encoding not supported`;\n    super(msg);\n  }\n}\n\nexport class ReparseError extends Error {\n  constructor(className: string, methodName: string) {\n    const msg = `Cannot call ${className}.${methodName}() more than once`;\n    super(msg);\n  }\n}\n\nexport class MissingCatalogError extends Error {\n  constructor(ref?: PDFObject) {\n    const msg = `Missing catalog (ref=${ref})`;\n    super(msg);\n  }\n}\n\nexport class MissingPageContentsEmbeddingError extends Error {\n  constructor() {\n    const msg = `Can't embed page with missing Contents`;\n    super(msg);\n  }\n}\n\nexport class UnrecognizedStreamTypeError extends Error {\n  constructor(stream: any) {\n    const streamType = stream?.contructor?.name ?? stream?.name ?? stream;\n    const msg = `Unrecognized stream type: ${streamType}`;\n    super(msg);\n  }\n}\n\nexport class PageEmbeddingMismatchedContextError extends Error {\n  constructor() {\n    const msg = `Found mismatched contexts while embedding pages. All pages in the array passed to \\`PDFDocument.embedPages()\\` must be from the same document.`;\n    super(msg);\n  }\n}\n\nexport class PDFArrayIsNotRectangleError extends Error {\n  constructor(size: number) {\n    const msg = `Attempted to convert PDFArray with ${size} elements to rectangle, but must have exactly 4 elements.`;\n    super(msg);\n  }\n}\n\nexport class InvalidPDFDateStringError extends Error {\n  constructor(value: string) {\n    const msg = `Attempted to convert \"${value}\" to a date, but it does not match the PDF date string format.`;\n    super(msg);\n  }\n}\n\nexport class InvalidTargetIndexError extends Error {\n  constructor(targetIndex: number, Count: number) {\n    const msg = `Invalid targetIndex specified: targetIndex=${targetIndex} must be less than Count=${Count}`;\n    super(msg);\n  }\n}\n\nexport class CorruptPageTreeError extends Error {\n  constructor(targetIndex: number, operation: string) {\n    const msg = `Failed to ${operation} at targetIndex=${targetIndex} due to corrupt page tree: It is likely that one or more 'Count' entries are invalid`;\n    super(msg);\n  }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n  constructor(index: number, min: number, max: number) {\n    const msg = `index should be at least ${min} and at most ${max}, but was actually ${index}`;\n    super(msg);\n  }\n}\n\nexport class InvalidAcroFieldValueError extends Error {\n  constructor() {\n    const msg = `Attempted to set invalid field value`;\n    super(msg);\n  }\n}\n\nexport class MultiSelectValueError extends Error {\n  constructor() {\n    const msg = `Attempted to select multiple values for single-select field`;\n    super(msg);\n  }\n}\n\nexport class MissingDAEntryError extends Error {\n  constructor(fieldName: string) {\n    const msg = `No /DA (default appearance) entry found for field: ${fieldName}`;\n    super(msg);\n  }\n}\n\nexport class MissingTfOperatorError extends Error {\n  constructor(fieldName: string) {\n    const msg = `No Tf operator found for DA of field: ${fieldName}`;\n    super(msg);\n  }\n}\n\n/***** Parser Errors ******/\n\nexport interface Position {\n  line: number;\n  column: number;\n  offset: number;\n}\n\nexport class NumberParsingError extends Error {\n  constructor(pos: Position, value: string) {\n    const msg =\n      `Failed to parse number ` +\n      `(line:${pos.line} col:${pos.column} offset=${pos.offset}): \"${value}\"`;\n    super(msg);\n  }\n}\n\nexport class PDFParsingError extends Error {\n  constructor(pos: Position, details: string) {\n    const msg =\n      `Failed to parse PDF document ` +\n      `(line:${pos.line} col:${pos.column} offset=${pos.offset}): ${details}`;\n    super(msg);\n  }\n}\n\nexport class NextByteAssertionError extends PDFParsingError {\n  constructor(pos: Position, expectedByte: number, actualByte: number) {\n    const msg = `Expected next byte to be ${expectedByte} but it was actually ${actualByte}`;\n    super(pos, msg);\n  }\n}\n\nexport class PDFObjectParsingError extends PDFParsingError {\n  constructor(pos: Position, byte: number) {\n    const msg = `Failed to parse PDF object starting with the following byte: ${byte}`;\n    super(pos, msg);\n  }\n}\n\nexport class PDFInvalidObjectParsingError extends PDFParsingError {\n  constructor(pos: Position) {\n    const msg = `Failed to parse invalid PDF object`;\n    super(pos, msg);\n  }\n}\n\nexport class PDFStreamParsingError extends PDFParsingError {\n  constructor(pos: Position) {\n    const msg = `Failed to parse PDF stream`;\n    super(pos, msg);\n  }\n}\n\nexport class UnbalancedParenthesisError extends PDFParsingError {\n  constructor(pos: Position) {\n    const msg = `Failed to parse PDF literal string due to unbalanced parenthesis`;\n    super(pos, msg);\n  }\n}\n\nexport class StalledParserError extends PDFParsingError {\n  constructor(pos: Position) {\n    const msg = `Parser stalled`;\n    super(pos, msg);\n  }\n}\n\nexport class MissingPDFHeaderError extends PDFParsingError {\n  constructor(pos: Position) {\n    const msg = `No PDF header found`;\n    super(pos, msg);\n  }\n}\n\nexport class MissingKeywordError extends PDFParsingError {\n  constructor(pos: Position, keyword: number[]) {\n    const msg = `Did not find expected keyword '${arrayAsString(keyword)}'`;\n    super(pos, msg);\n  }\n}\n","enum CharCodes {\n  Null = 0,\n  Backspace = 8,\n  Tab = 9,\n  Newline = 10,\n  FormFeed = 12,\n  CarriageReturn = 13,\n  Space = 32,\n  ExclamationPoint = 33,\n  Hash = 35,\n  Percent = 37,\n  LeftParen = 40,\n  RightParen = 41,\n  Plus = 43,\n  Minus = 45,\n  Dash = 45,\n  Period = 46,\n  ForwardSlash = 47,\n  Zero = 48,\n  One = 49,\n  Two = 50,\n  Three = 51,\n  Four = 52,\n  Five = 53,\n  Six = 54,\n  Seven = 55,\n  Eight = 56,\n  Nine = 57,\n  LessThan = 60,\n  GreaterThan = 62,\n  A = 65,\n  D = 68,\n  E = 69,\n  F = 70,\n  O = 79,\n  P = 80,\n  R = 82,\n  LeftSquareBracket = 91,\n  BackSlash = 92,\n  RightSquareBracket = 93,\n  a = 97,\n  b = 98,\n  d = 100,\n  e = 101,\n  f = 102,\n  i = 105,\n  j = 106,\n  l = 108,\n  m = 109,\n  n = 110,\n  o = 111,\n  r = 114,\n  s = 115,\n  t = 116,\n  u = 117,\n  x = 120,\n  LeftCurly = 123,\n  RightCurly = 125,\n  Tilde = 126,\n}\n\nexport default CharCodes;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { charFromCode, copyStringIntoBuffer } from 'src/utils';\n\nclass PDFHeader {\n  static forVersion = (major: number, minor: number) =>\n    new PDFHeader(major, minor);\n\n  private readonly major: string;\n  private readonly minor: string;\n\n  private constructor(major: number, minor: number) {\n    this.major = String(major);\n    this.minor = String(minor);\n  }\n\n  toString(): string {\n    const bc = charFromCode(129);\n    return `%PDF-${this.major}.${this.minor}\\n%${bc}${bc}${bc}${bc}`;\n  }\n\n  sizeInBytes(): number {\n    return 12 + this.major.length + this.minor.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.Percent;\n    buffer[offset++] = CharCodes.P;\n    buffer[offset++] = CharCodes.D;\n    buffer[offset++] = CharCodes.F;\n    buffer[offset++] = CharCodes.Dash;\n\n    offset += copyStringIntoBuffer(this.major, buffer, offset);\n    buffer[offset++] = CharCodes.Period;\n    offset += copyStringIntoBuffer(this.minor, buffer, offset);\n    buffer[offset++] = CharCodes.Newline;\n\n    buffer[offset++] = CharCodes.Percent;\n    buffer[offset++] = 129;\n    buffer[offset++] = 129;\n    buffer[offset++] = 129;\n    buffer[offset++] = 129;\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFHeader;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport PDFContext from 'src/core/PDFContext';\n\nclass PDFObject {\n  clone(_context?: PDFContext): PDFObject {\n    throw new MethodNotImplementedError(this.constructor.name, 'clone');\n  }\n\n  toString(): string {\n    throw new MethodNotImplementedError(this.constructor.name, 'toString');\n  }\n\n  sizeInBytes(): number {\n    throw new MethodNotImplementedError(this.constructor.name, 'sizeInBytes');\n  }\n\n  copyBytesInto(_buffer: Uint8Array, _offset: number): number {\n    throw new MethodNotImplementedError(this.constructor.name, 'copyBytesInto');\n  }\n}\n\nexport default PDFObject;\n","import { copyStringIntoBuffer, numberToString } from 'src/utils/index';\n\nimport PDFObject from 'src/core/objects/PDFObject';\n\nclass PDFNumber extends PDFObject {\n  static of = (value: number) => new PDFNumber(value);\n\n  private readonly numberValue: number;\n  private readonly stringValue: string;\n\n  private constructor(value: number) {\n    super();\n    this.numberValue = value;\n    this.stringValue = numberToString(value);\n  }\n\n  asNumber(): number {\n    return this.numberValue;\n  }\n\n  /** @deprecated in favor of [[PDFNumber.asNumber]] */\n  value(): number {\n    return this.numberValue;\n  }\n\n  clone(): PDFNumber {\n    return PDFNumber.of(this.numberValue);\n  }\n\n  toString(): string {\n    return this.stringValue;\n  }\n\n  sizeInBytes(): number {\n    return this.stringValue.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    offset += copyStringIntoBuffer(this.stringValue, buffer, offset);\n    return this.stringValue.length;\n  }\n}\n\nexport default PDFNumber;\n","import PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { PDFArrayIsNotRectangleError } from 'src/core/errors';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\n\nclass PDFArray extends PDFObject {\n  static withContext = (context: PDFContext) => new PDFArray(context);\n\n  private readonly array: PDFObject[];\n  private readonly context: PDFContext;\n\n  private constructor(context: PDFContext) {\n    super();\n    this.array = [];\n    this.context = context;\n  }\n\n  size(): number {\n    return this.array.length;\n  }\n\n  push(object: PDFObject): void {\n    this.array.push(object);\n  }\n\n  insert(index: number, object: PDFObject): void {\n    this.array.splice(index, 0, object);\n  }\n\n  indexOf(object: PDFObject): number | undefined {\n    const index = this.array.indexOf(object);\n    return index === -1 ? undefined : index;\n  }\n\n  remove(index: number): void {\n    this.array.splice(index, 1);\n  }\n\n  set(idx: number, object: PDFObject): void {\n    this.array[idx] = object;\n  }\n\n  get(index: number): PDFObject {\n    return this.array[index];\n  }\n\n  lookupMaybe(index: number, type: typeof PDFArray): PDFArray | undefined;\n  lookupMaybe(index: number, type: typeof PDFBool): PDFBool | undefined;\n  lookupMaybe(index: number, type: typeof PDFDict): PDFDict | undefined;\n  lookupMaybe(\n    index: number,\n    type: typeof PDFHexString,\n  ): PDFHexString | undefined;\n  lookupMaybe(index: number, type: typeof PDFName): PDFName | undefined;\n  lookupMaybe(index: number, type: typeof PDFNull): typeof PDFNull | undefined;\n  lookupMaybe(index: number, type: typeof PDFNumber): PDFNumber | undefined;\n  lookupMaybe(index: number, type: typeof PDFStream): PDFStream | undefined;\n  lookupMaybe(\n    index: number,\n    type: typeof PDFRawStream,\n  ): PDFRawStream | undefined;\n  lookupMaybe(index: number, type: typeof PDFRef): PDFRef | undefined;\n  lookupMaybe(index: number, type: typeof PDFString): PDFString | undefined;\n  lookupMaybe(\n    index: number,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString | undefined;\n\n  lookupMaybe(index: number, ...types: any[]) {\n    return this.context.lookupMaybe(\n      this.get(index),\n      // @ts-ignore\n      ...types,\n    ) as any;\n  }\n\n  lookup(index: number): PDFObject | undefined;\n  lookup(index: number, type: typeof PDFArray): PDFArray;\n  lookup(index: number, type: typeof PDFBool): PDFBool;\n  lookup(index: number, type: typeof PDFDict): PDFDict;\n  lookup(index: number, type: typeof PDFHexString): PDFHexString;\n  lookup(index: number, type: typeof PDFName): PDFName;\n  lookup(index: number, type: typeof PDFNull): typeof PDFNull;\n  lookup(index: number, type: typeof PDFNumber): PDFNumber;\n  lookup(index: number, type: typeof PDFStream): PDFStream;\n  lookup(index: number, type: typeof PDFRawStream): PDFRawStream;\n  lookup(index: number, type: typeof PDFRef): PDFRef;\n  lookup(index: number, type: typeof PDFString): PDFString;\n  lookup(\n    index: number,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString;\n\n  lookup(index: number, ...types: any[]) {\n    return this.context.lookup(\n      this.get(index),\n      // @ts-ignore\n      ...types,\n    ) as any;\n  }\n\n  asRectangle(): { x: number; y: number; width: number; height: number } {\n    if (this.size() !== 4) throw new PDFArrayIsNotRectangleError(this.size());\n\n    const lowerLeftX = this.lookup(0, PDFNumber).asNumber();\n    const lowerLeftY = this.lookup(1, PDFNumber).asNumber();\n    const upperRightX = this.lookup(2, PDFNumber).asNumber();\n    const upperRightY = this.lookup(3, PDFNumber).asNumber();\n\n    const x = lowerLeftX;\n    const y = lowerLeftY;\n    const width = upperRightX - lowerLeftX;\n    const height = upperRightY - lowerLeftY;\n\n    return { x, y, width, height };\n  }\n\n  asArray(): PDFObject[] {\n    return this.array.slice();\n  }\n\n  clone(context?: PDFContext): PDFArray {\n    const clone = PDFArray.withContext(context || this.context);\n    for (let idx = 0, len = this.size(); idx < len; idx++) {\n      clone.push(this.array[idx]);\n    }\n    return clone;\n  }\n\n  toString(): string {\n    let arrayString = '[ ';\n    for (let idx = 0, len = this.size(); idx < len; idx++) {\n      arrayString += this.get(idx).toString();\n      arrayString += ' ';\n    }\n    arrayString += ']';\n    return arrayString;\n  }\n\n  sizeInBytes(): number {\n    let size = 3;\n    for (let idx = 0, len = this.size(); idx < len; idx++) {\n      size += this.get(idx).sizeInBytes() + 1;\n    }\n    return size;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.LeftSquareBracket;\n    buffer[offset++] = CharCodes.Space;\n    for (let idx = 0, len = this.size(); idx < len; idx++) {\n      offset += this.get(idx).copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n    }\n    buffer[offset++] = CharCodes.RightSquareBracket;\n\n    return offset - initialOffset;\n  }\n\n  scalePDFNumbers(x: number, y: number): void {\n    for (let idx = 0, len = this.size(); idx < len; idx++) {\n      const el = this.lookup(idx);\n      if (el instanceof PDFNumber) {\n        const factor = idx % 2 === 0 ? x : y;\n        this.set(idx, PDFNumber.of(el.asNumber() * factor));\n      }\n    }\n  }\n}\n\nexport default PDFArray;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nconst ENFORCER = {};\n\nclass PDFBool extends PDFObject {\n  static readonly True = new PDFBool(ENFORCER, true);\n  static readonly False = new PDFBool(ENFORCER, false);\n\n  private readonly value: boolean;\n\n  private constructor(enforcer: any, value: boolean) {\n    if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFBool');\n    super();\n    this.value = value;\n  }\n\n  asBoolean(): boolean {\n    return this.value;\n  }\n\n  clone(): PDFBool {\n    return this;\n  }\n\n  toString(): string {\n    return String(this.value);\n  }\n\n  sizeInBytes(): number {\n    return this.value ? 4 : 5;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    if (this.value) {\n      buffer[offset++] = CharCodes.t;\n      buffer[offset++] = CharCodes.r;\n      buffer[offset++] = CharCodes.u;\n      buffer[offset++] = CharCodes.e;\n      return 4;\n    } else {\n      buffer[offset++] = CharCodes.f;\n      buffer[offset++] = CharCodes.a;\n      buffer[offset++] = CharCodes.l;\n      buffer[offset++] = CharCodes.s;\n      buffer[offset++] = CharCodes.e;\n      return 5;\n    }\n  }\n}\n\nexport default PDFBool;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsDelimiter = new Uint8Array(256);\n\nIsDelimiter[CharCodes.LeftParen] = 1;\nIsDelimiter[CharCodes.RightParen] = 1;\nIsDelimiter[CharCodes.LessThan] = 1;\nIsDelimiter[CharCodes.GreaterThan] = 1;\nIsDelimiter[CharCodes.LeftSquareBracket] = 1;\nIsDelimiter[CharCodes.RightSquareBracket] = 1;\nIsDelimiter[CharCodes.LeftCurly] = 1;\nIsDelimiter[CharCodes.RightCurly] = 1;\nIsDelimiter[CharCodes.ForwardSlash] = 1;\nIsDelimiter[CharCodes.Percent] = 1;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsWhitespace = new Uint8Array(256);\n\nIsWhitespace[CharCodes.Null] = 1;\nIsWhitespace[CharCodes.Tab] = 1;\nIsWhitespace[CharCodes.Newline] = 1;\nIsWhitespace[CharCodes.FormFeed] = 1;\nIsWhitespace[CharCodes.CarriageReturn] = 1;\nIsWhitespace[CharCodes.Space] = 1;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDelimiter } from 'src/core/syntax/Delimiters';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\n\nexport const IsIrregular = new Uint8Array(256);\n\nfor (let idx = 0, len = 256; idx < len; idx++) {\n  IsIrregular[idx] = IsWhitespace[idx] || IsDelimiter[idx] ? 1 : 0;\n}\nIsIrregular[CharCodes.Hash] = 1;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsIrregular } from 'src/core/syntax/Irregular';\nimport {\n  charFromHexCode,\n  copyStringIntoBuffer,\n  toCharCode,\n  toHexString,\n} from 'src/utils';\n\nconst decodeName = (name: string) =>\n  name.replace(/#([\\dABCDEF]{2})/g, (_, hex) => charFromHexCode(hex));\n\nconst isRegularChar = (charCode: number) =>\n  charCode >= CharCodes.ExclamationPoint &&\n  charCode <= CharCodes.Tilde &&\n  !IsIrregular[charCode];\n\nconst ENFORCER = {};\nconst pool = new Map<string, PDFName>();\n\nclass PDFName extends PDFObject {\n  static of = (name: string): PDFName => {\n    const decodedValue = decodeName(name);\n\n    let instance = pool.get(decodedValue);\n    if (!instance) {\n      instance = new PDFName(ENFORCER, decodedValue);\n      pool.set(decodedValue, instance);\n    }\n\n    return instance;\n  };\n\n  /* tslint:disable member-ordering */\n  static readonly Length = PDFName.of('Length');\n  static readonly FlateDecode = PDFName.of('FlateDecode');\n  static readonly Resources = PDFName.of('Resources');\n  static readonly Font = PDFName.of('Font');\n  static readonly XObject = PDFName.of('XObject');\n  static readonly ExtGState = PDFName.of('ExtGState');\n  static readonly Contents = PDFName.of('Contents');\n  static readonly Type = PDFName.of('Type');\n  static readonly Parent = PDFName.of('Parent');\n  static readonly MediaBox = PDFName.of('MediaBox');\n  static readonly Page = PDFName.of('Page');\n  static readonly Annots = PDFName.of('Annots');\n  static readonly TrimBox = PDFName.of('TrimBox');\n  static readonly ArtBox = PDFName.of('ArtBox');\n  static readonly BleedBox = PDFName.of('BleedBox');\n  static readonly CropBox = PDFName.of('CropBox');\n  static readonly Rotate = PDFName.of('Rotate');\n  static readonly Title = PDFName.of('Title');\n  static readonly Author = PDFName.of('Author');\n  static readonly Subject = PDFName.of('Subject');\n  static readonly Creator = PDFName.of('Creator');\n  static readonly Keywords = PDFName.of('Keywords');\n  static readonly Producer = PDFName.of('Producer');\n  static readonly CreationDate = PDFName.of('CreationDate');\n  static readonly ModDate = PDFName.of('ModDate');\n  /* tslint:enable member-ordering */\n\n  private readonly encodedName: string;\n\n  private constructor(enforcer: any, name: string) {\n    if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFName');\n    super();\n\n    let encodedName = '/';\n    for (let idx = 0, len = name.length; idx < len; idx++) {\n      const character = name[idx];\n      const code = toCharCode(character);\n      encodedName += isRegularChar(code) ? character : `#${toHexString(code)}`;\n    }\n\n    this.encodedName = encodedName;\n  }\n\n  asBytes(): Uint8Array {\n    const bytes: number[] = [];\n\n    let hex = '';\n    let escaped = false;\n\n    const pushByte = (byte?: number) => {\n      if (byte !== undefined) bytes.push(byte);\n      escaped = false;\n    };\n\n    for (let idx = 1, len = this.encodedName.length; idx < len; idx++) {\n      const char = this.encodedName[idx];\n      const byte = toCharCode(char);\n      const nextChar = this.encodedName[idx + 1];\n      if (!escaped) {\n        if (byte === CharCodes.Hash) escaped = true;\n        else pushByte(byte);\n      } else {\n        if (\n          (byte >= CharCodes.Zero && byte <= CharCodes.Nine) ||\n          (byte >= CharCodes.a && byte <= CharCodes.f) ||\n          (byte >= CharCodes.A && byte <= CharCodes.F)\n        ) {\n          hex += char;\n          if (\n            hex.length === 2 ||\n            !(\n              (nextChar >= '0' && nextChar <= '9') ||\n              (nextChar >= 'a' && nextChar <= 'f') ||\n              (nextChar >= 'A' && nextChar <= 'F')\n            )\n          ) {\n            pushByte(parseInt(hex, 16));\n            hex = '';\n          }\n        } else {\n          pushByte(byte);\n        }\n      }\n    }\n\n    return new Uint8Array(bytes);\n  }\n\n  // TODO: This should probably use `utf8Decode()`\n  // TODO: Polyfill Array.from?\n  decodeText(): string {\n    const bytes = this.asBytes();\n    return String.fromCharCode(...Array.from(bytes));\n  }\n\n  asString(): string {\n    return this.encodedName;\n  }\n\n  /** @deprecated in favor of [[PDFName.asString]] */\n  value(): string {\n    return this.encodedName;\n  }\n\n  clone(): PDFName {\n    return this;\n  }\n\n  toString(): string {\n    return this.encodedName;\n  }\n\n  sizeInBytes(): number {\n    return this.encodedName.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    offset += copyStringIntoBuffer(this.encodedName, buffer, offset);\n    return this.encodedName.length;\n  }\n}\n\nexport default PDFName;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFNull extends PDFObject {\n  asNull(): null {\n    return null;\n  }\n\n  clone(): PDFNull {\n    return this;\n  }\n\n  toString(): string {\n    return 'null';\n  }\n\n  sizeInBytes(): number {\n    return 4;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    buffer[offset++] = CharCodes.n;\n    buffer[offset++] = CharCodes.u;\n    buffer[offset++] = CharCodes.l;\n    buffer[offset++] = CharCodes.l;\n    return 4;\n  }\n}\n\nexport default new PDFNull();\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nexport type DictMap = Map<PDFName, PDFObject>;\n\nclass PDFDict extends PDFObject {\n  static withContext = (context: PDFContext) => new PDFDict(new Map(), context);\n\n  static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n    new PDFDict(map, context);\n\n  readonly context: PDFContext;\n\n  private readonly dict: DictMap;\n\n  protected constructor(map: DictMap, context: PDFContext) {\n    super();\n    this.dict = map;\n    this.context = context;\n  }\n\n  keys(): PDFName[] {\n    return Array.from(this.dict.keys());\n  }\n\n  values(): PDFObject[] {\n    return Array.from(this.dict.values());\n  }\n\n  entries(): [PDFName, PDFObject][] {\n    return Array.from(this.dict.entries());\n  }\n\n  set(key: PDFName, value: PDFObject): void {\n    this.dict.set(key, value);\n  }\n\n  get(\n    key: PDFName,\n    // TODO: `preservePDFNull` is for backwards compatibility. Should be\n    // removed in next breaking API change.\n    preservePDFNull = false,\n  ): PDFObject | undefined {\n    const value = this.dict.get(key);\n    if (value === PDFNull && !preservePDFNull) return undefined;\n    return value;\n  }\n\n  has(key: PDFName): boolean {\n    const value = this.dict.get(key);\n    return value !== undefined && value !== PDFNull;\n  }\n\n  lookupMaybe(key: PDFName, type: typeof PDFArray): PDFArray | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFBool): PDFBool | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFDict): PDFDict | undefined;\n  lookupMaybe(\n    key: PDFName,\n    type: typeof PDFHexString,\n  ): PDFHexString | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFName): PDFName | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFNull): typeof PDFNull | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFNumber): PDFNumber | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFStream): PDFStream | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFRef): PDFRef | undefined;\n  lookupMaybe(key: PDFName, type: typeof PDFString): PDFString | undefined;\n  lookupMaybe(\n    ref: PDFName,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString | undefined;\n  lookupMaybe(\n    ref: PDFName,\n    type1: typeof PDFDict,\n    type2: typeof PDFStream,\n  ): PDFDict | PDFStream | undefined;\n  lookupMaybe(\n    ref: PDFName,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n    type3: typeof PDFArray,\n  ): PDFString | PDFHexString | PDFArray | undefined;\n\n  lookupMaybe(key: PDFName, ...types: any[]) {\n    // TODO: `preservePDFNull` is for backwards compatibility. Should be\n    // removed in next breaking API change.\n    const preservePDFNull = types.includes(PDFNull);\n\n    const value = this.context.lookupMaybe(\n      this.get(key, preservePDFNull),\n      // @ts-ignore\n      ...types,\n    ) as any;\n\n    if (value === PDFNull && !preservePDFNull) return undefined;\n\n    return value;\n  }\n\n  lookup(key: PDFName): PDFObject | undefined;\n  lookup(key: PDFName, type: typeof PDFArray): PDFArray;\n  lookup(key: PDFName, type: typeof PDFBool): PDFBool;\n  lookup(key: PDFName, type: typeof PDFDict): PDFDict;\n  lookup(key: PDFName, type: typeof PDFHexString): PDFHexString;\n  lookup(key: PDFName, type: typeof PDFName): PDFName;\n  lookup(key: PDFName, type: typeof PDFNull): typeof PDFNull;\n  lookup(key: PDFName, type: typeof PDFNumber): PDFNumber;\n  lookup(key: PDFName, type: typeof PDFStream): PDFStream;\n  lookup(key: PDFName, type: typeof PDFRef): PDFRef;\n  lookup(key: PDFName, type: typeof PDFString): PDFString;\n  lookup(\n    ref: PDFName,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString;\n  lookup(\n    ref: PDFName,\n    type1: typeof PDFDict,\n    type2: typeof PDFStream,\n  ): PDFDict | PDFStream;\n  lookup(\n    ref: PDFName,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n    type3: typeof PDFArray,\n  ): PDFString | PDFHexString | PDFArray;\n\n  lookup(key: PDFName, ...types: any[]) {\n    // TODO: `preservePDFNull` is for backwards compatibility. Should be\n    // removed in next breaking API change.\n    const preservePDFNull = types.includes(PDFNull);\n\n    const value = this.context.lookup(\n      this.get(key, preservePDFNull),\n      // @ts-ignore\n      ...types,\n    ) as any;\n\n    if (value === PDFNull && !preservePDFNull) return undefined;\n\n    return value;\n  }\n\n  delete(key: PDFName): boolean {\n    return this.dict.delete(key);\n  }\n\n  asMap(): Map<PDFName, PDFObject> {\n    return new Map(this.dict);\n  }\n\n  /** Generate a random key that doesn't exist in current key set */\n  uniqueKey(tag = ''): PDFName {\n    const existingKeys = this.keys();\n    let key = PDFName.of(this.context.addRandomSuffix(tag, 10));\n    while (existingKeys.includes(key)) {\n      key = PDFName.of(this.context.addRandomSuffix(tag, 10));\n    }\n    return key;\n  }\n\n  clone(context?: PDFContext): PDFDict {\n    const clone = PDFDict.withContext(context || this.context);\n    const entries = this.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      clone.set(key, value);\n    }\n    return clone;\n  }\n\n  toString(): string {\n    let dictString = '<<\\n';\n    const entries = this.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      dictString += key.toString() + ' ' + value.toString() + '\\n';\n    }\n    dictString += '>>';\n    return dictString;\n  }\n\n  sizeInBytes(): number {\n    let size = 5;\n    const entries = this.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      size += key.sizeInBytes() + value.sizeInBytes() + 2;\n    }\n    return size;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.LessThan;\n    buffer[offset++] = CharCodes.LessThan;\n    buffer[offset++] = CharCodes.Newline;\n\n    const entries = this.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      offset += key.copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n      offset += value.copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n    }\n\n    buffer[offset++] = CharCodes.GreaterThan;\n    buffer[offset++] = CharCodes.GreaterThan;\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFDict;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFStream extends PDFObject {\n  readonly dict: PDFDict;\n\n  constructor(dict: PDFDict) {\n    super();\n    this.dict = dict;\n  }\n\n  clone(_context?: PDFContext): PDFStream {\n    throw new MethodNotImplementedError(this.constructor.name, 'clone');\n  }\n\n  getContentsString(): string {\n    throw new MethodNotImplementedError(\n      this.constructor.name,\n      'getContentsString',\n    );\n  }\n\n  getContents(): Uint8Array {\n    throw new MethodNotImplementedError(this.constructor.name, 'getContents');\n  }\n\n  getContentsSize(): number {\n    throw new MethodNotImplementedError(\n      this.constructor.name,\n      'getContentsSize',\n    );\n  }\n\n  updateDict(): void {\n    const contentsSize = this.getContentsSize();\n    this.dict.set(PDFName.Length, PDFNumber.of(contentsSize));\n  }\n\n  sizeInBytes(): number {\n    this.updateDict();\n    return this.dict.sizeInBytes() + this.getContentsSize() + 18;\n  }\n\n  toString(): string {\n    this.updateDict();\n    let streamString = this.dict.toString();\n    streamString += '\\nstream\\n';\n    streamString += this.getContentsString();\n    streamString += '\\nendstream';\n    return streamString;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    this.updateDict();\n    const initialOffset = offset;\n\n    offset += this.dict.copyBytesInto(buffer, offset);\n    buffer[offset++] = CharCodes.Newline;\n\n    buffer[offset++] = CharCodes.s;\n    buffer[offset++] = CharCodes.t;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.a;\n    buffer[offset++] = CharCodes.m;\n    buffer[offset++] = CharCodes.Newline;\n\n    const contents = this.getContents();\n    for (let idx = 0, len = contents.length; idx < len; idx++) {\n      buffer[offset++] = contents[idx];\n    }\n\n    buffer[offset++] = CharCodes.Newline;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.n;\n    buffer[offset++] = CharCodes.d;\n    buffer[offset++] = CharCodes.s;\n    buffer[offset++] = CharCodes.t;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.a;\n    buffer[offset++] = CharCodes.m;\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFStream;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport { arrayAsString } from 'src/utils';\n\nclass PDFRawStream extends PDFStream {\n  static of = (dict: PDFDict, contents: Uint8Array) =>\n    new PDFRawStream(dict, contents);\n\n  readonly contents: Uint8Array;\n\n  private constructor(dict: PDFDict, contents: Uint8Array) {\n    super(dict);\n    this.contents = contents;\n  }\n\n  asUint8Array(): Uint8Array {\n    return this.contents.slice();\n  }\n\n  clone(context?: PDFContext): PDFRawStream {\n    return PDFRawStream.of(this.dict.clone(context), this.contents.slice());\n  }\n\n  getContentsString(): string {\n    return arrayAsString(this.contents);\n  }\n\n  getContents(): Uint8Array {\n    return this.contents;\n  }\n\n  getContentsSize(): number {\n    return this.contents.length;\n  }\n}\n\nexport default PDFRawStream;\n","import { PrivateConstructorError } from 'src/core/errors';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nconst ENFORCER = {};\nconst pool = new Map<string, PDFRef>();\n\nclass PDFRef extends PDFObject {\n  static of = (objectNumber: number, generationNumber = 0) => {\n    const tag = `${objectNumber} ${generationNumber} R`;\n\n    let instance = pool.get(tag);\n    if (!instance) {\n      instance = new PDFRef(ENFORCER, objectNumber, generationNumber);\n      pool.set(tag, instance);\n    }\n\n    return instance;\n  };\n\n  readonly objectNumber: number;\n  readonly generationNumber: number;\n  readonly tag: string;\n\n  private constructor(\n    enforcer: any,\n    objectNumber: number,\n    generationNumber: number,\n  ) {\n    if (enforcer !== ENFORCER) throw new PrivateConstructorError('PDFRef');\n    super();\n    this.objectNumber = objectNumber;\n    this.generationNumber = generationNumber;\n    this.tag = `${objectNumber} ${generationNumber} R`;\n  }\n\n  clone(): PDFRef {\n    return this;\n  }\n\n  toString(): string {\n    return this.tag;\n  }\n\n  sizeInBytes(): number {\n    return this.tag.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    offset += copyStringIntoBuffer(this.tag, buffer, offset);\n    return this.tag.length;\n  }\n}\n\nexport default PDFRef;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFOperatorNames from 'src/core/operators/PDFOperatorNames';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nexport type PDFOperatorArg =\n  | string\n  | PDFName\n  | PDFArray\n  | PDFNumber\n  | PDFString\n  | PDFHexString;\n\nclass PDFOperator {\n  static of = (name: PDFOperatorNames, args?: PDFOperatorArg[]) =>\n    new PDFOperator(name, args);\n\n  private readonly name: PDFOperatorNames;\n  private readonly args: PDFOperatorArg[];\n\n  private constructor(name: PDFOperatorNames, args?: PDFOperatorArg[]) {\n    this.name = name;\n    this.args = args || [];\n  }\n\n  clone(context?: PDFContext): PDFOperator {\n    const args = new Array(this.args.length);\n    for (let idx = 0, len = args.length; idx < len; idx++) {\n      const arg = this.args[idx];\n      args[idx] = arg instanceof PDFObject ? arg.clone(context) : arg;\n    }\n    return PDFOperator.of(this.name, args);\n  }\n\n  toString(): string {\n    let value = '';\n    for (let idx = 0, len = this.args.length; idx < len; idx++) {\n      value += String(this.args[idx]) + ' ';\n    }\n    value += this.name;\n    return value;\n  }\n\n  sizeInBytes(): number {\n    let size = 0;\n    for (let idx = 0, len = this.args.length; idx < len; idx++) {\n      const arg = this.args[idx];\n      size += (arg instanceof PDFObject ? arg.sizeInBytes() : arg.length) + 1;\n    }\n    size += this.name.length;\n    return size;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    for (let idx = 0, len = this.args.length; idx < len; idx++) {\n      const arg = this.args[idx];\n      if (arg instanceof PDFObject) {\n        offset += arg.copyBytesInto(buffer, offset);\n      } else {\n        offset += copyStringIntoBuffer(arg, buffer, offset);\n      }\n      buffer[offset++] = CharCodes.Space;\n    }\n\n    offset += copyStringIntoBuffer(this.name, buffer, offset);\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFOperator;\n","enum PDFOperatorNames {\n  // Non Stroking Color Operators\n  NonStrokingColor = 'sc',\n  NonStrokingColorN = 'scn',\n  NonStrokingColorRgb = 'rg',\n  NonStrokingColorGray = 'g',\n  NonStrokingColorCmyk = 'k',\n  NonStrokingColorspace = 'cs',\n\n  // Stroking Color Operators\n  StrokingColor = 'SC',\n  StrokingColorN = 'SCN',\n  StrokingColorRgb = 'RG',\n  StrokingColorGray = 'G',\n  StrokingColorCmyk = 'K',\n  StrokingColorspace = 'CS',\n\n  // Marked Content Operators\n  BeginMarkedContentSequence = 'BDC',\n  BeginMarkedContent = 'BMC',\n  EndMarkedContent = 'EMC',\n  MarkedContentPointWithProps = 'DP',\n  MarkedContentPoint = 'MP',\n  DrawObject = 'Do',\n\n  // Graphics State Operators\n  ConcatTransformationMatrix = 'cm',\n  PopGraphicsState = 'Q',\n  PushGraphicsState = 'q',\n  SetFlatness = 'i',\n  SetGraphicsStateParams = 'gs',\n  SetLineCapStyle = 'J',\n  SetLineDashPattern = 'd',\n  SetLineJoinStyle = 'j',\n  SetLineMiterLimit = 'M',\n  SetLineWidth = 'w',\n  SetTextMatrix = 'Tm',\n  SetRenderingIntent = 'ri',\n\n  // Graphics Operators\n  AppendRectangle = 're',\n  BeginInlineImage = 'BI',\n  BeginInlineImageData = 'ID',\n  EndInlineImage = 'EI',\n  ClipEvenOdd = 'W*',\n  ClipNonZero = 'W',\n  CloseAndStroke = 's',\n  CloseFillEvenOddAndStroke = 'b*',\n  CloseFillNonZeroAndStroke = 'b',\n  ClosePath = 'h',\n  AppendBezierCurve = 'c',\n  CurveToReplicateFinalPoint = 'y',\n  CurveToReplicateInitialPoint = 'v',\n  EndPath = 'n',\n  FillEvenOddAndStroke = 'B*',\n  FillEvenOdd = 'f*',\n  FillNonZeroAndStroke = 'B',\n  FillNonZero = 'f',\n  LegacyFillNonZero = 'F',\n  LineTo = 'l',\n  MoveTo = 'm',\n  ShadingFill = 'sh',\n  StrokePath = 'S',\n\n  // Text Operators\n  BeginText = 'BT',\n  EndText = 'ET',\n  MoveText = 'Td',\n  MoveTextSetLeading = 'TD',\n  NextLine = 'T*',\n  SetCharacterSpacing = 'Tc',\n  SetFontAndSize = 'Tf',\n  SetTextHorizontalScaling = 'Tz',\n  SetTextLineHeight = 'TL',\n  SetTextRenderingMode = 'Tr',\n  SetTextRise = 'Ts',\n  SetWordSpacing = 'Tw',\n  ShowText = 'Tj',\n  ShowTextAdjusted = 'TJ',\n  ShowTextLine = \"'\", // tslint:disable-line quotemark\n  ShowTextLineAndSpace = '\"',\n\n  // Type3 Font Operators\n  Type3D0 = 'd0',\n  Type3D1 = 'd1',\n\n  // Compatibility Section Operators\n  BeginCompatibilitySection = 'BX',\n  EndCompatibilitySection = 'EX',\n}\n\nexport default PDFOperatorNames;\n","import pako from 'pako';\n\nimport { MethodNotImplementedError } from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport { Cache } from 'src/utils';\n\nclass PDFFlateStream extends PDFStream {\n  protected readonly contentsCache: Cache<Uint8Array>;\n  protected readonly encode: boolean;\n\n  constructor(dict: PDFDict, encode: boolean) {\n    super(dict);\n\n    this.encode = encode;\n\n    if (encode) dict.set(PDFName.of('Filter'), PDFName.of('FlateDecode'));\n    this.contentsCache = Cache.populatedBy(this.computeContents);\n  }\n\n  computeContents = (): Uint8Array => {\n    const unencodedContents = this.getUnencodedContents();\n    return this.encode ? pako.deflate(unencodedContents) : unencodedContents;\n  };\n\n  getContents(): Uint8Array {\n    return this.contentsCache.access();\n  }\n\n  getContentsSize(): number {\n    return this.contentsCache.access().length;\n  }\n\n  getUnencodedContents(): Uint8Array {\n    throw new MethodNotImplementedError(\n      this.constructor.name,\n      'getUnencodedContents',\n    );\n  }\n}\n\nexport default PDFFlateStream;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFOperator from 'src/core/operators/PDFOperator';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFContentStream extends PDFFlateStream {\n  static of = (dict: PDFDict, operators: PDFOperator[], encode = true) =>\n    new PDFContentStream(dict, operators, encode);\n\n  private readonly operators: PDFOperator[];\n\n  private constructor(dict: PDFDict, operators: PDFOperator[], encode = true) {\n    super(dict, encode);\n    this.operators = operators;\n  }\n\n  push(...operators: PDFOperator[]): void {\n    this.operators.push(...operators);\n  }\n\n  clone(context?: PDFContext): PDFContentStream {\n    const operators = new Array(this.operators.length);\n    for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n      operators[idx] = this.operators[idx].clone(context);\n    }\n    const { dict, encode } = this;\n    return PDFContentStream.of(dict.clone(context), operators, encode);\n  }\n\n  getContentsString(): string {\n    let value = '';\n    for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n      value += `${this.operators[idx]}\\n`;\n    }\n    return value;\n  }\n\n  getUnencodedContents(): Uint8Array {\n    const buffer = new Uint8Array(this.getUnencodedContentsSize());\n    let offset = 0;\n    for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n      offset += this.operators[idx].copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n    }\n    return buffer;\n  }\n\n  getUnencodedContentsSize(): number {\n    let size = 0;\n    for (let idx = 0, len = this.operators.length; idx < len; idx++) {\n      size += this.operators[idx].sizeInBytes() + 1;\n    }\n    return size;\n  }\n}\n\nexport default PDFContentStream;\n","/**\n * Generates a pseudo random number. Although it is not cryptographically secure\n * and uniformly distributed, it is not a concern for the intended use-case,\n * which is to generate distinct numbers.\n *\n * Credit: https://stackoverflow.com/a/19303725/10254049\n */\nexport class SimpleRNG {\n  static withSeed = (seed: number) => new SimpleRNG(seed);\n\n  private seed: number;\n\n  private constructor(seed: number) {\n    this.seed = seed;\n  }\n\n  nextInt(): number {\n    const x = Math.sin(this.seed++) * 10000;\n    return x - Math.floor(x);\n  }\n}\n","import pako from 'pako';\n\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport { UnexpectedObjectTypeError } from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFOperator from 'src/core/operators/PDFOperator';\nimport Ops from 'src/core/operators/PDFOperatorNames';\nimport PDFContentStream from 'src/core/structures/PDFContentStream';\nimport { typedArrayFor } from 'src/utils';\nimport { SimpleRNG } from 'src/utils/rng';\n\ntype LookupKey = PDFRef | PDFObject | undefined;\n\ninterface LiteralObject {\n  [name: string]: Literal | PDFObject;\n}\n\ninterface LiteralArray {\n  [index: number]: Literal | PDFObject;\n}\n\ntype Literal =\n  | LiteralObject\n  | LiteralArray\n  | string\n  | number\n  | boolean\n  | null\n  | undefined;\n\nconst byAscendingObjectNumber = (\n  [a]: [PDFRef, PDFObject],\n  [b]: [PDFRef, PDFObject],\n) => a.objectNumber - b.objectNumber;\n\nclass PDFContext {\n  static create = () => new PDFContext();\n\n  largestObjectNumber: number;\n  header: PDFHeader;\n  trailerInfo: {\n    Root?: PDFObject;\n    Encrypt?: PDFObject;\n    Info?: PDFObject;\n    ID?: PDFObject;\n  };\n  rng: SimpleRNG;\n\n  private readonly indirectObjects: Map<PDFRef, PDFObject>;\n\n  private pushGraphicsStateContentStreamRef?: PDFRef;\n  private popGraphicsStateContentStreamRef?: PDFRef;\n\n  private constructor() {\n    this.largestObjectNumber = 0;\n    this.header = PDFHeader.forVersion(1, 7);\n    this.trailerInfo = {};\n\n    this.indirectObjects = new Map();\n    this.rng = SimpleRNG.withSeed(1);\n  }\n\n  assign(ref: PDFRef, object: PDFObject): void {\n    this.indirectObjects.set(ref, object);\n    if (ref.objectNumber > this.largestObjectNumber) {\n      this.largestObjectNumber = ref.objectNumber;\n    }\n  }\n\n  nextRef(): PDFRef {\n    this.largestObjectNumber += 1;\n    return PDFRef.of(this.largestObjectNumber);\n  }\n\n  register(object: PDFObject): PDFRef {\n    const ref = this.nextRef();\n    this.assign(ref, object);\n    return ref;\n  }\n\n  delete(ref: PDFRef): boolean {\n    return this.indirectObjects.delete(ref);\n  }\n\n  lookupMaybe(ref: LookupKey, type: typeof PDFArray): PDFArray | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFBool): PDFBool | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFDict): PDFDict | undefined;\n  lookupMaybe(\n    ref: LookupKey,\n    type: typeof PDFHexString,\n  ): PDFHexString | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFName): PDFName | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFNull): typeof PDFNull | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFNumber): PDFNumber | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFStream): PDFStream | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFRef): PDFRef | undefined;\n  lookupMaybe(ref: LookupKey, type: typeof PDFString): PDFString | undefined;\n  lookupMaybe(\n    ref: LookupKey,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString | undefined;\n\n  lookupMaybe(ref: LookupKey, ...types: any[]) {\n    // TODO: `preservePDFNull` is for backwards compatibility. Should be\n    // removed in next breaking API change.\n    const preservePDFNull = types.includes(PDFNull);\n\n    const result = ref instanceof PDFRef ? this.indirectObjects.get(ref) : ref;\n\n    if (!result || (result === PDFNull && !preservePDFNull)) return undefined;\n\n    for (let idx = 0, len = types.length; idx < len; idx++) {\n      const type = types[idx];\n      if (type === PDFNull) {\n        if (result === PDFNull) return result;\n      } else {\n        if (result instanceof type) return result;\n      }\n    }\n    throw new UnexpectedObjectTypeError(types, result);\n  }\n\n  lookup(ref: LookupKey): PDFObject | undefined;\n  lookup(ref: LookupKey, type: typeof PDFArray): PDFArray;\n  lookup(ref: LookupKey, type: typeof PDFBool): PDFBool;\n  lookup(ref: LookupKey, type: typeof PDFDict): PDFDict;\n  lookup(ref: LookupKey, type: typeof PDFHexString): PDFHexString;\n  lookup(ref: LookupKey, type: typeof PDFName): PDFName;\n  lookup(ref: LookupKey, type: typeof PDFNull): typeof PDFNull;\n  lookup(ref: LookupKey, type: typeof PDFNumber): PDFNumber;\n  lookup(ref: LookupKey, type: typeof PDFStream): PDFStream;\n  lookup(ref: LookupKey, type: typeof PDFRef): PDFRef;\n  lookup(ref: LookupKey, type: typeof PDFString): PDFString;\n  lookup(\n    ref: LookupKey,\n    type1: typeof PDFString,\n    type2: typeof PDFHexString,\n  ): PDFString | PDFHexString;\n\n  lookup(ref: LookupKey, ...types: any[]) {\n    const result = ref instanceof PDFRef ? this.indirectObjects.get(ref) : ref;\n\n    if (types.length === 0) return result;\n\n    for (let idx = 0, len = types.length; idx < len; idx++) {\n      const type = types[idx];\n      if (type === PDFNull) {\n        if (result === PDFNull) return result;\n      } else {\n        if (result instanceof type) return result;\n      }\n    }\n\n    throw new UnexpectedObjectTypeError(types, result);\n  }\n\n  getObjectRef(pdfObject: PDFObject): PDFRef | undefined {\n    const entries = Array.from(this.indirectObjects.entries());\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [ref, object] = entries[idx];\n      if (object === pdfObject) {\n        return ref;\n      }\n    }\n\n    return undefined;\n  }\n\n  enumerateIndirectObjects(): [PDFRef, PDFObject][] {\n    return Array.from(this.indirectObjects.entries()).sort(\n      byAscendingObjectNumber,\n    );\n  }\n\n  obj(literal: null | undefined): typeof PDFNull;\n  obj(literal: string): PDFName;\n  obj(literal: number): PDFNumber;\n  obj(literal: boolean): PDFBool;\n  obj(literal: LiteralObject): PDFDict;\n  obj(literal: LiteralArray): PDFArray;\n\n  obj(literal: Literal) {\n    if (literal instanceof PDFObject) {\n      return literal;\n    } else if (literal === null || literal === undefined) {\n      return PDFNull;\n    } else if (typeof literal === 'string') {\n      return PDFName.of(literal);\n    } else if (typeof literal === 'number') {\n      return PDFNumber.of(literal);\n    } else if (typeof literal === 'boolean') {\n      return literal ? PDFBool.True : PDFBool.False;\n    } else if (Array.isArray(literal)) {\n      const array = PDFArray.withContext(this);\n      for (let idx = 0, len = literal.length; idx < len; idx++) {\n        array.push(this.obj(literal[idx]));\n      }\n      return array;\n    } else {\n      const dict = PDFDict.withContext(this);\n      const keys = Object.keys(literal);\n      for (let idx = 0, len = keys.length; idx < len; idx++) {\n        const key = keys[idx];\n        const value = (literal as LiteralObject)[key] as any;\n        if (value !== undefined) dict.set(PDFName.of(key), this.obj(value));\n      }\n      return dict;\n    }\n  }\n\n  stream(\n    contents: string | Uint8Array,\n    dict: LiteralObject = {},\n  ): PDFRawStream {\n    return PDFRawStream.of(this.obj(dict), typedArrayFor(contents));\n  }\n\n  flateStream(\n    contents: string | Uint8Array,\n    dict: LiteralObject = {},\n  ): PDFRawStream {\n    return this.stream(pako.deflate(typedArrayFor(contents)), {\n      ...dict,\n      Filter: 'FlateDecode',\n    });\n  }\n\n  contentStream(\n    operators: PDFOperator[],\n    dict: LiteralObject = {},\n  ): PDFContentStream {\n    return PDFContentStream.of(this.obj(dict), operators);\n  }\n\n  formXObject(\n    operators: PDFOperator[],\n    dict: LiteralObject = {},\n  ): PDFContentStream {\n    return this.contentStream(operators, {\n      BBox: this.obj([0, 0, 0, 0]),\n      Matrix: this.obj([1, 0, 0, 1, 0, 0]),\n      ...dict,\n      Type: 'XObject',\n      Subtype: 'Form',\n    });\n  }\n\n  /*\n   * Reference to PDFContentStream that contains a single PDFOperator: `q`.\n   * Used by [[PDFPageLeaf]] instances to ensure that when content streams are\n   * added to a modified PDF, they start in the default, unchanged graphics\n   * state.\n   */\n  getPushGraphicsStateContentStream(): PDFRef {\n    if (this.pushGraphicsStateContentStreamRef) {\n      return this.pushGraphicsStateContentStreamRef;\n    }\n    const dict = this.obj({});\n    const op = PDFOperator.of(Ops.PushGraphicsState);\n    const stream = PDFContentStream.of(dict, [op]);\n    this.pushGraphicsStateContentStreamRef = this.register(stream);\n    return this.pushGraphicsStateContentStreamRef;\n  }\n\n  /*\n   * Reference to PDFContentStream that contains a single PDFOperator: `Q`.\n   * Used by [[PDFPageLeaf]] instances to ensure that when content streams are\n   * added to a modified PDF, they start in the default, unchanged graphics\n   * state.\n   */\n  getPopGraphicsStateContentStream(): PDFRef {\n    if (this.popGraphicsStateContentStreamRef) {\n      return this.popGraphicsStateContentStreamRef;\n    }\n    const dict = this.obj({});\n    const op = PDFOperator.of(Ops.PopGraphicsState);\n    const stream = PDFContentStream.of(dict, [op]);\n    this.popGraphicsStateContentStreamRef = this.register(stream);\n    return this.popGraphicsStateContentStreamRef;\n  }\n\n  addRandomSuffix(prefix: string, suffixLength = 4): string {\n    return `${prefix}-${Math.floor(this.rng.nextInt() * 10 ** suffixLength)}`;\n  }\n}\n\nexport default PDFContext;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\n\nclass PDFPageLeaf extends PDFDict {\n  static readonly InheritableEntries = [\n    'Resources',\n    'MediaBox',\n    'CropBox',\n    'Rotate',\n  ];\n\n  static withContextAndParent = (context: PDFContext, parent: PDFRef) => {\n    const dict = new Map();\n    dict.set(PDFName.Type, PDFName.Page);\n    dict.set(PDFName.Parent, parent);\n    dict.set(PDFName.Resources, context.obj({}));\n    dict.set(PDFName.MediaBox, context.obj([0, 0, 612, 792]));\n    return new PDFPageLeaf(dict, context, false);\n  };\n\n  static fromMapWithContext = (\n    map: DictMap,\n    context: PDFContext,\n    autoNormalizeCTM = true,\n  ) => new PDFPageLeaf(map, context, autoNormalizeCTM);\n\n  private normalized = false;\n  private readonly autoNormalizeCTM: boolean;\n\n  private constructor(\n    map: DictMap,\n    context: PDFContext,\n    autoNormalizeCTM = true,\n  ) {\n    super(map, context);\n    this.autoNormalizeCTM = autoNormalizeCTM;\n  }\n\n  clone(context?: PDFContext): PDFPageLeaf {\n    const clone = PDFPageLeaf.fromMapWithContext(\n      new Map(),\n      context || this.context,\n      this.autoNormalizeCTM,\n    );\n    const entries = this.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      clone.set(key, value);\n    }\n    return clone;\n  }\n\n  Parent(): PDFPageTree | undefined {\n    return this.lookupMaybe(PDFName.Parent, PDFDict) as PDFPageTree | undefined;\n  }\n\n  Contents(): PDFStream | PDFArray | undefined {\n    return this.lookup(PDFName.of('Contents')) as\n      | PDFStream\n      | PDFArray\n      | undefined;\n  }\n\n  Annots(): PDFArray | undefined {\n    return this.lookupMaybe(PDFName.Annots, PDFArray);\n  }\n\n  BleedBox(): PDFArray | undefined {\n    return this.lookupMaybe(PDFName.BleedBox, PDFArray);\n  }\n\n  TrimBox(): PDFArray | undefined {\n    return this.lookupMaybe(PDFName.TrimBox, PDFArray);\n  }\n\n  ArtBox(): PDFArray | undefined {\n    return this.lookupMaybe(PDFName.ArtBox, PDFArray);\n  }\n\n  Resources(): PDFDict | undefined {\n    const dictOrRef = this.getInheritableAttribute(PDFName.Resources);\n    return this.context.lookupMaybe(dictOrRef, PDFDict);\n  }\n\n  MediaBox(): PDFArray {\n    const arrayOrRef = this.getInheritableAttribute(PDFName.MediaBox);\n    return this.context.lookup(arrayOrRef, PDFArray);\n  }\n\n  CropBox(): PDFArray | undefined {\n    const arrayOrRef = this.getInheritableAttribute(PDFName.CropBox);\n    return this.context.lookupMaybe(arrayOrRef, PDFArray);\n  }\n\n  Rotate(): PDFNumber | undefined {\n    const numberOrRef = this.getInheritableAttribute(PDFName.Rotate);\n    return this.context.lookupMaybe(numberOrRef, PDFNumber);\n  }\n\n  getInheritableAttribute(name: PDFName): PDFObject | undefined {\n    let attribute: PDFObject | undefined;\n    this.ascend((node) => {\n      if (!attribute) attribute = node.get(name);\n    });\n    return attribute;\n  }\n\n  setParent(parentRef: PDFRef): void {\n    this.set(PDFName.Parent, parentRef);\n  }\n\n  addContentStream(contentStreamRef: PDFRef): void {\n    const Contents = this.normalizedEntries().Contents || this.context.obj([]);\n    this.set(PDFName.Contents, Contents);\n    Contents.push(contentStreamRef);\n  }\n\n  wrapContentStreams(startStream: PDFRef, endStream: PDFRef): boolean {\n    const Contents = this.Contents();\n    if (Contents instanceof PDFArray) {\n      Contents.insert(0, startStream);\n      Contents.push(endStream);\n      return true;\n    }\n    return false;\n  }\n\n  addAnnot(annotRef: PDFRef): void {\n    const { Annots } = this.normalizedEntries();\n    Annots.push(annotRef);\n  }\n\n  removeAnnot(annotRef: PDFRef) {\n    const { Annots } = this.normalizedEntries();\n    const index = Annots.indexOf(annotRef);\n    if (index !== undefined) {\n      Annots.remove(index);\n    }\n  }\n\n  setFontDictionary(name: PDFName, fontDictRef: PDFRef): void {\n    const { Font } = this.normalizedEntries();\n    Font.set(name, fontDictRef);\n  }\n\n  newFontDictionaryKey(tag: string): PDFName {\n    const { Font } = this.normalizedEntries();\n    return Font.uniqueKey(tag);\n  }\n\n  newFontDictionary(tag: string, fontDictRef: PDFRef): PDFName {\n    const key = this.newFontDictionaryKey(tag);\n    this.setFontDictionary(key, fontDictRef);\n    return key;\n  }\n\n  setXObject(name: PDFName, xObjectRef: PDFRef): void {\n    const { XObject } = this.normalizedEntries();\n    XObject.set(name, xObjectRef);\n  }\n\n  newXObjectKey(tag: string): PDFName {\n    const { XObject } = this.normalizedEntries();\n    return XObject.uniqueKey(tag);\n  }\n\n  newXObject(tag: string, xObjectRef: PDFRef): PDFName {\n    const key = this.newXObjectKey(tag);\n    this.setXObject(key, xObjectRef);\n    return key;\n  }\n\n  setExtGState(name: PDFName, extGStateRef: PDFRef | PDFDict): void {\n    const { ExtGState } = this.normalizedEntries();\n    ExtGState.set(name, extGStateRef);\n  }\n\n  newExtGStateKey(tag: string): PDFName {\n    const { ExtGState } = this.normalizedEntries();\n    return ExtGState.uniqueKey(tag);\n  }\n\n  newExtGState(tag: string, extGStateRef: PDFRef | PDFDict): PDFName {\n    const key = this.newExtGStateKey(tag);\n    this.setExtGState(key, extGStateRef);\n    return key;\n  }\n\n  ascend(visitor: (node: PDFPageTree | PDFPageLeaf) => any): void {\n    visitor(this);\n    const Parent = this.Parent();\n    if (Parent) Parent.ascend(visitor);\n  }\n\n  normalize() {\n    if (this.normalized) return;\n\n    const { context } = this;\n\n    const contentsRef = this.get(PDFName.Contents);\n    const contents = this.context.lookup(contentsRef);\n    if (contents instanceof PDFStream) {\n      this.set(PDFName.Contents, context.obj([contentsRef]));\n    }\n\n    if (this.autoNormalizeCTM) {\n      this.wrapContentStreams(\n        this.context.getPushGraphicsStateContentStream(),\n        this.context.getPopGraphicsStateContentStream(),\n      );\n    }\n\n    // TODO: Clone `Resources` if it is inherited\n    const dictOrRef = this.getInheritableAttribute(PDFName.Resources);\n    const Resources =\n      context.lookupMaybe(dictOrRef, PDFDict) || context.obj({});\n    this.set(PDFName.Resources, Resources);\n\n    // TODO: Clone `Font` if it is inherited\n    const Font =\n      Resources.lookupMaybe(PDFName.Font, PDFDict) || context.obj({});\n    Resources.set(PDFName.Font, Font);\n\n    // TODO: Clone `XObject` if it is inherited\n    const XObject =\n      Resources.lookupMaybe(PDFName.XObject, PDFDict) || context.obj({});\n    Resources.set(PDFName.XObject, XObject);\n\n    // TODO: Clone `ExtGState` if it is inherited\n    const ExtGState =\n      Resources.lookupMaybe(PDFName.ExtGState, PDFDict) || context.obj({});\n    Resources.set(PDFName.ExtGState, ExtGState);\n\n    const Annots = this.Annots() || context.obj([]);\n    this.set(PDFName.Annots, Annots);\n\n    this.normalized = true;\n  }\n\n  normalizedEntries() {\n    this.normalize();\n    const Annots = this.Annots()!;\n    const Resources = this.Resources()!;\n    const Contents = this.Contents() as PDFArray | undefined;\n    return {\n      Annots,\n      Resources,\n      Contents,\n      Font: Resources.lookup(PDFName.Font, PDFDict),\n      XObject: Resources.lookup(PDFName.XObject, PDFDict),\n      ExtGState: Resources.lookup(PDFName.ExtGState, PDFDict),\n    };\n  }\n}\n\nexport default PDFPageLeaf;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\n\n/**\n * PDFObjectCopier copies PDFObjects from a src context to a dest context.\n * The primary use case for this is to copy pages between PDFs.\n *\n * _Copying_ an object with a PDFObjectCopier is different from _cloning_ an\n * object with its [[PDFObject.clone]] method:\n *\n * ```\n *   const src: PDFContext = ...\n *   const dest: PDFContext = ...\n *   const originalObject: PDFObject = ...\n *   const copiedObject = PDFObjectCopier.for(src, dest).copy(originalObject);\n *   const clonedObject = originalObject.clone();\n * ```\n *\n * Copying an object is equivalent to cloning it and then copying over any other\n * objects that it references. Note that only dictionaries, arrays, and streams\n * (or structures build from them) can contain indirect references to other\n * objects. Copying a PDFObject that is not a dictionary, array, or stream is\n * supported, but is equivalent to cloning it.\n */\nclass PDFObjectCopier {\n  static for = (src: PDFContext, dest: PDFContext) =>\n    new PDFObjectCopier(src, dest);\n\n  private readonly src: PDFContext;\n  private readonly dest: PDFContext;\n  private readonly traversedObjects = new Map<PDFObject, PDFObject>();\n\n  private constructor(src: PDFContext, dest: PDFContext) {\n    this.src = src;\n    this.dest = dest;\n  }\n\n  // prettier-ignore\n  copy = <T extends PDFObject>(object: T): T => (\n      object instanceof PDFPageLeaf ? this.copyPDFPage(object)\n    : object instanceof PDFDict     ? this.copyPDFDict(object)\n    : object instanceof PDFArray    ? this.copyPDFArray(object)\n    : object instanceof PDFStream   ? this.copyPDFStream(object)\n    : object instanceof PDFRef      ? this.copyPDFIndirectObject(object)\n    : object.clone()\n  ) as T;\n\n  private copyPDFPage = (originalPage: PDFPageLeaf): PDFPageLeaf => {\n    const clonedPage = originalPage.clone();\n\n    // Move any entries that the originalPage is inheriting from its parent\n    // tree nodes directly into originalPage so they are preserved during\n    // the copy.\n    const { InheritableEntries } = PDFPageLeaf;\n    for (let idx = 0, len = InheritableEntries.length; idx < len; idx++) {\n      const key = PDFName.of(InheritableEntries[idx]);\n      const value = clonedPage.getInheritableAttribute(key)!;\n      if (!clonedPage.get(key) && value) clonedPage.set(key, value);\n    }\n\n    // Remove the parent reference to prevent the whole donor document's page\n    // tree from being copied when we only need a single page.\n    clonedPage.delete(PDFName.of('Parent'));\n\n    return this.copyPDFDict(clonedPage) as PDFPageLeaf;\n  };\n\n  private copyPDFDict = (originalDict: PDFDict): PDFDict => {\n    if (this.traversedObjects.has(originalDict)) {\n      return this.traversedObjects.get(originalDict) as PDFDict;\n    }\n\n    const clonedDict = originalDict.clone(this.dest);\n    this.traversedObjects.set(originalDict, clonedDict);\n\n    const entries = originalDict.entries();\n\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      clonedDict.set(key, this.copy(value));\n    }\n\n    return clonedDict;\n  };\n\n  private copyPDFArray = (originalArray: PDFArray): PDFArray => {\n    if (this.traversedObjects.has(originalArray)) {\n      return this.traversedObjects.get(originalArray) as PDFArray;\n    }\n\n    const clonedArray = originalArray.clone(this.dest);\n    this.traversedObjects.set(originalArray, clonedArray);\n\n    for (let idx = 0, len = originalArray.size(); idx < len; idx++) {\n      const value = originalArray.get(idx);\n      clonedArray.set(idx, this.copy(value));\n    }\n\n    return clonedArray;\n  };\n\n  private copyPDFStream = (originalStream: PDFStream): PDFStream => {\n    if (this.traversedObjects.has(originalStream)) {\n      return this.traversedObjects.get(originalStream) as PDFStream;\n    }\n\n    const clonedStream = originalStream.clone(this.dest);\n    this.traversedObjects.set(originalStream, clonedStream);\n\n    const entries = originalStream.dict.entries();\n    for (let idx = 0, len = entries.length; idx < len; idx++) {\n      const [key, value] = entries[idx];\n      clonedStream.dict.set(key, this.copy(value));\n    }\n\n    return clonedStream;\n  };\n\n  private copyPDFIndirectObject = (ref: PDFRef): PDFRef => {\n    const alreadyMapped = this.traversedObjects.has(ref);\n\n    if (!alreadyMapped) {\n      const newRef = this.dest.nextRef();\n      this.traversedObjects.set(ref, newRef);\n\n      const dereferencedValue = this.src.lookup(ref);\n      if (dereferencedValue) {\n        const cloned = this.copy(dereferencedValue);\n        this.dest.assign(newRef, cloned);\n      }\n    }\n\n    return this.traversedObjects.get(ref) as PDFRef;\n  };\n}\n\nexport default PDFObjectCopier;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, padStart } from 'src/utils';\n\nexport interface Entry {\n  ref: PDFRef;\n  offset: number;\n  deleted: boolean;\n}\n\n/**\n * Entries should be added using the [[addEntry]] and [[addDeletedEntry]]\n * methods **in order of ascending object number**.\n */\nclass PDFCrossRefSection {\n  static create = () =>\n    new PDFCrossRefSection({\n      ref: PDFRef.of(0, 65535),\n      offset: 0,\n      deleted: true,\n    });\n\n  static createEmpty = () => new PDFCrossRefSection();\n\n  private subsections: Entry[][];\n  private chunkIdx: number;\n  private chunkLength: number;\n\n  private constructor(firstEntry: Entry | void) {\n    this.subsections = firstEntry ? [[firstEntry]] : [];\n    this.chunkIdx = 0;\n    this.chunkLength = firstEntry ? 1 : 0;\n  }\n\n  addEntry(ref: PDFRef, offset: number): void {\n    this.append({ ref, offset, deleted: false });\n  }\n\n  addDeletedEntry(ref: PDFRef, nextFreeObjectNumber: number): void {\n    this.append({ ref, offset: nextFreeObjectNumber, deleted: true });\n  }\n\n  toString(): string {\n    let section = `xref\\n`;\n\n    for (\n      let rangeIdx = 0, rangeLen = this.subsections.length;\n      rangeIdx < rangeLen;\n      rangeIdx++\n    ) {\n      const range = this.subsections[rangeIdx];\n      section += `${range[0].ref.objectNumber} ${range.length}\\n`;\n      for (\n        let entryIdx = 0, entryLen = range.length;\n        entryIdx < entryLen;\n        entryIdx++\n      ) {\n        const entry = range[entryIdx];\n        section += padStart(String(entry.offset), 10, '0');\n        section += ' ';\n        section += padStart(String(entry.ref.generationNumber), 5, '0');\n        section += ' ';\n        section += entry.deleted ? 'f' : 'n';\n        section += ' \\n';\n      }\n    }\n\n    return section;\n  }\n\n  sizeInBytes(): number {\n    let size = 5;\n    for (let idx = 0, len = this.subsections.length; idx < len; idx++) {\n      const subsection = this.subsections[idx];\n      const subsectionLength = subsection.length;\n      const [firstEntry] = subsection;\n      size += 2;\n      size += String(firstEntry.ref.objectNumber).length;\n      size += String(subsectionLength).length;\n      size += 20 * subsectionLength;\n    }\n    return size;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.x;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.f;\n    buffer[offset++] = CharCodes.Newline;\n\n    offset += this.copySubsectionsIntoBuffer(this.subsections, buffer, offset);\n\n    return offset - initialOffset;\n  }\n\n  private copySubsectionsIntoBuffer(\n    subsections: Entry[][],\n    buffer: Uint8Array,\n    offset: number,\n  ): number {\n    const initialOffset = offset;\n    const length = subsections.length;\n\n    for (let idx = 0; idx < length; idx++) {\n      const subsection = this.subsections[idx];\n\n      const firstObjectNumber = String(subsection[0].ref.objectNumber);\n      offset += copyStringIntoBuffer(firstObjectNumber, buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n\n      const rangeLength = String(subsection.length);\n      offset += copyStringIntoBuffer(rangeLength, buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n\n      offset += this.copyEntriesIntoBuffer(subsection, buffer, offset);\n    }\n\n    return offset - initialOffset;\n  }\n\n  private copyEntriesIntoBuffer(\n    entries: Entry[],\n    buffer: Uint8Array,\n    offset: number,\n  ): number {\n    const length = entries.length;\n\n    for (let idx = 0; idx < length; idx++) {\n      const entry = entries[idx];\n\n      const entryOffset = padStart(String(entry.offset), 10, '0');\n      offset += copyStringIntoBuffer(entryOffset, buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n\n      const entryGen = padStart(String(entry.ref.generationNumber), 5, '0');\n      offset += copyStringIntoBuffer(entryGen, buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n\n      buffer[offset++] = entry.deleted ? CharCodes.f : CharCodes.n;\n\n      buffer[offset++] = CharCodes.Space;\n      buffer[offset++] = CharCodes.Newline;\n    }\n\n    return 20 * length;\n  }\n\n  private append(currEntry: Entry): void {\n    if (this.chunkLength === 0) {\n      this.subsections.push([currEntry]);\n      this.chunkIdx = 0;\n      this.chunkLength = 1;\n      return;\n    }\n\n    const chunk = this.subsections[this.chunkIdx];\n    const prevEntry = chunk[this.chunkLength - 1];\n\n    if (currEntry.ref.objectNumber - prevEntry.ref.objectNumber > 1) {\n      this.subsections.push([currEntry]);\n      this.chunkIdx += 1;\n      this.chunkLength = 1;\n    } else {\n      chunk.push(currEntry);\n      this.chunkLength += 1;\n    }\n  }\n}\n\nexport default PDFCrossRefSection;\n","import CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer } from 'src/utils';\n\nclass PDFTrailer {\n  static forLastCrossRefSectionOffset = (offset: number) =>\n    new PDFTrailer(offset);\n\n  private readonly lastXRefOffset: string;\n\n  private constructor(lastXRefOffset: number) {\n    this.lastXRefOffset = String(lastXRefOffset);\n  }\n\n  toString(): string {\n    return `startxref\\n${this.lastXRefOffset}\\n%%EOF`;\n  }\n\n  sizeInBytes(): number {\n    return 16 + this.lastXRefOffset.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.s;\n    buffer[offset++] = CharCodes.t;\n    buffer[offset++] = CharCodes.a;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.t;\n    buffer[offset++] = CharCodes.x;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.f;\n    buffer[offset++] = CharCodes.Newline;\n\n    offset += copyStringIntoBuffer(this.lastXRefOffset, buffer, offset);\n\n    buffer[offset++] = CharCodes.Newline;\n    buffer[offset++] = CharCodes.Percent;\n    buffer[offset++] = CharCodes.Percent;\n    buffer[offset++] = CharCodes.E;\n    buffer[offset++] = CharCodes.O;\n    buffer[offset++] = CharCodes.F;\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFTrailer;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\nclass PDFTrailerDict {\n  static of = (dict: PDFDict) => new PDFTrailerDict(dict);\n\n  readonly dict: PDFDict;\n\n  private constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  toString(): string {\n    return `trailer\\n${this.dict.toString()}`;\n  }\n\n  sizeInBytes(): number {\n    return 8 + this.dict.sizeInBytes();\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const initialOffset = offset;\n\n    buffer[offset++] = CharCodes.t;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.a;\n    buffer[offset++] = CharCodes.i;\n    buffer[offset++] = CharCodes.l;\n    buffer[offset++] = CharCodes.e;\n    buffer[offset++] = CharCodes.r;\n    buffer[offset++] = CharCodes.Newline;\n\n    offset += this.dict.copyBytesInto(buffer, offset);\n\n    return offset - initialOffset;\n  }\n}\n\nexport default PDFTrailerDict;\n","import PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, last } from 'src/utils';\n\nexport type IndirectObject = [PDFRef, PDFObject];\n\nclass PDFObjectStream extends PDFFlateStream {\n  static withContextAndObjects = (\n    context: PDFContext,\n    objects: IndirectObject[],\n    encode = true,\n  ) => new PDFObjectStream(context, objects, encode);\n\n  private readonly objects: IndirectObject[];\n  private readonly offsets: [number, number][];\n  private readonly offsetsString: string;\n\n  private constructor(\n    context: PDFContext,\n    objects: IndirectObject[],\n    encode = true,\n  ) {\n    super(context.obj({}), encode);\n\n    this.objects = objects;\n    this.offsets = this.computeObjectOffsets();\n    this.offsetsString = this.computeOffsetsString();\n\n    this.dict.set(PDFName.of('Type'), PDFName.of('ObjStm'));\n    this.dict.set(PDFName.of('N'), PDFNumber.of(this.objects.length));\n    this.dict.set(PDFName.of('First'), PDFNumber.of(this.offsetsString.length));\n  }\n\n  getObjectsCount(): number {\n    return this.objects.length;\n  }\n\n  clone(context?: PDFContext): PDFObjectStream {\n    return PDFObjectStream.withContextAndObjects(\n      context || this.dict.context,\n      this.objects.slice(),\n      this.encode,\n    );\n  }\n\n  getContentsString(): string {\n    let value = this.offsetsString;\n    for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n      const [, object] = this.objects[idx];\n      value += `${object}\\n`;\n    }\n    return value;\n  }\n\n  getUnencodedContents(): Uint8Array {\n    const buffer = new Uint8Array(this.getUnencodedContentsSize());\n    let offset = copyStringIntoBuffer(this.offsetsString, buffer, 0);\n    for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n      const [, object] = this.objects[idx];\n      offset += object.copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n    }\n    return buffer;\n  }\n\n  getUnencodedContentsSize(): number {\n    return (\n      this.offsetsString.length +\n      last(this.offsets)[1] +\n      last(this.objects)[1].sizeInBytes() +\n      1\n    );\n  }\n\n  private computeOffsetsString(): string {\n    let offsetsString = '';\n    for (let idx = 0, len = this.offsets.length; idx < len; idx++) {\n      const [objectNumber, offset] = this.offsets[idx];\n      offsetsString += `${objectNumber} ${offset} `;\n    }\n    return offsetsString;\n  }\n\n  private computeObjectOffsets(): [number, number][] {\n    let offset = 0;\n    const offsets = new Array(this.objects.length);\n    for (let idx = 0, len = this.objects.length; idx < len; idx++) {\n      const [ref, object] = this.objects[idx];\n      offsets[idx] = [ref.objectNumber, offset];\n      offset += object.sizeInBytes() + 1; // '\\n'\n    }\n    return offsets;\n  }\n}\n\nexport default PDFObjectStream;\n","import PDFCrossRefSection from 'src/core/document/PDFCrossRefSection';\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport PDFTrailerDict from 'src/core/document/PDFTrailerDict';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFObjectStream from 'src/core/structures/PDFObjectStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { copyStringIntoBuffer, waitForTick } from 'src/utils';\n\nexport interface SerializationInfo {\n  size: number;\n  header: PDFHeader;\n  indirectObjects: [PDFRef, PDFObject][];\n  xref?: PDFCrossRefSection;\n  trailerDict?: PDFTrailerDict;\n  trailer: PDFTrailer;\n}\n\nclass PDFWriter {\n  static forContext = (context: PDFContext, objectsPerTick: number) =>\n    new PDFWriter(context, objectsPerTick);\n\n  protected readonly context: PDFContext;\n\n  protected readonly objectsPerTick: number;\n  private parsedObjects = 0;\n\n  protected constructor(context: PDFContext, objectsPerTick: number) {\n    this.context = context;\n    this.objectsPerTick = objectsPerTick;\n  }\n\n  async serializeToBuffer(): Promise<Uint8Array> {\n    const {\n      size,\n      header,\n      indirectObjects,\n      xref,\n      trailerDict,\n      trailer,\n    } = await this.computeBufferSize();\n\n    let offset = 0;\n    const buffer = new Uint8Array(size);\n\n    offset += header.copyBytesInto(buffer, offset);\n    buffer[offset++] = CharCodes.Newline;\n    buffer[offset++] = CharCodes.Newline;\n\n    for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n      const [ref, object] = indirectObjects[idx];\n\n      const objectNumber = String(ref.objectNumber);\n      offset += copyStringIntoBuffer(objectNumber, buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n\n      const generationNumber = String(ref.generationNumber);\n      offset += copyStringIntoBuffer(generationNumber, buffer, offset);\n      buffer[offset++] = CharCodes.Space;\n\n      buffer[offset++] = CharCodes.o;\n      buffer[offset++] = CharCodes.b;\n      buffer[offset++] = CharCodes.j;\n      buffer[offset++] = CharCodes.Newline;\n\n      offset += object.copyBytesInto(buffer, offset);\n\n      buffer[offset++] = CharCodes.Newline;\n      buffer[offset++] = CharCodes.e;\n      buffer[offset++] = CharCodes.n;\n      buffer[offset++] = CharCodes.d;\n      buffer[offset++] = CharCodes.o;\n      buffer[offset++] = CharCodes.b;\n      buffer[offset++] = CharCodes.j;\n      buffer[offset++] = CharCodes.Newline;\n      buffer[offset++] = CharCodes.Newline;\n\n      const n =\n        object instanceof PDFObjectStream ? object.getObjectsCount() : 1;\n      if (this.shouldWaitForTick(n)) await waitForTick();\n    }\n\n    if (xref) {\n      offset += xref.copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n    }\n\n    if (trailerDict) {\n      offset += trailerDict.copyBytesInto(buffer, offset);\n      buffer[offset++] = CharCodes.Newline;\n      buffer[offset++] = CharCodes.Newline;\n    }\n\n    offset += trailer.copyBytesInto(buffer, offset);\n\n    return buffer;\n  }\n\n  protected computeIndirectObjectSize([ref, object]: [\n    PDFRef,\n    PDFObject,\n  ]): number {\n    const refSize = ref.sizeInBytes() + 3; // 'R' -> 'obj\\n'\n    const objectSize = object.sizeInBytes() + 9; // '\\nendobj\\n\\n'\n    return refSize + objectSize;\n  }\n\n  protected createTrailerDict(): PDFDict {\n    return this.context.obj({\n      Size: this.context.largestObjectNumber + 1,\n      Root: this.context.trailerInfo.Root,\n      Encrypt: this.context.trailerInfo.Encrypt,\n      Info: this.context.trailerInfo.Info,\n      ID: this.context.trailerInfo.ID,\n    });\n  }\n\n  protected async computeBufferSize(): Promise<SerializationInfo> {\n    const header = PDFHeader.forVersion(1, 7);\n\n    let size = header.sizeInBytes() + 2;\n\n    const xref = PDFCrossRefSection.create();\n\n    const indirectObjects = this.context.enumerateIndirectObjects();\n\n    for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n      const indirectObject = indirectObjects[idx];\n      const [ref] = indirectObject;\n      xref.addEntry(ref, size);\n      size += this.computeIndirectObjectSize(indirectObject);\n      if (this.shouldWaitForTick(1)) await waitForTick();\n    }\n\n    const xrefOffset = size;\n    size += xref.sizeInBytes() + 1; // '\\n'\n\n    const trailerDict = PDFTrailerDict.of(this.createTrailerDict());\n    size += trailerDict.sizeInBytes() + 2; // '\\n\\n'\n\n    const trailer = PDFTrailer.forLastCrossRefSectionOffset(xrefOffset);\n    size += trailer.sizeInBytes();\n\n    return { size, header, indirectObjects, xref, trailerDict, trailer };\n  }\n\n  protected shouldWaitForTick = (n: number) => {\n    this.parsedObjects += n;\n    return this.parsedObjects % this.objectsPerTick === 0;\n  };\n}\n\nexport default PDFWriter;\n","import PDFObject from 'src/core/objects/PDFObject';\n\nclass PDFInvalidObject extends PDFObject {\n  static of = (data: Uint8Array) => new PDFInvalidObject(data);\n\n  private readonly data: Uint8Array;\n\n  private constructor(data: Uint8Array) {\n    super();\n    this.data = data;\n  }\n\n  clone(): PDFInvalidObject {\n    return PDFInvalidObject.of(this.data.slice());\n  }\n\n  toString(): string {\n    return `PDFInvalidObject(${this.data.length} bytes)`;\n  }\n\n  sizeInBytes(): number {\n    return this.data.length;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    const length = this.data.length;\n    for (let idx = 0; idx < length; idx++) {\n      buffer[offset++] = this.data[idx];\n    }\n    return length;\n  }\n}\n\nexport default PDFInvalidObject;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFFlateStream from 'src/core/structures/PDFFlateStream';\nimport { bytesFor, Cache, reverseArray, sizeInBytes, sum } from 'src/utils';\n\nexport enum EntryType {\n  Deleted = 0,\n  Uncompressed = 1,\n  Compressed = 2,\n}\n\nexport interface DeletedEntry {\n  type: EntryType.Deleted;\n  ref: PDFRef;\n  nextFreeObjectNumber: number;\n}\n\nexport interface UncompressedEntry {\n  type: EntryType.Uncompressed;\n  ref: PDFRef;\n  offset: number;\n}\n\nexport interface CompressedEntry {\n  type: EntryType.Compressed;\n  ref: PDFRef;\n  objectStreamRef: PDFRef;\n  index: number;\n}\n\nexport type Entry = DeletedEntry | UncompressedEntry | CompressedEntry;\n\nexport type EntryTuple = [number, number, number];\n\n/**\n * Entries should be added using the [[addDeletedEntry]],\n * [[addUncompressedEntry]], and [[addCompressedEntry]] methods\n * **in order of ascending object number**.\n */\nclass PDFCrossRefStream extends PDFFlateStream {\n  static create = (dict: PDFDict, encode = true) => {\n    const stream = new PDFCrossRefStream(dict, [], encode);\n    stream.addDeletedEntry(PDFRef.of(0, 65535), 0);\n    return stream;\n  };\n\n  static of = (dict: PDFDict, entries: Entry[], encode = true) =>\n    new PDFCrossRefStream(dict, entries, encode);\n\n  private readonly entries: Entry[];\n  private readonly entryTuplesCache: Cache<EntryTuple[]>;\n  private readonly maxByteWidthsCache: Cache<[number, number, number]>;\n  private readonly indexCache: Cache<number[]>;\n\n  private constructor(dict: PDFDict, entries?: Entry[], encode = true) {\n    super(dict, encode);\n\n    this.entries = entries || [];\n    this.entryTuplesCache = Cache.populatedBy(this.computeEntryTuples);\n    this.maxByteWidthsCache = Cache.populatedBy(this.computeMaxEntryByteWidths);\n    this.indexCache = Cache.populatedBy(this.computeIndex);\n\n    dict.set(PDFName.of('Type'), PDFName.of('XRef'));\n  }\n\n  addDeletedEntry(ref: PDFRef, nextFreeObjectNumber: number) {\n    const type = EntryType.Deleted;\n    this.entries.push({ type, ref, nextFreeObjectNumber });\n    this.entryTuplesCache.invalidate();\n    this.maxByteWidthsCache.invalidate();\n    this.indexCache.invalidate();\n    this.contentsCache.invalidate();\n  }\n\n  addUncompressedEntry(ref: PDFRef, offset: number) {\n    const type = EntryType.Uncompressed;\n    this.entries.push({ type, ref, offset });\n    this.entryTuplesCache.invalidate();\n    this.maxByteWidthsCache.invalidate();\n    this.indexCache.invalidate();\n    this.contentsCache.invalidate();\n  }\n\n  addCompressedEntry(ref: PDFRef, objectStreamRef: PDFRef, index: number) {\n    const type = EntryType.Compressed;\n    this.entries.push({ type, ref, objectStreamRef, index });\n    this.entryTuplesCache.invalidate();\n    this.maxByteWidthsCache.invalidate();\n    this.indexCache.invalidate();\n    this.contentsCache.invalidate();\n  }\n\n  clone(context?: PDFContext): PDFCrossRefStream {\n    const { dict, entries, encode } = this;\n    return PDFCrossRefStream.of(dict.clone(context), entries.slice(), encode);\n  }\n\n  getContentsString(): string {\n    const entryTuples = this.entryTuplesCache.access();\n    const byteWidths = this.maxByteWidthsCache.access();\n    let value = '';\n\n    for (\n      let entryIdx = 0, entriesLen = entryTuples.length;\n      entryIdx < entriesLen;\n      entryIdx++\n    ) {\n      const [first, second, third] = entryTuples[entryIdx];\n\n      const firstBytes = reverseArray(bytesFor(first));\n      const secondBytes = reverseArray(bytesFor(second));\n      const thirdBytes = reverseArray(bytesFor(third));\n\n      for (let idx = byteWidths[0] - 1; idx >= 0; idx--) {\n        value += (firstBytes[idx] || 0).toString(2);\n      }\n      for (let idx = byteWidths[1] - 1; idx >= 0; idx--) {\n        value += (secondBytes[idx] || 0).toString(2);\n      }\n      for (let idx = byteWidths[2] - 1; idx >= 0; idx--) {\n        value += (thirdBytes[idx] || 0).toString(2);\n      }\n    }\n\n    return value;\n  }\n\n  getUnencodedContents(): Uint8Array {\n    const entryTuples = this.entryTuplesCache.access();\n    const byteWidths = this.maxByteWidthsCache.access();\n    const buffer = new Uint8Array(this.getUnencodedContentsSize());\n\n    let offset = 0;\n    for (\n      let entryIdx = 0, entriesLen = entryTuples.length;\n      entryIdx < entriesLen;\n      entryIdx++\n    ) {\n      const [first, second, third] = entryTuples[entryIdx];\n\n      const firstBytes = reverseArray(bytesFor(first));\n      const secondBytes = reverseArray(bytesFor(second));\n      const thirdBytes = reverseArray(bytesFor(third));\n\n      for (let idx = byteWidths[0] - 1; idx >= 0; idx--) {\n        buffer[offset++] = firstBytes[idx] || 0;\n      }\n      for (let idx = byteWidths[1] - 1; idx >= 0; idx--) {\n        buffer[offset++] = secondBytes[idx] || 0;\n      }\n      for (let idx = byteWidths[2] - 1; idx >= 0; idx--) {\n        buffer[offset++] = thirdBytes[idx] || 0;\n      }\n    }\n\n    return buffer;\n  }\n\n  getUnencodedContentsSize(): number {\n    const byteWidths = this.maxByteWidthsCache.access();\n    const entryWidth = sum(byteWidths);\n    return entryWidth * this.entries.length;\n  }\n\n  updateDict(): void {\n    super.updateDict();\n\n    const byteWidths = this.maxByteWidthsCache.access();\n    const index = this.indexCache.access();\n\n    const { context } = this.dict;\n    this.dict.set(PDFName.of('W'), context.obj(byteWidths));\n    this.dict.set(PDFName.of('Index'), context.obj(index));\n  }\n\n  // Returns an array of integer pairs for each subsection of the cross ref\n  // section, where each integer pair represents:\n  //   firstObjectNumber(OfSection), length(OfSection)\n  private computeIndex = (): number[] => {\n    const subsections: number[] = [];\n\n    let subsectionLength = 0;\n    for (let idx = 0, len = this.entries.length; idx < len; idx++) {\n      const currEntry = this.entries[idx];\n      const prevEntry = this.entries[idx - 1];\n\n      if (idx === 0) {\n        subsections.push(currEntry.ref.objectNumber);\n      } else if (currEntry.ref.objectNumber - prevEntry.ref.objectNumber > 1) {\n        subsections.push(subsectionLength);\n        subsections.push(currEntry.ref.objectNumber);\n        subsectionLength = 0;\n      }\n\n      subsectionLength += 1;\n    }\n    subsections.push(subsectionLength);\n\n    return subsections;\n  };\n\n  private computeEntryTuples = (): EntryTuple[] => {\n    const entryTuples: EntryTuple[] = new Array(this.entries.length);\n\n    for (let idx = 0, len = this.entries.length; idx < len; idx++) {\n      const entry = this.entries[idx];\n      if (entry.type === EntryType.Deleted) {\n        const { type, nextFreeObjectNumber, ref } = entry;\n        entryTuples[idx] = [type, nextFreeObjectNumber, ref.generationNumber];\n      }\n      if (entry.type === EntryType.Uncompressed) {\n        const { type, offset, ref } = entry;\n        entryTuples[idx] = [type, offset, ref.generationNumber];\n      }\n      if (entry.type === EntryType.Compressed) {\n        const { type, objectStreamRef, index } = entry;\n        entryTuples[idx] = [type, objectStreamRef.objectNumber, index];\n      }\n    }\n\n    return entryTuples;\n  };\n\n  private computeMaxEntryByteWidths = (): [number, number, number] => {\n    const entryTuples = this.entryTuplesCache.access();\n    const widths: [number, number, number] = [0, 0, 0];\n\n    for (let idx = 0, len = entryTuples.length; idx < len; idx++) {\n      const [first, second, third] = entryTuples[idx];\n\n      const firstSize = sizeInBytes(first);\n      const secondSize = sizeInBytes(second);\n      const thirdSize = sizeInBytes(third);\n\n      if (firstSize > widths[0]) widths[0] = firstSize;\n      if (secondSize > widths[1]) widths[1] = secondSize;\n      if (thirdSize > widths[2]) widths[2] = thirdSize;\n    }\n\n    return widths;\n  };\n}\n\nexport default PDFCrossRefStream;\n","import PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport PDFInvalidObject from 'src/core/objects/PDFInvalidObject';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFCrossRefStream from 'src/core/structures/PDFCrossRefStream';\nimport PDFObjectStream from 'src/core/structures/PDFObjectStream';\nimport PDFWriter from 'src/core/writers/PDFWriter';\nimport { last, waitForTick } from 'src/utils';\n\nclass PDFStreamWriter extends PDFWriter {\n  static forContext = (\n    context: PDFContext,\n    objectsPerTick: number,\n    encodeStreams = true,\n    objectsPerStream = 50,\n  ) =>\n    new PDFStreamWriter(\n      context,\n      objectsPerTick,\n      encodeStreams,\n      objectsPerStream,\n    );\n\n  private readonly encodeStreams: boolean;\n  private readonly objectsPerStream: number;\n\n  private constructor(\n    context: PDFContext,\n    objectsPerTick: number,\n    encodeStreams: boolean,\n    objectsPerStream: number,\n  ) {\n    super(context, objectsPerTick);\n\n    this.encodeStreams = encodeStreams;\n    this.objectsPerStream = objectsPerStream;\n  }\n\n  protected async computeBufferSize() {\n    let objectNumber = this.context.largestObjectNumber + 1;\n\n    const header = PDFHeader.forVersion(1, 7);\n\n    let size = header.sizeInBytes() + 2;\n\n    const xrefStream = PDFCrossRefStream.create(\n      this.createTrailerDict(),\n      this.encodeStreams,\n    );\n\n    const uncompressedObjects: [PDFRef, PDFObject][] = [];\n    const compressedObjects: [PDFRef, PDFObject][][] = [];\n    const objectStreamRefs: PDFRef[] = [];\n\n    const indirectObjects = this.context.enumerateIndirectObjects();\n    for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n      const indirectObject = indirectObjects[idx];\n      const [ref, object] = indirectObject;\n\n      const shouldNotCompress =\n        ref === this.context.trailerInfo.Encrypt ||\n        object instanceof PDFStream ||\n        object instanceof PDFInvalidObject ||\n        ref.generationNumber !== 0;\n\n      if (shouldNotCompress) {\n        uncompressedObjects.push(indirectObject);\n        xrefStream.addUncompressedEntry(ref, size);\n        size += this.computeIndirectObjectSize(indirectObject);\n        if (this.shouldWaitForTick(1)) await waitForTick();\n      } else {\n        let chunk = last(compressedObjects);\n        let objectStreamRef = last(objectStreamRefs);\n        if (!chunk || chunk.length % this.objectsPerStream === 0) {\n          chunk = [];\n          compressedObjects.push(chunk);\n          objectStreamRef = PDFRef.of(objectNumber++);\n          objectStreamRefs.push(objectStreamRef);\n        }\n        xrefStream.addCompressedEntry(ref, objectStreamRef, chunk.length);\n        chunk.push(indirectObject);\n      }\n    }\n\n    for (let idx = 0, len = compressedObjects.length; idx < len; idx++) {\n      const chunk = compressedObjects[idx];\n      const ref = objectStreamRefs[idx];\n\n      const objectStream = PDFObjectStream.withContextAndObjects(\n        this.context,\n        chunk,\n        this.encodeStreams,\n      );\n\n      xrefStream.addUncompressedEntry(ref, size);\n      size += this.computeIndirectObjectSize([ref, objectStream]);\n\n      uncompressedObjects.push([ref, objectStream]);\n\n      if (this.shouldWaitForTick(chunk.length)) await waitForTick();\n    }\n\n    const xrefStreamRef = PDFRef.of(objectNumber++);\n    xrefStream.dict.set(PDFName.of('Size'), PDFNumber.of(objectNumber));\n    xrefStream.addUncompressedEntry(xrefStreamRef, size);\n    const xrefOffset = size;\n    size += this.computeIndirectObjectSize([xrefStreamRef, xrefStream]);\n\n    uncompressedObjects.push([xrefStreamRef, xrefStream]);\n\n    const trailer = PDFTrailer.forLastCrossRefSectionOffset(xrefOffset);\n    size += trailer.sizeInBytes();\n\n    return { size, header, indirectObjects: uncompressedObjects, trailer };\n  }\n}\n\nexport default PDFStreamWriter;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport {\n  copyStringIntoBuffer,\n  toHexStringOfMinLength,\n  utf16Decode,\n  utf16Encode,\n  pdfDocEncodingDecode,\n  parseDate,\n  hasUtf16BOM,\n} from 'src/utils';\nimport { InvalidPDFDateStringError } from 'src/core/errors';\n\nclass PDFHexString extends PDFObject {\n  static of = (value: string) => new PDFHexString(value);\n\n  static fromText = (value: string) => {\n    const encoded = utf16Encode(value);\n\n    let hex = '';\n    for (let idx = 0, len = encoded.length; idx < len; idx++) {\n      hex += toHexStringOfMinLength(encoded[idx], 4);\n    }\n\n    return new PDFHexString(hex);\n  };\n\n  private readonly value: string;\n\n  constructor(value: string) {\n    super();\n    this.value = value;\n  }\n\n  asBytes(): Uint8Array {\n    // Append a zero if the number of digits is odd. See PDF spec 7.3.4.3\n    const hex = this.value + (this.value.length % 2 === 1 ? '0' : '');\n    const hexLength = hex.length;\n\n    const bytes = new Uint8Array(hex.length / 2);\n\n    let hexOffset = 0;\n    let bytesOffset = 0;\n\n    // Interpret each pair of hex digits as a single byte\n    while (hexOffset < hexLength) {\n      const byte = parseInt(hex.substring(hexOffset, hexOffset + 2), 16);\n      bytes[bytesOffset] = byte;\n\n      hexOffset += 2;\n      bytesOffset += 1;\n    }\n\n    return bytes;\n  }\n\n  decodeText(): string {\n    const bytes = this.asBytes();\n    if (hasUtf16BOM(bytes)) return utf16Decode(bytes);\n    return pdfDocEncodingDecode(bytes);\n  }\n\n  decodeDate(): Date {\n    const text = this.decodeText();\n    const date = parseDate(text);\n    if (!date) throw new InvalidPDFDateStringError(text);\n    return date;\n  }\n\n  asString(): string {\n    return this.value;\n  }\n\n  clone(): PDFHexString {\n    return PDFHexString.of(this.value);\n  }\n\n  toString(): string {\n    return `<${this.value}>`;\n  }\n\n  sizeInBytes(): number {\n    return this.value.length + 2;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    buffer[offset++] = CharCodes.LessThan;\n    offset += copyStringIntoBuffer(this.value, buffer, offset);\n    buffer[offset++] = CharCodes.GreaterThan;\n    return this.value.length + 2;\n  }\n}\n\nexport default PDFHexString;\n","import {\n  Encodings,\n  Font,\n  FontNames,\n  EncodingType,\n} from '@pdf-lib/standard-fonts';\n\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport { toCodePoint, toHexString } from 'src/utils';\n\nexport interface Glyph {\n  code: number;\n  name: string;\n}\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n *   https://github.com/foliojs/pdfkit/blob/f91bdd61c164a72ea06be1a43dc0a412afc3925f/lib/font/afm.coffee\n */\nclass StandardFontEmbedder {\n  static for = (fontName: FontNames, customName?: string) =>\n    new StandardFontEmbedder(fontName, customName);\n\n  readonly font: Font;\n  readonly encoding: EncodingType;\n  readonly fontName: string;\n  readonly customName: string | undefined;\n\n  private constructor(fontName: FontNames, customName?: string) {\n    // prettier-ignore\n    this.encoding = (\n        fontName === FontNames.ZapfDingbats ? Encodings.ZapfDingbats\n      : fontName === FontNames.Symbol       ? Encodings.Symbol\n      : Encodings.WinAnsi\n    );\n    this.font = Font.load(fontName);\n    this.fontName = this.font.FontName;\n    this.customName = customName;\n  }\n\n  /**\n   * Encode the JavaScript string into this font. (JavaScript encodes strings in\n   * Unicode, but standard fonts use either WinAnsi, ZapfDingbats, or Symbol\n   * encodings)\n   */\n  encodeText(text: string): PDFHexString {\n    const glyphs = this.encodeTextAsGlyphs(text);\n    const hexCodes = new Array(glyphs.length);\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      hexCodes[idx] = toHexString(glyphs[idx].code);\n    }\n    return PDFHexString.of(hexCodes.join(''));\n  }\n\n  widthOfTextAtSize(text: string, size: number): number {\n    const glyphs = this.encodeTextAsGlyphs(text);\n    let totalWidth = 0;\n\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      const left = glyphs[idx].name;\n      const right = (glyphs[idx + 1] || {}).name;\n      const kernAmount = this.font.getXAxisKerningForPair(left, right) || 0;\n      totalWidth += this.widthOfGlyph(left) + kernAmount;\n    }\n\n    const scale = size / 1000;\n    return totalWidth * scale;\n  }\n\n  heightOfFontAtSize(\n    size: number,\n    options: { descender?: boolean } = {},\n  ): number {\n    const { descender = true } = options;\n\n    const { Ascender, Descender, FontBBox } = this.font;\n    const yTop = Ascender || FontBBox[3];\n    const yBottom = Descender || FontBBox[1];\n\n    let height = yTop - yBottom;\n    if (!descender) height += Descender || 0;\n\n    return (height / 1000) * size;\n  }\n\n  sizeOfFontAtHeight(height: number): number {\n    const { Ascender, Descender, FontBBox } = this.font;\n    const yTop = Ascender || FontBBox[3];\n    const yBottom = Descender || FontBBox[1];\n    return (1000 * height) / (yTop - yBottom);\n  }\n\n  embedIntoContext(context: PDFContext, ref?: PDFRef): PDFRef {\n    const fontDict = context.obj({\n      Type: 'Font',\n      Subtype: 'Type1',\n      BaseFont: this.customName || this.fontName,\n\n      Encoding:\n        this.encoding === Encodings.WinAnsi ? 'WinAnsiEncoding' : undefined,\n    });\n\n    if (ref) {\n      context.assign(ref, fontDict);\n      return ref;\n    } else {\n      return context.register(fontDict);\n    }\n  }\n\n  private widthOfGlyph(glyphName: string): number {\n    // Default to 250 if font doesn't specify a width\n    return this.font.getWidthOfGlyph(glyphName) || 250;\n  }\n\n  private encodeTextAsGlyphs(text: string): Glyph[] {\n    const codePoints = Array.from(text);\n    const glyphs: Glyph[] = new Array(codePoints.length);\n    for (let idx = 0, len = codePoints.length; idx < len; idx++) {\n      const codePoint = toCodePoint(codePoints[idx])!;\n      glyphs[idx] = this.encoding.encodeUnicodeCodePoint(codePoint);\n    }\n    return glyphs;\n  }\n}\n\nexport default StandardFontEmbedder;\n","import { Glyph } from 'src/types/fontkit';\n\nimport { toHexString, toHexStringOfMinLength } from 'src/utils';\nimport {\n  hasSurrogates,\n  highSurrogate,\n  isWithinBMP,\n  lowSurrogate,\n} from 'src/utils/unicode';\n\n/** [fontId, codePoint] */\ntype BfChar = [string, string];\n\n/** `glyphs` should be an array of unique glyphs */\nexport const createCmap = (glyphs: Glyph[], glyphId: (g?: Glyph) => number) => {\n  const bfChars: BfChar[] = new Array(glyphs.length);\n  for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n    const glyph = glyphs[idx];\n    const id = cmapHexFormat(cmapHexString(glyphId(glyph)));\n    const unicode = cmapHexFormat(...glyph.codePoints.map(cmapCodePointFormat));\n    bfChars[idx] = [id, unicode];\n  }\n\n  return fillCmapTemplate(bfChars);\n};\n\n/* =============================== Templates ================================ */\n\nconst fillCmapTemplate = (bfChars: BfChar[]) => `\\\n/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo <<\n  /Registry (Adobe)\n  /Ordering (UCS)\n  /Supplement 0\n>> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000><ffff>\nendcodespacerange\n${bfChars.length} beginbfchar\n${bfChars.map(([glyphId, codePoint]) => `${glyphId} ${codePoint}`).join('\\n')}\nendbfchar\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend\\\n`;\n\n/* =============================== Utilities ================================ */\n\nconst cmapHexFormat = (...values: string[]) => `<${values.join('')}>`;\n\nconst cmapHexString = (value: number) => toHexStringOfMinLength(value, 4);\n\nconst cmapCodePointFormat = (codePoint: number) => {\n  if (isWithinBMP(codePoint)) return cmapHexString(codePoint);\n\n  if (hasSurrogates(codePoint)) {\n    const hs = highSurrogate(codePoint);\n    const ls = lowSurrogate(codePoint);\n    return `${cmapHexString(hs)}${cmapHexString(ls)}`;\n  }\n\n  const hex = toHexString(codePoint);\n  const msg = `0x${hex} is not a valid UTF-8 or UTF-16 codepoint.`;\n  throw new Error(msg);\n};\n","import { Font } from 'src/types/fontkit';\n\nexport interface FontFlagOptions {\n  fixedPitch?: boolean;\n  serif?: boolean;\n  symbolic?: boolean;\n  script?: boolean;\n  nonsymbolic?: boolean;\n  italic?: boolean;\n  allCap?: boolean;\n  smallCap?: boolean;\n  forceBold?: boolean;\n}\n\n// prettier-ignore\nconst makeFontFlags = (options: FontFlagOptions) => {\n  let flags = 0;\n\n  const flipBit = (bit: number) => { flags |= (1 << (bit - 1)); };\n\n  if (options.fixedPitch)  flipBit(1);\n  if (options.serif)       flipBit(2);\n  if (options.symbolic)    flipBit(3);\n  if (options.script)      flipBit(4);\n  if (options.nonsymbolic) flipBit(6);\n  if (options.italic)      flipBit(7);\n  if (options.allCap)      flipBit(17);\n  if (options.smallCap)    flipBit(18);\n  if (options.forceBold)   flipBit(19);\n\n  return flags;\n};\n\n// From: https://github.com/foliojs/pdfkit/blob/83f5f7243172a017adcf6a7faa5547c55982c57b/lib/font/embedded.js#L123-L129\nexport const deriveFontFlags = (font: Font): number => {\n  const familyClass = font['OS/2'] ? font['OS/2'].sFamilyClass : 0;\n  const flags = makeFontFlags({\n    fixedPitch: font.post.isFixedPitch,\n    serif: 1 <= familyClass && familyClass <= 7,\n    symbolic: true, // Assume the font uses non-latin characters\n    script: familyClass === 10,\n    italic: font.head.macStyle.italic,\n  });\n  return flags;\n};\n","import PDFObject from 'src/core/objects/PDFObject';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport {\n  copyStringIntoBuffer,\n  padStart,\n  utf16Decode,\n  pdfDocEncodingDecode,\n  toCharCode,\n  parseDate,\n  hasUtf16BOM,\n} from 'src/utils';\nimport { InvalidPDFDateStringError } from 'src/core/errors';\n\nclass PDFString extends PDFObject {\n  // The PDF spec allows newlines and parens to appear directly within a literal\n  // string. These character _may_ be escaped. But they do not _have_ to be. So\n  // for simplicity, we will not bother escaping them.\n  static of = (value: string) => new PDFString(value);\n\n  static fromDate = (date: Date) => {\n    const year = padStart(String(date.getUTCFullYear()), 4, '0');\n    const month = padStart(String(date.getUTCMonth() + 1), 2, '0');\n    const day = padStart(String(date.getUTCDate()), 2, '0');\n    const hours = padStart(String(date.getUTCHours()), 2, '0');\n    const mins = padStart(String(date.getUTCMinutes()), 2, '0');\n    const secs = padStart(String(date.getUTCSeconds()), 2, '0');\n    return new PDFString(`D:${year}${month}${day}${hours}${mins}${secs}Z`);\n  };\n\n  private readonly value: string;\n\n  private constructor(value: string) {\n    super();\n    this.value = value;\n  }\n\n  asBytes(): Uint8Array {\n    const bytes: number[] = [];\n\n    let octal = '';\n    let escaped = false;\n\n    const pushByte = (byte?: number) => {\n      if (byte !== undefined) bytes.push(byte);\n      escaped = false;\n    };\n\n    for (let idx = 0, len = this.value.length; idx < len; idx++) {\n      const char = this.value[idx];\n      const byte = toCharCode(char);\n      const nextChar = this.value[idx + 1];\n      if (!escaped) {\n        if (byte === CharCodes.BackSlash) escaped = true;\n        else pushByte(byte);\n      } else {\n        if (byte === CharCodes.Newline) pushByte();\n        else if (byte === CharCodes.CarriageReturn) pushByte();\n        else if (byte === CharCodes.n) pushByte(CharCodes.Newline);\n        else if (byte === CharCodes.r) pushByte(CharCodes.CarriageReturn);\n        else if (byte === CharCodes.t) pushByte(CharCodes.Tab);\n        else if (byte === CharCodes.b) pushByte(CharCodes.Backspace);\n        else if (byte === CharCodes.f) pushByte(CharCodes.FormFeed);\n        else if (byte === CharCodes.LeftParen) pushByte(CharCodes.LeftParen);\n        else if (byte === CharCodes.RightParen) pushByte(CharCodes.RightParen);\n        else if (byte === CharCodes.Backspace) pushByte(CharCodes.BackSlash);\n        else if (byte >= CharCodes.Zero && byte <= CharCodes.Seven) {\n          octal += char;\n          if (octal.length === 3 || !(nextChar >= '0' && nextChar <= '7')) {\n            pushByte(parseInt(octal, 8));\n            octal = '';\n          }\n        } else {\n          pushByte(byte);\n        }\n      }\n    }\n\n    return new Uint8Array(bytes);\n  }\n\n  decodeText(): string {\n    const bytes = this.asBytes();\n    if (hasUtf16BOM(bytes)) return utf16Decode(bytes);\n    return pdfDocEncodingDecode(bytes);\n  }\n\n  decodeDate(): Date {\n    const text = this.decodeText();\n    const date = parseDate(text);\n    if (!date) throw new InvalidPDFDateStringError(text);\n    return date;\n  }\n\n  asString(): string {\n    return this.value;\n  }\n\n  clone(): PDFString {\n    return PDFString.of(this.value);\n  }\n\n  toString(): string {\n    return `(${this.value})`;\n  }\n\n  sizeInBytes(): number {\n    return this.value.length + 2;\n  }\n\n  copyBytesInto(buffer: Uint8Array, offset: number): number {\n    buffer[offset++] = CharCodes.LeftParen;\n    offset += copyStringIntoBuffer(this.value, buffer, offset);\n    buffer[offset++] = CharCodes.RightParen;\n    return this.value.length + 2;\n  }\n}\n\nexport default PDFString;\n","import { Font, Fontkit, Glyph, TypeFeatures } from 'src/types/fontkit';\n\nimport { createCmap } from 'src/core/embedders/CMap';\nimport { deriveFontFlags } from 'src/core/embedders/FontFlags';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFContext from 'src/core/PDFContext';\nimport {\n  byAscendingId,\n  Cache,\n  sortedUniq,\n  toHexStringOfMinLength,\n} from 'src/utils';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n *   https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/jpeg.coffee\n */\nclass CustomFontEmbedder {\n  static async for(\n    fontkit: Fontkit,\n    fontData: Uint8Array,\n    customName?: string,\n    fontFeatures?: TypeFeatures,\n  ) {\n    const font = await fontkit.create(fontData);\n    return new CustomFontEmbedder(font, fontData, customName, fontFeatures);\n  }\n\n  readonly font: Font;\n  readonly scale: number;\n  readonly fontData: Uint8Array;\n  readonly fontName: string;\n  readonly customName: string | undefined;\n  readonly fontFeatures: TypeFeatures | undefined;\n\n  protected baseFontName: string;\n  protected glyphCache: Cache<Glyph[]>;\n\n  protected constructor(\n    font: Font,\n    fontData: Uint8Array,\n    customName?: string,\n    fontFeatures?: TypeFeatures,\n  ) {\n    this.font = font;\n    this.scale = 1000 / this.font.unitsPerEm;\n    this.fontData = fontData;\n    this.fontName = this.font.postscriptName || 'Font';\n    this.customName = customName;\n    this.fontFeatures = fontFeatures;\n\n    this.baseFontName = '';\n    this.glyphCache = Cache.populatedBy(this.allGlyphsInFontSortedById);\n  }\n\n  /**\n   * Encode the JavaScript string into this font. (JavaScript encodes strings in\n   * Unicode, but embedded fonts use their own custom encodings)\n   */\n  encodeText(text: string): PDFHexString {\n    const { glyphs } = this.font.layout(text, this.fontFeatures);\n    const hexCodes = new Array(glyphs.length);\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      hexCodes[idx] = toHexStringOfMinLength(glyphs[idx].id, 4);\n    }\n    return PDFHexString.of(hexCodes.join(''));\n  }\n\n  // The advanceWidth takes into account kerning automatically, so we don't\n  // have to do that manually like we do for the standard fonts.\n  widthOfTextAtSize(text: string, size: number): number {\n    const { glyphs } = this.font.layout(text, this.fontFeatures);\n    let totalWidth = 0;\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      totalWidth += glyphs[idx].advanceWidth * this.scale;\n    }\n    const scale = size / 1000;\n    return totalWidth * scale;\n  }\n\n  heightOfFontAtSize(\n    size: number,\n    options: { descender?: boolean } = {},\n  ): number {\n    const { descender = true } = options;\n\n    const { ascent, descent, bbox } = this.font;\n    const yTop = (ascent || bbox.maxY) * this.scale;\n    const yBottom = (descent || bbox.minY) * this.scale;\n\n    let height = yTop - yBottom;\n    if (!descender) height -= Math.abs(descent) || 0;\n\n    return (height / 1000) * size;\n  }\n\n  sizeOfFontAtHeight(height: number): number {\n    const { ascent, descent, bbox } = this.font;\n    const yTop = (ascent || bbox.maxY) * this.scale;\n    const yBottom = (descent || bbox.minY) * this.scale;\n    return (1000 * height) / (yTop - yBottom);\n  }\n\n  embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    this.baseFontName =\n      this.customName || context.addRandomSuffix(this.fontName);\n    return this.embedFontDict(context, ref);\n  }\n\n  protected async embedFontDict(\n    context: PDFContext,\n    ref?: PDFRef,\n  ): Promise<PDFRef> {\n    const cidFontDictRef = await this.embedCIDFontDict(context);\n    const unicodeCMapRef = this.embedUnicodeCmap(context);\n\n    const fontDict = context.obj({\n      Type: 'Font',\n      Subtype: 'Type0',\n      BaseFont: this.baseFontName,\n      Encoding: 'Identity-H',\n      DescendantFonts: [cidFontDictRef],\n      ToUnicode: unicodeCMapRef,\n    });\n\n    if (ref) {\n      context.assign(ref, fontDict);\n      return ref;\n    } else {\n      return context.register(fontDict);\n    }\n  }\n\n  protected isCFF(): boolean {\n    return this.font.cff;\n  }\n\n  protected async embedCIDFontDict(context: PDFContext): Promise<PDFRef> {\n    const fontDescriptorRef = await this.embedFontDescriptor(context);\n\n    const cidFontDict = context.obj({\n      Type: 'Font',\n      Subtype: this.isCFF() ? 'CIDFontType0' : 'CIDFontType2',\n      CIDToGIDMap: 'Identity',\n      BaseFont: this.baseFontName,\n      CIDSystemInfo: {\n        Registry: PDFString.of('Adobe'),\n        Ordering: PDFString.of('Identity'),\n        Supplement: 0,\n      },\n      FontDescriptor: fontDescriptorRef,\n      W: this.computeWidths(),\n    });\n\n    return context.register(cidFontDict);\n  }\n\n  protected async embedFontDescriptor(context: PDFContext): Promise<PDFRef> {\n    const fontStreamRef = await this.embedFontStream(context);\n\n    const { scale } = this;\n    const { italicAngle, ascent, descent, capHeight, xHeight } = this.font;\n    const { minX, minY, maxX, maxY } = this.font.bbox;\n\n    const fontDescriptor = context.obj({\n      Type: 'FontDescriptor',\n      FontName: this.baseFontName,\n      Flags: deriveFontFlags(this.font),\n      FontBBox: [minX * scale, minY * scale, maxX * scale, maxY * scale],\n      ItalicAngle: italicAngle,\n      Ascent: ascent * scale,\n      Descent: descent * scale,\n      CapHeight: (capHeight || ascent) * scale,\n      XHeight: (xHeight || 0) * scale,\n\n      // Not sure how to compute/find this, nor is anybody else really:\n      // https://stackoverflow.com/questions/35485179/stemv-value-of-the-truetype-font\n      StemV: 0,\n\n      [this.isCFF() ? 'FontFile3' : 'FontFile2']: fontStreamRef,\n    });\n\n    return context.register(fontDescriptor);\n  }\n\n  protected async serializeFont(): Promise<Uint8Array> {\n    return this.fontData;\n  }\n\n  protected async embedFontStream(context: PDFContext): Promise<PDFRef> {\n    const fontStream = context.flateStream(await this.serializeFont(), {\n      Subtype: this.isCFF() ? 'CIDFontType0C' : undefined,\n    });\n    return context.register(fontStream);\n  }\n\n  protected embedUnicodeCmap(context: PDFContext): PDFRef {\n    const cmap = createCmap(this.glyphCache.access(), this.glyphId.bind(this));\n    const cmapStream = context.flateStream(cmap);\n    return context.register(cmapStream);\n  }\n\n  protected glyphId(glyph?: Glyph): number {\n    return glyph ? glyph.id : -1;\n  }\n\n  protected computeWidths(): (number | number[])[] {\n    const glyphs = this.glyphCache.access();\n\n    const widths: (number | number[])[] = [];\n    let currSection: number[] = [];\n\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      const currGlyph = glyphs[idx];\n      const prevGlyph = glyphs[idx - 1];\n\n      const currGlyphId = this.glyphId(currGlyph);\n      const prevGlyphId = this.glyphId(prevGlyph);\n\n      if (idx === 0) {\n        widths.push(currGlyphId);\n      } else if (currGlyphId - prevGlyphId !== 1) {\n        widths.push(currSection);\n        widths.push(currGlyphId);\n        currSection = [];\n      }\n\n      currSection.push(currGlyph.advanceWidth * this.scale);\n    }\n\n    widths.push(currSection);\n\n    return widths;\n  }\n\n  private allGlyphsInFontSortedById = (): Glyph[] => {\n    const glyphs: Glyph[] = new Array(this.font.characterSet.length);\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      const codePoint = this.font.characterSet[idx];\n      glyphs[idx] = this.font.glyphForCodePoint(codePoint);\n    }\n    return sortedUniq(glyphs.sort(byAscendingId), (g) => g.id);\n  };\n}\n\nexport default CustomFontEmbedder;\n","import { Font, Fontkit, Glyph, Subset, TypeFeatures } from 'src/types/fontkit';\n\nimport CustomFontEmbedder from 'src/core/embedders/CustomFontEmbedder';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport { Cache, mergeUint8Arrays, toHexStringOfMinLength } from 'src/utils';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n *   https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/jpeg.coffee\n */\nclass CustomFontSubsetEmbedder extends CustomFontEmbedder {\n  static async for(\n    fontkit: Fontkit,\n    fontData: Uint8Array,\n    customFontName?: string,\n    fontFeatures?: TypeFeatures,\n  ) {\n    const font = await fontkit.create(fontData);\n    return new CustomFontSubsetEmbedder(\n      font,\n      fontData,\n      customFontName,\n      fontFeatures,\n    );\n  }\n\n  private readonly subset: Subset;\n  private readonly glyphs: Glyph[];\n  private readonly glyphIdMap: Map<number, number>;\n\n  private constructor(\n    font: Font,\n    fontData: Uint8Array,\n    customFontName?: string,\n    fontFeatures?: TypeFeatures,\n  ) {\n    super(font, fontData, customFontName, fontFeatures);\n\n    this.subset = this.font.createSubset();\n    this.glyphs = [];\n    this.glyphCache = Cache.populatedBy(() => this.glyphs);\n    this.glyphIdMap = new Map();\n  }\n\n  encodeText(text: string): PDFHexString {\n    const { glyphs } = this.font.layout(text, this.fontFeatures);\n    const hexCodes = new Array(glyphs.length);\n\n    for (let idx = 0, len = glyphs.length; idx < len; idx++) {\n      const glyph = glyphs[idx];\n      const subsetGlyphId = this.subset.includeGlyph(glyph);\n\n      this.glyphs[subsetGlyphId - 1] = glyph;\n      this.glyphIdMap.set(glyph.id, subsetGlyphId);\n\n      hexCodes[idx] = toHexStringOfMinLength(subsetGlyphId, 4);\n    }\n\n    this.glyphCache.invalidate();\n    return PDFHexString.of(hexCodes.join(''));\n  }\n\n  protected isCFF(): boolean {\n    return (this.subset as any).cff;\n  }\n\n  protected glyphId(glyph?: Glyph): number {\n    return glyph ? this.glyphIdMap.get(glyph.id)! : -1;\n  }\n\n  protected serializeFont(): Promise<Uint8Array> {\n    return new Promise((resolve, reject) => {\n      const parts: Uint8Array[] = [];\n      this.subset\n        .encodeStream()\n        .on('data', (bytes) => parts.push(bytes))\n        .on('end', () => resolve(mergeUint8Arrays(parts)))\n        .on('error' as any, (err) => reject(err));\n    });\n  }\n}\n\nexport default CustomFontSubsetEmbedder;\n","import PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\n/**\n * From the PDF-A3 specification, section **3.1. Requirements - General**.\n * See:\n * * https://www.pdfa.org/wp-content/uploads/2018/10/PDF20_AN002-AF.pdf\n */\nexport enum AFRelationship {\n  Source = 'Source',\n  Data = 'Data',\n  Alternative = 'Alternative',\n  Supplement = 'Supplement',\n  EncryptedPayload = 'EncryptedPayload',\n  FormData = 'EncryptedPayload',\n  Schema = 'Schema',\n  Unspecified = 'Unspecified',\n}\n\nexport interface EmbeddedFileOptions {\n  mimeType?: string;\n  description?: string;\n  creationDate?: Date;\n  modificationDate?: Date;\n  afRelationship?: AFRelationship;\n}\n\nclass FileEmbedder {\n  static for(\n    bytes: Uint8Array,\n    fileName: string,\n    options: EmbeddedFileOptions = {},\n  ) {\n    return new FileEmbedder(bytes, fileName, options);\n  }\n\n  private readonly fileData: Uint8Array;\n  readonly fileName: string;\n  readonly options: EmbeddedFileOptions;\n\n  private constructor(\n    fileData: Uint8Array,\n    fileName: string,\n    options: EmbeddedFileOptions = {},\n  ) {\n    this.fileData = fileData;\n    this.fileName = fileName;\n    this.options = options;\n  }\n\n  async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    const {\n      mimeType,\n      description,\n      creationDate,\n      modificationDate,\n      afRelationship,\n    } = this.options;\n\n    const embeddedFileStream = context.flateStream(this.fileData, {\n      Type: 'EmbeddedFile',\n      Subtype: mimeType ?? undefined,\n      Params: {\n        Size: this.fileData.length,\n        CreationDate: creationDate\n          ? PDFString.fromDate(creationDate)\n          : undefined,\n        ModDate: modificationDate\n          ? PDFString.fromDate(modificationDate)\n          : undefined,\n      },\n    });\n    const embeddedFileStreamRef = context.register(embeddedFileStream);\n\n    const fileSpecDict = context.obj({\n      Type: 'Filespec',\n      F: PDFString.of(this.fileName), // TODO: Assert that this is plain ASCII\n      UF: PDFHexString.fromText(this.fileName),\n      EF: { F: embeddedFileStreamRef },\n      Desc: description ? PDFHexString.fromText(description) : undefined,\n      AFRelationship: afRelationship ?? undefined,\n    });\n\n    if (ref) {\n      context.assign(ref, fileSpecDict);\n      return ref;\n    } else {\n      return context.register(fileSpecDict);\n    }\n  }\n}\n\nexport default FileEmbedder;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\n\n// prettier-ignore\nconst MARKERS = [\n  0xffc0, 0xffc1, 0xffc2,\n  0xffc3, 0xffc5, 0xffc6,\n  0xffc7, 0xffc8, 0xffc9,\n  0xffca, 0xffcb, 0xffcc,\n  0xffcd, 0xffce, 0xffcf,\n];\n\nenum ColorSpace {\n  DeviceGray = 'DeviceGray',\n  DeviceRGB = 'DeviceRGB',\n  DeviceCMYK = 'DeviceCMYK',\n}\n\nconst ChannelToColorSpace: { [idx: number]: ColorSpace | undefined } = {\n  1: ColorSpace.DeviceGray,\n  3: ColorSpace.DeviceRGB,\n  4: ColorSpace.DeviceCMYK,\n};\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n *   https://github.com/foliojs/pdfkit/blob/a6af76467ce06bd6a2af4aa7271ccac9ff152a7d/lib/image/jpeg.js\n */\nclass JpegEmbedder {\n  static async for(imageData: Uint8Array) {\n    const dataView = new DataView(imageData.buffer);\n\n    const soi = dataView.getUint16(0);\n    if (soi !== 0xffd8) throw new Error('SOI not found in JPEG');\n\n    let pos = 2;\n    let marker: number;\n\n    while (pos < dataView.byteLength) {\n      marker = dataView.getUint16(pos);\n      pos += 2;\n      if (MARKERS.includes(marker)) break;\n      pos += dataView.getUint16(pos);\n    }\n\n    if (!MARKERS.includes(marker!)) throw new Error('Invalid JPEG');\n    pos += 2;\n\n    const bitsPerComponent = dataView.getUint8(pos++);\n    const height = dataView.getUint16(pos);\n    pos += 2;\n\n    const width = dataView.getUint16(pos);\n    pos += 2;\n\n    const channelByte = dataView.getUint8(pos++);\n    const channelName = ChannelToColorSpace[channelByte];\n\n    if (!channelName) throw new Error('Unknown JPEG channel.');\n\n    const colorSpace = channelName;\n\n    return new JpegEmbedder(\n      imageData,\n      bitsPerComponent,\n      width,\n      height,\n      colorSpace,\n    );\n  }\n\n  readonly bitsPerComponent: number;\n  readonly height: number;\n  readonly width: number;\n  readonly colorSpace: ColorSpace;\n\n  private readonly imageData: Uint8Array;\n\n  private constructor(\n    imageData: Uint8Array,\n    bitsPerComponent: number,\n    width: number,\n    height: number,\n    colorSpace: ColorSpace,\n  ) {\n    this.imageData = imageData;\n    this.bitsPerComponent = bitsPerComponent;\n    this.width = width;\n    this.height = height;\n    this.colorSpace = colorSpace;\n  }\n\n  async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    const xObject = context.stream(this.imageData, {\n      Type: 'XObject',\n      Subtype: 'Image',\n      BitsPerComponent: this.bitsPerComponent,\n      Width: this.width,\n      Height: this.height,\n      ColorSpace: this.colorSpace,\n      Filter: 'DCTDecode',\n\n      // CMYK JPEG streams in PDF are typically stored complemented,\n      // with 1 as 'off' and 0 as 'on' (PDF 32000-1:2008, 8.6.4.4).\n      //\n      // Standalone CMYK JPEG (usually exported by Photoshop) are\n      // stored inverse, with 0 as 'off' and 1 as 'on', like RGB.\n      //\n      // Applying a swap here as a hedge that most bytes passing\n      // through this method will benefit from it.\n      Decode:\n        this.colorSpace === ColorSpace.DeviceCMYK\n          ? [1, 0, 1, 0, 1, 0, 1, 0]\n          : undefined,\n    });\n\n    if (ref) {\n      context.assign(ref, xObject);\n      return ref;\n    } else {\n      return context.register(xObject);\n    }\n  }\n}\n\nexport default JpegEmbedder;\n","import pako from 'pako';\n\nvar UPNG = {};\n\n\t\n\nUPNG.toRGBA8 = function(out)\n{\n\tvar w = out.width, h = out.height;\n\tif(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];\n\t\n\tvar frms = [];\n\tif(out.frames[0].data==null) out.frames[0].data = out.data;\n\t\n\tvar len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len);\n\tfor(var i=0; i<out.frames.length; i++)\n\t{\n\t\tvar frm = out.frames[i];\n\t\tvar fx=frm.rect.x, fy=frm.rect.y, fw = frm.rect.width, fh = frm.rect.height;\n\t\tvar fdata = UPNG.toRGBA8.decodeImage(frm.data, fw,fh, out);\n\t\t\n\t\tif(i!=0) for(var j=0; j<len; j++) prev[j]=img[j];\n\t\t\n\t\tif     (frm.blend==0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.blend==1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);\n\t\t\n\t\tfrms.push(img.buffer.slice(0));\n\t\t\n\t\tif     (frm.dispose==0) {}\n\t\telse if(frm.dispose==1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.dispose==2) for(var j=0; j<len; j++) img[j]=prev[j];\n\t}\n\treturn frms;\n}\nUPNG.toRGBA8.decodeImage = function(data, w, h, out)\n{\n\tvar area = w*h, bpp = UPNG.decode._getBPP(out);\n\tvar bpl = Math.ceil(w*bpp/8);\t// bytes per line\n\n\tvar bf = new Uint8Array(area*4), bf32 = new Uint32Array(bf.buffer);\n\tvar ctype = out.ctype, depth = out.depth;\n\tvar rs = UPNG._bin.readUshort;\n\t\n\t//console.log(ctype, depth);\n\tvar time = Date.now();\n\n\tif     (ctype==6) { // RGB + alpha\n\t\tvar qarea = area<<2;\n\t\tif(depth== 8) for(var i=0; i<qarea;i+=4) {  bf[i] = data[i];  bf[i+1] = data[i+1];  bf[i+2] = data[i+2];  bf[i+3] = data[i+3]; }\n\t\tif(depth==16) for(var i=0; i<qarea;i++ ) {  bf[i] = data[i<<1];  }\n\t}\n\telse if(ctype==2) {\t// RGB\n\t\tvar ts=out.tabs[\"tRNS\"];\n\t\tif(ts==null) {\n\t\t\tif(depth== 8) for(var i=0; i<area; i++) {  var ti=i*3;  bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti];  }\n\t\t\tif(depth==16) for(var i=0; i<area; i++) {  var ti=i*6;  bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti];  }\n\t\t}\n\t\telse {  var tr=ts[0], tg=ts[1], tb=ts[2];\n\t\t\tif(depth== 8) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*3;  bf32[i] = (255<<24)|(data[ti+2]<<16)|(data[ti+1]<<8)|data[ti];\n\t\t\t\tif(data[ti]   ==tr && data[ti+1]   ==tg && data[ti+2]   ==tb) bf[qi+3] = 0;  }\n\t\t\tif(depth==16) for(var i=0; i<area; i++) {  var qi=i<<2, ti=i*6;  bf32[i] = (255<<24)|(data[ti+4]<<16)|(data[ti+2]<<8)|data[ti];\n\t\t\t\tif(rs(data,ti)==tr && rs(data,ti+2)==tg && rs(data,ti+4)==tb) bf[qi+3] = 0;  }\n\t\t}\n\t}\n\telse if(ctype==3) {\t// palette\n\t\tvar p=out.tabs[\"PLTE\"], ap=out.tabs[\"tRNS\"], tl=ap?ap.length:0;\n\t\t//console.log(p, ap);\n\t\tif(depth==1) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>3)]>>(7-((i&7)<<0)))& 1), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==2) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>2)]>>(6-((i&3)<<1)))& 3), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==4) for(var y=0; y<h; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i<w; i++) { var qi=(t0+i)<<2, j=((data[s0+(i>>1)]>>(4-((i&1)<<2)))&15), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==8) for(var i=0; i<area; i++ ) {  var qi=i<<2, j=data[i]                      , cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j<tl)?ap[j]:255;  }\n\t}\n\telse if(ctype==4) {\t// gray + alpha\n\t\tif(depth== 8)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<1, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+1];  }\n\t\tif(depth==16)  for(var i=0; i<area; i++) {  var qi=i<<2, di=i<<2, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+2];  }\n\t}\n\telse if(ctype==0) {\t// gray\n\t\tvar tr = out.tabs[\"tRNS\"] ? out.tabs[\"tRNS\"] : -1;\n\t\tfor(var y=0; y<h; y++) {\n\t\t\tvar off = y*bpl, to = y*w;\n\t\t\tif     (depth== 1) for(var x=0; x<w; x++) {  var gr=255*((data[off+(x>>>3)]>>>(7 -((x&7)   )))& 1), al=(gr==tr*255)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 2) for(var x=0; x<w; x++) {  var gr= 85*((data[off+(x>>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 4) for(var x=0; x<w; x++) {  var gr= 17*((data[off+(x>>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth== 8) for(var x=0; x<w; x++) {  var gr=data[off+     x], al=(gr                 ==tr)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t\telse if(depth==16) for(var x=0; x<w; x++) {  var gr=data[off+(x<<1)], al=(rs(data,off+(x<<i))==tr)?0:255;  bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr;  }\n\t\t}\n\t}\n\t//console.log(Date.now()-time);\n\treturn bf;\n}\n\n\n\nUPNG.decode = function(buff)\n{\n\tvar data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort, rUi = bin.readUint;\n\tvar out = {tabs:{}, frames:[]};\n\tvar dd = new Uint8Array(data.length), doff = 0;\t // put all IDAT data into it\n\tvar fd, foff = 0;\t// frames\n\t\n\tvar mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i<8; i++) if(data[i]!=mgck[i]) throw \"The input is not a PNG file!\";\n\n\twhile(offset<data.length)\n\t{\n\t\tvar len  = bin.readUint(data, offset);  offset += 4;\n\t\tvar type = bin.readASCII(data, offset, 4);  offset += 4;\n\t\t//console.log(type,len);\n\t\t\n\t\tif     (type==\"IHDR\")  {  UPNG.decode._IHDR(data, offset, out);  }\n\t\telse if(type==\"IDAT\") {\n\t\t\tfor(var i=0; i<len; i++) dd[doff+i] = data[offset+i];\n\t\t\tdoff += len;\n\t\t}\n\t\telse if(type==\"acTL\")  {\n\t\t\tout.tabs[type] = {  num_frames:rUi(data, offset), num_plays:rUi(data, offset+4)  };\n\t\t\tfd = new Uint8Array(data.length);\n\t\t}\n\t\telse if(type==\"fcTL\")  {\n\t\t\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\t\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t\t\t}\n\t\t\tvar rct = {x:rUi(data, offset+12),y:rUi(data, offset+16),width:rUi(data, offset+4),height:rUi(data, offset+8)};\n\t\t\tvar del = rUs(data, offset+22);  del = rUs(data, offset+20) / (del==0?100:del);\n\t\t\tvar frm = {rect:rct, delay:Math.round(del*1000), dispose:data[offset+24], blend:data[offset+25]};\n\t\t\t//console.log(frm);\n\t\t\tout.frames.push(frm);\n\t\t}\n\t\telse if(type==\"fdAT\") {\n\t\t\tfor(var i=0; i<len-4; i++) fd[foff+i] = data[offset+i+4];\n\t\t\tfoff += len-4;\n\t\t}\n\t\telse if(type==\"pHYs\") {\n\t\t\tout.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset+4), data[offset+8]];\n\t\t}\n\t\telse if(type==\"cHRM\") {\n\t\t\tout.tabs[type] = [];\n\t\t\tfor(var i=0; i<8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));\n\t\t}\n\t\telse if(type==\"tEXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = bin.nextZero(data, offset);\n\t\t\tvar keyw = bin.readASCII(data, offset, nz-offset);\n\t\t\tvar text = bin.readASCII(data, nz+1, offset+len-nz-1);\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"iTXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = 0, off = offset;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar keyw = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tvar cflag = data[off], cmeth = data[off+1];  off+=2;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar ltag = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar tkeyw = bin.readUTF8(data, off, nz-off);  off = nz + 1;\n\t\t\tvar text  = bin.readUTF8(data, off, len-(off-offset));\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"PLTE\") {\n\t\t\tout.tabs[type] = bin.readBytes(data, offset, len);\n\t\t}\n\t\telse if(type==\"hIST\") {\n\t\t\tvar pl = out.tabs[\"PLTE\"].length/3;\n\t\t\tout.tabs[type] = [];  for(var i=0; i<pl; i++) out.tabs[type].push(rUs(data, offset+i*2));\n\t\t}\n\t\telse if(type==\"tRNS\") {\n\t\t\tif     (out.ctype==3) out.tabs[type] = bin.readBytes(data, offset, len);\n\t\t\telse if(out.ctype==0) out.tabs[type] = rUs(data, offset);\n\t\t\telse if(out.ctype==2) out.tabs[type] = [ rUs(data,offset),rUs(data,offset+2),rUs(data,offset+4) ];\n\t\t\t//else console.log(\"tRNS for unsupported color type\",out.ctype, len);\n\t\t}\n\t\telse if(type==\"gAMA\") out.tabs[type] = bin.readUint(data, offset)/100000;\n\t\telse if(type==\"sRGB\") out.tabs[type] = data[offset];\n\t\telse if(type==\"bKGD\")\n\t\t{\n\t\t\tif     (out.ctype==0 || out.ctype==4) out.tabs[type] = [rUs(data, offset)];\n\t\t\telse if(out.ctype==2 || out.ctype==6) out.tabs[type] = [rUs(data, offset), rUs(data, offset+2), rUs(data, offset+4)];\n\t\t\telse if(out.ctype==3) out.tabs[type] = data[offset];\n\t\t}\n\t\telse if(type==\"IEND\") {\n\t\t\tbreak;\n\t\t}\n\t\t//else {  log(\"unknown chunk type\", type, len);  }\n\t\toffset += len;\n\t\tvar crc = bin.readUint(data, offset);  offset += 4;\n\t}\n\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t}\t\n\tout.data = UPNG.decode._decompress(out, dd, out.width, out.height);\n\t\n\tdelete out.compress;  delete out.interlace;  delete out.filter;\n\treturn out;\n}\n\nUPNG.decode._decompress = function(out, dd, w, h) {\n\tvar time = Date.now();\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), buff = new Uint8Array((bpl+1+out.interlace)*h);\n\tdd = UPNG.decode._inflate(dd,buff);\n\t//console.log(dd.length, buff.length);\n\t//console.log(Date.now()-time);\n\n\tvar time=Date.now();\n\tif     (out.interlace==0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);\n\telse if(out.interlace==1) dd = UPNG.decode._readInterlace(dd, out);\n\t//console.log(Date.now()-time);\n\treturn dd;\n}\n\nUPNG.decode._inflate = function(data, buff) {  var out=UPNG[\"inflateRaw\"](new Uint8Array(data.buffer, 2,data.length-6),buff);  return out;  }\nUPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;\nif(N[0]==3&&N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;\nif(Z)W=new R(N.length>>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7);\nvar D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3;\nw+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257;\nh=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0;\nc<Q;c++){var K=A(N,d+c*3,3);b.Q[(b.X[c]<<1)+1]=K;if(K>j)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;\nd=l(b.u,(1<<j)-1,J+h,N,d,b.v);var r=V.V(b.v,0,J,b.C);X=(1<<r)-1;var S=V.V(b.v,J,h,b.D);u=(1<<S)-1;M(b.C,r);\nI(b.C,r,v);M(b.D,S);I(b.D,S,C)}while(!0){var T=v[e(N,d)&X];d+=T&15;var p=T>>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254;\nif(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15);\nd+=Y&15;while(w<z){W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a]}w=z}}}return W.length==w?W:W.slice(0,w)};\nH.H.W=function(N,W){var R=N.length;if(W<=R)return N;var V=new Uint8Array(R<<1);V.set(N,0);return V};\nH.H.R=function(N,W,R,V,n,A){var l=H.H.e,M=H.H.Z,I=0;while(I<R){var e=N[M(V,n)&W];n+=e&15;var b=e>>>4;\nif(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3);\nn+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I<J){A[I]=Z;I++}}}return n};H.H.V=function(N,W,R,V){var n=0,A=0,l=V.length>>>1;\nwhile(A<R){var M=N[A+W];V[A<<1]=0;V[(A<<1)+1]=M;if(M>n)n=M;A++}while(A<l){V[A<<1]=0;V[(A<<1)+1]=0;A++}return n};\nH.H.n=function(N,W){var R=H.H.m,V=N.length,n,A,l,M,I,e=R.j;for(var M=0;M<=W;M++)e[M]=0;for(M=1;M<V;M+=2)e[N[M]]++;\nvar b=R.K;n=0;e[0]=0;for(A=1;A<=W;A++){n=n+e[A-1]<<1;b[A]=n}for(l=0;l<V;l+=2){I=N[l+1];if(I!=0){N[l]=b[I];\nb[I]++}}};H.H.A=function(N,W,R){var V=N.length,n=H.H.m,A=n.r;for(var l=0;l<V;l+=2)if(N[l+1]!=0){var M=l>>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<<b,m=Z+(1<<b);\nwhile(Z!=m){var J=A[Z]>>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n<N.length;\nn+=2){var A=N[n]<<W-N[n+1];N[n]=R[A]>>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8};\nH.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<<R)-1};\nH.H.b=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<<R)-1};H.H.Z=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)};\nH.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;\nreturn{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}();\n(function(){var N=H.H.m,W=1<<15;for(var R=0;R<W;R++){var V=R;V=(V&2863311530)>>>1|(V&1431655765)<<1;\nV=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8;\nN.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R];\nN.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);\nH.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);\nn(N.D,30,0);n(N.v,320,0)}());return H.H.N}()\n\n\nUPNG.decode._readInterlace = function(data, out)\n{\n\tvar w = out.width, h = out.height;\n\tvar bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8);\n\tvar img = new Uint8Array( h * bpl );\n\tvar di = 0;\n\n\tvar starting_row  = [ 0, 0, 4, 0, 2, 0, 1 ];\n\tvar starting_col  = [ 0, 4, 0, 2, 0, 1, 0 ];\n\tvar row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];\n\tvar col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];\n\n\tvar pass=0;\n\twhile(pass<7)\n\t{\n\t\tvar ri = row_increment[pass], ci = col_increment[pass];\n\t\tvar sw = 0, sh = 0;\n\t\tvar cr = starting_row[pass];  while(cr<h) {  cr+=ri;  sh++;  }\n\t\tvar cc = starting_col[pass];  while(cc<w) {  cc+=ci;  sw++;  }\n\t\tvar bpll = Math.ceil(sw*bpp/8);\n\t\tUPNG.decode._filterZero(data, out, di, sw, sh);\n\n\t\tvar y=0, row = starting_row[pass];\n\t\twhile(row<h)\n\t\t{\n\t\t\tvar col = starting_col[pass];\n\t\t\tvar cdi = (di+y*bpll)<<3;\n\n\t\t\twhile(col<w)\n\t\t\t{\n\t\t\t\tif(bpp==1) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(7-(cdi&7)))&1;\n\t\t\t\t\timg[row*bpl + (col>>3)] |= (val << (7-((col&7)<<0)));\n\t\t\t\t}\n\t\t\t\tif(bpp==2) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(6-(cdi&7)))&3;\n\t\t\t\t\timg[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1)));\n\t\t\t\t}\n\t\t\t\tif(bpp==4) {\n\t\t\t\t\tvar val = data[cdi>>3];  val = (val>>(4-(cdi&7)))&15;\n\t\t\t\t\timg[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2)));\n\t\t\t\t}\n\t\t\t\tif(bpp>=8) {\n\t\t\t\t\tvar ii = row*bpl+col*cbpp;\n\t\t\t\t\tfor(var j=0; j<cbpp; j++) img[ii+j] = data[(cdi>>3)+j];\n\t\t\t\t}\n\t\t\t\tcdi+=bpp;  col+=ci;\n\t\t\t}\n\t\t\ty++;  row += ri;\n\t\t}\n\t\tif(sw*sh!=0) di += sh * (1 + bpll);\n\t\tpass = pass + 1;\n\t}\n\treturn img;\n}\n\nUPNG.decode._getBPP = function(out) {\n\tvar noc = [1,null,3,1,2,null,4][out.ctype];\n\treturn noc * out.depth;\n}\n\nUPNG.decode._filterZero = function(data, out, off, w, h)\n{\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;\n\tbpp = Math.ceil(bpp/8);\n\t\n\tvar i=0, di=1, type=data[off], x=0;\n\t\n\tif(type>1) data[off]=[0,0,1][type-2];  \n\tif(type==3) for(x=bpp; x<bpl; x++) data[x+1] = (data[x+1] + (data[x+1-bpp]>>>1) )&255;\n\n\tfor(var y=0; y<h; y++)  {\n\t\ti = off+y*bpl; di = i+y+1;\n\t\ttype = data[di-1]; x=0;\n\n\t\tif     (type==0)   for(; x<bpl; x++) data[i+x] = data[di+x];\n\t\telse if(type==1) { for(; x<bpp; x++) data[i+x] = data[di+x];\n\t\t\t\t\t\t   for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpp]);  }\n\t\telse if(type==2) { for(; x<bpl; x++) data[i+x] = (data[di+x] + data[i+x-bpl]);  }\n\t\telse if(type==3) { for(; x<bpp; x++) data[i+x] = (data[di+x] + ( data[i+x-bpl]>>>1));\n\t\t\t               for(; x<bpl; x++) data[i+x] = (data[di+x] + ((data[i+x-bpl]+data[i+x-bpp])>>>1) );  }\n\t\telse             { for(; x<bpp; x++) data[i+x] = (data[di+x] + paeth(0, data[i+x-bpl], 0));\n\t\t\t\t\t\t   for(; x<bpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], data[i+x-bpl], data[i+x-bpp-bpl]) );  }\n\t}\n\treturn data;\n}\n\nUPNG.decode._paeth = function(a,b,c)\n{\n\tvar p = a+b-c, pa = (p-a), pb = (p-b), pc = (p-c);\n\tif (pa*pa <= pb*pb && pa*pa <= pc*pc)  return a;\n\telse if (pb*pb <= pc*pc)  return b;\n\treturn c;\n}\n\nUPNG.decode._IHDR = function(data, offset, out)\n{\n\tvar bin = UPNG._bin;\n\tout.width  = bin.readUint(data, offset);  offset += 4;\n\tout.height = bin.readUint(data, offset);  offset += 4;\n\tout.depth     = data[offset];  offset++;\n\tout.ctype     = data[offset];  offset++;\n\tout.compress  = data[offset];  offset++;\n\tout.filter    = data[offset];  offset++;\n\tout.interlace = data[offset];  offset++;\n}\n\nUPNG._bin = {\n\tnextZero   : function(data,p)  {  while(data[p]!=0) p++;  return p;  },\n\treadUshort : function(buff,p)  {  return (buff[p]<< 8) | buff[p+1];  },\n\twriteUshort: function(buff,p,n){  buff[p] = (n>>8)&255;  buff[p+1] = n&255;  },\n\treadUint   : function(buff,p)  {  return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]);  },\n\twriteUint  : function(buff,p,n){  buff[p]=(n>>24)&255;  buff[p+1]=(n>>16)&255;  buff[p+2]=(n>>8)&255;  buff[p+3]=n&255;  },\n\treadASCII  : function(buff,p,l){  var s = \"\";  for(var i=0; i<l; i++) s += String.fromCharCode(buff[p+i]);  return s;    },\n\twriteASCII : function(data,p,s){  for(var i=0; i<s.length; i++) data[p+i] = s.charCodeAt(i);  },\n\treadBytes  : function(buff,p,l){  var arr = [];   for(var i=0; i<l; i++) arr.push(buff[p+i]);   return arr;  },\n\tpad : function(n) { return n.length < 2 ? \"0\" + n : n; },\n\treadUTF8 : function(buff, p, l) {\n\t\tvar s = \"\", ns;\n\t\tfor(var i=0; i<l; i++) s += \"%\" + UPNG._bin.pad(buff[p+i].toString(16));\n\t\ttry {  ns = decodeURIComponent(s); }\n\t\tcatch(e) {  return UPNG._bin.readASCII(buff, p, l);  }\n\t\treturn  ns;\n\t}\n}\nUPNG._copyTile = function(sb, sw, sh, tb, tw, th, xoff, yoff, mode)\n{\n\tvar w = Math.min(sw,tw), h = Math.min(sh,th);\n\tvar si=0, ti=0;\n\tfor(var y=0; y<h; y++)\n\t\tfor(var x=0; x<w; x++)\n\t\t{\n\t\t\tif(xoff>=0 && yoff>=0) {  si = (y*sw+x)<<2;  ti = (( yoff+y)*tw+xoff+x)<<2;  }\n\t\t\telse                   {  si = ((-yoff+y)*sw-xoff+x)<<2;  ti = (y*tw+x)<<2;  }\n\t\t\t\n\t\t\tif     (mode==0) {  tb[ti] = sb[si];  tb[ti+1] = sb[si+1];  tb[ti+2] = sb[si+2];  tb[ti+3] = sb[si+3];  }\n\t\t\telse if(mode==1) {\n\t\t\t\tvar fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; \n\t\t\t\tvar ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; \n\t\t\t\t\n\t\t\t\tvar ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa);\n\t\t\t\ttb[ti+3] = 255*oa;  \n\t\t\t\ttb[ti+0] = (fr+br*ifa)*ioa;  \n\t\t\t\ttb[ti+1] = (fg+bg*ifa)*ioa;   \n\t\t\t\ttb[ti+2] = (fb+bb*ifa)*ioa;  \n\t\t\t}\n\t\t\telse if(mode==2){\t// copy only differences, otherwise zero\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) {  tb[ti]=0;  tb[ti+1]=0;  tb[ti+2]=0;  tb[ti+3]=0;  }\n\t\t\t\telse {  tb[ti]=fr;  tb[ti+1]=fg;  tb[ti+2]=fb;  tb[ti+3]=fa;  }\n\t\t\t}\n\t\t\telse if(mode==3){\t// check if can be blended\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba && fr==br && fg==bg && fb==bb) continue;\n\t\t\t\t//if(fa!=255 && ba!=0) return false;\n\t\t\t\tif(fa<220 && ba>20) return false;\n\t\t\t}\n\t\t}\n\treturn true;\n}\n\n\n\n\nUPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)\n{\n\tif(ps==null) ps=0;\n\tif(forbidPlte==null) forbidPlte = false;\n\n\tvar nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);\n\tUPNG.encode.compressPNG(nimg, -1);\n\t\n\treturn UPNG.encode._main(nimg, w, h, dels, tabs);\n}\n\nUPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) {\n\tvar nimg = {  ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4),      depth: depth,  frames: []  };\n\t\n\tvar time = Date.now();\n\tvar bipp = (cc+ac)*depth, bipl = bipp * w;\n\tfor(var i=0; i<bufs.length; i++)\n\t\tnimg.frames.push({  rect:{x:0,y:0,width:w,height:h},  img:new Uint8Array(bufs[i]), blend:0, dispose:1, bpp:Math.ceil(bipp/8), bpl:Math.ceil(bipl/8)  });\n\t\n\tUPNG.encode.compressPNG(nimg, 0, true);\n\t\n\tvar out = UPNG.encode._main(nimg, w, h, dels, tabs);\n\treturn out;\n}\n\nUPNG.encode._main = function(nimg, w, h, dels, tabs) {\n\tif(tabs==null) tabs={};\n\tvar crc = UPNG.crc.crc, wUi = UPNG._bin.writeUint, wUs = UPNG._bin.writeUshort, wAs = UPNG._bin.writeASCII;\n\tvar offset = 8, anim = nimg.frames.length>1, pltAlpha = false;\n\t\n\tvar leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0);\n\tif(tabs[\"sRGB\"]!=null) leng += 8+1+4;\n\tif(tabs[\"pHYs\"]!=null) leng += 8+9+4;\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\tfor(var i=0; i<dl; i++) if((nimg.plte[i]>>>24)!=255) pltAlpha = true;\n\t\tleng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0);\n\t}\n\tfor(var j=0; j<nimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) leng += 38;\n\t\tleng += fr.cimg.length + 12;\n\t\tif(j!=0) leng+=4;\n\t}\n\tleng += 12; \n\t\n\tvar data = new Uint8Array(leng);\n\tvar wr=[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i<8; i++) data[i]=wr[i];\n\t\n\twUi(data,offset, 13);     offset+=4;\n\twAs(data,offset,\"IHDR\");  offset+=4;\n\twUi(data,offset,w);  offset+=4;\n\twUi(data,offset,h);  offset+=4;\n\tdata[offset] = nimg.depth;  offset++;  // depth\n\tdata[offset] = nimg.ctype;  offset++;  // ctype\n\tdata[offset] = 0;  offset++;  // compress\n\tdata[offset] = 0;  offset++;  // filter\n\tdata[offset] = 0;  offset++;  // interlace\n\twUi(data,offset,crc(data,offset-17,17));  offset+=4; // crc\n\n\t// 13 bytes to say, that it is sRGB\n\tif(tabs[\"sRGB\"]!=null) {\n\t\twUi(data,offset, 1);      offset+=4;\n\t\twAs(data,offset,\"sRGB\");  offset+=4;\n\t\tdata[offset] = tabs[\"sRGB\"];  offset++;\n\t\twUi(data,offset,crc(data,offset-5,5));  offset+=4; // crc\n\t}\n\tif(tabs[\"pHYs\"]!=null) {\n\t\twUi(data,offset, 9);      offset+=4;\n\t\twAs(data,offset,\"pHYs\");  offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][0]);      offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][1]);      offset+=4;\n\t\tdata[offset]=tabs[\"pHYs\"][2];\t\t\toffset++;\n\t\twUi(data,offset,crc(data,offset-13,13));  offset+=4; // crc\n\t}\n\n\tif(anim) {\n\t\twUi(data,offset, 8);      offset+=4;\n\t\twAs(data,offset,\"acTL\");  offset+=4;\n\t\twUi(data,offset, nimg.frames.length);     offset+=4;\n\t\twUi(data,offset, tabs[\"loop\"]!=null?tabs[\"loop\"]:0);      offset+=4;\n\t\twUi(data,offset,crc(data,offset-12,12));  offset+=4; // crc\n\t}\n\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\twUi(data,offset, dl*3);  offset+=4;\n\t\twAs(data,offset,\"PLTE\");  offset+=4;\n\t\tfor(var i=0; i<dl; i++){\n\t\t\tvar ti=i*3, c=nimg.plte[i], r=(c)&255, g=(c>>>8)&255, b=(c>>>16)&255;\n\t\t\tdata[offset+ti+0]=r;  data[offset+ti+1]=g;  data[offset+ti+2]=b;\n\t\t}\n\t\toffset+=dl*3;\n\t\twUi(data,offset,crc(data,offset-dl*3-4,dl*3+4));  offset+=4; // crc\n\n\t\tif(pltAlpha) {\n\t\t\twUi(data,offset, dl);  offset+=4;\n\t\t\twAs(data,offset,\"tRNS\");  offset+=4;\n\t\t\tfor(var i=0; i<dl; i++)  data[offset+i]=(nimg.plte[i]>>>24)&255;\n\t\t\toffset+=dl;\n\t\t\twUi(data,offset,crc(data,offset-dl-4,dl+4));  offset+=4; // crc\n\t\t}\n\t}\n\t\n\tvar fi = 0;\n\tfor(var j=0; j<nimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) {\n\t\t\twUi(data, offset, 26);     offset+=4;\n\t\t\twAs(data, offset,\"fcTL\");  offset+=4;\n\t\t\twUi(data, offset, fi++);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.width );   offset+=4;\n\t\t\twUi(data, offset, fr.rect.height);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.x);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.y);   offset+=4;\n\t\t\twUs(data, offset, dels[j]);   offset+=2;\n\t\t\twUs(data, offset,  1000);   offset+=2;\n\t\t\tdata[offset] = fr.dispose;  offset++;\t// dispose\n\t\t\tdata[offset] = fr.blend  ;  offset++;\t// blend\n\t\t\twUi(data,offset,crc(data,offset-30,30));  offset+=4; // crc\n\t\t}\n\t\t\t\t\n\t\tvar imgd = fr.cimg, dl = imgd.length;\n\t\twUi(data,offset, dl+(j==0?0:4));     offset+=4;\n\t\tvar ioff = offset;\n\t\twAs(data,offset,(j==0)?\"IDAT\":\"fdAT\");  offset+=4;\n\t\tif(j!=0) {  wUi(data, offset, fi++);  offset+=4;  }\n\t\tdata.set(imgd,offset);\n\t\toffset += dl;\n\t\twUi(data,offset,crc(data,ioff,offset-ioff));  offset+=4; // crc\n\t}\n\n\twUi(data,offset, 0);     offset+=4;\n\twAs(data,offset,\"IEND\");  offset+=4;\n\twUi(data,offset,crc(data,offset-4,4));  offset+=4; // crc\n\n\treturn data.buffer;\n}\n\nUPNG.encode.compressPNG = function(out, filter, levelZero) {\n\tfor(var i=0; i<out.frames.length; i++) {\n\t\tvar frm = out.frames[i], nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar fdata = new Uint8Array(nh*frm.bpl+nh);\n\t\tfrm.cimg = UPNG.encode._filterZero(frm.img,nh,frm.bpp,frm.bpl,fdata, filter, levelZero);\n\t}\n}\n\n\n\nUPNG.encode.compress = function(bufs, w, h, ps, prms) // prms:  onlyBlend, minBits, forbidPlte\n{\n\t//var time = Date.now();\n\tvar onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4];\n\t\n\tvar ctype = 6, depth = 8, alphaAnd=255\n\t\n\tfor(var j=0; j<bufs.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\tvar img = new Uint8Array(bufs[j]), ilen = img.length;\n\t\tfor(var i=0; i<ilen; i+=4) alphaAnd &= img[i+3];\n\t}\n\tvar gotAlpha = (alphaAnd!=255);\n\t\n\t//console.log(\"alpha check\", Date.now()-time);  time = Date.now();\n\t\n\t//var brute = gotAlpha && forGIF;\t\t// brute : frames can only be copied, not \"blended\"\n\tvar frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);\n\t//console.log(\"framize\", Date.now()-time);  time = Date.now();\n\t\n\tvar cmap={}, plte=[], inds=[];  \n\t\n\tif(ps!=0) {\n\t\tvar nbufs = [];  for(var i=0; i<frms.length; i++) nbufs.push(frms[i].img.buffer);\n\t\t\n\t\tvar abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);  \n\t\tvar cof = 0, bb = new Uint8Array(qres.abuf);\n\t\tfor(var i=0; i<frms.length; i++) {  var ti=frms[i].img, bln=ti.length;  inds.push(new Uint8Array(qres.inds.buffer, cof>>2, bln>>2));\n\t\t\tfor(var j=0; j<bln; j+=4) {  ti[j]=bb[cof+j];  ti[j+1]=bb[cof+j+1];  ti[j+2]=bb[cof+j+2];  ti[j+3]=bb[cof+j+3];  }    cof+=bln;  }\n\t\t\n\t\tfor(var i=0; i<qres.plte.length; i++) plte.push(qres.plte[i].est.rgba);\n\t\t//console.log(\"quantize\", Date.now()-time);  time = Date.now();\n\t}\n\telse {\n\t\t// what if ps==0, but there are <=256 colors?  we still need to detect, if the palette could be used\n\t\tfor(var j=0; j<frms.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\t\tvar frm = frms[j], img32 = new Uint32Array(frm.img.buffer), nw=frm.rect.width, ilen = img32.length;\n\t\t\tvar ind = new Uint8Array(ilen);  inds.push(ind);\n\t\t\tfor(var i=0; i<ilen; i++) {\n\t\t\t\tvar c = img32[i];\n\t\t\t\tif     (i!=0 && c==img32[i- 1]) ind[i]=ind[i-1];\n\t\t\t\telse if(i>nw && c==img32[i-nw]) ind[i]=ind[i-nw];\n\t\t\t\telse {\n\t\t\t\t\tvar cmc = cmap[c];\n\t\t\t\t\tif(cmc==null) {  cmap[c]=cmc=plte.length;  plte.push(c);  if(plte.length>=300) break;  }\n\t\t\t\t\tind[i]=cmc;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//console.log(\"make palette\", Date.now()-time);  time = Date.now();\n\t}\n\t\n\tvar cc=plte.length; //console.log(\"colors:\",cc);\n\tif(cc<=256 && forbidPlte==false) {\n\t\tif(cc<= 2) depth=1;  else if(cc<= 4) depth=2;  else if(cc<=16) depth=4;  else depth=8;\n\t\tdepth =  Math.max(depth, minBits);\n\t}\n\t\n\tfor(var j=0; j<frms.length; j++)\n\t{\n\t\tvar frm = frms[j], nx=frm.rect.x, ny=frm.rect.y, nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar cimg = frm.img, cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar bpl = 4*nw, bpp=4;\n\t\tif(cc<=256 && forbidPlte==false) {\n\t\t\tbpl = Math.ceil(depth*nw/8);\n\t\t\tvar nimg = new Uint8Array(bpl*nh);\n\t\t\tvar inj = inds[j];\n\t\t\tfor(var y=0; y<nh; y++) {  var i=y*bpl, ii=y*nw;\n\t\t\t\tif     (depth==8) for(var x=0; x<nw; x++) nimg[i+(x)   ]   =  (inj[ii+x]             );\n\t\t\t\telse if(depth==4) for(var x=0; x<nw; x++) nimg[i+(x>>1)]  |=  (inj[ii+x]<<(4-(x&1)*4));\n\t\t\t\telse if(depth==2) for(var x=0; x<nw; x++) nimg[i+(x>>2)]  |=  (inj[ii+x]<<(6-(x&3)*2));\n\t\t\t\telse if(depth==1) for(var x=0; x<nw; x++) nimg[i+(x>>3)]  |=  (inj[ii+x]<<(7-(x&7)*1));\n\t\t\t}\n\t\t\tcimg=nimg;  ctype=3;  bpp=1;\n\t\t}\n\t\telse if(gotAlpha==false && frms.length==1) {\t// some next \"reduced\" frames may contain alpha for blending\n\t\t\tvar nimg = new Uint8Array(nw*nh*3), area=nw*nh;\n\t\t\tfor(var i=0; i<area; i++) { var ti=i*3, qi=i*4;  nimg[ti]=cimg[qi];  nimg[ti+1]=cimg[qi+1];  nimg[ti+2]=cimg[qi+2];  }\n\t\t\tcimg=nimg;  ctype=2;  bpp=3;  bpl=3*nw;\n\t\t}\n\t\tfrm.img=cimg;  frm.bpl=bpl;  frm.bpp=bpp;\n\t}\n\t//console.log(\"colors => palette indices\", Date.now()-time);  time = Date.now();\n\t\n\treturn {ctype:ctype, depth:depth, plte:plte, frames:frms  };\n}\nUPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) {\n\t/*  DISPOSE\n\t    - 0 : no change\n\t\t- 1 : clear to transparent\n\t\t- 2 : retstore to content before rendering (previous frame disposed)\n\t\tBLEND\n\t\t- 0 : replace\n\t\t- 1 : blend\n\t*/\n\tvar frms = [];\n\tfor(var j=0; j<bufs.length; j++) {\n\t\tvar cimg = new Uint8Array(bufs[j]), cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar nimg;\n\t\t\n\t\tvar nx=0, ny=0, nw=w, nh=h, blend=alwaysBlend?1:0;\n\t\tif(j!=0) {\n\t\t\tvar tlim = (forbidPrev || alwaysBlend || j==1 || frms[j-2].dispose!=0)?1:2, tstp = 0, tarea = 1e9;\n\t\t\tfor(var it=0; it<tlim; it++)\n\t\t\t{\n\t\t\t\tvar pimg = new Uint8Array(bufs[j-1-it]), p32 = new Uint32Array(bufs[j-1-it]);\n\t\t\t\tvar mix=w,miy=h,max=-1,may=-1;\n\t\t\t\tfor(var y=0; y<h; y++) for(var x=0; x<w; x++) {\n\t\t\t\t\tvar i = y*w+x;\n\t\t\t\t\tif(cimg32[i]!=p32[i]) {\n\t\t\t\t\t\tif(x<mix) mix=x;  if(x>max) max=x;\n\t\t\t\t\t\tif(y<miy) miy=y;  if(y>may) may=y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(max==-1) mix=miy=max=may=0;\n\t\t\t\tif(evenCrd) {  if((mix&1)==1)mix--;  if((miy&1)==1)miy--;  }\n\t\t\t\tvar sarea = (max-mix+1)*(may-miy+1);\n\t\t\t\tif(sarea<tarea) {\n\t\t\t\t\ttarea = sarea;  tstp = it;\n\t\t\t\t\tnx = mix; ny = miy; nw = max-mix+1; nh = may-miy+1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// alwaysBlend: pokud zjistím, že blendit nelze, nastavím předchozímu snímku dispose=1. Zajistím, aby obsahoval můj obdélník.\n\t\t\tvar pimg = new Uint8Array(bufs[j-1-tstp]);\n\t\t\tif(tstp==1) frms[j-1].dispose = 2;\n\t\t\t\n\t\t\tnimg = new Uint8Array(nw*nh*4);\n\t\t\tUPNG._copyTile(pimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t\n\t\t\tblend =  UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 3) ? 1 : 0;\n\t\t\tif(blend==1) UPNG.encode._prepareDiff(cimg,w,h,nimg,{x:nx,y:ny,width:nw,height:nh});\n\t\t\telse         UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t//UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, blend==1?2:0);\n\t\t}\n\t\telse nimg = cimg.slice(0);\t// img may be rewritten further ... don't rewrite input\n\t\t\n\t\tfrms.push({rect:{x:nx,y:ny,width:nw,height:nh}, img:nimg, blend:blend, dispose:0});\n\t}\n\t\n\t\n\tif(alwaysBlend) for(var j=0; j<frms.length; j++) {\n\t\tvar frm = frms[j];  if(frm.blend==1) continue;\n\t\tvar r0 = frm.rect, r1 = frms[j-1].rect\n\t\tvar miX = Math.min(r0.x, r1.x), miY = Math.min(r0.y, r1.y);\n\t\tvar maX = Math.max(r0.x+r0.width, r1.x+r1.width), maY = Math.max(r0.y+r0.height, r1.y+r1.height);\n\t\tvar r = {x:miX, y:miY, width:maX-miX, height:maY-miY};\n\t\t\n\t\tfrms[j-1].dispose = 1;\n\t\tif(j-1!=0) \n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j-1,r, evenCrd);\n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j  ,r, evenCrd);\n\t}\n\tvar area = 0;\n\tif(bufs.length!=1) for(var i=0; i<frms.length; i++) {\n\t\tvar frm = frms[i];\n\t\tarea += frm.rect.width*frm.rect.height;\n\t\t//if(i==0 || frm.blend!=1) continue;\n\t\t//var ob = new Uint8Array(\n\t\t//console.log(frm.blend, frm.dispose, frm.rect);\n\t}\n\t//if(area!=0) console.log(area);\n\treturn frms;\n}\nUPNG.encode._updateFrame = function(bufs, w,h, frms, i, r, evenCrd) {\n\tvar U8 = Uint8Array, U32 = Uint32Array;\n\tvar pimg = new U8(bufs[i-1]), pimg32 = new U32(bufs[i-1]), nimg = i+1<bufs.length ? new U8(bufs[i+1]):null;\n\tvar cimg = new U8(bufs[i]), cimg32 = new U32(cimg.buffer);\n\t\n\tvar mix=w,miy=h,max=-1,may=-1;\n\tfor(var y=0; y<r.height; y++) for(var x=0; x<r.width; x++) {\n\t\tvar cx = r.x+x, cy = r.y+y;\n\t\tvar j = cy*w+cx, cc = cimg32[j];\n\t\t// no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.\n\t\tif(cc==0 || (frms[i-1].dispose==0 && pimg32[j]==cc && (nimg==null || nimg[j*4+3]!=0))/**/) {}\n\t\telse {\n\t\t\tif(cx<mix) mix=cx;  if(cx>max) max=cx;\n\t\t\tif(cy<miy) miy=cy;  if(cy>may) may=cy;\n\t\t}\n\t}\n\tif(max==-1) mix=miy=max=may=0;\n\tif(evenCrd) {  if((mix&1)==1)mix--;  if((miy&1)==1)miy--;  }\n\tr = {x:mix, y:miy, width:max-mix+1, height:may-miy+1};\n\t\n\tvar fr = frms[i];  fr.rect = r;  fr.blend = 1;  fr.img = new Uint8Array(r.width*r.height*4);\n\tif(frms[i-1].dispose==0) {\n\t\tUPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n\t\tUPNG.encode._prepareDiff(cimg,w,h,fr.img,r);\n\t\t//UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);\n\t}\n\telse\n\t\tUPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n}\nUPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) {\n\tUPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2);\n\t/*\n\tvar n32 = new Uint32Array(nimg.buffer);\n\tvar og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);\n\tUPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);\n\tfor(var i=4; i<nimg.length; i+=4) {\n\t\tif(nimg[i-1]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)-1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n\t\t}\n\t}\n\tfor(var i=nimg.length-8; i>0; i-=4) {\n\t\tif(nimg[i+7]!=0 && nimg[i+3]==0 && o32[i>>>2]==o32[(i>>>2)+1]) {\n\t\t\tn32[i>>>2]=o32[i>>>2];\n\t\t\t//var j = i, c=p32[(i>>>2)-1];\n\t\t\t//while(p32[j>>>2]==c) {  n32[j>>>2]=c;  j+=4;  }\n\t\t}\n\t}*/\n}\n\nUPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero)\n{\n\tvar fls = [], ftry=[0,1,2,3,4];\n\tif     (filter!=-1)             ftry=[filter];\n\telse if(h*bpl>500000 || bpp==1) ftry=[0];\n\tvar opts;  if(levelZero) opts={level:0};\n\t\n\tvar CMPR = (levelZero && UZIP!=null) ? UZIP : pako;\n\t\n\tfor(var i=0; i<ftry.length; i++) {\n\t\tfor(var y=0; y<h; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]);\n\t\t//var nimg = new Uint8Array(data.length);\n\t\t//var sz = UZIP.F.deflate(data, nimg);  fls.push(nimg.slice(0,sz));\n\t\t//var dfl = pako[\"deflate\"](data), dl=dfl.length-4;\n\t\t//var crc = (dfl[dl+3]<<24)|(dfl[dl+2]<<16)|(dfl[dl+1]<<8)|(dfl[dl+0]<<0);\n\t\t//console.log(crc, UZIP.adler(data,2,data.length-6));\n\t\tfls.push(CMPR[\"deflate\"](data,opts));\n\t}\n\tvar ti, tsize=1e9;\n\tfor(var i=0; i<fls.length; i++) if(fls[i].length<tsize) {  ti=i;  tsize=fls[i].length;  }\n\treturn fls[ti];\n}\nUPNG.encode._filterLine = function(data, img, y, bpl, bpp, type)\n{\n\tvar i = y*bpl, di = i+y, paeth = UPNG.decode._paeth\n\tdata[di]=type;  di++;\n\n\tif(type==0) {\n\t\tif(bpl<500) for(var x=0; x<bpl; x++) data[di+x] = img[i+x];\n\t\telse data.set(new Uint8Array(img.buffer,i,bpl),di);\n\t}\n\telse if(type==1) {\n\t\tfor(var x=  0; x<bpp; x++) data[di+x] =  img[i+x];\n\t\tfor(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]-img[i+x-bpp]+256)&255;\n\t}\n\telse if(y==0) {\n\t\tfor(var x=  0; x<bpp; x++) data[di+x] = img[i+x];\n\n\t\tif(type==2) for(var x=bpp; x<bpl; x++) data[di+x] = img[i+x];\n\t\tif(type==3) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - (img[i+x-bpp]>>1) +256)&255;\n\t\tif(type==4) for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x] - paeth(img[i+x-bpp], 0, 0) +256)&255;\n\t}\n\telse {\n\t\tif(type==2) { for(var x=  0; x<bpl; x++) data[di+x] = (img[i+x]+256 - img[i+x-bpl])&255;  }\n\t\tif(type==3) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - (img[i+x-bpl]>>1))&255;\n\t\t\t\t\t  for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - ((img[i+x-bpl]+img[i+x-bpp])>>1))&255;  }\n\t\tif(type==4) { for(var x=  0; x<bpp; x++) data[di+x] = (img[i+x]+256 - paeth(0, img[i+x-bpl], 0))&255;\n\t\t\t\t\t  for(var x=bpp; x<bpl; x++) data[di+x] = (img[i+x]+256 - paeth(img[i+x-bpp], img[i+x-bpl], img[i+x-bpp-bpl]))&255;  }\n\t}\n}\n\nUPNG.crc = {\n\ttable : ( function() {\n\t   var tab = new Uint32Array(256);\n\t   for (var n=0; n<256; n++) {\n\t\t\tvar c = n;\n\t\t\tfor (var k=0; k<8; k++) {\n\t\t\t\tif (c & 1)  c = 0xedb88320 ^ (c >>> 1);\n\t\t\t\telse        c = c >>> 1;\n\t\t\t}\n\t\t\ttab[n] = c;  }\n\t\treturn tab;  })(),\n\tupdate : function(c, buf, off, len) {\n\t\tfor (var i=0; i<len; i++)  c = UPNG.crc.table[(c ^ buf[off+i]) & 0xff] ^ (c >>> 8);\n\t\treturn c;\n\t},\n\tcrc : function(b,o,l)  {  return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff;  }\n}\n\n\nUPNG.quantize = function(abuf, ps)\n{\t\n\tvar oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar KD = UPNG.quantize.getKDtree(nimg, ps);\n\tvar root = KD[0], leafs = KD[1];\n\t\n\tvar planeDst = UPNG.quantize.planeDst;\n\tvar sb = oimg, tb = nimg32, len=sb.length;\n\t\t\n\tvar inds = new Uint8Array(oimg.length>>2);\n\tfor(var i=0; i<len; i+=4) {\n\t\tvar r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);\n\t\t\n\t\t//  exact, but too slow :(\n\t\tvar nd = UPNG.quantize.getNearest(root, r, g, b, a);\n\t\t//var nd = root;\n\t\t//while(nd.left) nd = (planeDst(nd.est,r,g,b,a)<=0) ? nd.left : nd.right;\n\t\t\n\t\tinds[i>>2] = nd.ind;\n\t\ttb[i>>2] = nd.est.rgba;\n\t}\n\treturn {  abuf:nimg.buffer, inds:inds, plte:leafs  };\n}\n\nUPNG.quantize.getKDtree = function(nimg, ps, err) {\n\tif(err==null) err = 0.0001;\n\tvar nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null };  // basic statistic, extra statistic\n\troot.bst = UPNG.quantize.stats(  nimg,root.i0, root.i1  );  root.est = UPNG.quantize.estats( root.bst );\n\tvar leafs = [root];\n\t\n\twhile(leafs.length<ps)\n\t{\n\t\tvar maxL = 0, mi=0;\n\t\tfor(var i=0; i<leafs.length; i++) if(leafs[i].est.L > maxL) {  maxL=leafs[i].est.L;  mi=i;  }\n\t\tif(maxL<err) break;\n\t\tvar node = leafs[mi];\n\t\t\n\t\tvar s0 = UPNG.quantize.splitPixels(nimg,nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);\n\t\tvar s0wrong = (node.i0>=s0 || node.i1<=s0);\n\t\t//console.log(maxL, leafs.length, mi);\n\t\tif(s0wrong) {  node.est.L=0;  continue;  }\n\t\t\n\t\t\n\t\tvar ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null };  ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 );  \n\t\tln.est = UPNG.quantize.estats( ln.bst );\n\t\tvar rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null };  rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N};\n\t\tfor(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i];\n\t\tfor(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i];\n\t\trn.est = UPNG.quantize.estats( rn.bst );\n\t\t\n\t\tnode.left = ln;  node.right = rn;\n\t\tleafs[mi]=ln;  leafs.push(rn);\n\t}\n\tleafs.sort(function(a,b) {  return b.bst.N-a.bst.N;  });\n\tfor(var i=0; i<leafs.length; i++) leafs[i].ind=i;\n\treturn [root, leafs];\n}\n\nUPNG.quantize.getNearest = function(nd, r,g,b,a)\n{\n\tif(nd.left==null) {  nd.tdst = UPNG.quantize.dist(nd.est.q,r,g,b,a);  return nd;  }\n\tvar planeDst = UPNG.quantize.planeDst(nd.est,r,g,b,a);\n\t\n\tvar node0 = nd.left, node1 = nd.right;\n\tif(planeDst>0) {  node0=nd.right;  node1=nd.left;  }\n\t\n\tvar ln = UPNG.quantize.getNearest(node0, r,g,b,a);\n\tif(ln.tdst<=planeDst*planeDst) return ln;\n\tvar rn = UPNG.quantize.getNearest(node1, r,g,b,a);\n\treturn rn.tdst<ln.tdst ? rn : ln;\n}\nUPNG.quantize.planeDst = function(est, r,g,b,a) {  var e = est.e;  return e[0]*r + e[1]*g + e[2]*b + e[3]*a - est.eMq;  }\nUPNG.quantize.dist     = function(q,   r,g,b,a) {  var d0=r-q[0], d1=g-q[1], d2=b-q[2], d3=a-q[3];  return d0*d0+d1*d1+d2*d2+d3*d3;  }\n\nUPNG.quantize.splitPixels = function(nimg, nimg32, i0, i1, e, eMq)\n{\n\tvar vecDot = UPNG.quantize.vecDot;\n\ti1-=4;\n\tvar shfs = 0;\n\twhile(i0<i1)\n\t{\n\t\twhile(vecDot(nimg, i0, e)<=eMq) i0+=4;\n\t\twhile(vecDot(nimg, i1, e)> eMq) i1-=4;\n\t\tif(i0>=i1) break;\n\t\t\n\t\tvar t = nimg32[i0>>2];  nimg32[i0>>2] = nimg32[i1>>2];  nimg32[i1>>2]=t;\n\t\t\n\t\ti0+=4;  i1-=4;\n\t}\n\twhile(vecDot(nimg, i0, e)>eMq) i0-=4;\n\treturn i0+4;\n}\nUPNG.quantize.vecDot = function(nimg, i, e)\n{\n\treturn nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3];\n}\nUPNG.quantize.stats = function(nimg, i0, i1){\n\tvar R = [0,0,0,0,  0,0,0,0,  0,0,0,0,  0,0,0,0];\n\tvar m = [0,0,0,0];\n\tvar N = (i1-i0)>>2;\n\tfor(var i=i0; i<i1; i+=4)\n\t{\n\t\tvar r = nimg[i]*(1/255), g = nimg[i+1]*(1/255), b = nimg[i+2]*(1/255), a = nimg[i+3]*(1/255);\n\t\t//var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];\n\t\tm[0]+=r;  m[1]+=g;  m[2]+=b;  m[3]+=a;\n\t\t\n\t\tR[ 0] += r*r;  R[ 1] += r*g;  R[ 2] += r*b;  R[ 3] += r*a;  \n\t\t               R[ 5] += g*g;  R[ 6] += g*b;  R[ 7] += g*a; \n\t\t                              R[10] += b*b;  R[11] += b*a;  \n\t\t                                             R[15] += a*a;  \n\t}\n\tR[4]=R[1];  R[8]=R[2];  R[9]=R[6];  R[12]=R[3];  R[13]=R[7];  R[14]=R[11];\n\t\n\treturn {R:R, m:m, N:N};\n}\nUPNG.quantize.estats = function(stats){\n\tvar R = stats.R, m = stats.m, N = stats.N;\n\t\n\t// when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)\n\tvar m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], iN = (N==0 ? 0 : 1/N);\n\tvar Rj = [\n\t\tR[ 0] - m0*m0*iN,  R[ 1] - m0*m1*iN,  R[ 2] - m0*m2*iN,  R[ 3] - m0*m3*iN,  \n\t\tR[ 4] - m1*m0*iN,  R[ 5] - m1*m1*iN,  R[ 6] - m1*m2*iN,  R[ 7] - m1*m3*iN,\n\t\tR[ 8] - m2*m0*iN,  R[ 9] - m2*m1*iN,  R[10] - m2*m2*iN,  R[11] - m2*m3*iN,  \n\t\tR[12] - m3*m0*iN,  R[13] - m3*m1*iN,  R[14] - m3*m2*iN,  R[15] - m3*m3*iN \n\t];\n\t\n\tvar A = Rj, M = UPNG.M4;\n\tvar b = [0.5,0.5,0.5,0.5], mi = 0, tmi = 0;\n\t\n\tif(N!=0)\n\tfor(var i=0; i<10; i++) {\n\t\tb = M.multVec(A, b);  tmi = Math.sqrt(M.dot(b,b));  b = M.sml(1/tmi,  b);\n\t\tif(Math.abs(tmi-mi)<1e-9) break;  mi = tmi;\n\t}\t\n\t//b = [0,0,1,0];  mi=N;\n\tvar q = [m0*iN, m1*iN, m2*iN, m3*iN];\n\tvar eMq255 = M.dot(M.sml(255,q),b);\n\t\n\treturn {  Cov:Rj, q:q, e:b, L:mi,  eMq255:eMq255, eMq : M.dot(b,q),\n\t\t\t\trgba: (((Math.round(255*q[3])<<24) | (Math.round(255*q[2])<<16) |  (Math.round(255*q[1])<<8) | (Math.round(255*q[0])<<0))>>>0)  };\n}\nUPNG.M4 = {\n\tmultVec : function(m,v) {\n\t\t\treturn [\n\t\t\t\tm[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3],\n\t\t\t\tm[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3],\n\t\t\t\tm[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3],\n\t\t\t\tm[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3]\n\t\t\t];\n\t},\n\tdot : function(x,y) {  return  x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3];  },\n\tsml : function(a,y) {  return [a*y[0],a*y[1],a*y[2],a*y[3]];  }\n}\n\nUPNG.encode.concatRGBA = function(bufs) {\n\tvar tlen = 0;\n\tfor(var i=0; i<bufs.length; i++) tlen += bufs[i].byteLength;\n\tvar nimg = new Uint8Array(tlen), noff=0;\n\tfor(var i=0; i<bufs.length; i++) {\n\t\tvar img = new Uint8Array(bufs[i]), il = img.length;\n\t\tfor(var j=0; j<il; j+=4) {  \n\t\t\tvar r=img[j], g=img[j+1], b=img[j+2], a = img[j+3];\n\t\t\tif(a==0) r=g=b=0;\n\t\t\tnimg[noff+j]=r;  nimg[noff+j+1]=g;  nimg[noff+j+2]=b;  nimg[noff+j+3]=a;  }\n\t\tnoff += il;\n\t}\n\treturn nimg.buffer;\n}\n\nexport default UPNG;\n\n","import UPNG from '@pdf-lib/upng';\n\nconst getImageType = (ctype: number) => {\n  if (ctype === 0) return PngType.Greyscale;\n  if (ctype === 2) return PngType.Truecolour;\n  if (ctype === 3) return PngType.IndexedColour;\n  if (ctype === 4) return PngType.GreyscaleWithAlpha;\n  if (ctype === 6) return PngType.TruecolourWithAlpha;\n  throw new Error(`Unknown color type: ${ctype}`);\n};\n\nconst splitAlphaChannel = (rgbaChannel: Uint8Array) => {\n  const pixelCount = Math.floor(rgbaChannel.length / 4);\n\n  const rgbChannel = new Uint8Array(pixelCount * 3);\n  const alphaChannel = new Uint8Array(pixelCount * 1);\n\n  let rgbaOffset = 0;\n  let rgbOffset = 0;\n  let alphaOffset = 0;\n\n  while (rgbaOffset < rgbaChannel.length) {\n    rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n    rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n    rgbChannel[rgbOffset++] = rgbaChannel[rgbaOffset++];\n    alphaChannel[alphaOffset++] = rgbaChannel[rgbaOffset++];\n  }\n\n  return { rgbChannel, alphaChannel };\n};\n\nexport enum PngType {\n  Greyscale = 'Greyscale',\n  Truecolour = 'Truecolour',\n  IndexedColour = 'IndexedColour',\n  GreyscaleWithAlpha = 'GreyscaleWithAlpha',\n  TruecolourWithAlpha = 'TruecolourWithAlpha',\n}\n\nexport class PNG {\n  static load = (pngData: Uint8Array) => new PNG(pngData);\n\n  readonly rgbChannel: Uint8Array;\n  readonly alphaChannel?: Uint8Array;\n  readonly type: PngType;\n  readonly width: number;\n  readonly height: number;\n  readonly bitsPerComponent: number;\n\n  private constructor(pngData: Uint8Array) {\n    const upng = UPNG.decode(pngData);\n    const frames = UPNG.toRGBA8(upng);\n\n    if (frames.length > 1) throw new Error(`Animated PNGs are not supported`);\n\n    const frame = new Uint8Array(frames[0]);\n    const { rgbChannel, alphaChannel } = splitAlphaChannel(frame);\n\n    this.rgbChannel = rgbChannel;\n\n    const hasAlphaValues = alphaChannel.some((a) => a < 255);\n    if (hasAlphaValues) this.alphaChannel = alphaChannel;\n\n    this.type = getImageType(upng.ctype);\n\n    this.width = upng.width;\n    this.height = upng.height;\n    this.bitsPerComponent = 8;\n  }\n}\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport { PNG } from 'src/utils/png';\n\n/**\n * A note of thanks to the developers of https://github.com/foliojs/pdfkit, as\n * this class borrows from:\n *   https://github.com/devongovett/pdfkit/blob/e71edab0dd4657b5a767804ba86c94c58d01fbca/lib/image/png.coffee\n */\nclass PngEmbedder {\n  static async for(imageData: Uint8Array) {\n    const png = PNG.load(imageData);\n    return new PngEmbedder(png);\n  }\n\n  readonly bitsPerComponent: number;\n  readonly height: number;\n  readonly width: number;\n  readonly colorSpace: 'DeviceRGB';\n\n  private readonly image: PNG;\n\n  private constructor(png: PNG) {\n    this.image = png;\n    this.bitsPerComponent = png.bitsPerComponent;\n    this.width = png.width;\n    this.height = png.height;\n    this.colorSpace = 'DeviceRGB';\n  }\n\n  async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    const SMask = this.embedAlphaChannel(context);\n\n    const xObject = context.flateStream(this.image.rgbChannel, {\n      Type: 'XObject',\n      Subtype: 'Image',\n      BitsPerComponent: this.image.bitsPerComponent,\n      Width: this.image.width,\n      Height: this.image.height,\n      ColorSpace: this.colorSpace,\n      SMask,\n    });\n\n    if (ref) {\n      context.assign(ref, xObject);\n      return ref;\n    } else {\n      return context.register(xObject);\n    }\n  }\n\n  private embedAlphaChannel(context: PDFContext): PDFRef | undefined {\n    if (!this.image.alphaChannel) return undefined;\n\n    const xObject = context.flateStream(this.image.alphaChannel, {\n      Type: 'XObject',\n      Subtype: 'Image',\n      Height: this.image.height,\n      Width: this.image.width,\n      BitsPerComponent: this.image.bitsPerComponent,\n      ColorSpace: 'DeviceGray',\n      Decode: [0, 1],\n    });\n\n    return context.register(xObject);\n  }\n}\n\nexport default PngEmbedder;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The Stream class contained in this file is a TypeScript port of the\n * JavaScript Stream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nexport interface StreamType {\n  isEmpty: boolean;\n  getByte(): number;\n  getUint16(): number;\n  getInt32(): number;\n  getBytes(\n    length: number,\n    forceClamped?: boolean,\n  ): Uint8Array | Uint8ClampedArray;\n  peekByte(): number;\n  peekBytes(\n    length: number,\n    forceClamped?: boolean,\n  ): Uint8Array | Uint8ClampedArray;\n  skip(n: number): void;\n  reset(): void;\n  makeSubStream(start: number, length: number): StreamType;\n  decode(): Uint8Array;\n}\n\nclass Stream implements StreamType {\n  private bytes: Uint8Array;\n  private start: number;\n  private pos: number;\n  private end: number;\n\n  constructor(buffer: Uint8Array, start?: number, length?: number) {\n    this.bytes = buffer;\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = !!start && !!length ? start + length : this.bytes.length;\n  }\n\n  get length() {\n    return this.end - this.start;\n  }\n\n  get isEmpty() {\n    return this.length === 0;\n  }\n\n  getByte() {\n    if (this.pos >= this.end) {\n      return -1;\n    }\n    return this.bytes[this.pos++];\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  // Returns subarray of original buffer, should only be read.\n  getBytes(length: number, forceClamped = false) {\n    const bytes = this.bytes;\n    const pos = this.pos;\n    const strEnd = this.end;\n\n    if (!length) {\n      const subarray = bytes.subarray(pos, strEnd);\n      // `this.bytes` is always a `Uint8Array` here.\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    } else {\n      let end = pos + length;\n      if (end > strEnd) {\n        end = strEnd;\n      }\n      this.pos = end;\n      const subarray = bytes.subarray(pos, end);\n      // `this.bytes` is always a `Uint8Array` here.\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    }\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    this.pos--;\n    return peekedByte;\n  }\n\n  peekBytes(length: number, forceClamped = false) {\n    const bytes = this.getBytes(length, forceClamped);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  skip(n: number) {\n    if (!n) {\n      n = 1;\n    }\n    this.pos += n;\n  }\n\n  reset() {\n    this.pos = this.start;\n  }\n\n  moveStart() {\n    this.start = this.pos;\n  }\n\n  makeSubStream(start: number, length: number) {\n    return new Stream(this.bytes, start, length);\n  }\n\n  decode(): Uint8Array {\n    return this.bytes;\n  }\n}\n\nexport default Stream;\n","import { MethodNotImplementedError } from 'src/core/errors';\nimport Stream, { StreamType } from 'src/core/streams/Stream';\n\n/*\n * Copyright 2012 Mozilla Foundation\n *\n * The DecodeStream class contained in this file is a TypeScript port of the\n * JavaScript DecodeStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\n// Lots of DecodeStreams are created whose buffers are never used.  For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n/**\n * Super class for the decoding streams\n */\nclass DecodeStream implements StreamType {\n  protected bufferLength: number;\n  protected buffer: Uint8Array;\n  protected eof: boolean;\n\n  private pos: number;\n  private minBufferLength: number;\n\n  constructor(maybeMinBufferLength?: number) {\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n    if (maybeMinBufferLength) {\n      // Compute the first power of two that is as big as maybeMinBufferLength.\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  get isEmpty() {\n    while (!this.eof && this.bufferLength === 0) {\n      this.readBlock();\n    }\n    return this.bufferLength === 0;\n  }\n\n  getByte() {\n    const pos = this.pos;\n    while (this.bufferLength <= pos) {\n      if (this.eof) {\n        return -1;\n      }\n      this.readBlock();\n    }\n    return this.buffer[this.pos++];\n  }\n\n  getUint16() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    if (b0 === -1 || b1 === -1) {\n      return -1;\n    }\n    return (b0 << 8) + b1;\n  }\n\n  getInt32() {\n    const b0 = this.getByte();\n    const b1 = this.getByte();\n    const b2 = this.getByte();\n    const b3 = this.getByte();\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  getBytes(length: number, forceClamped = false) {\n    let end;\n    const pos = this.pos;\n\n    if (length) {\n      this.ensureBuffer(pos + length);\n      end = pos + length;\n\n      while (!this.eof && this.bufferLength < end) {\n        this.readBlock();\n      }\n      const bufEnd = this.bufferLength;\n      if (end > bufEnd) {\n        end = bufEnd;\n      }\n    } else {\n      while (!this.eof) {\n        this.readBlock();\n      }\n      end = this.bufferLength;\n    }\n\n    this.pos = end;\n    const subarray = this.buffer.subarray(pos, end);\n    // `this.buffer` is either a `Uint8Array` or `Uint8ClampedArray` here.\n    return forceClamped && !(subarray instanceof Uint8ClampedArray)\n      ? new Uint8ClampedArray(subarray)\n      : subarray;\n  }\n\n  peekByte() {\n    const peekedByte = this.getByte();\n    this.pos--;\n    return peekedByte;\n  }\n\n  peekBytes(length: number, forceClamped = false) {\n    const bytes = this.getBytes(length, forceClamped);\n    this.pos -= bytes.length;\n    return bytes;\n  }\n\n  skip(n: number) {\n    if (!n) {\n      n = 1;\n    }\n    this.pos += n;\n  }\n\n  reset() {\n    this.pos = 0;\n  }\n\n  makeSubStream(start: number, length: number /* dict */) {\n    const end = start + length;\n    while (this.bufferLength <= end && !this.eof) {\n      this.readBlock();\n    }\n    return new Stream(this.buffer, start, length /* dict */);\n  }\n\n  decode(): Uint8Array {\n    while (!this.eof) this.readBlock();\n    return this.buffer.subarray(0, this.bufferLength);\n  }\n\n  protected readBlock(): void {\n    throw new MethodNotImplementedError(this.constructor.name, 'readBlock');\n  }\n\n  protected ensureBuffer(requested: number) {\n    const buffer = this.buffer;\n    if (requested <= buffer.byteLength) {\n      return buffer;\n    }\n    let size = this.minBufferLength;\n    while (size < requested) {\n      size *= 2;\n    }\n    const buffer2 = new Uint8Array(size);\n    buffer2.set(buffer);\n    return (this.buffer = buffer2);\n  }\n\n  // getBaseStreams() {\n  //   if (this.str && this.str.getBaseStreams) {\n  //     return this.str.getBaseStreams();\n  //   }\n  //   return [];\n  // }\n}\n\nexport default DecodeStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The Ascii85Stream class contained in this file is a TypeScript port of the\n * JavaScript Ascii85Stream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nconst isSpace = (ch: number) =>\n  ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n\nclass Ascii85Stream extends DecodeStream {\n  private stream: StreamType;\n  private input: Uint8Array;\n\n  constructor(stream: StreamType, maybeLength?: number) {\n    super(maybeLength);\n\n    this.stream = stream;\n    this.input = new Uint8Array(5);\n\n    // Most streams increase in size when decoded, but Ascii85 streams\n    // typically shrink by ~20%.\n    if (maybeLength) {\n      maybeLength = 0.8 * maybeLength;\n    }\n  }\n\n  protected readBlock() {\n    const TILDA_CHAR = 0x7e; // '~'\n    const Z_LOWER_CHAR = 0x7a; // 'z'\n    const EOF = -1;\n\n    const stream = this.stream;\n\n    let c = stream.getByte();\n    while (isSpace(c)) {\n      c = stream.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    const bufferLength = this.bufferLength;\n    let buffer;\n    let i;\n\n    // special code for z\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n      this.bufferLength += 4;\n    } else {\n      const input = this.input;\n      input[0] = c;\n      for (i = 1; i < 5; ++i) {\n        c = stream.getByte();\n        while (isSpace(c)) {\n          c = stream.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      // partial ending;\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n        this.eof = true;\n      }\n      let t = 0;\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xff;\n        t >>= 8;\n      }\n    }\n  }\n}\n\nexport default Ascii85Stream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The AsciiHexStream class contained in this file is a TypeScript port of the\n * JavaScript AsciiHexStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass AsciiHexStream extends DecodeStream {\n  private stream: StreamType;\n  private firstDigit: number;\n\n  constructor(stream: StreamType, maybeLength?: number) {\n    super(maybeLength);\n\n    this.stream = stream;\n\n    this.firstDigit = -1;\n\n    // Most streams increase in size when decoded, but AsciiHex streams shrink\n    // by 50%.\n    if (maybeLength) {\n      maybeLength = 0.5 * maybeLength;\n    }\n  }\n\n  protected readBlock() {\n    const UPSTREAM_BLOCK_SIZE = 8000;\n    const bytes = this.stream.getBytes(UPSTREAM_BLOCK_SIZE);\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    const maxDecodeLength = (bytes.length + 1) >> 1;\n    const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    let bufferLength = this.bufferLength;\n\n    let firstDigit = this.firstDigit;\n    for (let i = 0, ii = bytes.length; i < ii; i++) {\n      const ch = bytes[i];\n      let digit;\n      if (ch >= 0x30 && ch <= 0x39) {\n        // '0'-'9'\n        digit = ch & 0x0f;\n      } else if ((ch >= 0x41 && ch <= 0x46) || (ch >= 0x61 && ch <= 0x66)) {\n        // 'A'-'Z', 'a'-'z'\n        digit = (ch & 0x0f) + 9;\n      } else if (ch === 0x3e) {\n        // '>'\n        this.eof = true;\n        break;\n      } else {\n        // probably whitespace\n        continue; // ignoring\n      }\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = (firstDigit << 4) | digit;\n        firstDigit = -1;\n      }\n    }\n    if (firstDigit >= 0 && this.eof) {\n      // incomplete byte\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  }\n}\n\nexport default AsciiHexStream;\n","/*\n * Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\n/*\n * Copyright 2012 Mozilla Foundation\n *\n * The FlateStream class contained in this file is a TypeScript port of the\n * JavaScript FlateStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\n/* tslint:disable  no-conditional-assignment */\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\n// prettier-ignore\nconst codeLenCodeMap = new Int32Array([\n  16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15\n]);\n\n// prettier-ignore\nconst lengthDecode = new Int32Array([\n  0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n  0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n  0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n  0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102\n]);\n\n// prettier-ignore\nconst distDecode = new Int32Array([\n  0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n  0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n  0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n  0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001\n]);\n\n// prettier-ignore\nconst fixedLitCodeTab = [new Int32Array([\n  0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n  0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n  0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n  0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n  0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n  0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n  0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n  0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n  0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n  0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n  0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n  0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n  0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n  0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n  0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n  0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n  0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n  0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n  0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n  0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n  0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n  0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n  0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n  0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n  0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n  0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n  0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n  0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n  0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n  0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n  0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n  0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n  0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n  0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n  0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n  0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n  0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n  0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n  0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n  0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n  0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n  0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n  0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n  0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n  0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n  0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n  0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n  0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n  0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n  0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n  0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n  0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n  0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n  0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n  0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n  0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n  0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n  0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n  0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n  0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n  0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n  0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n  0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n  0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff\n]), 9] as [Int32Array, number];\n\n// prettier-ignore\nconst fixedDistCodeTab = [new Int32Array([\n  0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n  0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n  0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n  0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000\n]), 5] as [Int32Array, number];\n\nclass FlateStream extends DecodeStream {\n  private stream: StreamType;\n  private codeSize: number;\n  private codeBuf: number;\n\n  constructor(stream: StreamType, maybeLength?: number) {\n    super(maybeLength);\n\n    this.stream = stream;\n\n    const cmf = stream.getByte();\n    const flg = stream.getByte();\n    if (cmf === -1 || flg === -1) {\n      throw new Error(`Invalid header in flate stream: ${cmf}, ${flg}`);\n    }\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new Error(\n        `Unknown compression method in flate stream: ${cmf}, ${flg}`,\n      );\n    }\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new Error(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n    }\n    if (flg & 0x20) {\n      throw new Error(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n  }\n\n  protected readBlock() {\n    let buffer;\n    let len;\n    const str = this.stream;\n    // read block header\n    let hdr = this.getBits(3);\n    if (hdr & 1) {\n      this.eof = true;\n    }\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      // uncompressed block\n      let b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new Error('Bad block header in flate stream');\n      }\n      let blockLen = b;\n      if ((b = str.getByte()) === -1) {\n        throw new Error('Bad block header in flate stream');\n      }\n      blockLen |= b << 8;\n      if ((b = str.getByte()) === -1) {\n        throw new Error('Bad block header in flate stream');\n      }\n      let check = b;\n      if ((b = str.getByte()) === -1) {\n        throw new Error('Bad block header in flate stream');\n      }\n      check |= b << 8;\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        // Ignoring error for bad \"empty\" block (see issue 1277)\n        throw new Error('Bad uncompressed block length in flate stream');\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n\n      const bufferLength = this.bufferLength;\n      buffer = this.ensureBuffer(bufferLength + blockLen);\n      const end = bufferLength + blockLen;\n      this.bufferLength = end;\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        for (let n = bufferLength; n < end; ++n) {\n          if ((b = str.getByte()) === -1) {\n            this.eof = true;\n            break;\n          }\n          buffer[n] = b;\n        }\n      }\n      return;\n    }\n\n    let litCodeTable;\n    let distCodeTable;\n    if (hdr === 1) {\n      // compressed block, fixed codes\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      // compressed block, dynamic codes\n      const numLitCodes = this.getBits(5) + 257;\n      const numDistCodes = this.getBits(5) + 1;\n      const numCodeLenCodes = this.getBits(4) + 4;\n\n      // build the code lengths code table\n      const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n      let i;\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n      const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n      // build the literal and distance code tables\n      len = 0;\n      i = 0;\n      const codes = numLitCodes + numDistCodes;\n      const codeLengths = new Uint8Array(codes);\n      let bitsLength;\n      let bitsOffset;\n      let what;\n      while (i < codes) {\n        const code = this.getCode(codeLenCodeTab);\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        let repeatLength = this.getBits(bitsLength) + bitsOffset;\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(0, numLitCodes),\n      );\n      distCodeTable = this.generateHuffmanTable(\n        codeLengths.subarray(numLitCodes, codes),\n      );\n    } else {\n      throw new Error('Unknown block type in flate stream');\n    }\n\n    buffer = this.buffer;\n    let limit = buffer ? buffer.length : 0;\n    let pos = this.bufferLength;\n    while (true) {\n      let code1 = this.getCode(litCodeTable);\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n        buffer[pos++] = code1;\n        continue;\n      }\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      let code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n      const dist = (code1 & 0xffff) + code2;\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n      for (let k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  }\n\n  private getBits(bits: number) {\n    const str = this.stream;\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n\n    let b;\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new Error('Bad encoding in flate stream');\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    b = codeBuf & ((1 << bits) - 1);\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n\n    return b;\n  }\n\n  private getCode(table: [Int32Array, number]) {\n    const str = this.stream;\n    const codes = table[0];\n    const maxLen = table[1];\n    let codeSize = this.codeSize;\n    let codeBuf = this.codeBuf;\n\n    let b;\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        // premature end of stream. code might however still be valid.\n        // codeSize < codeLen check below guards against incomplete codeVal.\n        break;\n      }\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n    const code = codes[codeBuf & ((1 << maxLen) - 1)];\n    if (typeof codes === 'number') {\n      console.log('FLATE:', code);\n    }\n    const codeLen = code >> 16;\n    const codeVal = code & 0xffff;\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new Error('Bad encoding in flate stream');\n    }\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  }\n\n  private generateHuffmanTable(lengths: Uint8Array): [Int32Array, number] {\n    const n = lengths.length;\n\n    // find max code length\n    let maxLen = 0;\n    let i;\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    // build the table\n    const size = 1 << maxLen;\n    const codes = new Int32Array(size);\n    for (\n      let len = 1, code = 0, skip = 2;\n      len <= maxLen;\n      ++len, code <<= 1, skip <<= 1\n    ) {\n      for (let val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          // bit-reverse the code\n          let code2 = 0;\n          let t = code;\n          for (i = 0; i < len; ++i) {\n            code2 = (code2 << 1) | (t & 1);\n            t >>= 1;\n          }\n\n          // fill the table entries\n          for (i = code2; i < size; i += skip) {\n            codes[i] = (len << 16) | val;\n          }\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  }\n}\n\nexport default FlateStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The LZWStream class contained in this file is a TypeScript port of the\n * JavaScript LZWStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass LZWStream extends DecodeStream {\n  private stream: StreamType;\n  private cachedData: number;\n  private bitsCached: number;\n  private lzwState: {\n    earlyChange: 0 | 1;\n    codeLength: number;\n    nextCode: number;\n    dictionaryValues: Uint8Array;\n    dictionaryLengths: Uint16Array;\n    dictionaryPrevCodes: Uint16Array;\n    currentSequence: Uint8Array;\n    currentSequenceLength: number;\n    prevCode?: number | null;\n  };\n\n  constructor(\n    stream: StreamType,\n    maybeLength: number | undefined,\n    earlyChange: 0 | 1,\n  ) {\n    super(maybeLength);\n\n    this.stream = stream;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n\n    const maxLzwDictionarySize = 4096;\n    const lzwState = {\n      earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0,\n    };\n    for (let i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n    this.lzwState = lzwState;\n  }\n\n  protected readBlock() {\n    const blockSize = 512;\n\n    let estimatedDecodedSize = blockSize * 2;\n    const decodedSizeDelta = blockSize;\n    let i;\n    let j;\n    let q;\n\n    const lzwState = this.lzwState;\n    if (!lzwState) {\n      return; // eof was found\n    }\n\n    const earlyChange = lzwState.earlyChange;\n    let nextCode = lzwState.nextCode;\n    const dictionaryValues = lzwState.dictionaryValues;\n    const dictionaryLengths = lzwState.dictionaryLengths;\n    const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    let codeLength = lzwState.codeLength;\n    let prevCode = lzwState.prevCode;\n    const currentSequence = lzwState.currentSequence;\n    let currentSequenceLength = lzwState.currentSequenceLength;\n\n    let decodedLength = 0;\n    let currentBufferLength = this.bufferLength;\n    let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      const code = this.readBits(codeLength);\n      const hasPrev = currentSequenceLength > 0;\n      if (!code || code < 256) {\n        currentSequence[0] = code as number;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode as number;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode as number] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength =\n          (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n            ? codeLength\n            : Math.min(\n                Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n                12,\n              ) | 0;\n      }\n      prevCode = code;\n\n      decodedLength += currentSequenceLength;\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n\n    this.bufferLength = currentBufferLength;\n  }\n\n  private readBits(n: number) {\n    let bitsCached = this.bitsCached;\n    let cachedData = this.cachedData;\n    while (bitsCached < n) {\n      const c = this.stream.getByte();\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n      cachedData = (cachedData << 8) | c;\n      bitsCached += 8;\n    }\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    return (cachedData >>> bitsCached) & ((1 << n) - 1);\n  }\n}\n\nexport default LZWStream;\n","/*\n * Copyright 2012 Mozilla Foundation\n *\n * The RunLengthStream class contained in this file is a TypeScript port of the\n * JavaScript RunLengthStream class in Mozilla's pdf.js project, made available\n * under the Apache 2.0 open source license.\n */\n\nimport DecodeStream from 'src/core/streams/DecodeStream';\nimport { StreamType } from 'src/core/streams/Stream';\n\nclass RunLengthStream extends DecodeStream {\n  private stream: StreamType;\n\n  constructor(stream: StreamType, maybeLength?: number) {\n    super(maybeLength);\n    this.stream = stream;\n  }\n\n  protected readBlock() {\n    // The repeatHeader has following format. The first byte defines type of run\n    // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n    // (in addition to the second byte from the header), n = 129 through 255 -\n    // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n    const repeatHeader = this.stream.getBytes(2);\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    let buffer;\n    let bufferLength = this.bufferLength;\n    let n = repeatHeader[0];\n    if (n < 128) {\n      // copy n bytes\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n      if (n > 0) {\n        const source = this.stream.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      const b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      for (let i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n    this.bufferLength = bufferLength;\n  }\n}\n\nexport default RunLengthStream;\n","import {\n  UnexpectedObjectTypeError,\n  UnsupportedEncodingError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport Ascii85Stream from 'src/core/streams/Ascii85Stream';\nimport AsciiHexStream from 'src/core/streams/AsciiHexStream';\nimport FlateStream from 'src/core/streams/FlateStream';\nimport LZWStream from 'src/core/streams/LZWStream';\nimport RunLengthStream from 'src/core/streams/RunLengthStream';\nimport Stream, { StreamType } from 'src/core/streams/Stream';\n\nconst decodeStream = (\n  stream: StreamType,\n  encoding: PDFName,\n  params: undefined | typeof PDFNull | PDFDict,\n) => {\n  if (encoding === PDFName.of('FlateDecode')) {\n    return new FlateStream(stream);\n  }\n  if (encoding === PDFName.of('LZWDecode')) {\n    let earlyChange = 1;\n    if (params instanceof PDFDict) {\n      const EarlyChange = params.lookup(PDFName.of('EarlyChange'));\n      if (EarlyChange instanceof PDFNumber) {\n        earlyChange = EarlyChange.asNumber();\n      }\n    }\n    return new LZWStream(stream, undefined, earlyChange as 0 | 1);\n  }\n  if (encoding === PDFName.of('ASCII85Decode')) {\n    return new Ascii85Stream(stream);\n  }\n  if (encoding === PDFName.of('ASCIIHexDecode')) {\n    return new AsciiHexStream(stream);\n  }\n  if (encoding === PDFName.of('RunLengthDecode')) {\n    return new RunLengthStream(stream);\n  }\n  throw new UnsupportedEncodingError(encoding.asString());\n};\n\nexport const decodePDFRawStream = ({ dict, contents }: PDFRawStream) => {\n  let stream: StreamType = new Stream(contents);\n\n  const Filter = dict.lookup(PDFName.of('Filter'));\n  const DecodeParms = dict.lookup(PDFName.of('DecodeParms'));\n\n  if (Filter instanceof PDFName) {\n    stream = decodeStream(\n      stream,\n      Filter,\n      DecodeParms as PDFDict | typeof PDFNull | undefined,\n    );\n  } else if (Filter instanceof PDFArray) {\n    for (let idx = 0, len = Filter.size(); idx < len; idx++) {\n      stream = decodeStream(\n        stream,\n        Filter.lookup(idx, PDFName),\n        DecodeParms && (DecodeParms as PDFArray).lookupMaybe(idx, PDFDict),\n      );\n    }\n  } else if (!!Filter) {\n    throw new UnexpectedObjectTypeError([PDFName, PDFArray], Filter);\n  }\n\n  return stream;\n};\n","import {\n  MissingPageContentsEmbeddingError,\n  UnrecognizedStreamTypeError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFContext from 'src/core/PDFContext';\nimport { decodePDFRawStream } from 'src/core/streams/decode';\nimport PDFContentStream from 'src/core/structures/PDFContentStream';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { TransformationMatrix } from 'src/types/matrix';\nimport { mergeIntoTypedArray } from 'src/utils';\n\n/**\n * Represents a page bounding box.\n * Usually `left` and `bottom` are 0 and right, top are equal\n * to width, height if you want to clip to the whole page.\n *\n *       y\n *       ^\n *       | +--------+ (width,height)\n *       | |        |\n *       | |  Page  |\n *       | |        |\n *       | |        |\n * (0,0) | +--------+\n *       +----------> x\n */\nexport interface PageBoundingBox {\n  left: number /** The left of the bounding box */;\n  bottom: number /** The bottom of the bounding box */;\n  right: number /** The right of the bounding box */;\n  top: number /** The top of the bounding box */;\n}\n\nconst fullPageBoundingBox = (page: PDFPageLeaf) => {\n  const mediaBox = page.MediaBox();\n\n  const width =\n    mediaBox.lookup(2, PDFNumber).asNumber() -\n    mediaBox.lookup(0, PDFNumber).asNumber();\n\n  const height =\n    mediaBox.lookup(3, PDFNumber).asNumber() -\n    mediaBox.lookup(1, PDFNumber).asNumber();\n\n  return { left: 0, bottom: 0, right: width, top: height };\n};\n\n// Returns the identity matrix, modified to position the content of the given\n// bounding box at (0, 0).\nconst boundingBoxAdjustedMatrix = (\n  bb: PageBoundingBox,\n): TransformationMatrix => [1, 0, 0, 1, -bb.left, -bb.bottom];\n\nclass PDFPageEmbedder {\n  static async for(\n    page: PDFPageLeaf,\n    boundingBox?: PageBoundingBox,\n    transformationMatrix?: TransformationMatrix,\n  ) {\n    return new PDFPageEmbedder(page, boundingBox, transformationMatrix);\n  }\n\n  readonly width: number;\n  readonly height: number;\n  readonly boundingBox: PageBoundingBox;\n  readonly transformationMatrix: TransformationMatrix;\n\n  private readonly page: PDFPageLeaf;\n\n  private constructor(\n    page: PDFPageLeaf,\n    boundingBox?: PageBoundingBox,\n    transformationMatrix?: TransformationMatrix,\n  ) {\n    this.page = page;\n\n    const bb = boundingBox ?? fullPageBoundingBox(page);\n\n    this.width = bb.right - bb.left;\n    this.height = bb.top - bb.bottom;\n    this.boundingBox = bb;\n    this.transformationMatrix =\n      transformationMatrix ?? boundingBoxAdjustedMatrix(bb);\n  }\n\n  async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    const { Contents, Resources } = this.page.normalizedEntries();\n\n    if (!Contents) throw new MissingPageContentsEmbeddingError();\n    const decodedContents = this.decodeContents(Contents);\n\n    const { left, bottom, right, top } = this.boundingBox;\n    const xObject = context.flateStream(decodedContents, {\n      Type: 'XObject',\n      Subtype: 'Form',\n      FormType: 1,\n      BBox: [left, bottom, right, top],\n      Matrix: this.transformationMatrix,\n      Resources,\n    });\n\n    if (ref) {\n      context.assign(ref, xObject);\n      return ref;\n    } else {\n      return context.register(xObject);\n    }\n  }\n\n  // `contents` is an array of streams which are merged to include them in the XObject.\n  // This methods extracts each stream and joins them with a newline character.\n  private decodeContents(contents: PDFArray) {\n    const newline = Uint8Array.of(CharCodes.Newline);\n    const decodedContents: Uint8Array[] = [];\n\n    for (let idx = 0, len = contents.size(); idx < len; idx++) {\n      const stream = contents.lookup(idx, PDFStream);\n\n      let content: Uint8Array;\n      if (stream instanceof PDFRawStream) {\n        content = decodePDFRawStream(stream).decode();\n      } else if (stream instanceof PDFContentStream) {\n        content = stream.getUnencodedContents();\n      } else {\n        throw new UnrecognizedStreamTypeError(stream);\n      }\n\n      decodedContents.push(content, newline);\n    }\n\n    return mergeIntoTypedArray(...decodedContents);\n  }\n}\n\nexport default PDFPageEmbedder;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFContext from 'src/core/PDFContext';\nimport {\n  assertEachIs,\n  assertInteger,\n  assertIsOneOf,\n  assertRange,\n} from 'src/utils';\n\nconst asEnum = <T extends string | number, U extends { [key: string]: T }>(\n  rawValue: T | undefined,\n  enumType: U,\n): U[keyof U] | undefined => {\n  if (rawValue === undefined) return undefined;\n  return enumType[rawValue];\n};\n\nexport enum NonFullScreenPageMode {\n  /**\n   * After exiting FullScreen mode, neither the document outline nor thumbnail\n   * images should be visible.\n   */\n  UseNone = 'UseNone',\n\n  /** After exiting FullScreen mode, the document outline should be visible. */\n  UseOutlines = 'UseOutlines',\n\n  /** After exiting FullScreen mode, thumbnail images should be visible. */\n  UseThumbs = 'UseThumbs',\n\n  /**\n   * After exiting FullScreen mode, the optional content group panel should be\n   * visible.\n   */\n  UseOC = 'UseOC',\n}\n\nexport enum ReadingDirection {\n  /** The predominant reading order is Left to Right. */\n  L2R = 'L2R',\n\n  /**\n   * The predominant reading order is Right to left (including vertical writing\n   * systems, such as Chinese, Japanese and Korean).\n   */\n  R2L = 'R2L',\n}\n\nexport enum PrintScaling {\n  /** No page scaling. */\n  None = 'None',\n\n  /* Use the PDF reader's default print scaling. */\n  AppDefault = 'AppDefault',\n}\n\nexport enum Duplex {\n  /** The PDF reader should print single-sided. */\n  Simplex = 'Simplex',\n\n  /**\n   * The PDF reader should print double sided and flip on the short edge of the\n   * sheet.\n   */\n  DuplexFlipShortEdge = 'DuplexFlipShortEdge',\n\n  /**\n   * The PDF reader should print double sided and flip on the long edge of the\n   * sheet.\n   */\n  DuplexFlipLongEdge = 'DuplexFlipLongEdge',\n}\n\ntype BoolViewerPrefKey =\n  | 'HideToolbar'\n  | 'HideMenubar'\n  | 'HideWindowUI'\n  | 'FitWindow'\n  | 'CenterWindow'\n  | 'DisplayDocTitle'\n  | 'PickTrayByPDFSize';\ntype NameViewerPrefKey =\n  | 'NonFullScreenPageMode'\n  | 'Direction'\n  | 'PrintScaling'\n  | 'Duplex';\n\ninterface PageRange {\n  start: number;\n  end: number;\n}\n\nclass ViewerPreferences {\n  /** @ignore */\n  readonly dict: PDFDict;\n\n  /** @ignore */\n  static fromDict = (dict: PDFDict): ViewerPreferences =>\n    new ViewerPreferences(dict);\n\n  /** @ignore */\n  static create = (context: PDFContext) => {\n    const dict = context.obj({});\n    return new ViewerPreferences(dict);\n  };\n\n  /** @ignore */\n  protected constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  protected lookupBool(key: BoolViewerPrefKey): PDFBool | undefined {\n    const returnObj = this.dict.lookup(PDFName.of(key));\n    if (returnObj instanceof PDFBool) return returnObj;\n    return undefined;\n  }\n\n  protected lookupName(key: NameViewerPrefKey): PDFName | undefined {\n    const returnObj = this.dict.lookup(PDFName.of(key));\n    if (returnObj instanceof PDFName) return returnObj;\n    return undefined;\n  }\n\n  /** @ignore */\n  HideToolbar(): PDFBool | undefined {\n    return this.lookupBool('HideToolbar');\n  }\n\n  /** @ignore */\n  HideMenubar(): PDFBool | undefined {\n    return this.lookupBool('HideMenubar');\n  }\n\n  /** @ignore */\n  HideWindowUI(): PDFBool | undefined {\n    return this.lookupBool('HideWindowUI');\n  }\n\n  /** @ignore */\n  FitWindow(): PDFBool | undefined {\n    return this.lookupBool('FitWindow');\n  }\n\n  /** @ignore */\n  CenterWindow(): PDFBool | undefined {\n    return this.lookupBool('CenterWindow');\n  }\n\n  /** @ignore */\n  DisplayDocTitle(): PDFBool | undefined {\n    return this.lookupBool('DisplayDocTitle');\n  }\n\n  /** @ignore */\n  NonFullScreenPageMode(): PDFName | undefined {\n    return this.lookupName('NonFullScreenPageMode');\n  }\n\n  /** @ignore */\n  Direction(): PDFName | undefined {\n    return this.lookupName('Direction');\n  }\n\n  /** @ignore */\n  PrintScaling(): PDFName | undefined {\n    return this.lookupName('PrintScaling');\n  }\n\n  /** @ignore */\n  Duplex(): PDFName | undefined {\n    return this.lookupName('Duplex');\n  }\n\n  /** @ignore */\n  PickTrayByPDFSize(): PDFBool | undefined {\n    return this.lookupBool('PickTrayByPDFSize');\n  }\n\n  /** @ignore */\n  PrintPageRange(): PDFArray | undefined {\n    const PrintPageRange = this.dict.lookup(PDFName.of('PrintPageRange'));\n    if (PrintPageRange instanceof PDFArray) return PrintPageRange;\n    return undefined;\n  }\n\n  /** @ignore */\n  NumCopies(): PDFNumber | undefined {\n    const NumCopies = this.dict.lookup(PDFName.of('NumCopies'));\n    if (NumCopies instanceof PDFNumber) return NumCopies;\n    return undefined;\n  }\n\n  /**\n   * Returns `true` if PDF readers should hide the toolbar menus when displaying\n   * this document.\n   * @returns Whether or not toolbars should be hidden.\n   */\n  getHideToolbar(): boolean {\n    return this.HideToolbar()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns `true` if PDF readers should hide the menu bar when displaying this\n   * document.\n   * @returns Whether or not the menu bar should be hidden.\n   */\n  getHideMenubar(): boolean {\n    return this.HideMenubar()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns `true` if PDF readers should hide the user interface elements in\n   * the document's window (such as scroll bars and navigation controls),\n   * leaving only the document's contents displayed.\n   * @returns Whether or not user interface elements should be hidden.\n   */\n  getHideWindowUI(): boolean {\n    return this.HideWindowUI()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns `true` if PDF readers should resize the document's window to fit\n   * the size of the first displayed page.\n   * @returns Whether or not the window should be resized to fit.\n   */\n  getFitWindow(): boolean {\n    return this.FitWindow()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns `true` if PDF readers should position the document's window in the\n   * center of the screen.\n   * @returns Whether or not to center the document window.\n   */\n  getCenterWindow(): boolean {\n    return this.CenterWindow()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns `true` if the window's title bar should display the document\n   * `Title`, taken from the document metadata (see [[PDFDocument.getTitle]]).\n   * Returns `false` if the title bar should instead display the filename of the\n   * PDF file.\n   * @returns Whether to display the document title.\n   */\n  getDisplayDocTitle(): boolean {\n    return this.DisplayDocTitle()?.asBoolean() ?? false;\n  }\n\n  /**\n   * Returns the page mode, which tells the PDF reader how to display the\n   * document after exiting full-screen mode.\n   * @returns The page mode after exiting full-screen mode.\n   */\n  getNonFullScreenPageMode(): NonFullScreenPageMode {\n    const mode = this.NonFullScreenPageMode()?.decodeText();\n    return asEnum(mode, NonFullScreenPageMode) ?? NonFullScreenPageMode.UseNone;\n  }\n\n  /**\n   * Returns the predominant reading order for text.\n   * @returns The text reading order.\n   */\n  getReadingDirection(): ReadingDirection {\n    const direction = this.Direction()?.decodeText();\n    return asEnum(direction, ReadingDirection) ?? ReadingDirection.L2R;\n  }\n\n  /**\n   * Returns the page scaling option that the PDF reader should select when the\n   * print dialog is displayed.\n   * @returns The page scaling option.\n   */\n  getPrintScaling(): PrintScaling {\n    const scaling = this.PrintScaling()?.decodeText();\n    return asEnum(scaling, PrintScaling) ?? PrintScaling.AppDefault;\n  }\n\n  /**\n   * Returns the paper handling option that should be used when printing the\n   * file from the print dialog.\n   * @returns The paper handling option.\n   */\n  getDuplex(): Duplex | undefined {\n    const duplex = this.Duplex()?.decodeText();\n    return asEnum(duplex, Duplex);\n  }\n\n  /**\n   * Returns `true` if the PDF page size should be used to select the input\n   * paper tray.\n   * @returns Whether or not the PDF page size should be used to select the\n   *          input paper tray.\n   */\n  getPickTrayByPDFSize(): boolean | undefined {\n    return this.PickTrayByPDFSize()?.asBoolean();\n  }\n\n  /**\n   * Returns an array of page number ranges, which are the values used to\n   * initialize the print dialog box when the file is printed. Each range\n   * specifies the first (`start`) and last (`end`) pages in a sub-range of\n   * pages to be printed. The first page of the PDF file is denoted by 0.\n   * For example:\n   * ```js\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   * const includesPage3 = viewerPrefs\n   *   .getPrintRanges()\n   *   .some(pr => pr.start =< 2 && pr.end >= 2)\n   * if (includesPage3) console.log('printRange includes page 3')\n   * ```\n   * @returns An array of objects, each with the properties `start` and `end`,\n   *          denoting page indices. If not, specified an empty array is\n   *          returned.\n   */\n  getPrintPageRange(): PageRange[] {\n    const rng = this.PrintPageRange();\n    if (!rng) return [];\n\n    const pageRanges: PageRange[] = [];\n    for (let i = 0; i < rng.size(); i += 2) {\n      // Despite the spec clearly stating that \"The first page of the PDF file\n      // shall be donoted by 1\", several test PDFs (spec 1.7) created in\n      // Acrobat XI 11.0 and also read with Reader DC 2020.013 indicate this is\n      // actually a 0 based index.\n      const start = rng.lookup(i, PDFNumber).asNumber();\n      const end = rng.lookup(i + 1, PDFNumber).asNumber();\n      pageRanges.push({ start, end });\n    }\n\n    return pageRanges;\n  }\n\n  /**\n   * Returns the number of copies to be printed when the print dialog is opened\n   * for this document.\n   * @returns The default number of copies to be printed.\n   */\n  getNumCopies(): number {\n    return this.NumCopies()?.asNumber() ?? 1;\n  }\n\n  /**\n   * Choose whether the PDF reader's toolbars should be hidden while the\n   * document is active.\n   * @param hideToolbar `true` if the toolbar should be hidden.\n   */\n  setHideToolbar(hideToolbar: boolean) {\n    const HideToolbar = this.dict.context.obj(hideToolbar);\n    this.dict.set(PDFName.of('HideToolbar'), HideToolbar);\n  }\n\n  /**\n   * Choose whether the PDF reader's menu bar should be hidden while the\n   * document is active.\n   * @param hideMenubar `true` if the menu bar should be hidden.\n   */\n  setHideMenubar(hideMenubar: boolean) {\n    const HideMenubar = this.dict.context.obj(hideMenubar);\n    this.dict.set(PDFName.of('HideMenubar'), HideMenubar);\n  }\n\n  /**\n   * Choose whether the PDF reader should hide user interface elements in the\n   * document's window (such as scroll bars and navigation controls), leaving\n   * only the document's contents displayed.\n   * @param hideWindowUI `true` if the user interface elements should be hidden.\n   */\n  setHideWindowUI(hideWindowUI: boolean) {\n    const HideWindowUI = this.dict.context.obj(hideWindowUI);\n    this.dict.set(PDFName.of('HideWindowUI'), HideWindowUI);\n  }\n\n  /**\n   * Choose whether the PDF reader should resize the document's window to fit\n   * the size of the first displayed page.\n   * @param fitWindow `true` if the window should be resized.\n   */\n  setFitWindow(fitWindow: boolean) {\n    const FitWindow = this.dict.context.obj(fitWindow);\n    this.dict.set(PDFName.of('FitWindow'), FitWindow);\n  }\n\n  /**\n   * Choose whether the PDF reader should position the document's window in the\n   * center of the screen.\n   * @param centerWindow `true` if the window should be centered.\n   */\n  setCenterWindow(centerWindow: boolean) {\n    const CenterWindow = this.dict.context.obj(centerWindow);\n    this.dict.set(PDFName.of('CenterWindow'), CenterWindow);\n  }\n\n  /**\n   * Choose whether the window's title bar should display the document `Title`\n   * taken from the document metadata (see [[PDFDocument.setTitle]]). If\n   * `false`, the title bar should instead display the PDF filename.\n   * @param displayTitle `true` if the document title should be displayed.\n   */\n  setDisplayDocTitle(displayTitle: boolean) {\n    const DisplayDocTitle = this.dict.context.obj(displayTitle);\n    this.dict.set(PDFName.of('DisplayDocTitle'), DisplayDocTitle);\n  }\n\n  /**\n   * Choose how the PDF reader should display the document upon exiting\n   * full-screen mode. This entry is meaningful only if the value of the\n   * `PageMode` entry in the document's [[PDFCatalog]] is `FullScreen`.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument, NonFullScreenPageMode, PDFName } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   *\n   * // Set the PageMode\n   * pdfDoc.catalog.set(PDFName.of('PageMode'),PDFName.of('FullScreen'))\n   *\n   * // Set what happens when full-screen is closed\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   * viewerPrefs.setNonFullScreenPageMode(NonFullScreenPageMode.UseOutlines)\n   * ```\n   *\n   * @param nonFullScreenPageMode How the document should be displayed upon\n   *                              exiting full screen mode.\n   */\n  setNonFullScreenPageMode(nonFullScreenPageMode: NonFullScreenPageMode) {\n    assertIsOneOf(\n      nonFullScreenPageMode,\n      'nonFullScreenPageMode',\n      NonFullScreenPageMode,\n    );\n    const mode = PDFName.of(nonFullScreenPageMode);\n    this.dict.set(PDFName.of('NonFullScreenPageMode'), mode);\n  }\n\n  /**\n   * Choose the predominant reading order for text.\n   *\n   * This entry has no direct effect on the document's contents or page\n   * numbering, but may be used to determine the relative positioning of pages\n   * when displayed side by side or printed n-up.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument, ReadingDirection } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   * viewerPrefs.setReadingDirection(ReadingDirection.R2L)\n   * ```\n   *\n   * @param readingDirection The reading order for text.\n   */\n  setReadingDirection(readingDirection: ReadingDirection) {\n    assertIsOneOf(readingDirection, 'readingDirection', ReadingDirection);\n    const direction = PDFName.of(readingDirection);\n    this.dict.set(PDFName.of('Direction'), direction);\n  }\n\n  /**\n   * Choose the page scaling option that should be selected when a print dialog\n   * is displayed for this document.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument, PrintScaling } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   * viewerPrefs.setPrintScaling(PrintScaling.None)\n   * ```\n   *\n   * @param printScaling The print scaling option.\n   */\n  setPrintScaling(printScaling: PrintScaling) {\n    assertIsOneOf(printScaling, 'printScaling', PrintScaling);\n    const scaling = PDFName.of(printScaling);\n    this.dict.set(PDFName.of('PrintScaling'), scaling);\n  }\n\n  /**\n   * Choose the paper handling option that should be selected by default in the\n   * print dialog.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument, Duplex } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   * viewerPrefs.setDuplex(Duplex.DuplexFlipShortEdge)\n   * ```\n   *\n   * @param duplex The double or single sided printing option.\n   */\n  setDuplex(duplex: Duplex) {\n    assertIsOneOf(duplex, 'duplex', Duplex);\n    const dup = PDFName.of(duplex);\n    this.dict.set(PDFName.of('Duplex'), dup);\n  }\n\n  /**\n   * Choose whether the PDF document's page size should be used to select the\n   * input paper tray when printing. This setting influences only the preset\n   * values used to populate the print dialog presented by a PDF reader.\n   *\n   * If PickTrayByPDFSize is true, the check box in the print dialog associated\n   * with input paper tray should be checked. This setting has no effect on\n   * operating systems that do not provide the ability to pick the input tray\n   * by size.\n   *\n   * @param pickTrayByPDFSize `true` if the document's page size should be used\n   *                          to select the input paper tray.\n   */\n  setPickTrayByPDFSize(pickTrayByPDFSize: boolean) {\n    const PickTrayByPDFSize = this.dict.context.obj(pickTrayByPDFSize);\n    this.dict.set(PDFName.of('PickTrayByPDFSize'), PickTrayByPDFSize);\n  }\n\n  /**\n   * Choose the page numbers used to initialize the print dialog box when the\n   * file is printed. The first page of the PDF file is denoted by 0.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * const viewerPrefs = pdfDoc.catalog.getOrCreateViewerPreferences()\n   *\n   * // We can set the default print range to only the first page\n   * viewerPrefs.setPrintPageRange({ start: 0, end: 0 })\n   *\n   * // Or we can supply noncontiguous ranges (e.g. pages 1, 3, and 5-7)\n   * viewerPrefs.setPrintPageRange([\n   *   { start: 0, end: 0 },\n   *   { start: 2, end: 2 },\n   *   { start: 4, end: 6 },\n   * ])\n   * ```\n   *\n   * @param printPageRange An object or array of objects, each with the\n   *                       properties `start` and `end`, denoting a range of\n   *                       page indices.\n   */\n  setPrintPageRange(printPageRange: PageRange[] | PageRange) {\n    if (!Array.isArray(printPageRange)) printPageRange = [printPageRange];\n\n    const flatRange: number[] = [];\n    for (let idx = 0, len = printPageRange.length; idx < len; idx++) {\n      flatRange.push(printPageRange[idx].start);\n      flatRange.push(printPageRange[idx].end);\n    }\n\n    assertEachIs(flatRange, 'printPageRange', ['number']);\n\n    const pageRanges = this.dict.context.obj(flatRange);\n    this.dict.set(PDFName.of('PrintPageRange'), pageRanges);\n  }\n\n  /**\n   * Choose the default number of copies to be printed when the print dialog is\n   * opened for this file.\n   * @param numCopies The default number of copies.\n   */\n  setNumCopies(numCopies: number) {\n    assertRange(numCopies, 'numCopies', 1, Number.MAX_VALUE);\n    assertInteger(numCopies, 'numCopies');\n    const NumCopies = this.dict.context.obj(numCopies);\n    this.dict.set(PDFName.of('NumCopies'), NumCopies);\n  }\n}\n\nexport default ViewerPreferences;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { findLastMatch } from 'src/utils';\nimport { MissingDAEntryError, MissingTfOperatorError } from 'src/core/errors';\n\n// Examples:\n//   `/Helv 12 Tf` -> ['Helv', '12']\n//   `/HeBo 8.00 Tf` -> ['HeBo', '8.00']\n//   `/HeBo Tf` -> ['HeBo', undefined]\nconst tfRegex = /\\/([^\\0\\t\\n\\f\\r\\ ]+)[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]+Tf/;\n\nclass PDFAcroField {\n  readonly dict: PDFDict;\n  readonly ref: PDFRef;\n\n  protected constructor(dict: PDFDict, ref: PDFRef) {\n    this.dict = dict;\n    this.ref = ref;\n  }\n\n  T(): PDFString | PDFHexString | undefined {\n    return this.dict.lookupMaybe(PDFName.of('T'), PDFString, PDFHexString);\n  }\n\n  Ff(): PDFNumber | undefined {\n    const numberOrRef = this.getInheritableAttribute(PDFName.of('Ff'));\n    return this.dict.context.lookupMaybe(numberOrRef, PDFNumber);\n  }\n\n  V(): PDFObject | undefined {\n    const valueOrRef = this.getInheritableAttribute(PDFName.of('V'));\n    return this.dict.context.lookup(valueOrRef);\n  }\n\n  Kids(): PDFArray | undefined {\n    return this.dict.lookupMaybe(PDFName.of('Kids'), PDFArray);\n  }\n\n  // Parent(): PDFDict | undefined {\n  //   return this.dict.lookupMaybe(PDFName.of('Parent'), PDFDict);\n  // }\n\n  DA(): PDFString | PDFHexString | undefined {\n    const da = this.dict.lookup(PDFName.of('DA'));\n    if (da instanceof PDFString || da instanceof PDFHexString) return da;\n    return undefined;\n  }\n\n  setKids(kids: PDFObject[]) {\n    this.dict.set(PDFName.of('Kids'), this.dict.context.obj(kids));\n  }\n\n  getParent(): PDFAcroField | undefined {\n    // const parent = this.Parent();\n    // if (!parent) return undefined;\n    // return new PDFAcroField(parent);\n\n    const parentRef = this.dict.get(PDFName.of('Parent'));\n    if (parentRef instanceof PDFRef) {\n      const parent = this.dict.lookup(PDFName.of('Parent'), PDFDict);\n      return new PDFAcroField(parent, parentRef);\n    }\n\n    return undefined;\n  }\n\n  setParent(parent: PDFRef | undefined) {\n    if (!parent) this.dict.delete(PDFName.of('Parent'));\n    else this.dict.set(PDFName.of('Parent'), parent);\n  }\n\n  getFullyQualifiedName(): string | undefined {\n    const parent = this.getParent();\n    if (!parent) return this.getPartialName();\n    return `${parent.getFullyQualifiedName()}.${this.getPartialName()}`;\n  }\n\n  getPartialName(): string | undefined {\n    return this.T()?.decodeText();\n  }\n\n  setPartialName(partialName: string | undefined) {\n    if (!partialName) this.dict.delete(PDFName.of('T'));\n    else this.dict.set(PDFName.of('T'), PDFHexString.fromText(partialName));\n  }\n\n  setDefaultAppearance(appearance: string) {\n    this.dict.set(PDFName.of('DA'), PDFString.of(appearance));\n  }\n\n  getDefaultAppearance(): string | undefined {\n    const DA = this.DA();\n\n    if (DA instanceof PDFHexString) {\n      return DA.decodeText();\n    }\n\n    return DA?.asString();\n  }\n\n  setFontSize(fontSize: number) {\n    const name = this.getFullyQualifiedName() ?? '';\n\n    const da = this.getDefaultAppearance();\n    if (!da) throw new MissingDAEntryError(name);\n\n    const daMatch = findLastMatch(da, tfRegex);\n    if (!daMatch.match) throw new MissingTfOperatorError(name);\n\n    const daStart = da.slice(0, daMatch.pos - daMatch.match[0].length);\n    const daEnd = daMatch.pos <= da.length ? da.slice(daMatch.pos) : '';\n    const fontName = daMatch.match[1];\n    const modifiedDa = `${daStart} /${fontName} ${fontSize} Tf ${daEnd}`;\n\n    this.setDefaultAppearance(modifiedDa);\n  }\n\n  getFlags(): number {\n    return this.Ff()?.asNumber() ?? 0;\n  }\n\n  setFlags(flags: number) {\n    this.dict.set(PDFName.of('Ff'), PDFNumber.of(flags));\n  }\n\n  hasFlag(flag: number): boolean {\n    const flags = this.getFlags();\n    return (flags & flag) !== 0;\n  }\n\n  setFlag(flag: number) {\n    const flags = this.getFlags();\n    this.setFlags(flags | flag);\n  }\n\n  clearFlag(flag: number) {\n    const flags = this.getFlags();\n    this.setFlags(flags & ~flag);\n  }\n\n  setFlagTo(flag: number, enable: boolean) {\n    if (enable) this.setFlag(flag);\n    else this.clearFlag(flag);\n  }\n\n  getInheritableAttribute(name: PDFName): PDFObject | undefined {\n    let attribute: PDFObject | undefined;\n    this.ascend((node) => {\n      if (!attribute) attribute = node.dict.get(name);\n    });\n    return attribute;\n  }\n\n  ascend(visitor: (node: PDFAcroField) => any): void {\n    visitor(this);\n    const parent = this.getParent();\n    if (parent) parent.ascend(visitor);\n  }\n}\n\nexport default PDFAcroField;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\n\n// TODO: Also handle the `/S` and `/D` entries\nclass BorderStyle {\n  readonly dict: PDFDict;\n\n  static fromDict = (dict: PDFDict): BorderStyle => new BorderStyle(dict);\n\n  protected constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  W(): PDFNumber | undefined {\n    const W = this.dict.lookup(PDFName.of('W'));\n    if (W instanceof PDFNumber) return W;\n    return undefined;\n  }\n\n  getWidth(): number | undefined {\n    return this.W()?.asNumber() ?? 1;\n  }\n\n  setWidth(width: number) {\n    const W = this.dict.context.obj(width);\n    this.dict.set(PDFName.of('W'), W);\n  }\n}\n\nexport default BorderStyle;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFNumber from 'src/core/objects/PDFNumber';\n\nclass PDFAnnotation {\n  readonly dict: PDFDict;\n\n  static fromDict = (dict: PDFDict): PDFAnnotation => new PDFAnnotation(dict);\n\n  protected constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  // This is technically required by the PDF spec\n  Rect(): PDFArray | undefined {\n    return this.dict.lookup(PDFName.of('Rect'), PDFArray);\n  }\n\n  AP(): PDFDict | undefined {\n    return this.dict.lookupMaybe(PDFName.of('AP'), PDFDict);\n  }\n\n  F(): PDFNumber | undefined {\n    const numberOrRef = this.dict.lookup(PDFName.of('F'));\n    return this.dict.context.lookupMaybe(numberOrRef, PDFNumber);\n  }\n\n  getRectangle(): { x: number; y: number; width: number; height: number } {\n    const Rect = this.Rect();\n    return Rect?.asRectangle() ?? { x: 0, y: 0, width: 0, height: 0 };\n  }\n\n  setRectangle(rect: { x: number; y: number; width: number; height: number }) {\n    const { x, y, width, height } = rect;\n    const Rect = this.dict.context.obj([x, y, x + width, y + height]);\n    this.dict.set(PDFName.of('Rect'), Rect);\n  }\n\n  getAppearanceState(): PDFName | undefined {\n    const AS = this.dict.lookup(PDFName.of('AS'));\n    if (AS instanceof PDFName) return AS;\n    return undefined;\n  }\n\n  setAppearanceState(state: PDFName) {\n    this.dict.set(PDFName.of('AS'), state);\n  }\n\n  setAppearances(appearances: PDFDict) {\n    this.dict.set(PDFName.of('AP'), appearances);\n  }\n\n  ensureAP(): PDFDict {\n    let AP = this.AP();\n    if (!AP) {\n      AP = this.dict.context.obj({});\n      this.dict.set(PDFName.of('AP'), AP);\n    }\n    return AP;\n  }\n\n  getNormalAppearance(): PDFRef | PDFDict {\n    const AP = this.ensureAP();\n    const N = AP.get(PDFName.of('N'));\n    if (N instanceof PDFRef || N instanceof PDFDict) return N;\n\n    throw new Error(`Unexpected N type: ${N?.constructor.name}`);\n  }\n\n  /** @param appearance A PDFDict or PDFStream (direct or ref) */\n  setNormalAppearance(appearance: PDFRef | PDFDict) {\n    const AP = this.ensureAP();\n    AP.set(PDFName.of('N'), appearance);\n  }\n\n  /** @param appearance A PDFDict or PDFStream (direct or ref) */\n  setRolloverAppearance(appearance: PDFRef | PDFDict) {\n    const AP = this.ensureAP();\n    AP.set(PDFName.of('R'), appearance);\n  }\n\n  /** @param appearance A PDFDict or PDFStream (direct or ref) */\n  setDownAppearance(appearance: PDFRef | PDFDict) {\n    const AP = this.ensureAP();\n    AP.set(PDFName.of('D'), appearance);\n  }\n\n  removeRolloverAppearance() {\n    const AP = this.AP();\n    AP?.delete(PDFName.of('R'));\n  }\n\n  removeDownAppearance() {\n    const AP = this.AP();\n    AP?.delete(PDFName.of('D'));\n  }\n\n  getAppearances():\n    | {\n        normal: PDFStream | PDFDict;\n        rollover?: PDFStream | PDFDict;\n        down?: PDFStream | PDFDict;\n      }\n    | undefined {\n    const AP = this.AP();\n\n    if (!AP) return undefined;\n\n    const N = AP.lookup(PDFName.of('N'), PDFDict, PDFStream);\n    const R = AP.lookupMaybe(PDFName.of('R'), PDFDict, PDFStream);\n    const D = AP.lookupMaybe(PDFName.of('D'), PDFDict, PDFStream);\n\n    return { normal: N, rollover: R, down: D };\n  }\n\n  getFlags(): number {\n    return this.F()?.asNumber() ?? 0;\n  }\n\n  setFlags(flags: number) {\n    this.dict.set(PDFName.of('F'), PDFNumber.of(flags));\n  }\n\n  hasFlag(flag: number): boolean {\n    const flags = this.getFlags();\n    return (flags & flag) !== 0;\n  }\n\n  setFlag(flag: number) {\n    const flags = this.getFlags();\n    this.setFlags(flags | flag);\n  }\n\n  clearFlag(flag: number) {\n    const flags = this.getFlags();\n    this.setFlags(flags & ~flag);\n  }\n\n  setFlagTo(flag: number, enable: boolean) {\n    if (enable) this.setFlag(flag);\n    else this.clearFlag(flag);\n  }\n}\n\nexport default PDFAnnotation;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFString from 'src/core/objects/PDFString';\n\nclass AppearanceCharacteristics {\n  readonly dict: PDFDict;\n\n  static fromDict = (dict: PDFDict): AppearanceCharacteristics =>\n    new AppearanceCharacteristics(dict);\n\n  protected constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  R(): PDFNumber | undefined {\n    const R = this.dict.lookup(PDFName.of('R'));\n    if (R instanceof PDFNumber) return R;\n    return undefined;\n  }\n\n  BC(): PDFArray | undefined {\n    const BC = this.dict.lookup(PDFName.of('BC'));\n    if (BC instanceof PDFArray) return BC;\n    return undefined;\n  }\n\n  BG(): PDFArray | undefined {\n    const BG = this.dict.lookup(PDFName.of('BG'));\n    if (BG instanceof PDFArray) return BG;\n    return undefined;\n  }\n\n  CA(): PDFHexString | PDFString | undefined {\n    const CA = this.dict.lookup(PDFName.of('CA'));\n    if (CA instanceof PDFHexString || CA instanceof PDFString) return CA;\n    return undefined;\n  }\n\n  RC(): PDFHexString | PDFString | undefined {\n    const RC = this.dict.lookup(PDFName.of('RC'));\n    if (RC instanceof PDFHexString || RC instanceof PDFString) return RC;\n    return undefined;\n  }\n\n  AC(): PDFHexString | PDFString | undefined {\n    const AC = this.dict.lookup(PDFName.of('AC'));\n    if (AC instanceof PDFHexString || AC instanceof PDFString) return AC;\n    return undefined;\n  }\n\n  getRotation(): number | undefined {\n    return this.R()?.asNumber();\n  }\n\n  getBorderColor(): number[] | undefined {\n    const BC = this.BC();\n\n    if (!BC) return undefined;\n\n    const components: number[] = [];\n    for (let idx = 0, len = BC?.size(); idx < len; idx++) {\n      const component = BC.get(idx);\n      if (component instanceof PDFNumber) components.push(component.asNumber());\n    }\n\n    return components;\n  }\n\n  getBackgroundColor(): number[] | undefined {\n    const BG = this.BG();\n\n    if (!BG) return undefined;\n\n    const components: number[] = [];\n    for (let idx = 0, len = BG?.size(); idx < len; idx++) {\n      const component = BG.get(idx);\n      if (component instanceof PDFNumber) components.push(component.asNumber());\n    }\n\n    return components;\n  }\n\n  getCaptions(): { normal?: string; rollover?: string; down?: string } {\n    const CA = this.CA();\n    const RC = this.RC();\n    const AC = this.AC();\n\n    return {\n      normal: CA?.decodeText(),\n      rollover: RC?.decodeText(),\n      down: AC?.decodeText(),\n    };\n  }\n\n  setRotation(rotation: number) {\n    const R = this.dict.context.obj(rotation);\n    this.dict.set(PDFName.of('R'), R);\n  }\n\n  setBorderColor(color: number[]) {\n    const BC = this.dict.context.obj(color);\n    this.dict.set(PDFName.of('BC'), BC);\n  }\n\n  setBackgroundColor(color: number[]) {\n    const BG = this.dict.context.obj(color);\n    this.dict.set(PDFName.of('BG'), BG);\n  }\n\n  setCaptions(captions: { normal: string; rollover?: string; down?: string }) {\n    const CA = PDFHexString.fromText(captions.normal);\n    this.dict.set(PDFName.of('CA'), CA);\n\n    if (captions.rollover) {\n      const RC = PDFHexString.fromText(captions.rollover);\n      this.dict.set(PDFName.of('RC'), RC);\n    } else {\n      this.dict.delete(PDFName.of('RC'));\n    }\n\n    if (captions.down) {\n      const AC = PDFHexString.fromText(captions.down);\n      this.dict.set(PDFName.of('AC'), AC);\n    } else {\n      this.dict.delete(PDFName.of('AC'));\n    }\n  }\n}\n\nexport default AppearanceCharacteristics;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport BorderStyle from 'src/core/annotation/BorderStyle';\nimport PDFAnnotation from 'src/core/annotation/PDFAnnotation';\nimport AppearanceCharacteristics from 'src/core/annotation/AppearanceCharacteristics';\n\nclass PDFWidgetAnnotation extends PDFAnnotation {\n  static fromDict = (dict: PDFDict): PDFWidgetAnnotation =>\n    new PDFWidgetAnnotation(dict);\n\n  static create = (context: PDFContext, parent: PDFRef) => {\n    const dict = context.obj({\n      Type: 'Annot',\n      Subtype: 'Widget',\n      Rect: [0, 0, 0, 0],\n      Parent: parent,\n    });\n    return new PDFWidgetAnnotation(dict);\n  };\n\n  MK(): PDFDict | undefined {\n    const MK = this.dict.lookup(PDFName.of('MK'));\n    if (MK instanceof PDFDict) return MK;\n    return undefined;\n  }\n\n  BS(): PDFDict | undefined {\n    const BS = this.dict.lookup(PDFName.of('BS'));\n    if (BS instanceof PDFDict) return BS;\n    return undefined;\n  }\n\n  DA(): PDFString | PDFHexString | undefined {\n    const da = this.dict.lookup(PDFName.of('DA'));\n    if (da instanceof PDFString || da instanceof PDFHexString) return da;\n    return undefined;\n  }\n\n  P(): PDFRef | undefined {\n    const P = this.dict.get(PDFName.of('P'));\n    if (P instanceof PDFRef) return P;\n    return undefined;\n  }\n\n  setP(page: PDFRef) {\n    this.dict.set(PDFName.of('P'), page);\n  }\n\n  setDefaultAppearance(appearance: string) {\n    this.dict.set(PDFName.of('DA'), PDFString.of(appearance));\n  }\n\n  getDefaultAppearance(): string | undefined {\n    const DA = this.DA();\n\n    if (DA instanceof PDFHexString) {\n      return DA.decodeText();\n    }\n\n    return DA?.asString();\n  }\n\n  getAppearanceCharacteristics(): AppearanceCharacteristics | undefined {\n    const MK = this.MK();\n    if (MK) return AppearanceCharacteristics.fromDict(MK);\n    return undefined;\n  }\n\n  getOrCreateAppearanceCharacteristics(): AppearanceCharacteristics {\n    const MK = this.MK();\n    if (MK) return AppearanceCharacteristics.fromDict(MK);\n\n    const ac = AppearanceCharacteristics.fromDict(this.dict.context.obj({}));\n    this.dict.set(PDFName.of('MK'), ac.dict);\n    return ac;\n  }\n\n  getBorderStyle(): BorderStyle | undefined {\n    const BS = this.BS();\n    if (BS) return BorderStyle.fromDict(BS);\n    return undefined;\n  }\n\n  getOrCreateBorderStyle(): BorderStyle {\n    const BS = this.BS();\n    if (BS) return BorderStyle.fromDict(BS);\n\n    const bs = BorderStyle.fromDict(this.dict.context.obj({}));\n    this.dict.set(PDFName.of('BS'), bs.dict);\n    return bs;\n  }\n\n  getOnValue(): PDFName | undefined {\n    const normal = this.getAppearances()?.normal;\n\n    if (normal instanceof PDFDict) {\n      const keys = normal.keys();\n      for (let idx = 0, len = keys.length; idx < len; idx++) {\n        const key = keys[idx];\n        if (key !== PDFName.of('Off')) return key;\n      }\n    }\n\n    return undefined;\n  }\n}\n\nexport default PDFWidgetAnnotation;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFWidgetAnnotation from 'src/core/annotation/PDFWidgetAnnotation';\nimport { IndexOutOfBoundsError } from 'src/core/errors';\n\nclass PDFAcroTerminal extends PDFAcroField {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroTerminal(dict, ref);\n\n  FT(): PDFName {\n    const nameOrRef = this.getInheritableAttribute(PDFName.of('FT'));\n    return this.dict.context.lookup(nameOrRef, PDFName);\n  }\n\n  getWidgets(): PDFWidgetAnnotation[] {\n    const kidDicts = this.Kids();\n\n    // This field is itself a widget\n    if (!kidDicts) return [PDFWidgetAnnotation.fromDict(this.dict)];\n\n    // This field's kids are its widgets\n    const widgets = new Array<PDFWidgetAnnotation>(kidDicts.size());\n    for (let idx = 0, len = kidDicts.size(); idx < len; idx++) {\n      const dict = kidDicts.lookup(idx, PDFDict);\n      widgets[idx] = PDFWidgetAnnotation.fromDict(dict);\n    }\n\n    return widgets;\n  }\n\n  addWidget(ref: PDFRef) {\n    const { Kids } = this.normalizedEntries();\n    Kids.push(ref);\n  }\n\n  removeWidget(idx: number) {\n    const kidDicts = this.Kids();\n\n    if (!kidDicts) {\n      // This field is itself a widget\n      if (idx !== 0) throw new IndexOutOfBoundsError(idx, 0, 0);\n      this.setKids([]);\n    } else {\n      // This field's kids are its widgets\n      if (idx < 0 || idx > kidDicts.size()) {\n        throw new IndexOutOfBoundsError(idx, 0, kidDicts.size());\n      }\n      kidDicts.remove(idx);\n    }\n  }\n\n  normalizedEntries() {\n    let Kids = this.Kids();\n\n    // If this field is itself a widget (because it was only rendered once in\n    // the document, so the field and widget properties were merged) then we\n    // add itself to the `Kids` array. The alternative would be to try\n    // splitting apart the widget properties and creating a separate object\n    // for them.\n    if (!Kids) {\n      Kids = this.dict.context.obj([this.ref]);\n      this.dict.set(PDFName.of('Kids'), Kids);\n    }\n\n    return { Kids };\n  }\n}\n\nexport default PDFAcroTerminal;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport { IndexOutOfBoundsError } from 'src/core/errors';\n\nclass PDFAcroButton extends PDFAcroTerminal {\n  Opt(): PDFString | PDFHexString | PDFArray | undefined {\n    return this.dict.lookupMaybe(\n      PDFName.of('Opt'),\n      PDFString,\n      PDFHexString,\n      PDFArray,\n    );\n  }\n\n  setOpt(opt: PDFObject[]) {\n    this.dict.set(PDFName.of('Opt'), this.dict.context.obj(opt));\n  }\n\n  getExportValues(): (PDFString | PDFHexString)[] | undefined {\n    const opt = this.Opt();\n\n    if (!opt) return undefined;\n\n    if (opt instanceof PDFString || opt instanceof PDFHexString) {\n      return [opt];\n    }\n\n    const values: (PDFString | PDFHexString)[] = [];\n    for (let idx = 0, len = opt.size(); idx < len; idx++) {\n      const value = opt.lookup(idx);\n      if (value instanceof PDFString || value instanceof PDFHexString) {\n        values.push(value);\n      }\n    }\n\n    return values;\n  }\n\n  removeExportValue(idx: number) {\n    const opt = this.Opt();\n\n    if (!opt) return;\n\n    if (opt instanceof PDFString || opt instanceof PDFHexString) {\n      if (idx !== 0) throw new IndexOutOfBoundsError(idx, 0, 0);\n      this.setOpt([]);\n    } else {\n      if (idx < 0 || idx > opt.size()) {\n        throw new IndexOutOfBoundsError(idx, 0, opt.size());\n      }\n      opt.remove(idx);\n    }\n  }\n\n  // Enforce use use of /Opt even if it isn't strictly necessary\n  normalizeExportValues() {\n    const exportValues = this.getExportValues() ?? [];\n\n    const Opt: (PDFString | PDFHexString)[] = [];\n\n    const widgets = this.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const exportVal =\n        exportValues[idx] ??\n        PDFHexString.fromText(widget.getOnValue()?.decodeText() ?? '');\n      Opt.push(exportVal);\n    }\n\n    this.setOpt(Opt);\n  }\n\n  /**\n   * Reuses existing opt if one exists with the same value (assuming\n   * `useExistingIdx` is `true`). Returns index of existing (or new) opt.\n   */\n  addOpt(opt: PDFHexString | PDFString, useExistingOptIdx: boolean): number {\n    this.normalizeExportValues();\n\n    const optText = opt.decodeText();\n\n    let existingIdx: number | undefined;\n    if (useExistingOptIdx) {\n      const exportValues = this.getExportValues() ?? [];\n      for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n        const exportVal = exportValues[idx];\n        if (exportVal.decodeText() === optText) existingIdx = idx;\n      }\n    }\n\n    const Opt = this.Opt() as PDFArray;\n    Opt.push(opt);\n\n    return existingIdx ?? Opt.size() - 1;\n  }\n\n  addWidgetWithOpt(\n    widget: PDFRef,\n    opt: PDFHexString | PDFString,\n    useExistingOptIdx: boolean,\n  ) {\n    const optIdx = this.addOpt(opt, useExistingOptIdx);\n    const apStateValue = PDFName.of(String(optIdx));\n    this.addWidget(widget);\n    return apStateValue;\n  }\n}\n\nexport default PDFAcroButton;\n","import PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport { InvalidAcroFieldValueError } from 'src/core/errors';\n\nclass PDFAcroCheckBox extends PDFAcroButton {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroCheckBox(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Btn',\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroCheckBox(dict, ref);\n  };\n\n  setValue(value: PDFName) {\n    const onValue = this.getOnValue() ?? PDFName.of('Yes');\n    if (value !== onValue && value !== PDFName.of('Off')) {\n      throw new InvalidAcroFieldValueError();\n    }\n\n    this.dict.set(PDFName.of('V'), value);\n\n    const widgets = this.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n      widget.setAppearanceState(state);\n    }\n  }\n\n  getValue(): PDFName {\n    const v = this.V();\n    if (v instanceof PDFName) return v;\n    return PDFName.of('Off');\n  }\n\n  getOnValue(): PDFName | undefined {\n    const [widget] = this.getWidgets();\n    return widget?.getOnValue();\n  }\n}\n\nexport default PDFAcroCheckBox;\n","const flag = (bitIndex: number) => 1 << bitIndex;\n\n/** From PDF spec table 221 */\nexport enum AcroFieldFlags {\n  /**\n   * If set, the user may not change the value of the field. Any associated\n   * widget annotations will not interact with the user; that is, they will not\n   * respond to mouse clicks or change their appearance in response to mouse\n   * motions. This flag is useful for fields whose values are computed or\n   * imported from a database.\n   */\n  ReadOnly = flag(1 - 1),\n\n  /**\n   * If set, the field shall have a value at the time it is exported by a\n   * submit-form action (see 12.7.5.2, \"Submit-Form Action\").\n   */\n  Required = flag(2 - 1),\n\n  /**\n   * If set, the field shall not be exported by a submit-form action\n   * (see 12.7.5.2, \"Submit-Form Action\").\n   */\n  NoExport = flag(3 - 1),\n}\n\n/** From PDF spec table 226 */\nexport enum AcroButtonFlags {\n  /**\n   * (Radio buttons only) If set, exactly one radio button shall be selected at\n   * all times; selecting the currently selected button has no effect. If clear,\n   * clicking the selected button deselects it, leaving no button selected.\n   */\n  NoToggleToOff = flag(15 - 1),\n\n  /**\n   * If set, the field is a set of radio buttons; if clear, the field is a check\n   * box. This flag may be set only if the Pushbutton flag is clear.\n   */\n  Radio = flag(16 - 1),\n\n  /**\n   * If set, the field is a pushbutton that does not retain a permanent value.\n   */\n  PushButton = flag(17 - 1),\n\n  /**\n   * If set, a group of radio buttons within a radio button field that use the\n   * same value for the on state will turn on and off in unison; that is if one\n   * is checked, they are all checked. If clear, the buttons are mutually\n   * exclusive (the same behavior as HTML radio buttons).\n   */\n  RadiosInUnison = flag(26 - 1),\n}\n\n/** From PDF spec table 228 */\nexport enum AcroTextFlags {\n  /**\n   * If set, the field may contain multiple lines of text; if clear, the field's\n   * text shall be restricted to a single line.\n   */\n  Multiline = flag(13 - 1),\n\n  /**\n   * If set, the field is intended for entering a secure password that should\n   * not be echoed visibly to the screen. Characters typed from the keyboard\n   * shall instead be echoed in some unreadable form, such as asterisks or\n   * bullet characters.\n   * > NOTE   To protect password confidentiality, readers should never store\n   * >        the value of the text field in the PDF file if this flag is set.\n   */\n  Password = flag(14 - 1),\n\n  /**\n   * If set, the text entered in the field represents the pathname of a file\n   * whose contents shall be submitted as the value of the field.\n   */\n  FileSelect = flag(21 - 1),\n\n  /**\n   * If set, text entered in the field shall not be spell-checked.\n   */\n  DoNotSpellCheck = flag(23 - 1),\n\n  /**\n   * If set, the field shall not scroll (horizontally for single-line fields,\n   * vertically for multiple-line fields) to accommodate more text than fits\n   * within its annotation rectangle. Once the field is full, no further text\n   * shall be accepted for interactive form filling; for non-interactive form\n   * filling, the filler should take care not to add more character than will\n   * visibly fit in the defined area.\n   */\n  DoNotScroll = flag(24 - 1),\n\n  /**\n   * May be set only if the MaxLen entry is present in the text field dictionary\n   * (see Table 229) and if the Multiline, Password, and FileSelect flags are\n   * clear. If set, the field shall be automatically divided into as many\n   * equally spaced positions, or combs, as the value of MaxLen, and the text\n   * is laid out into those combs.\n   */\n  Comb = flag(25 - 1),\n\n  /**\n   * If set, the value of this field shall be a rich text string\n   * (see 12.7.3.4, \"Rich Text Strings\"). If the field has a value, the RV\n   * entry of the field dictionary (Table 222) shall specify the rich text\n   * string.\n   */\n  RichText = flag(26 - 1),\n}\n\n/** From PDF spec table 230 */\nexport enum AcroChoiceFlags {\n  /**\n   * If set, the field is a combo box; if clear, the field is a list box.\n   */\n  Combo = flag(18 - 1),\n\n  /**\n   * If set, the combo box shall include an editable text box as well as a\n   * drop-down list; if clear, it shall include only a drop-down list. This\n   * flag shall be used only if the Combo flag is set.\n   */\n  Edit = flag(19 - 1),\n\n  /**\n   * If set, the field's option items shall be sorted alphabetically. This flag\n   * is intended for use by writers, not by readers. Conforming readers shall\n   * display the options in the order in which they occur in the Opt array\n   * (see Table 231).\n   */\n  Sort = flag(20 - 1),\n\n  /**\n   * If set, more than one of the field's option items may be selected\n   * simultaneously; if clear, at most one item shall be selected.\n   */\n  MultiSelect = flag(22 - 1),\n\n  /**\n   * If set, text entered in the field shall not be spell-checked. This flag\n   * shall not be used unless the Combo and Edit flags are both set.\n   */\n  DoNotSpellCheck = flag(23 - 1),\n\n  /**\n   * If set, the new value shall be committed as soon as a selection is made\n   * (commonly with the pointing device). In this case, supplying a value for\n   * a field involves three actions: selecting the field for fill-in,\n   * selecting a choice for the fill-in value, and leaving that field, which\n   * finalizes or \"commits\" the data choice and triggers any actions associated\n   * with the entry or changing of this data. If this flag is on, then\n   * processing does not wait for leaving the field action to occur, but\n   * immediately proceeds to the third step.\n   *\n   * This option enables applications to perform an action once a selection is\n   * made, without requiring the user to exit the field. If clear, the new\n   * value is not committed until the user exits the field.\n   */\n  CommitOnSelChange = flag(27 - 1),\n}\n","import PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport { AcroChoiceFlags } from 'src/core/acroform/flags';\nimport {\n  InvalidAcroFieldValueError,\n  MultiSelectValueError,\n} from 'src/core/errors';\n\nclass PDFAcroChoice extends PDFAcroTerminal {\n  setValues(values: (PDFString | PDFHexString)[]) {\n    if (\n      this.hasFlag(AcroChoiceFlags.Combo) &&\n      !this.hasFlag(AcroChoiceFlags.Edit) &&\n      !this.valuesAreValid(values)\n    ) {\n      throw new InvalidAcroFieldValueError();\n    }\n\n    if (values.length === 0) {\n      this.dict.delete(PDFName.of('V'));\n    }\n    if (values.length === 1) {\n      this.dict.set(PDFName.of('V'), values[0]);\n    }\n    if (values.length > 1) {\n      if (!this.hasFlag(AcroChoiceFlags.MultiSelect)) {\n        throw new MultiSelectValueError();\n      }\n      this.dict.set(PDFName.of('V'), this.dict.context.obj(values));\n    }\n\n    this.updateSelectedIndices(values);\n  }\n\n  valuesAreValid(values: (PDFString | PDFHexString)[]): boolean {\n    const options = this.getOptions();\n    for (let idx = 0, len = values.length; idx < len; idx++) {\n      const val = values[idx].decodeText();\n      if (!options.find((o) => val === (o.display || o.value).decodeText())) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  updateSelectedIndices(values: (PDFString | PDFHexString)[]) {\n    if (values.length > 1) {\n      const indices = new Array<number>(values.length);\n      const options = this.getOptions();\n      for (let idx = 0, len = values.length; idx < len; idx++) {\n        const val = values[idx].decodeText();\n        indices[idx] = options.findIndex(\n          (o) => val === (o.display || o.value).decodeText(),\n        );\n      }\n      this.dict.set(PDFName.of('I'), this.dict.context.obj(indices.sort()));\n    } else {\n      this.dict.delete(PDFName.of('I'));\n    }\n  }\n\n  getValues(): (PDFString | PDFHexString)[] {\n    const v = this.V();\n\n    if (v instanceof PDFString || v instanceof PDFHexString) return [v];\n\n    if (v instanceof PDFArray) {\n      const values: (PDFString | PDFHexString)[] = [];\n\n      for (let idx = 0, len = v.size(); idx < len; idx++) {\n        const value = v.lookup(idx);\n        if (value instanceof PDFString || value instanceof PDFHexString) {\n          values.push(value);\n        }\n      }\n\n      return values;\n    }\n\n    return [];\n  }\n\n  Opt(): PDFArray | PDFString | PDFHexString | undefined {\n    return this.dict.lookupMaybe(\n      PDFName.of('Opt'),\n      PDFString,\n      PDFHexString,\n      PDFArray,\n    );\n  }\n\n  setOptions(\n    options: {\n      value: PDFString | PDFHexString;\n      display?: PDFString | PDFHexString;\n    }[],\n  ) {\n    const newOpt = new Array<PDFArray>(options.length);\n    for (let idx = 0, len = options.length; idx < len; idx++) {\n      const { value, display } = options[idx];\n      newOpt[idx] = this.dict.context.obj([value, display || value]);\n    }\n    this.dict.set(PDFName.of('Opt'), this.dict.context.obj(newOpt));\n  }\n\n  getOptions(): {\n    value: PDFString | PDFHexString;\n    display: PDFString | PDFHexString;\n  }[] {\n    const Opt = this.Opt();\n\n    // Not supposed to happen - Opt _should_ always be `PDFArray | undefined`\n    if (Opt instanceof PDFString || Opt instanceof PDFHexString) {\n      return [{ value: Opt, display: Opt }];\n    }\n\n    if (Opt instanceof PDFArray) {\n      const res: {\n        value: PDFString | PDFHexString;\n        display: PDFString | PDFHexString;\n      }[] = [];\n\n      for (let idx = 0, len = Opt.size(); idx < len; idx++) {\n        const item = Opt.lookup(idx);\n\n        // If `item` is a string, use that as both the export and text value\n        if (item instanceof PDFString || item instanceof PDFHexString) {\n          res.push({ value: item, display: item });\n        }\n\n        // If `item` is an array of one, treat it the same as just a string,\n        // if it's an array of two then `item[0]` is the export value and\n        // `item[1]` is the text value\n        if (item instanceof PDFArray) {\n          if (item.size() > 0) {\n            const first = item.lookup(0, PDFString, PDFHexString);\n            const second = item.lookupMaybe(1, PDFString, PDFHexString);\n            res.push({ value: first, display: second || first });\n          }\n        }\n      }\n\n      return res;\n    }\n\n    return [];\n  }\n}\n\nexport default PDFAcroChoice;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { AcroChoiceFlags } from 'src/core/acroform/flags';\n\nclass PDFAcroComboBox extends PDFAcroChoice {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroComboBox(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Ch',\n      Ff: AcroChoiceFlags.Combo,\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroComboBox(dict, ref);\n  };\n}\n\nexport default PDFAcroComboBox;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\n\nclass PDFAcroNonTerminal extends PDFAcroField {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroNonTerminal(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({});\n    const ref = context.register(dict);\n    return new PDFAcroNonTerminal(dict, ref);\n  };\n\n  addField(field: PDFRef) {\n    const { Kids } = this.normalizedEntries();\n    Kids?.push(field);\n  }\n\n  normalizedEntries() {\n    let Kids = this.Kids();\n\n    if (!Kids) {\n      Kids = this.dict.context.obj([]);\n      this.dict.set(PDFName.of('Kids'), Kids);\n    }\n\n    return { Kids };\n  }\n}\n\nexport default PDFAcroNonTerminal;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\n\nclass PDFAcroSignature extends PDFAcroTerminal {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroSignature(dict, ref);\n}\n\nexport default PDFAcroSignature;\n","import PDFContext from 'src/core/PDFContext';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFString from 'src/core/objects/PDFString';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\n\nclass PDFAcroText extends PDFAcroTerminal {\n  static fromDict = (dict: PDFDict, ref: PDFRef) => new PDFAcroText(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Tx',\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroText(dict, ref);\n  };\n\n  MaxLen(): PDFNumber | undefined {\n    const maxLen = this.dict.lookup(PDFName.of('MaxLen'));\n    if (maxLen instanceof PDFNumber) return maxLen;\n    return undefined;\n  }\n\n  Q(): PDFNumber | undefined {\n    const q = this.dict.lookup(PDFName.of('Q'));\n    if (q instanceof PDFNumber) return q;\n    return undefined;\n  }\n\n  setMaxLength(maxLength: number) {\n    this.dict.set(PDFName.of('MaxLen'), PDFNumber.of(maxLength));\n  }\n\n  removeMaxLength() {\n    this.dict.delete(PDFName.of('MaxLen'));\n  }\n\n  getMaxLength(): number | undefined {\n    return this.MaxLen()?.asNumber();\n  }\n\n  setQuadding(quadding: 0 | 1 | 2) {\n    this.dict.set(PDFName.of('Q'), PDFNumber.of(quadding));\n  }\n\n  getQuadding(): number | undefined {\n    return this.Q()?.asNumber();\n  }\n\n  setValue(value: PDFHexString | PDFString) {\n    this.dict.set(PDFName.of('V'), value);\n\n    // const widgets = this.getWidgets();\n    // for (let idx = 0, len = widgets.length; idx < len; idx++) {\n    //   const widget = widgets[idx];\n    //   const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n    //   widget.setAppearanceState(state);\n    // }\n  }\n\n  removeValue() {\n    this.dict.delete(PDFName.of('V'));\n  }\n\n  getValue(): PDFString | PDFHexString | undefined {\n    const v = this.V();\n    if (v instanceof PDFString || v instanceof PDFHexString) return v;\n    return undefined;\n  }\n}\n\nexport default PDFAcroText;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { AcroButtonFlags } from 'src/core/acroform/flags';\n\nclass PDFAcroPushButton extends PDFAcroButton {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroPushButton(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Btn',\n      Ff: AcroButtonFlags.PushButton,\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroPushButton(dict, ref);\n  };\n}\n\nexport default PDFAcroPushButton;\n","import PDFRef from 'src/core/objects/PDFRef';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFContext from 'src/core/PDFContext';\nimport { AcroButtonFlags } from 'src/core/acroform/flags';\nimport { InvalidAcroFieldValueError } from 'src/core/errors';\n\nclass PDFAcroRadioButton extends PDFAcroButton {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroRadioButton(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Btn',\n      Ff: AcroButtonFlags.Radio,\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroRadioButton(dict, ref);\n  };\n\n  setValue(value: PDFName) {\n    const onValues = this.getOnValues();\n    if (!onValues.includes(value) && value !== PDFName.of('Off')) {\n      throw new InvalidAcroFieldValueError();\n    }\n\n    this.dict.set(PDFName.of('V'), value);\n\n    const widgets = this.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const state = widget.getOnValue() === value ? value : PDFName.of('Off');\n      widget.setAppearanceState(state);\n    }\n  }\n\n  getValue(): PDFName {\n    const v = this.V();\n    if (v instanceof PDFName) return v;\n    return PDFName.of('Off');\n  }\n\n  getOnValues(): PDFName[] {\n    const widgets = this.getWidgets();\n\n    const onValues: PDFName[] = [];\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const onValue = widgets[idx].getOnValue();\n      if (onValue) onValues.push(onValue);\n    }\n\n    return onValues;\n  }\n}\n\nexport default PDFAcroRadioButton;\n","import PDFDict from 'src/core/objects/PDFDict';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nclass PDFAcroListBox extends PDFAcroChoice {\n  static fromDict = (dict: PDFDict, ref: PDFRef) =>\n    new PDFAcroListBox(dict, ref);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({\n      FT: 'Ch',\n      Kids: [],\n    });\n    const ref = context.register(dict);\n    return new PDFAcroListBox(dict, ref);\n  };\n}\n\nexport default PDFAcroListBox;\n","import PDFObject from 'src/core/objects/PDFObject';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFAcroTerminal from 'src/core/acroform/PDFAcroTerminal';\nimport PDFAcroNonTerminal from 'src/core/acroform/PDFAcroNonTerminal';\nimport PDFAcroButton from 'src/core/acroform/PDFAcroButton';\nimport PDFAcroSignature from 'src/core/acroform/PDFAcroSignature';\nimport PDFAcroChoice from 'src/core/acroform/PDFAcroChoice';\nimport PDFAcroText from 'src/core/acroform/PDFAcroText';\nimport PDFAcroPushButton from 'src/core/acroform/PDFAcroPushButton';\nimport PDFAcroRadioButton from 'src/core/acroform/PDFAcroRadioButton';\nimport PDFAcroCheckBox from 'src/core/acroform/PDFAcroCheckBox';\nimport PDFAcroComboBox from 'src/core/acroform/PDFAcroComboBox';\nimport PDFAcroListBox from 'src/core/acroform/PDFAcroListBox';\nimport { AcroButtonFlags, AcroChoiceFlags } from 'src/core/acroform/flags';\n\nexport const createPDFAcroFields = (\n  kidDicts?: PDFArray,\n): [PDFAcroField, PDFRef][] => {\n  if (!kidDicts) return [];\n\n  const kids: [PDFAcroField, PDFRef][] = [];\n  for (let idx = 0, len = kidDicts.size(); idx < len; idx++) {\n    const ref = kidDicts.get(idx);\n    const dict = kidDicts.lookup(idx);\n    // if (dict instanceof PDFDict) kids.push(PDFAcroField.fromDict(dict));\n    if (ref instanceof PDFRef && dict instanceof PDFDict) {\n      kids.push([createPDFAcroField(dict, ref), ref]);\n    }\n  }\n\n  return kids;\n};\n\nexport const createPDFAcroField = (\n  dict: PDFDict,\n  ref: PDFRef,\n): PDFAcroField => {\n  const isNonTerminal = isNonTerminalAcroField(dict);\n  if (isNonTerminal) return PDFAcroNonTerminal.fromDict(dict, ref);\n  return createPDFAcroTerminal(dict, ref);\n};\n\n// TODO: Maybe just check if the dict is *not* a widget? That might be better.\n\n// According to the PDF spec:\n//\n//   > A field's children in the hierarchy may also include widget annotations\n//   > that define its appearance on the page. A field that has children that\n//   > are fields is called a non-terminal field. A field that does not have\n//   > children that are fields is called a terminal field.\n//\n// The spec is not entirely clear about how to determine whether a given\n// dictionary represents an acrofield or a widget annotation. So we will assume\n// that a dictionary is an acrofield if it is a member of the `/Kids` array\n// and it contains a `/T` entry (widgets do not have `/T` entries). This isn't\n// a bullet proof solution, because the `/T` entry is technically defined as\n// optional for acrofields by the PDF spec. But in practice all acrofields seem\n// to have a `/T` entry defined.\nconst isNonTerminalAcroField = (dict: PDFDict): boolean => {\n  const kids = dict.lookup(PDFName.of('Kids'));\n\n  if (kids instanceof PDFArray) {\n    for (let idx = 0, len = kids.size(); idx < len; idx++) {\n      const kid = kids.lookup(idx);\n      const kidIsField = kid instanceof PDFDict && kid.has(PDFName.of('T'));\n      if (kidIsField) return true;\n    }\n  }\n\n  return false;\n};\n\nconst createPDFAcroTerminal = (dict: PDFDict, ref: PDFRef): PDFAcroTerminal => {\n  const ftNameOrRef = getInheritableAttribute(dict, PDFName.of('FT'));\n  const type = dict.context.lookup(ftNameOrRef, PDFName);\n\n  if (type === PDFName.of('Btn')) return createPDFAcroButton(dict, ref);\n  if (type === PDFName.of('Ch')) return createPDFAcroChoice(dict, ref);\n  if (type === PDFName.of('Tx')) return PDFAcroText.fromDict(dict, ref);\n  if (type === PDFName.of('Sig')) return PDFAcroSignature.fromDict(dict, ref);\n\n  // We should never reach this line. But there are a lot of weird PDFs out\n  // there. So, just to be safe, we'll try to handle things gracefully instead\n  // of throwing an error.\n  return PDFAcroTerminal.fromDict(dict, ref);\n};\n\nconst createPDFAcroButton = (dict: PDFDict, ref: PDFRef): PDFAcroButton => {\n  const ffNumberOrRef = getInheritableAttribute(dict, PDFName.of('Ff'));\n  const ffNumber = dict.context.lookupMaybe(ffNumberOrRef, PDFNumber);\n  const flags = ffNumber?.asNumber() ?? 0;\n\n  if (flagIsSet(flags, AcroButtonFlags.PushButton)) {\n    return PDFAcroPushButton.fromDict(dict, ref);\n  } else if (flagIsSet(flags, AcroButtonFlags.Radio)) {\n    return PDFAcroRadioButton.fromDict(dict, ref);\n  } else {\n    return PDFAcroCheckBox.fromDict(dict, ref);\n  }\n};\n\nconst createPDFAcroChoice = (dict: PDFDict, ref: PDFRef): PDFAcroChoice => {\n  const ffNumberOrRef = getInheritableAttribute(dict, PDFName.of('Ff'));\n  const ffNumber = dict.context.lookupMaybe(ffNumberOrRef, PDFNumber);\n  const flags = ffNumber?.asNumber() ?? 0;\n\n  if (flagIsSet(flags, AcroChoiceFlags.Combo)) {\n    return PDFAcroComboBox.fromDict(dict, ref);\n  } else {\n    return PDFAcroListBox.fromDict(dict, ref);\n  }\n};\n\nconst flagIsSet = (flags: number, flag: number): boolean =>\n  (flags & flag) !== 0;\n\nconst getInheritableAttribute = (startNode: PDFDict, name: PDFName) => {\n  let attribute: PDFObject | undefined;\n  ascend(startNode, (node) => {\n    if (!attribute) attribute = node.get(name);\n  });\n  return attribute;\n};\n\nconst ascend = (startNode: PDFDict, visitor: (node: PDFDict) => any) => {\n  visitor(startNode);\n  const Parent = startNode.lookupMaybe(PDFName.of('Parent'), PDFDict);\n  if (Parent) ascend(Parent, visitor);\n};\n","import PDFContext from 'src/core/PDFContext';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFAcroField from 'src/core/acroform/PDFAcroField';\nimport PDFAcroNonTerminal from 'src/core/acroform/PDFAcroNonTerminal';\nimport {\n  createPDFAcroField,\n  createPDFAcroFields,\n} from 'src/core/acroform/utils';\n\nclass PDFAcroForm {\n  readonly dict: PDFDict;\n\n  static fromDict = (dict: PDFDict) => new PDFAcroForm(dict);\n\n  static create = (context: PDFContext) => {\n    const dict = context.obj({ Fields: [] });\n    return new PDFAcroForm(dict);\n  };\n\n  private constructor(dict: PDFDict) {\n    this.dict = dict;\n  }\n\n  Fields(): PDFArray | undefined {\n    const fields = this.dict.lookup(PDFName.of('Fields'));\n    if (fields instanceof PDFArray) return fields;\n    return undefined;\n  }\n\n  getFields(): [PDFAcroField, PDFRef][] {\n    const { Fields } = this.normalizedEntries();\n\n    const fields = new Array(Fields.size());\n    for (let idx = 0, len = Fields.size(); idx < len; idx++) {\n      const ref = Fields.get(idx) as PDFRef;\n      const dict = Fields.lookup(idx, PDFDict);\n      fields[idx] = [createPDFAcroField(dict, ref), ref];\n    }\n\n    return fields;\n  }\n\n  getAllFields(): [PDFAcroField, PDFRef][] {\n    const allFields: [PDFAcroField, PDFRef][] = [];\n\n    const pushFields = (fields?: [PDFAcroField, PDFRef][]) => {\n      if (!fields) return;\n      for (let idx = 0, len = fields.length; idx < len; idx++) {\n        const field = fields[idx];\n        allFields.push(field);\n        const [fieldModel] = field;\n        if (fieldModel instanceof PDFAcroNonTerminal) {\n          pushFields(createPDFAcroFields(fieldModel.Kids()));\n        }\n      }\n    };\n\n    pushFields(this.getFields());\n\n    return allFields;\n  }\n\n  addField(field: PDFRef) {\n    const { Fields } = this.normalizedEntries();\n    Fields?.push(field);\n  }\n\n  removeField(field: PDFAcroField): void {\n    const parent = field.getParent();\n    const fields =\n      parent === undefined ? this.normalizedEntries().Fields : parent.Kids();\n\n    const index = fields?.indexOf(field.ref);\n    if (fields === undefined || index === undefined) {\n      throw new Error(\n        `Tried to remove inexistent field ${field.getFullyQualifiedName()}`,\n      );\n    }\n\n    fields.remove(index);\n\n    if (parent !== undefined && fields.size() === 0) {\n      this.removeField(parent);\n    }\n  }\n\n  normalizedEntries() {\n    let Fields = this.Fields();\n\n    if (!Fields) {\n      Fields = this.dict.context.obj([]);\n      this.dict.set(PDFName.of('Fields'), Fields);\n    }\n\n    return { Fields };\n  }\n}\n\nexport default PDFAcroForm;\n","import PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\nimport { PDFAcroForm } from 'src/core/acroform';\nimport ViewerPreferences from '../interactive/ViewerPreferences';\n\nclass PDFCatalog extends PDFDict {\n  static withContextAndPages = (\n    context: PDFContext,\n    pages: PDFPageTree | PDFRef,\n  ) => {\n    const dict = new Map();\n    dict.set(PDFName.of('Type'), PDFName.of('Catalog'));\n    dict.set(PDFName.of('Pages'), pages);\n    return new PDFCatalog(dict, context);\n  };\n\n  static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n    new PDFCatalog(map, context);\n\n  Pages(): PDFPageTree {\n    return this.lookup(PDFName.of('Pages'), PDFDict) as PDFPageTree;\n  }\n\n  AcroForm(): PDFDict | undefined {\n    return this.lookupMaybe(PDFName.of('AcroForm'), PDFDict);\n  }\n\n  getAcroForm(): PDFAcroForm | undefined {\n    const dict = this.AcroForm();\n    if (!dict) return undefined;\n    return PDFAcroForm.fromDict(dict);\n  }\n\n  getOrCreateAcroForm(): PDFAcroForm {\n    let acroForm = this.getAcroForm();\n    if (!acroForm) {\n      acroForm = PDFAcroForm.create(this.context);\n      const acroFormRef = this.context.register(acroForm.dict);\n      this.set(PDFName.of('AcroForm'), acroFormRef);\n    }\n    return acroForm;\n  }\n\n  ViewerPreferences(): PDFDict | undefined {\n    return this.lookupMaybe(PDFName.of('ViewerPreferences'), PDFDict);\n  }\n\n  getViewerPreferences(): ViewerPreferences | undefined {\n    const dict = this.ViewerPreferences();\n    if (!dict) return undefined;\n    return ViewerPreferences.fromDict(dict);\n  }\n\n  getOrCreateViewerPreferences(): ViewerPreferences {\n    let viewerPrefs = this.getViewerPreferences();\n    if (!viewerPrefs) {\n      viewerPrefs = ViewerPreferences.create(this.context);\n      const viewerPrefsRef = this.context.register(viewerPrefs.dict);\n      this.set(PDFName.of('ViewerPreferences'), viewerPrefsRef);\n    }\n    return viewerPrefs;\n  }\n\n  /**\n   * Inserts the given ref as a leaf node of this catalog's page tree at the\n   * specified index (zero-based). Also increments the `Count` of each node in\n   * the page tree hierarchy to accomodate the new page.\n   *\n   * Returns the ref of the PDFPageTree node into which `leafRef` was inserted.\n   */\n  insertLeafNode(leafRef: PDFRef, index: number): PDFRef {\n    const pagesRef = this.get(PDFName.of('Pages')) as PDFRef;\n    const maybeParentRef = this.Pages().insertLeafNode(leafRef, index);\n    return maybeParentRef || pagesRef;\n  }\n\n  removeLeafNode(index: number): void {\n    this.Pages().removeLeafNode(index);\n  }\n}\n\nexport default PDFCatalog;\n","import PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport { InvalidTargetIndexError, CorruptPageTreeError } from 'src/core/errors';\n\nexport type TreeNode = PDFPageTree | PDFPageLeaf;\n\nclass PDFPageTree extends PDFDict {\n  static withContext = (context: PDFContext, parent?: PDFRef) => {\n    const dict = new Map();\n    dict.set(PDFName.of('Type'), PDFName.of('Pages'));\n    dict.set(PDFName.of('Kids'), context.obj([]));\n    dict.set(PDFName.of('Count'), context.obj(0));\n    if (parent) dict.set(PDFName.of('Parent'), parent);\n    return new PDFPageTree(dict, context);\n  };\n\n  static fromMapWithContext = (map: DictMap, context: PDFContext) =>\n    new PDFPageTree(map, context);\n\n  Parent(): PDFPageTree | undefined {\n    return this.lookup(PDFName.of('Parent')) as PDFPageTree | undefined;\n  }\n\n  Kids(): PDFArray {\n    return this.lookup(PDFName.of('Kids'), PDFArray);\n  }\n\n  Count(): PDFNumber {\n    return this.lookup(PDFName.of('Count'), PDFNumber);\n  }\n\n  pushTreeNode(treeRef: PDFRef): void {\n    const Kids = this.Kids();\n    Kids.push(treeRef);\n  }\n\n  pushLeafNode(leafRef: PDFRef): void {\n    const Kids = this.Kids();\n    this.insertLeafKid(Kids.size(), leafRef);\n  }\n\n  /**\n   * Inserts the given ref as a leaf node of this page tree at the specified\n   * index (zero-based). Also increments the `Count` of each page tree in the\n   * hierarchy to accomodate the new page.\n   *\n   * Returns the ref of the PDFPageTree node into which `leafRef` was inserted,\n   * or `undefined` if it was inserted into the root node (the PDFPageTree upon\n   * which the method was first called).\n   */\n  insertLeafNode(leafRef: PDFRef, targetIndex: number): PDFRef | undefined {\n    const Kids = this.Kids();\n    const Count = this.Count().asNumber();\n\n    if (targetIndex > Count) {\n      throw new InvalidTargetIndexError(targetIndex, Count);\n    }\n\n    let leafsRemainingUntilTarget = targetIndex;\n    for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n      if (leafsRemainingUntilTarget === 0) {\n        // Insert page and return\n        this.insertLeafKid(idx, leafRef);\n        return undefined;\n      }\n\n      const kidRef = Kids.get(idx) as PDFRef;\n      const kid = this.context.lookup(kidRef);\n\n      if (kid instanceof PDFPageTree) {\n        if (kid.Count().asNumber() > leafsRemainingUntilTarget) {\n          // Dig in\n          return (\n            kid.insertLeafNode(leafRef, leafsRemainingUntilTarget) || kidRef\n          );\n        } else {\n          // Move on\n          leafsRemainingUntilTarget -= kid.Count().asNumber();\n        }\n      }\n\n      if (kid instanceof PDFPageLeaf) {\n        // Move on\n        leafsRemainingUntilTarget -= 1;\n      }\n    }\n\n    if (leafsRemainingUntilTarget === 0) {\n      // Insert page at the end and return\n      this.insertLeafKid(Kids.size(), leafRef);\n      return undefined;\n    }\n\n    // Should never get here if `targetIndex` is valid\n    throw new CorruptPageTreeError(targetIndex, 'insertLeafNode');\n  }\n\n  /**\n   * Removes the leaf node at the specified index (zero-based) from this page\n   * tree. Also decrements the `Count` of each page tree in the hierarchy to\n   * account for the removed page.\n   *\n   * If `prune` is true, then intermediate tree nodes will be removed from the\n   * tree if they contain 0 children after the leaf node is removed.\n   */\n  removeLeafNode(targetIndex: number, prune = true): void {\n    const Kids = this.Kids();\n    const Count = this.Count().asNumber();\n\n    if (targetIndex >= Count) {\n      throw new InvalidTargetIndexError(targetIndex, Count);\n    }\n\n    let leafsRemainingUntilTarget = targetIndex;\n    for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n      const kidRef = Kids.get(idx) as PDFRef;\n      const kid = this.context.lookup(kidRef);\n\n      if (kid instanceof PDFPageTree) {\n        if (kid.Count().asNumber() > leafsRemainingUntilTarget) {\n          // Dig in\n          kid.removeLeafNode(leafsRemainingUntilTarget, prune);\n          if (prune && kid.Kids().size() === 0) Kids.remove(idx);\n          return;\n        } else {\n          // Move on\n          leafsRemainingUntilTarget -= kid.Count().asNumber();\n        }\n      }\n\n      if (kid instanceof PDFPageLeaf) {\n        if (leafsRemainingUntilTarget === 0) {\n          // Remove page and return\n          this.removeKid(idx);\n          return;\n        } else {\n          // Move on\n          leafsRemainingUntilTarget -= 1;\n        }\n      }\n    }\n\n    // Should never get here if `targetIndex` is valid\n    throw new CorruptPageTreeError(targetIndex, 'removeLeafNode');\n  }\n\n  ascend(visitor: (node: PDFPageTree) => any): void {\n    visitor(this);\n    const Parent = this.Parent();\n    if (Parent) Parent.ascend(visitor);\n  }\n\n  /** Performs a Post-Order traversal of this page tree */\n  traverse(visitor: (node: TreeNode, ref: PDFRef) => any): void {\n    const Kids = this.Kids();\n    for (let idx = 0, len = Kids.size(); idx < len; idx++) {\n      const kidRef = Kids.get(idx) as PDFRef;\n      const kid = this.context.lookup(kidRef) as TreeNode;\n      if (kid instanceof PDFPageTree) kid.traverse(visitor);\n      visitor(kid, kidRef);\n    }\n  }\n\n  private insertLeafKid(kidIdx: number, leafRef: PDFRef): void {\n    const Kids = this.Kids();\n\n    this.ascend((node) => {\n      const newCount = node.Count().asNumber() + 1;\n      node.set(PDFName.of('Count'), PDFNumber.of(newCount));\n    });\n\n    Kids.insert(kidIdx, leafRef);\n  }\n\n  private removeKid(kidIdx: number): void {\n    const Kids = this.Kids();\n\n    const kid = Kids.lookup(kidIdx);\n    if (kid instanceof PDFPageLeaf) {\n      this.ascend((node) => {\n        const newCount = node.Count().asNumber() - 1;\n        node.set(PDFName.of('Count'), PDFNumber.of(newCount));\n      });\n    }\n\n    Kids.remove(kidIdx);\n  }\n}\n\nexport default PDFPageTree;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nexport const IsDigit = new Uint8Array(256);\n\nIsDigit[CharCodes.Zero] = 1;\nIsDigit[CharCodes.One] = 1;\nIsDigit[CharCodes.Two] = 1;\nIsDigit[CharCodes.Three] = 1;\nIsDigit[CharCodes.Four] = 1;\nIsDigit[CharCodes.Five] = 1;\nIsDigit[CharCodes.Six] = 1;\nIsDigit[CharCodes.Seven] = 1;\nIsDigit[CharCodes.Eight] = 1;\nIsDigit[CharCodes.Nine] = 1;\n\nexport const IsNumericPrefix = new Uint8Array(256);\n\nIsNumericPrefix[CharCodes.Period] = 1;\nIsNumericPrefix[CharCodes.Plus] = 1;\nIsNumericPrefix[CharCodes.Minus] = 1;\n\nexport const IsNumeric = new Uint8Array(256);\n\nfor (let idx = 0, len = 256; idx < len; idx++) {\n  IsNumeric[idx] = IsDigit[idx] || IsNumericPrefix[idx] ? 1 : 0;\n}\n","import { NumberParsingError } from 'src/core/errors';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDigit, IsNumeric } from 'src/core/syntax/Numeric';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\nimport { charFromCode } from 'src/utils';\n\nconst { Newline, CarriageReturn } = CharCodes;\n\n// TODO: Throw error if eof is reached before finishing object parse...\nclass BaseParser {\n  protected readonly bytes: ByteStream;\n  protected readonly capNumbers: boolean;\n\n  constructor(bytes: ByteStream, capNumbers = false) {\n    this.bytes = bytes;\n    this.capNumbers = capNumbers;\n  }\n\n  protected parseRawInt(): number {\n    let value = '';\n\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (!IsDigit[byte]) break;\n      value += charFromCode(this.bytes.next());\n    }\n\n    const numberValue = Number(value);\n\n    if (!value || !isFinite(numberValue)) {\n      throw new NumberParsingError(this.bytes.position(), value);\n    }\n\n    return numberValue;\n  }\n\n  // TODO: Maybe handle exponential format?\n  // TODO: Compare performance of string concatenation to charFromCode(...bytes)\n  protected parseRawNumber(): number {\n    let value = '';\n\n    // Parse integer-part, the leading (+ | - | . | 0-9)\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (!IsNumeric[byte]) break;\n      value += charFromCode(this.bytes.next());\n      if (byte === CharCodes.Period) break;\n    }\n\n    // Parse decimal-part, the trailing (0-9)\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (!IsDigit[byte]) break;\n      value += charFromCode(this.bytes.next());\n    }\n\n    const numberValue = Number(value);\n\n    if (!value || !isFinite(numberValue)) {\n      throw new NumberParsingError(this.bytes.position(), value);\n    }\n\n    if (numberValue > Number.MAX_SAFE_INTEGER) {\n      if (this.capNumbers) {\n        const msg = `Parsed number that is too large for some PDF readers: ${value}, using Number.MAX_SAFE_INTEGER instead.`;\n        console.warn(msg);\n        return Number.MAX_SAFE_INTEGER;\n      } else {\n        const msg = `Parsed number that is too large for some PDF readers: ${value}, not capping.`;\n        console.warn(msg);\n      }\n    }\n\n    return numberValue;\n  }\n\n  protected skipWhitespace(): void {\n    while (!this.bytes.done() && IsWhitespace[this.bytes.peek()]) {\n      this.bytes.next();\n    }\n  }\n\n  protected skipLine(): void {\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (byte === Newline || byte === CarriageReturn) return;\n      this.bytes.next();\n    }\n  }\n\n  protected skipComment(): boolean {\n    if (this.bytes.peek() !== CharCodes.Percent) return false;\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (byte === Newline || byte === CarriageReturn) return true;\n      this.bytes.next();\n    }\n    return true;\n  }\n\n  protected skipWhitespaceAndComments(): void {\n    this.skipWhitespace();\n    while (this.skipComment()) this.skipWhitespace();\n  }\n\n  protected matchKeyword(keyword: number[]): boolean {\n    const initialOffset = this.bytes.offset();\n    for (let idx = 0, len = keyword.length; idx < len; idx++) {\n      if (this.bytes.done() || this.bytes.next() !== keyword[idx]) {\n        this.bytes.moveTo(initialOffset);\n        return false;\n      }\n    }\n    return true;\n  }\n}\n\nexport default BaseParser;\n","import { NextByteAssertionError } from 'src/core/errors';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport { decodePDFRawStream } from 'src/core/streams/decode';\nimport CharCodes from 'src/core/syntax/CharCodes';\n\n// TODO: See how line/col tracking affects performance\nclass ByteStream {\n  static of = (bytes: Uint8Array) => new ByteStream(bytes);\n\n  static fromPDFRawStream = (rawStream: PDFRawStream) =>\n    ByteStream.of(decodePDFRawStream(rawStream).decode());\n\n  private readonly bytes: Uint8Array;\n  private readonly length: number;\n\n  private idx = 0;\n  private line = 0;\n  private column = 0;\n\n  constructor(bytes: Uint8Array) {\n    this.bytes = bytes;\n    this.length = this.bytes.length;\n  }\n\n  moveTo(offset: number): void {\n    this.idx = offset;\n  }\n\n  next(): number {\n    const byte = this.bytes[this.idx++];\n    if (byte === CharCodes.Newline) {\n      this.line += 1;\n      this.column = 0;\n    } else {\n      this.column += 1;\n    }\n    return byte;\n  }\n\n  assertNext(expected: number): number {\n    if (this.peek() !== expected) {\n      throw new NextByteAssertionError(this.position(), expected, this.peek());\n    }\n    return this.next();\n  }\n\n  peek(): number {\n    return this.bytes[this.idx];\n  }\n\n  peekAhead(steps: number) {\n    return this.bytes[this.idx + steps];\n  }\n\n  peekAt(offset: number) {\n    return this.bytes[offset];\n  }\n\n  done(): boolean {\n    return this.idx >= this.length;\n  }\n\n  offset(): number {\n    return this.idx;\n  }\n\n  slice(start: number, end: number): Uint8Array {\n    return this.bytes.slice(start, end);\n  }\n\n  position(): { line: number; column: number; offset: number } {\n    return { line: this.line, column: this.column, offset: this.idx };\n  }\n}\n\nexport default ByteStream;\n","import CharCodes from 'src/core/syntax/CharCodes';\n\nconst { Space, CarriageReturn, Newline } = CharCodes;\n\nconst stream = [\n  CharCodes.s,\n  CharCodes.t,\n  CharCodes.r,\n  CharCodes.e,\n  CharCodes.a,\n  CharCodes.m,\n];\n\nconst endstream = [\n  CharCodes.e,\n  CharCodes.n,\n  CharCodes.d,\n  CharCodes.s,\n  CharCodes.t,\n  CharCodes.r,\n  CharCodes.e,\n  CharCodes.a,\n  CharCodes.m,\n];\n\nexport const Keywords = {\n  header: [\n    CharCodes.Percent,\n    CharCodes.P,\n    CharCodes.D,\n    CharCodes.F,\n    CharCodes.Dash,\n  ],\n  eof: [\n    CharCodes.Percent,\n    CharCodes.Percent,\n    CharCodes.E,\n    CharCodes.O,\n    CharCodes.F,\n  ],\n  obj: [CharCodes.o, CharCodes.b, CharCodes.j],\n  endobj: [\n    CharCodes.e,\n    CharCodes.n,\n    CharCodes.d,\n    CharCodes.o,\n    CharCodes.b,\n    CharCodes.j,\n  ],\n  xref: [CharCodes.x, CharCodes.r, CharCodes.e, CharCodes.f],\n  trailer: [\n    CharCodes.t,\n    CharCodes.r,\n    CharCodes.a,\n    CharCodes.i,\n    CharCodes.l,\n    CharCodes.e,\n    CharCodes.r,\n  ],\n  startxref: [\n    CharCodes.s,\n    CharCodes.t,\n    CharCodes.a,\n    CharCodes.r,\n    CharCodes.t,\n    CharCodes.x,\n    CharCodes.r,\n    CharCodes.e,\n    CharCodes.f,\n  ],\n  true: [CharCodes.t, CharCodes.r, CharCodes.u, CharCodes.e],\n  false: [CharCodes.f, CharCodes.a, CharCodes.l, CharCodes.s, CharCodes.e],\n  null: [CharCodes.n, CharCodes.u, CharCodes.l, CharCodes.l],\n  stream,\n  streamEOF1: [...stream, Space, CarriageReturn, Newline],\n  streamEOF2: [...stream, CarriageReturn, Newline],\n  streamEOF3: [...stream, CarriageReturn],\n  streamEOF4: [...stream, Newline],\n  endstream,\n  EOF1endstream: [CarriageReturn, Newline, ...endstream],\n  EOF2endstream: [CarriageReturn, ...endstream],\n  EOF3endstream: [Newline, ...endstream],\n};\n","import {\n  PDFObjectParsingError,\n  PDFStreamParsingError,\n  Position,\n  UnbalancedParenthesisError,\n} from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFBool from 'src/core/objects/PDFBool';\nimport PDFDict, { DictMap } from 'src/core/objects/PDFDict';\nimport PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNull from 'src/core/objects/PDFNull';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport PDFStream from 'src/core/objects/PDFStream';\nimport PDFString from 'src/core/objects/PDFString';\nimport BaseParser from 'src/core/parser/BaseParser';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFCatalog from 'src/core/structures/PDFCatalog';\nimport PDFPageLeaf from 'src/core/structures/PDFPageLeaf';\nimport PDFPageTree from 'src/core/structures/PDFPageTree';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { IsDelimiter } from 'src/core/syntax/Delimiters';\nimport { Keywords } from 'src/core/syntax/Keywords';\nimport { IsDigit, IsNumeric } from 'src/core/syntax/Numeric';\nimport { IsWhitespace } from 'src/core/syntax/Whitespace';\nimport { charFromCode } from 'src/utils';\n\n// TODO: Throw error if eof is reached before finishing object parse...\nclass PDFObjectParser extends BaseParser {\n  static forBytes = (\n    bytes: Uint8Array,\n    context: PDFContext,\n    capNumbers?: boolean,\n  ) => new PDFObjectParser(ByteStream.of(bytes), context, capNumbers);\n\n  static forByteStream = (\n    byteStream: ByteStream,\n    context: PDFContext,\n    capNumbers = false,\n  ) => new PDFObjectParser(byteStream, context, capNumbers);\n\n  protected readonly context: PDFContext;\n\n  constructor(byteStream: ByteStream, context: PDFContext, capNumbers = false) {\n    super(byteStream, capNumbers);\n    this.context = context;\n  }\n\n  // TODO: Is it possible to reduce duplicate parsing for ref lookaheads?\n  parseObject(): PDFObject {\n    this.skipWhitespaceAndComments();\n\n    if (this.matchKeyword(Keywords.true)) return PDFBool.True;\n    if (this.matchKeyword(Keywords.false)) return PDFBool.False;\n    if (this.matchKeyword(Keywords.null)) return PDFNull;\n\n    const byte = this.bytes.peek();\n\n    if (\n      byte === CharCodes.LessThan &&\n      this.bytes.peekAhead(1) === CharCodes.LessThan\n    ) {\n      return this.parseDictOrStream();\n    }\n    if (byte === CharCodes.LessThan) return this.parseHexString();\n    if (byte === CharCodes.LeftParen) return this.parseString();\n    if (byte === CharCodes.ForwardSlash) return this.parseName();\n    if (byte === CharCodes.LeftSquareBracket) return this.parseArray();\n    if (IsNumeric[byte]) return this.parseNumberOrRef();\n\n    throw new PDFObjectParsingError(this.bytes.position(), byte);\n  }\n\n  protected parseNumberOrRef(): PDFNumber | PDFRef {\n    const firstNum = this.parseRawNumber();\n    this.skipWhitespaceAndComments();\n\n    const lookaheadStart = this.bytes.offset();\n    if (IsDigit[this.bytes.peek()]) {\n      const secondNum = this.parseRawNumber();\n      this.skipWhitespaceAndComments();\n      if (this.bytes.peek() === CharCodes.R) {\n        this.bytes.assertNext(CharCodes.R);\n        return PDFRef.of(firstNum, secondNum);\n      }\n    }\n\n    this.bytes.moveTo(lookaheadStart);\n    return PDFNumber.of(firstNum);\n  }\n\n  // TODO: Maybe update PDFHexString.of() logic to remove whitespace and validate input?\n  protected parseHexString(): PDFHexString {\n    let value = '';\n\n    this.bytes.assertNext(CharCodes.LessThan);\n    while (!this.bytes.done() && this.bytes.peek() !== CharCodes.GreaterThan) {\n      value += charFromCode(this.bytes.next());\n    }\n    this.bytes.assertNext(CharCodes.GreaterThan);\n\n    return PDFHexString.of(value);\n  }\n\n  protected parseString(): PDFString {\n    let nestingLvl = 0;\n    let isEscaped = false;\n    let value = '';\n\n    while (!this.bytes.done()) {\n      const byte = this.bytes.next();\n      value += charFromCode(byte);\n\n      // Check for unescaped parenthesis\n      if (!isEscaped) {\n        if (byte === CharCodes.LeftParen) nestingLvl += 1;\n        if (byte === CharCodes.RightParen) nestingLvl -= 1;\n      }\n\n      // Track whether current character is being escaped or not\n      if (byte === CharCodes.BackSlash) {\n        isEscaped = !isEscaped;\n      } else if (isEscaped) {\n        isEscaped = false;\n      }\n\n      // Once (if) the unescaped parenthesis balance out, return their contents\n      if (nestingLvl === 0) {\n        // Remove the outer parens so they aren't part of the contents\n        return PDFString.of(value.substring(1, value.length - 1));\n      }\n    }\n\n    throw new UnbalancedParenthesisError(this.bytes.position());\n  }\n\n  // TODO: Compare performance of string concatenation to charFromCode(...bytes)\n  // TODO: Maybe preallocate small Uint8Array if can use charFromCode?\n  protected parseName(): PDFName {\n    this.bytes.assertNext(CharCodes.ForwardSlash);\n\n    let name = '';\n    while (!this.bytes.done()) {\n      const byte = this.bytes.peek();\n      if (IsWhitespace[byte] || IsDelimiter[byte]) break;\n      name += charFromCode(byte);\n      this.bytes.next();\n    }\n\n    return PDFName.of(name);\n  }\n\n  protected parseArray(): PDFArray {\n    this.bytes.assertNext(CharCodes.LeftSquareBracket);\n    this.skipWhitespaceAndComments();\n\n    const pdfArray = PDFArray.withContext(this.context);\n    while (this.bytes.peek() !== CharCodes.RightSquareBracket) {\n      const element = this.parseObject();\n      pdfArray.push(element);\n      this.skipWhitespaceAndComments();\n    }\n    this.bytes.assertNext(CharCodes.RightSquareBracket);\n    return pdfArray;\n  }\n\n  protected parseDict(): PDFDict {\n    this.bytes.assertNext(CharCodes.LessThan);\n    this.bytes.assertNext(CharCodes.LessThan);\n    this.skipWhitespaceAndComments();\n\n    const dict: DictMap = new Map();\n\n    while (\n      !this.bytes.done() &&\n      this.bytes.peek() !== CharCodes.GreaterThan &&\n      this.bytes.peekAhead(1) !== CharCodes.GreaterThan\n    ) {\n      const key = this.parseName();\n      const value = this.parseObject();\n      dict.set(key, value);\n      this.skipWhitespaceAndComments();\n    }\n\n    this.skipWhitespaceAndComments();\n    this.bytes.assertNext(CharCodes.GreaterThan);\n    this.bytes.assertNext(CharCodes.GreaterThan);\n\n    const Type = dict.get(PDFName.of('Type'));\n\n    if (Type === PDFName.of('Catalog')) {\n      return PDFCatalog.fromMapWithContext(dict, this.context);\n    } else if (Type === PDFName.of('Pages')) {\n      return PDFPageTree.fromMapWithContext(dict, this.context);\n    } else if (Type === PDFName.of('Page')) {\n      return PDFPageLeaf.fromMapWithContext(dict, this.context);\n    } else {\n      return PDFDict.fromMapWithContext(dict, this.context);\n    }\n  }\n\n  protected parseDictOrStream(): PDFDict | PDFStream {\n    const startPos = this.bytes.position();\n\n    const dict = this.parseDict();\n\n    this.skipWhitespaceAndComments();\n\n    if (\n      !this.matchKeyword(Keywords.streamEOF1) &&\n      !this.matchKeyword(Keywords.streamEOF2) &&\n      !this.matchKeyword(Keywords.streamEOF3) &&\n      !this.matchKeyword(Keywords.streamEOF4) &&\n      !this.matchKeyword(Keywords.stream)\n    ) {\n      return dict;\n    }\n\n    const start = this.bytes.offset();\n    let end: number;\n\n    const Length = dict.get(PDFName.of('Length'));\n    if (Length instanceof PDFNumber) {\n      end = start + Length.asNumber();\n      this.bytes.moveTo(end);\n      this.skipWhitespaceAndComments();\n      if (!this.matchKeyword(Keywords.endstream)) {\n        this.bytes.moveTo(start);\n        end = this.findEndOfStreamFallback(startPos);\n      }\n    } else {\n      end = this.findEndOfStreamFallback(startPos);\n    }\n\n    const contents = this.bytes.slice(start, end);\n\n    return PDFRawStream.of(dict, contents);\n  }\n\n  protected findEndOfStreamFallback(startPos: Position) {\n    // Move to end of stream, while handling nested streams\n    let nestingLvl = 1;\n    let end = this.bytes.offset();\n\n    while (!this.bytes.done()) {\n      end = this.bytes.offset();\n\n      if (this.matchKeyword(Keywords.stream)) {\n        nestingLvl += 1;\n      } else if (\n        this.matchKeyword(Keywords.EOF1endstream) ||\n        this.matchKeyword(Keywords.EOF2endstream) ||\n        this.matchKeyword(Keywords.EOF3endstream) ||\n        this.matchKeyword(Keywords.endstream)\n      ) {\n        nestingLvl -= 1;\n      } else {\n        this.bytes.next();\n      }\n\n      if (nestingLvl === 0) break;\n    }\n\n    if (nestingLvl !== 0) throw new PDFStreamParsingError(startPos);\n\n    return end;\n  }\n}\n\nexport default PDFObjectParser;\n","import { ReparseError } from 'src/core/errors';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFObjectParser from 'src/core/parser/PDFObjectParser';\nimport { waitForTick } from 'src/utils';\n\nclass PDFObjectStreamParser extends PDFObjectParser {\n  static forStream = (\n    rawStream: PDFRawStream,\n    shouldWaitForTick?: () => boolean,\n  ) => new PDFObjectStreamParser(rawStream, shouldWaitForTick);\n\n  private alreadyParsed: boolean;\n  private readonly shouldWaitForTick: () => boolean;\n  private readonly firstOffset: number;\n  private readonly objectCount: number;\n\n  constructor(rawStream: PDFRawStream, shouldWaitForTick?: () => boolean) {\n    super(ByteStream.fromPDFRawStream(rawStream), rawStream.dict.context);\n\n    const { dict } = rawStream;\n\n    this.alreadyParsed = false;\n    this.shouldWaitForTick = shouldWaitForTick || (() => false);\n    this.firstOffset = dict.lookup(PDFName.of('First'), PDFNumber).asNumber();\n    this.objectCount = dict.lookup(PDFName.of('N'), PDFNumber).asNumber();\n  }\n\n  async parseIntoContext(): Promise<void> {\n    if (this.alreadyParsed) {\n      throw new ReparseError('PDFObjectStreamParser', 'parseIntoContext');\n    }\n    this.alreadyParsed = true;\n\n    const offsetsAndObjectNumbers = this.parseOffsetsAndObjectNumbers();\n    for (let idx = 0, len = offsetsAndObjectNumbers.length; idx < len; idx++) {\n      const { objectNumber, offset } = offsetsAndObjectNumbers[idx];\n      this.bytes.moveTo(this.firstOffset + offset);\n      const object = this.parseObject();\n      const ref = PDFRef.of(objectNumber, 0);\n      this.context.assign(ref, object);\n      if (this.shouldWaitForTick()) await waitForTick();\n    }\n  }\n\n  private parseOffsetsAndObjectNumbers(): {\n    objectNumber: number;\n    offset: number;\n  }[] {\n    const offsetsAndObjectNumbers = [];\n    for (let idx = 0, len = this.objectCount; idx < len; idx++) {\n      this.skipWhitespaceAndComments();\n      const objectNumber = this.parseRawInt();\n\n      this.skipWhitespaceAndComments();\n      const offset = this.parseRawInt();\n\n      offsetsAndObjectNumbers.push({ objectNumber, offset });\n    }\n    return offsetsAndObjectNumbers;\n  }\n}\n\nexport default PDFObjectStreamParser;\n","import { ReparseError } from 'src/core/errors';\nimport PDFArray from 'src/core/objects/PDFArray';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFNumber from 'src/core/objects/PDFNumber';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFContext from 'src/core/PDFContext';\n\nexport interface Entry {\n  ref: PDFRef;\n  offset: number;\n  deleted: boolean;\n  inObjectStream: boolean;\n}\n\nclass PDFXRefStreamParser {\n  static forStream = (rawStream: PDFRawStream) =>\n    new PDFXRefStreamParser(rawStream);\n\n  private alreadyParsed: boolean;\n\n  private readonly dict: PDFDict;\n  private readonly context: PDFContext;\n  private readonly bytes: ByteStream;\n  private readonly subsections: {\n    firstObjectNumber: number;\n    length: number;\n  }[];\n  private readonly byteWidths: [number, number, number];\n\n  constructor(rawStream: PDFRawStream) {\n    this.alreadyParsed = false;\n\n    this.dict = rawStream.dict;\n    this.bytes = ByteStream.fromPDFRawStream(rawStream);\n    this.context = this.dict.context;\n\n    const Size = this.dict.lookup(PDFName.of('Size'), PDFNumber);\n\n    const Index = this.dict.lookup(PDFName.of('Index'));\n    if (Index instanceof PDFArray) {\n      this.subsections = [];\n      for (let idx = 0, len = Index.size(); idx < len; idx += 2) {\n        const firstObjectNumber = Index.lookup(idx + 0, PDFNumber).asNumber();\n        const length = Index.lookup(idx + 1, PDFNumber).asNumber();\n        this.subsections.push({ firstObjectNumber, length });\n      }\n    } else {\n      this.subsections = [{ firstObjectNumber: 0, length: Size.asNumber() }];\n    }\n\n    const W = this.dict.lookup(PDFName.of('W'), PDFArray);\n    this.byteWidths = [-1, -1, -1];\n    for (let idx = 0, len = W.size(); idx < len; idx++) {\n      this.byteWidths[idx] = W.lookup(idx, PDFNumber).asNumber();\n    }\n  }\n\n  parseIntoContext(): Entry[] {\n    if (this.alreadyParsed) {\n      throw new ReparseError('PDFXRefStreamParser', 'parseIntoContext');\n    }\n    this.alreadyParsed = true;\n\n    this.context.trailerInfo = {\n      Root: this.dict.get(PDFName.of('Root')),\n      Encrypt: this.dict.get(PDFName.of('Encrypt')),\n      Info: this.dict.get(PDFName.of('Info')),\n      ID: this.dict.get(PDFName.of('ID')),\n    };\n\n    const entries = this.parseEntries();\n\n    // for (let idx = 0, len = entries.length; idx < len; idx++) {\n    // const entry = entries[idx];\n    // if (entry.deleted) this.context.delete(entry.ref);\n    // }\n\n    return entries;\n  }\n\n  private parseEntries(): Entry[] {\n    const entries = [];\n    const [typeFieldWidth, offsetFieldWidth, genFieldWidth] = this.byteWidths;\n\n    for (\n      let subsectionIdx = 0, subsectionLen = this.subsections.length;\n      subsectionIdx < subsectionLen;\n      subsectionIdx++\n    ) {\n      const { firstObjectNumber, length } = this.subsections[subsectionIdx];\n\n      for (let objIdx = 0; objIdx < length; objIdx++) {\n        let type = 0;\n        for (let idx = 0, len = typeFieldWidth; idx < len; idx++) {\n          type = (type << 8) | this.bytes.next();\n        }\n\n        let offset = 0;\n        for (let idx = 0, len = offsetFieldWidth; idx < len; idx++) {\n          offset = (offset << 8) | this.bytes.next();\n        }\n\n        let generationNumber = 0;\n        for (let idx = 0, len = genFieldWidth; idx < len; idx++) {\n          generationNumber = (generationNumber << 8) | this.bytes.next();\n        }\n\n        // When the `type` field is absent, it defaults to 1\n        if (typeFieldWidth === 0) type = 1;\n\n        const objectNumber = firstObjectNumber + objIdx;\n        const entry = {\n          ref: PDFRef.of(objectNumber, generationNumber),\n          offset,\n          deleted: type === 0,\n          inObjectStream: type === 2,\n        };\n\n        entries.push(entry);\n      }\n    }\n\n    return entries;\n  }\n}\n\nexport default PDFXRefStreamParser;\n","import PDFCrossRefSection from 'src/core/document/PDFCrossRefSection';\nimport PDFHeader from 'src/core/document/PDFHeader';\nimport PDFTrailer from 'src/core/document/PDFTrailer';\nimport {\n  MissingKeywordError,\n  MissingPDFHeaderError,\n  PDFInvalidObjectParsingError,\n  ReparseError,\n  StalledParserError,\n} from 'src/core/errors';\nimport PDFDict from 'src/core/objects/PDFDict';\nimport PDFInvalidObject from 'src/core/objects/PDFInvalidObject';\nimport PDFName from 'src/core/objects/PDFName';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRawStream from 'src/core/objects/PDFRawStream';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport ByteStream from 'src/core/parser/ByteStream';\nimport PDFObjectParser from 'src/core/parser/PDFObjectParser';\nimport PDFObjectStreamParser from 'src/core/parser/PDFObjectStreamParser';\nimport PDFXRefStreamParser from 'src/core/parser/PDFXRefStreamParser';\nimport PDFContext from 'src/core/PDFContext';\nimport CharCodes from 'src/core/syntax/CharCodes';\nimport { Keywords } from 'src/core/syntax/Keywords';\nimport { IsDigit } from 'src/core/syntax/Numeric';\nimport { waitForTick } from 'src/utils';\n\nclass PDFParser extends PDFObjectParser {\n  static forBytesWithOptions = (\n    pdfBytes: Uint8Array,\n    objectsPerTick?: number,\n    throwOnInvalidObject?: boolean,\n    capNumbers?: boolean,\n  ) =>\n    new PDFParser(pdfBytes, objectsPerTick, throwOnInvalidObject, capNumbers);\n\n  private readonly objectsPerTick: number;\n  private readonly throwOnInvalidObject: boolean;\n  private alreadyParsed = false;\n  private parsedObjects = 0;\n\n  constructor(\n    pdfBytes: Uint8Array,\n    objectsPerTick = Infinity,\n    throwOnInvalidObject = false,\n    capNumbers = false,\n  ) {\n    super(ByteStream.of(pdfBytes), PDFContext.create(), capNumbers);\n    this.objectsPerTick = objectsPerTick;\n    this.throwOnInvalidObject = throwOnInvalidObject;\n  }\n\n  async parseDocument(): Promise<PDFContext> {\n    if (this.alreadyParsed) {\n      throw new ReparseError('PDFParser', 'parseDocument');\n    }\n    this.alreadyParsed = true;\n\n    this.context.header = this.parseHeader();\n\n    let prevOffset;\n    while (!this.bytes.done()) {\n      await this.parseDocumentSection();\n      const offset = this.bytes.offset();\n      if (offset === prevOffset) {\n        throw new StalledParserError(this.bytes.position());\n      }\n      prevOffset = offset;\n    }\n\n    this.maybeRecoverRoot();\n\n    if (this.context.lookup(PDFRef.of(0))) {\n      console.warn('Removing parsed object: 0 0 R');\n      this.context.delete(PDFRef.of(0));\n    }\n\n    return this.context;\n  }\n\n  private maybeRecoverRoot(): void {\n    const isValidCatalog = (obj?: PDFObject) =>\n      obj instanceof PDFDict &&\n      obj.lookup(PDFName.of('Type')) === PDFName.of('Catalog');\n\n    const catalog = this.context.lookup(this.context.trailerInfo.Root);\n\n    if (!isValidCatalog(catalog)) {\n      const indirectObjects = this.context.enumerateIndirectObjects();\n      for (let idx = 0, len = indirectObjects.length; idx < len; idx++) {\n        const [ref, object] = indirectObjects[idx];\n        if (isValidCatalog(object)) {\n          this.context.trailerInfo.Root = ref;\n        }\n      }\n    }\n  }\n\n  private parseHeader(): PDFHeader {\n    while (!this.bytes.done()) {\n      if (this.matchKeyword(Keywords.header)) {\n        const major = this.parseRawInt();\n        this.bytes.assertNext(CharCodes.Period);\n        const minor = this.parseRawInt();\n        const header = PDFHeader.forVersion(major, minor);\n        this.skipBinaryHeaderComment();\n        return header;\n      }\n      this.bytes.next();\n    }\n\n    throw new MissingPDFHeaderError(this.bytes.position());\n  }\n\n  private parseIndirectObjectHeader(): PDFRef {\n    this.skipWhitespaceAndComments();\n    const objectNumber = this.parseRawInt();\n\n    this.skipWhitespaceAndComments();\n    const generationNumber = this.parseRawInt();\n\n    this.skipWhitespaceAndComments();\n    if (!this.matchKeyword(Keywords.obj)) {\n      throw new MissingKeywordError(this.bytes.position(), Keywords.obj);\n    }\n\n    return PDFRef.of(objectNumber, generationNumber);\n  }\n\n  private matchIndirectObjectHeader(): boolean {\n    const initialOffset = this.bytes.offset();\n    try {\n      this.parseIndirectObjectHeader();\n      return true;\n    } catch (e) {\n      this.bytes.moveTo(initialOffset);\n      return false;\n    }\n  }\n\n  private shouldWaitForTick = () => {\n    this.parsedObjects += 1;\n    return this.parsedObjects % this.objectsPerTick === 0;\n  };\n\n  private async parseIndirectObject(): Promise<PDFRef> {\n    const ref = this.parseIndirectObjectHeader();\n\n    this.skipWhitespaceAndComments();\n    const object = this.parseObject();\n\n    this.skipWhitespaceAndComments();\n    // if (!this.matchKeyword(Keywords.endobj)) {\n    // throw new MissingKeywordError(this.bytes.position(), Keywords.endobj);\n    // }\n\n    // TODO: Log a warning if this fails...\n    this.matchKeyword(Keywords.endobj);\n\n    if (\n      object instanceof PDFRawStream &&\n      object.dict.lookup(PDFName.of('Type')) === PDFName.of('ObjStm')\n    ) {\n      await PDFObjectStreamParser.forStream(\n        object,\n        this.shouldWaitForTick,\n      ).parseIntoContext();\n    } else if (\n      object instanceof PDFRawStream &&\n      object.dict.lookup(PDFName.of('Type')) === PDFName.of('XRef')\n    ) {\n      PDFXRefStreamParser.forStream(object).parseIntoContext();\n    } else {\n      this.context.assign(ref, object);\n    }\n\n    return ref;\n  }\n\n  // TODO: Improve and clean this up\n  private tryToParseInvalidIndirectObject() {\n    const startPos = this.bytes.position();\n\n    const msg = `Trying to parse invalid object: ${JSON.stringify(startPos)})`;\n    if (this.throwOnInvalidObject) throw new Error(msg);\n    console.warn(msg);\n\n    const ref = this.parseIndirectObjectHeader();\n\n    console.warn(`Invalid object ref: ${ref}`);\n\n    this.skipWhitespaceAndComments();\n    const start = this.bytes.offset();\n\n    let failed = true;\n    while (!this.bytes.done()) {\n      if (this.matchKeyword(Keywords.endobj)) {\n        failed = false;\n      }\n      if (!failed) break;\n      this.bytes.next();\n    }\n\n    if (failed) throw new PDFInvalidObjectParsingError(startPos);\n\n    const end = this.bytes.offset() - Keywords.endobj.length;\n\n    const object = PDFInvalidObject.of(this.bytes.slice(start, end));\n    this.context.assign(ref, object);\n\n    return ref;\n  }\n\n  private async parseIndirectObjects(): Promise<void> {\n    this.skipWhitespaceAndComments();\n\n    while (!this.bytes.done() && IsDigit[this.bytes.peek()]) {\n      const initialOffset = this.bytes.offset();\n\n      try {\n        await this.parseIndirectObject();\n      } catch (e) {\n        // TODO: Add tracing/logging mechanism to track when this happens!\n        this.bytes.moveTo(initialOffset);\n        this.tryToParseInvalidIndirectObject();\n      }\n      this.skipWhitespaceAndComments();\n\n      // TODO: Can this be done only when needed, to avoid harming performance?\n      this.skipJibberish();\n\n      if (this.shouldWaitForTick()) await waitForTick();\n    }\n  }\n\n  private maybeParseCrossRefSection(): PDFCrossRefSection | void {\n    this.skipWhitespaceAndComments();\n    if (!this.matchKeyword(Keywords.xref)) return;\n    this.skipWhitespaceAndComments();\n\n    let objectNumber = -1;\n    const xref = PDFCrossRefSection.createEmpty();\n\n    while (!this.bytes.done() && IsDigit[this.bytes.peek()]) {\n      const firstInt = this.parseRawInt();\n      this.skipWhitespaceAndComments();\n\n      const secondInt = this.parseRawInt();\n      this.skipWhitespaceAndComments();\n\n      const byte = this.bytes.peek();\n      if (byte === CharCodes.n || byte === CharCodes.f) {\n        const ref = PDFRef.of(objectNumber, secondInt);\n        if (this.bytes.next() === CharCodes.n) {\n          xref.addEntry(ref, firstInt);\n        } else {\n          // this.context.delete(ref);\n          xref.addDeletedEntry(ref, firstInt);\n        }\n        objectNumber += 1;\n      } else {\n        objectNumber = firstInt;\n      }\n      this.skipWhitespaceAndComments();\n    }\n\n    return xref;\n  }\n\n  private maybeParseTrailerDict(): void {\n    this.skipWhitespaceAndComments();\n    if (!this.matchKeyword(Keywords.trailer)) return;\n    this.skipWhitespaceAndComments();\n\n    const dict = this.parseDict();\n\n    const { context } = this;\n    context.trailerInfo = {\n      Root: dict.get(PDFName.of('Root')) || context.trailerInfo.Root,\n      Encrypt: dict.get(PDFName.of('Encrypt')) || context.trailerInfo.Encrypt,\n      Info: dict.get(PDFName.of('Info')) || context.trailerInfo.Info,\n      ID: dict.get(PDFName.of('ID')) || context.trailerInfo.ID,\n    };\n  }\n\n  private maybeParseTrailer(): PDFTrailer | void {\n    this.skipWhitespaceAndComments();\n    if (!this.matchKeyword(Keywords.startxref)) return;\n    this.skipWhitespaceAndComments();\n\n    const offset = this.parseRawInt();\n\n    this.skipWhitespace();\n    this.matchKeyword(Keywords.eof);\n    this.skipWhitespaceAndComments();\n    this.matchKeyword(Keywords.eof);\n    this.skipWhitespaceAndComments();\n\n    return PDFTrailer.forLastCrossRefSectionOffset(offset);\n  }\n\n  private async parseDocumentSection(): Promise<void> {\n    await this.parseIndirectObjects();\n    this.maybeParseCrossRefSection();\n    this.maybeParseTrailerDict();\n    this.maybeParseTrailer();\n\n    // TODO: Can this be done only when needed, to avoid harming performance?\n    this.skipJibberish();\n  }\n\n  /**\n   * This operation is not necessary for valid PDF files. But some invalid PDFs\n   * contain jibberish in between indirect objects. This method is designed to\n   * skip past that jibberish, should it exist, until it reaches the next\n   * indirect object header, an xref table section, or the file trailer.\n   */\n  private skipJibberish(): void {\n    this.skipWhitespaceAndComments();\n    while (!this.bytes.done()) {\n      const initialOffset = this.bytes.offset();\n      const byte = this.bytes.peek();\n      const isAlphaNumeric = byte >= CharCodes.Space && byte <= CharCodes.Tilde;\n      if (isAlphaNumeric) {\n        if (\n          this.matchKeyword(Keywords.xref) ||\n          this.matchKeyword(Keywords.trailer) ||\n          this.matchKeyword(Keywords.startxref) ||\n          this.matchIndirectObjectHeader()\n        ) {\n          this.bytes.moveTo(initialOffset);\n          break;\n        }\n      }\n      this.bytes.next();\n    }\n  }\n\n  /**\n   * Skips the binary comment following a PDF header. The specification\n   * defines this binary comment (section 7.5.2 File Header) as a sequence of 4\n   * or more bytes that are 128 or greater, and which are preceded by a \"%\".\n   *\n   * This would imply that to strip out this binary comment, we could check for\n   * a sequence of bytes starting with \"%\", and remove all subsequent bytes that\n   * are 128 or greater. This works for many documents that properly comply with\n   * the spec. But in the wild, there are PDFs that omit the leading \"%\", and\n   * include bytes that are less than 128 (e.g. 0 or 1). So in order to parse\n   * these headers correctly, we just throw out all bytes leading up to the\n   * first indirect object header.\n   */\n  private skipBinaryHeaderComment(): void {\n    this.skipWhitespaceAndComments();\n    try {\n      const initialOffset = this.bytes.offset();\n      this.parseIndirectObjectHeader();\n      this.bytes.moveTo(initialOffset);\n    } catch (e) {\n      this.bytes.next();\n      this.skipWhitespaceAndComments();\n    }\n  }\n}\n\nexport default PDFParser;\n","const flag = (bitIndex: number) => 1 << bitIndex;\n\n/** From PDF spec table 165 */\nexport enum AnnotationFlags {\n  /**\n   * If set, do not display the annotation if it does not belong to one of the\n   * standard annotation types and no annotation handler is available. If clear,\n   * display such an unknown annotation using an appearance stream specified by\n   * its appearance dictionary, if any.\n   */\n  Invisible = flag(1 - 1),\n\n  /**\n   * If set, do not display or print the annotation or allow it to interact with\n   * the user, regardless of its annotation type or whether an annotation\n   * handler is available.\n   *\n   * In cases where screen space is limited, the ability to hide and show\n   * annotations selectively can be used in combination with appearance streams\n   * to display auxiliary pop-up information similar in function to online help\n   * systems.\n   */\n  Hidden = flag(2 - 1),\n\n  /**\n   * If set, print the annotation when the page is printed. If clear, never\n   * print the annotation, regardless of whether it is displayed on the screen.\n   *\n   * This can be useful for annotations representing interactive pushbuttons,\n   * which would serve no meaningful purpose on the printed page.\n   */\n  Print = flag(3 - 1),\n\n  /**\n   * If set, do not scale the annotation’s appearance to match the magnification\n   * of the page. The location of the annotation on the page (defined by the\n   * upper-left corner of its annotation rectangle) shall remain fixed,\n   * regardless of the page magnification.\n   */\n  NoZoom = flag(4 - 1),\n\n  /**\n   * If set, do not rotate the annotation’s appearance to match the rotation of\n   * the page. The upper-left corner of the annotation rectangle shall remain in\n   * a fixed location on the page, regardless of the page rotation.\n   */\n  NoRotate = flag(5 - 1),\n\n  /**\n   * If set, do not display the annotation on the screen or allow it to interact\n   * with the user. The annotation may be printed (depending on the setting of\n   * the Print flag) but should be considered hidden for purposes of on-screen\n   * display and user interaction.\n   */\n  NoView = flag(6 - 1),\n\n  /**\n   * If set, do not allow the annotation to interact with the user. The\n   * annotation may be displayed or printed (depending on the settings of the\n   * NoView and Print flags) but should not respond to mouse clicks or change\n   * its appearance in response to mouse motions.\n   *\n   * This flag shall be ignored for widget annotations; its function is\n   * subsumed by the ReadOnly flag of the associated form field.\n   */\n  ReadOnly = flag(7 - 1),\n\n  /**\n   * If set, do not allow the annotation to be deleted or its properties\n   * (including position and size) to be modified by the user. However, this\n   * flag does not restrict changes to the annotation’s contents, such as the\n   * value of a form field.\n   */\n  Locked = flag(8 - 1),\n\n  /**\n   * If set, invert the interpretation of the NoView flag for certain events.\n   *\n   * A typical use is to have an annotation that appears only when a mouse\n   * cursor is held over it.\n   */\n  ToggleNoView = flag(9 - 1),\n\n  /**\n   * If set, do not allow the contents of the annotation to be modified by the\n   * user. This flag does not restrict deletion of the annotation or changes to\n   * other annotation properties, such as position and size.\n   */\n  LockedContents = flag(10 - 1),\n}\n","import { PDFName, PDFNumber } from 'src/core';\n\nexport const asPDFName = (name: string | PDFName) =>\n  name instanceof PDFName ? name : PDFName.of(name);\n\nexport const asPDFNumber = (num: number | PDFNumber) =>\n  num instanceof PDFNumber ? num : PDFNumber.of(num);\n\nexport const asNumber = (num: number | PDFNumber) =>\n  num instanceof PDFNumber ? num.asNumber() : num;\n","import { assertIs, error } from 'src/utils';\n\nexport enum RotationTypes {\n  Degrees = 'degrees',\n  Radians = 'radians',\n}\n\nexport interface Radians {\n  type: RotationTypes.Radians;\n  angle: number;\n}\n\nexport interface Degrees {\n  type: RotationTypes.Degrees;\n  angle: number;\n}\n\nexport type Rotation = Radians | Degrees;\n\nexport const radians = (radianAngle: number): Radians => {\n  assertIs(radianAngle, 'radianAngle', ['number']);\n  return { type: RotationTypes.Radians, angle: radianAngle };\n};\n\nexport const degrees = (degreeAngle: number): Degrees => {\n  assertIs(degreeAngle, 'degreeAngle', ['number']);\n  return { type: RotationTypes.Degrees, angle: degreeAngle };\n};\n\nconst { Radians, Degrees } = RotationTypes;\n\nexport const degreesToRadians = (degree: number) => (degree * Math.PI) / 180;\nexport const radiansToDegrees = (radian: number) => (radian * 180) / Math.PI;\n\n// prettier-ignore\nexport const toRadians = (rotation: Rotation) => \n    rotation.type === Radians ? rotation.angle\n  : rotation.type === Degrees ? degreesToRadians(rotation.angle)\n  : error(`Invalid rotation: ${JSON.stringify(rotation)}`);\n\n// prettier-ignore\nexport const toDegrees = (rotation: Rotation) => \n    rotation.type === Radians ? radiansToDegrees(rotation.angle)\n  : rotation.type === Degrees ? rotation.angle\n  : error(`Invalid rotation: ${JSON.stringify(rotation)}`);\n\nexport const reduceRotation = (degreeAngle = 0) => {\n  const quadrants = (degreeAngle / 90) % 4;\n  if (quadrants === 0) return 0;\n  if (quadrants === 1) return 90;\n  if (quadrants === 2) return 180;\n  if (quadrants === 3) return 270;\n  return 0; // `degreeAngle` is not a multiple of 90\n};\n\nexport const adjustDimsForRotation = (\n  dims: { width: number; height: number },\n  degreeAngle = 0,\n) => {\n  const rotation = reduceRotation(degreeAngle);\n  return rotation === 90 || rotation === 270\n    ? { width: dims.height, height: dims.width }\n    : { width: dims.width, height: dims.height };\n};\n\nexport const rotateRectangle = (\n  rectangle: {\n    x: number;\n    y: number;\n    width: number;\n    height: number;\n  },\n  borderWidth = 0,\n  degreeAngle = 0,\n) => {\n  const { x, y, width: w, height: h } = rectangle;\n\n  const r = reduceRotation(degreeAngle);\n  const b = borderWidth / 2;\n\n  // prettier-ignore\n  if (r === 0) return { x: x - b, y: y - b, width: w, height: h };\n  else if (r === 90) return { x: x - h + b, y: y - b, width: h, height: w };\n  else if (r === 180) return { x: x - w + b, y: y - h + b, width: w, height: h };\n  else if (r === 270) return { x: x - b, y: y - w + b, width: h, height: w };\n  else return { x: x - b, y: y - b, width: w, height: h };\n};\n","import { asNumber, asPDFName, asPDFNumber } from 'src/api/objects';\nimport { degreesToRadians } from 'src/api/rotations';\nimport {\n  PDFHexString,\n  PDFName,\n  PDFNumber,\n  PDFOperator,\n  PDFOperatorNames as Ops,\n} from 'src/core';\n\n/* ==================== Clipping Path Operators ==================== */\n\nexport const clip = () => PDFOperator.of(Ops.ClipNonZero);\nexport const clipEvenOdd = () => PDFOperator.of(Ops.ClipEvenOdd);\n\n/* ==================== Graphics State Operators ==================== */\n\nconst { cos, sin, tan } = Math;\n\nexport const concatTransformationMatrix = (\n  a: number | PDFNumber,\n  b: number | PDFNumber,\n  c: number | PDFNumber,\n  d: number | PDFNumber,\n  e: number | PDFNumber,\n  f: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.ConcatTransformationMatrix, [\n    asPDFNumber(a),\n    asPDFNumber(b),\n    asPDFNumber(c),\n    asPDFNumber(d),\n    asPDFNumber(e),\n    asPDFNumber(f),\n  ]);\n\nexport const translate = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n  concatTransformationMatrix(1, 0, 0, 1, xPos, yPos);\n\nexport const scale = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n  concatTransformationMatrix(xPos, 0, 0, yPos, 0, 0);\n\nexport const rotateRadians = (angle: number | PDFNumber) =>\n  concatTransformationMatrix(\n    cos(asNumber(angle)),\n    sin(asNumber(angle)),\n    -sin(asNumber(angle)),\n    cos(asNumber(angle)),\n    0,\n    0,\n  );\n\nexport const rotateDegrees = (angle: number | PDFNumber) =>\n  rotateRadians(degreesToRadians(asNumber(angle)));\n\nexport const skewRadians = (\n  xSkewAngle: number | PDFNumber,\n  ySkewAngle: number | PDFNumber,\n) =>\n  concatTransformationMatrix(\n    1,\n    tan(asNumber(xSkewAngle)),\n    tan(asNumber(ySkewAngle)),\n    1,\n    0,\n    0,\n  );\n\nexport const skewDegrees = (\n  xSkewAngle: number | PDFNumber,\n  ySkewAngle: number | PDFNumber,\n) =>\n  skewRadians(\n    degreesToRadians(asNumber(xSkewAngle)),\n    degreesToRadians(asNumber(ySkewAngle)),\n  );\n\nexport const setDashPattern = (\n  dashArray: (number | PDFNumber)[],\n  dashPhase: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.SetLineDashPattern, [\n    `[${dashArray.map(asPDFNumber).join(' ')}]`,\n    asPDFNumber(dashPhase),\n  ]);\n\nexport const restoreDashPattern = () => setDashPattern([], 0);\n\nexport enum LineCapStyle {\n  Butt = 0,\n  Round = 1,\n  Projecting = 2,\n}\n\nexport const setLineCap = (style: LineCapStyle) =>\n  PDFOperator.of(Ops.SetLineCapStyle, [asPDFNumber(style)]);\n\nexport enum LineJoinStyle {\n  Miter = 0,\n  Round = 1,\n  Bevel = 2,\n}\n\nexport const setLineJoin = (style: LineJoinStyle) =>\n  PDFOperator.of(Ops.SetLineJoinStyle, [asPDFNumber(style)]);\n\nexport const setGraphicsState = (state: string | PDFName) =>\n  PDFOperator.of(Ops.SetGraphicsStateParams, [asPDFName(state)]);\n\nexport const pushGraphicsState = () => PDFOperator.of(Ops.PushGraphicsState);\n\nexport const popGraphicsState = () => PDFOperator.of(Ops.PopGraphicsState);\n\nexport const setLineWidth = (width: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetLineWidth, [asPDFNumber(width)]);\n\n/* ==================== Path Construction Operators ==================== */\n\nexport const appendBezierCurve = (\n  x1: number | PDFNumber,\n  y1: number | PDFNumber,\n  x2: number | PDFNumber,\n  y2: number | PDFNumber,\n  x3: number | PDFNumber,\n  y3: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.AppendBezierCurve, [\n    asPDFNumber(x1),\n    asPDFNumber(y1),\n    asPDFNumber(x2),\n    asPDFNumber(y2),\n    asPDFNumber(x3),\n    asPDFNumber(y3),\n  ]);\n\nexport const appendQuadraticCurve = (\n  x1: number | PDFNumber,\n  y1: number | PDFNumber,\n  x2: number | PDFNumber,\n  y2: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.CurveToReplicateInitialPoint, [\n    asPDFNumber(x1),\n    asPDFNumber(y1),\n    asPDFNumber(x2),\n    asPDFNumber(y2),\n  ]);\n\nexport const closePath = () => PDFOperator.of(Ops.ClosePath);\n\nexport const moveTo = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n  PDFOperator.of(Ops.MoveTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n\nexport const lineTo = (xPos: number | PDFNumber, yPos: number | PDFNumber) =>\n  PDFOperator.of(Ops.LineTo, [asPDFNumber(xPos), asPDFNumber(yPos)]);\n\n/**\n * @param xPos x coordinate for the lower left corner of the rectangle\n * @param yPos y coordinate for the lower left corner of the rectangle\n * @param width width of the rectangle\n * @param height height of the rectangle\n */\nexport const rectangle = (\n  xPos: number | PDFNumber,\n  yPos: number | PDFNumber,\n  width: number | PDFNumber,\n  height: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.AppendRectangle, [\n    asPDFNumber(xPos),\n    asPDFNumber(yPos),\n    asPDFNumber(width),\n    asPDFNumber(height),\n  ]);\n\n/**\n * @param xPos x coordinate for the lower left corner of the square\n * @param yPos y coordinate for the lower left corner of the square\n * @param size width and height of the square\n */\nexport const square = (xPos: number, yPos: number, size: number) =>\n  rectangle(xPos, yPos, size, size);\n\n/* ==================== Path Painting Operators ==================== */\n\nexport const stroke = () => PDFOperator.of(Ops.StrokePath);\n\nexport const fill = () => PDFOperator.of(Ops.FillNonZero);\n\nexport const fillAndStroke = () => PDFOperator.of(Ops.FillNonZeroAndStroke);\n\nexport const endPath = () => PDFOperator.of(Ops.EndPath);\n\n/* ==================== Text Positioning Operators ==================== */\n\nexport const nextLine = () => PDFOperator.of(Ops.NextLine);\n\nexport const moveText = (x: number | PDFNumber, y: number | PDFNumber) =>\n  PDFOperator.of(Ops.MoveText, [asPDFNumber(x), asPDFNumber(y)]);\n\n/* ==================== Text Showing Operators ==================== */\n\nexport const showText = (text: PDFHexString) =>\n  PDFOperator.of(Ops.ShowText, [text]);\n\n/* ==================== Text State Operators ==================== */\n\nexport const beginText = () => PDFOperator.of(Ops.BeginText);\nexport const endText = () => PDFOperator.of(Ops.EndText);\n\nexport const setFontAndSize = (\n  name: string | PDFName,\n  size: number | PDFNumber,\n) => PDFOperator.of(Ops.SetFontAndSize, [asPDFName(name), asPDFNumber(size)]);\n\nexport const setCharacterSpacing = (spacing: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetCharacterSpacing, [asPDFNumber(spacing)]);\n\nexport const setWordSpacing = (spacing: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetWordSpacing, [asPDFNumber(spacing)]);\n\n/** @param squeeze horizontal character spacing */\nexport const setCharacterSqueeze = (squeeze: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetTextHorizontalScaling, [asPDFNumber(squeeze)]);\n\nexport const setLineHeight = (lineHeight: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetTextLineHeight, [asPDFNumber(lineHeight)]);\n\nexport const setTextRise = (rise: number | PDFNumber) =>\n  PDFOperator.of(Ops.SetTextRise, [asPDFNumber(rise)]);\n\nexport enum TextRenderingMode {\n  Fill = 0,\n  Outline = 1,\n  FillAndOutline = 2,\n  Invisible = 3,\n  FillAndClip = 4,\n  OutlineAndClip = 5,\n  FillAndOutlineAndClip = 6,\n  Clip = 7,\n}\n\nexport const setTextRenderingMode = (mode: TextRenderingMode) =>\n  PDFOperator.of(Ops.SetTextRenderingMode, [asPDFNumber(mode)]);\n\nexport const setTextMatrix = (\n  a: number | PDFNumber,\n  b: number | PDFNumber,\n  c: number | PDFNumber,\n  d: number | PDFNumber,\n  e: number | PDFNumber,\n  f: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.SetTextMatrix, [\n    asPDFNumber(a),\n    asPDFNumber(b),\n    asPDFNumber(c),\n    asPDFNumber(d),\n    asPDFNumber(e),\n    asPDFNumber(f),\n  ]);\n\nexport const rotateAndSkewTextRadiansAndTranslate = (\n  rotationAngle: number | PDFNumber,\n  xSkewAngle: number | PDFNumber,\n  ySkewAngle: number | PDFNumber,\n  x: number | PDFNumber,\n  y: number | PDFNumber,\n) =>\n  setTextMatrix(\n    cos(asNumber(rotationAngle)),\n    sin(asNumber(rotationAngle)) + tan(asNumber(xSkewAngle)),\n    -sin(asNumber(rotationAngle)) + tan(asNumber(ySkewAngle)),\n    cos(asNumber(rotationAngle)),\n    x,\n    y,\n  );\n\nexport const rotateAndSkewTextDegreesAndTranslate = (\n  rotationAngle: number | PDFNumber,\n  xSkewAngle: number | PDFNumber,\n  ySkewAngle: number | PDFNumber,\n  x: number | PDFNumber,\n  y: number | PDFNumber,\n) =>\n  rotateAndSkewTextRadiansAndTranslate(\n    degreesToRadians(asNumber(rotationAngle)),\n    degreesToRadians(asNumber(xSkewAngle)),\n    degreesToRadians(asNumber(ySkewAngle)),\n    x,\n    y,\n  );\n\n/* ==================== XObject Operator ==================== */\n\nexport const drawObject = (name: string | PDFName) =>\n  PDFOperator.of(Ops.DrawObject, [asPDFName(name)]);\n\n/* ==================== Color Operators ==================== */\n\nexport const setFillingGrayscaleColor = (gray: number | PDFNumber) =>\n  PDFOperator.of(Ops.NonStrokingColorGray, [asPDFNumber(gray)]);\n\nexport const setStrokingGrayscaleColor = (gray: number | PDFNumber) =>\n  PDFOperator.of(Ops.StrokingColorGray, [asPDFNumber(gray)]);\n\nexport const setFillingRgbColor = (\n  red: number | PDFNumber,\n  green: number | PDFNumber,\n  blue: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.NonStrokingColorRgb, [\n    asPDFNumber(red),\n    asPDFNumber(green),\n    asPDFNumber(blue),\n  ]);\n\nexport const setStrokingRgbColor = (\n  red: number | PDFNumber,\n  green: number | PDFNumber,\n  blue: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.StrokingColorRgb, [\n    asPDFNumber(red),\n    asPDFNumber(green),\n    asPDFNumber(blue),\n  ]);\n\nexport const setFillingCmykColor = (\n  cyan: number | PDFNumber,\n  magenta: number | PDFNumber,\n  yellow: number | PDFNumber,\n  key: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.NonStrokingColorCmyk, [\n    asPDFNumber(cyan),\n    asPDFNumber(magenta),\n    asPDFNumber(yellow),\n    asPDFNumber(key),\n  ]);\n\nexport const setStrokingCmykColor = (\n  cyan: number | PDFNumber,\n  magenta: number | PDFNumber,\n  yellow: number | PDFNumber,\n  key: number | PDFNumber,\n) =>\n  PDFOperator.of(Ops.StrokingColorCmyk, [\n    asPDFNumber(cyan),\n    asPDFNumber(magenta),\n    asPDFNumber(yellow),\n    asPDFNumber(key),\n  ]);\n\n/* ==================== Marked Content Operators ==================== */\n\nexport const beginMarkedContent = (tag: string | PDFName) =>\n  PDFOperator.of(Ops.BeginMarkedContent, [asPDFName(tag)]);\n\nexport const endMarkedContent = () => PDFOperator.of(Ops.EndMarkedContent);\n","import {\n  setFillingCmykColor,\n  setFillingGrayscaleColor,\n  setFillingRgbColor,\n  setStrokingCmykColor,\n  setStrokingGrayscaleColor,\n  setStrokingRgbColor,\n} from 'src/api/operators';\nimport { assertRange, error } from 'src/utils';\n\nexport enum ColorTypes {\n  Grayscale = 'Grayscale',\n  RGB = 'RGB',\n  CMYK = 'CMYK',\n}\n\nexport interface Grayscale {\n  type: ColorTypes.Grayscale;\n  gray: number;\n}\n\nexport interface RGB {\n  type: ColorTypes.RGB;\n  red: number;\n  green: number;\n  blue: number;\n}\n\nexport interface CMYK {\n  type: ColorTypes.CMYK;\n  cyan: number;\n  magenta: number;\n  yellow: number;\n  key: number;\n}\n\nexport type Color = Grayscale | RGB | CMYK;\n\nexport const grayscale = (gray: number): Grayscale => {\n  assertRange(gray, 'gray', 0.0, 1.0);\n  return { type: ColorTypes.Grayscale, gray };\n};\n\nexport const rgb = (red: number, green: number, blue: number): RGB => {\n  assertRange(red, 'red', 0, 1);\n  assertRange(green, 'green', 0, 1);\n  assertRange(blue, 'blue', 0, 1);\n  return { type: ColorTypes.RGB, red, green, blue };\n};\n\nexport const cmyk = (\n  cyan: number,\n  magenta: number,\n  yellow: number,\n  key: number,\n): CMYK => {\n  assertRange(cyan, 'cyan', 0, 1);\n  assertRange(magenta, 'magenta', 0, 1);\n  assertRange(yellow, 'yellow', 0, 1);\n  assertRange(key, 'key', 0, 1);\n  return { type: ColorTypes.CMYK, cyan, magenta, yellow, key };\n};\n\nconst { Grayscale, RGB, CMYK } = ColorTypes;\n\n// prettier-ignore\nexport const setFillingColor = (color: Color) => \n    color.type === Grayscale ? setFillingGrayscaleColor(color.gray)\n  : color.type === RGB       ? setFillingRgbColor(color.red, color.green, color.blue)\n  : color.type === CMYK      ? setFillingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n  : error(`Invalid color: ${JSON.stringify(color)}`);\n\n// prettier-ignore\nexport const setStrokingColor = (color: Color) => \n    color.type === Grayscale ? setStrokingGrayscaleColor(color.gray)\n  : color.type === RGB       ? setStrokingRgbColor(color.red, color.green, color.blue)\n  : color.type === CMYK      ? setStrokingCmykColor(color.cyan, color.magenta, color.yellow, color.key)\n  : error(`Invalid color: ${JSON.stringify(color)}`);\n\n// prettier-ignore\nexport const componentsToColor = (comps?: number[], scale = 1) => (\n    comps?.length === 1 ? grayscale(\n      comps[0] * scale,\n    )\n  : comps?.length === 3 ? rgb(\n      comps[0] * scale, \n      comps[1] * scale, \n      comps[2] * scale,\n    )\n  : comps?.length === 4 ? cmyk(\n      comps[0] * scale, \n      comps[1] * scale, \n      comps[2] * scale, \n      comps[3] * scale,\n    )\n  : undefined\n);\n\n// prettier-ignore\nexport const colorToComponents = (color: Color) =>\n    color.type === Grayscale ? [color.gray]\n  : color.type === RGB       ? [color.red, color.green, color.blue]\n  : color.type === CMYK      ? [color.cyan, color.magenta, color.yellow, color.key]\n  : error(`Invalid color: ${JSON.stringify(color)}`);\n","export enum TextAlignment {\n  Left = 0,\n  Center = 1,\n  Right = 2,\n}\n","// Originated from pdfkit Copyright (c) 2014 Devon Govett\n// https://github.com/foliojs/pdfkit/blob/1e62e6ffe24b378eb890df507a47610f4c4a7b24/lib/path.js\n// MIT LICENSE\n// Updated for pdf-lib & TypeScript by Jeremy Messenger\n\nimport {\n  appendBezierCurve,\n  appendQuadraticCurve,\n  closePath,\n  lineTo,\n  moveTo,\n} from 'src/api/operators';\nimport { PDFOperator } from 'src/core';\n\nlet cx: number = 0;\nlet cy: number = 0;\nlet px: number | null = 0;\nlet py: number | null = 0;\nlet sx: number = 0;\nlet sy: number = 0;\n\nconst parameters = new Map<string, number>([\n  ['A', 7],\n  ['a', 7],\n  ['C', 6],\n  ['c', 6],\n  ['H', 1],\n  ['h', 1],\n  ['L', 2],\n  ['l', 2],\n  ['M', 2],\n  ['m', 2],\n  ['Q', 4],\n  ['q', 4],\n  ['S', 4],\n  ['s', 4],\n  ['T', 2],\n  ['t', 2],\n  ['V', 1],\n  ['v', 1],\n  ['Z', 0],\n  ['z', 0],\n]);\n\ninterface Cmd {\n  cmd?: string;\n  args: number[];\n}\n\nconst parse = (path: string) => {\n  let cmd;\n  const ret: Cmd[] = [];\n  let args: number[] = [];\n  let curArg = '';\n  let foundDecimal = false;\n  let params = 0;\n\n  for (const c of path) {\n    if (parameters.has(c)) {\n      params = parameters.get(c)!;\n      if (cmd) {\n        // save existing command\n        if (curArg.length > 0) {\n          args[args.length] = +curArg;\n        }\n        ret[ret.length] = { cmd, args };\n\n        args = [];\n        curArg = '';\n        foundDecimal = false;\n      }\n\n      cmd = c;\n    } else if (\n      [' ', ','].includes(c) ||\n      (c === '-' && curArg.length > 0 && curArg[curArg.length - 1] !== 'e') ||\n      (c === '.' && foundDecimal)\n    ) {\n      if (curArg.length === 0) {\n        continue;\n      }\n\n      if (args.length === params) {\n        // handle reused commands\n        ret[ret.length] = { cmd, args };\n        args = [+curArg];\n\n        // handle assumed commands\n        if (cmd === 'M') {\n          cmd = 'L';\n        }\n        if (cmd === 'm') {\n          cmd = 'l';\n        }\n      } else {\n        args[args.length] = +curArg;\n      }\n\n      foundDecimal = c === '.';\n\n      // fix for negative numbers or repeated decimals with no delimeter between commands\n      curArg = ['-', '.'].includes(c) ? c : '';\n    } else {\n      curArg += c;\n      if (c === '.') {\n        foundDecimal = true;\n      }\n    }\n  }\n\n  // add the last command\n  if (curArg.length > 0) {\n    if (args.length === params) {\n      // handle reused commands\n      ret[ret.length] = { cmd, args };\n      args = [+curArg];\n\n      // handle assumed commands\n      if (cmd === 'M') {\n        cmd = 'L';\n      }\n      if (cmd === 'm') {\n        cmd = 'l';\n      }\n    } else {\n      args[args.length] = +curArg;\n    }\n  }\n\n  ret[ret.length] = { cmd, args };\n\n  return ret;\n};\n\nconst apply = (commands: Cmd[]) => {\n  // current point, control point, and subpath starting point\n  cx = cy = px = py = sx = sy = 0;\n\n  // run the commands\n  let cmds: PDFOperator[] = [];\n  for (let i = 0; i < commands.length; i++) {\n    const c = commands[i];\n    if (c.cmd && typeof runners[c.cmd] === 'function') {\n      const cmd = runners[c.cmd](c.args);\n      if (Array.isArray(cmd)) {\n        cmds = cmds.concat(cmd);\n      } else {\n        cmds.push(cmd);\n      }\n    }\n  }\n  return cmds;\n};\n\ninterface CmdToOperatorsMap {\n  [cmd: string]: (a: number[]) => PDFOperator | PDFOperator[];\n}\n\nconst runners: CmdToOperatorsMap = {\n  M(a) {\n    cx = a[0];\n    cy = a[1];\n    px = py = null;\n    sx = cx;\n    sy = cy;\n    return moveTo(cx, cy);\n  },\n\n  m(a) {\n    cx += a[0];\n    cy += a[1];\n    px = py = null;\n    sx = cx;\n    sy = cy;\n    return moveTo(cx, cy);\n  },\n\n  C(a) {\n    cx = a[4];\n    cy = a[5];\n    px = a[2];\n    py = a[3];\n    return appendBezierCurve(a[0], a[1], a[2], a[3], a[4], a[5]);\n  },\n\n  c(a) {\n    const cmd = appendBezierCurve(\n      a[0] + cx,\n      a[1] + cy,\n      a[2] + cx,\n      a[3] + cy,\n      a[4] + cx,\n      a[5] + cy,\n    );\n    px = cx + a[2];\n    py = cy + a[3];\n    cx += a[4];\n    cy += a[5];\n    return cmd;\n  },\n\n  S(a) {\n    if (px === null || py === null) {\n      px = cx;\n      py = cy;\n    }\n\n    const cmd = appendBezierCurve(\n      cx - (px - cx),\n      cy - (py - cy),\n      a[0],\n      a[1],\n      a[2],\n      a[3],\n    );\n    px = a[0];\n    py = a[1];\n    cx = a[2];\n    cy = a[3];\n    return cmd;\n  },\n\n  s(a) {\n    if (px === null || py === null) {\n      px = cx;\n      py = cy;\n    }\n\n    const cmd = appendBezierCurve(\n      cx - (px - cx),\n      cy - (py - cy),\n      cx + a[0],\n      cy + a[1],\n      cx + a[2],\n      cy + a[3],\n    );\n    px = cx + a[0];\n    py = cy + a[1];\n    cx += a[2];\n    cy += a[3];\n    return cmd;\n  },\n\n  Q(a) {\n    px = a[0];\n    py = a[1];\n    cx = a[2];\n    cy = a[3];\n    return appendQuadraticCurve(a[0], a[1], cx, cy);\n  },\n\n  q(a) {\n    const cmd = appendQuadraticCurve(\n      a[0] + cx,\n      a[1] + cy,\n      a[2] + cx,\n      a[3] + cy,\n    );\n    px = cx + a[0];\n    py = cy + a[1];\n    cx += a[2];\n    cy += a[3];\n    return cmd;\n  },\n\n  T(a) {\n    if (px === null || py === null) {\n      px = cx;\n      py = cy;\n    } else {\n      px = cx - (px - cx);\n      py = cy - (py - cy);\n    }\n\n    const cmd = appendQuadraticCurve(px, py, a[0], a[1]);\n    px = cx - (px - cx);\n    py = cy - (py - cy);\n    cx = a[0];\n    cy = a[1];\n    return cmd;\n  },\n\n  t(a) {\n    if (px === null || py === null) {\n      px = cx;\n      py = cy;\n    } else {\n      px = cx - (px - cx);\n      py = cy - (py - cy);\n    }\n\n    const cmd = appendQuadraticCurve(px, py, cx + a[0], cy + a[1]);\n    cx += a[0];\n    cy += a[1];\n    return cmd;\n  },\n\n  A(a) {\n    const cmds = solveArc(cx, cy, a);\n    cx = a[5];\n    cy = a[6];\n    return cmds;\n  },\n\n  a(a) {\n    a[5] += cx;\n    a[6] += cy;\n    const cmds = solveArc(cx, cy, a);\n    cx = a[5];\n    cy = a[6];\n    return cmds;\n  },\n\n  L(a) {\n    cx = a[0];\n    cy = a[1];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  l(a) {\n    cx += a[0];\n    cy += a[1];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  H(a) {\n    cx = a[0];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  h(a) {\n    cx += a[0];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  V(a) {\n    cy = a[0];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  v(a) {\n    cy += a[0];\n    px = py = null;\n    return lineTo(cx, cy);\n  },\n\n  Z() {\n    const cmd = closePath();\n    cx = sx;\n    cy = sy;\n    return cmd;\n  },\n\n  z() {\n    const cmd = closePath();\n    cx = sx;\n    cy = sy;\n    return cmd;\n  },\n};\n\nconst solveArc = (x: number, y: number, coords: number[]) => {\n  const [rx, ry, rot, large, sweep, ex, ey] = coords;\n  const segs = arcToSegments(ex, ey, rx, ry, large, sweep, rot, x, y);\n\n  const cmds: PDFOperator[] = [];\n  for (const seg of segs) {\n    const bez = segmentToBezier(...seg);\n    cmds.push(appendBezierCurve(...bez));\n  }\n  return cmds;\n};\n\ntype Segment = [number, number, number, number, number, number, number, number];\ntype Bezier = [number, number, number, number, number, number];\n\n// from Inkscape svgtopdf, thanks!\nconst arcToSegments = (\n  x: number,\n  y: number,\n  rx: number,\n  ry: number,\n  large: number,\n  sweep: number,\n  rotateX: number,\n  ox: number,\n  oy: number,\n) => {\n  const th = rotateX * (Math.PI / 180);\n  const sinTh = Math.sin(th);\n  const cosTh = Math.cos(th);\n  rx = Math.abs(rx);\n  ry = Math.abs(ry);\n  px = cosTh * (ox - x) * 0.5 + sinTh * (oy - y) * 0.5;\n  py = cosTh * (oy - y) * 0.5 - sinTh * (ox - x) * 0.5;\n  let pl = (px * px) / (rx * rx) + (py * py) / (ry * ry);\n  if (pl > 1) {\n    pl = Math.sqrt(pl);\n    rx *= pl;\n    ry *= pl;\n  }\n\n  const a00 = cosTh / rx;\n  const a01 = sinTh / rx;\n  const a10 = -sinTh / ry;\n  const a11 = cosTh / ry;\n  const x0 = a00 * ox + a01 * oy;\n  const y0 = a10 * ox + a11 * oy;\n  const x1 = a00 * x + a01 * y;\n  const y1 = a10 * x + a11 * y;\n\n  const d = (x1 - x0) * (x1 - x0) + (y1 - y0) * (y1 - y0);\n  let sfactorSq = 1 / d - 0.25;\n  if (sfactorSq < 0) {\n    sfactorSq = 0;\n  }\n  let sfactor = Math.sqrt(sfactorSq);\n  if (sweep === large) {\n    sfactor = -sfactor;\n  }\n\n  const xc = 0.5 * (x0 + x1) - sfactor * (y1 - y0);\n  const yc = 0.5 * (y0 + y1) + sfactor * (x1 - x0);\n\n  const th0 = Math.atan2(y0 - yc, x0 - xc);\n  const th1 = Math.atan2(y1 - yc, x1 - xc);\n\n  let thArc = th1 - th0;\n  if (thArc < 0 && sweep === 1) {\n    thArc += 2 * Math.PI;\n  } else if (thArc > 0 && sweep === 0) {\n    thArc -= 2 * Math.PI;\n  }\n\n  const segments = Math.ceil(Math.abs(thArc / (Math.PI * 0.5 + 0.001)));\n  const result: Segment[] = [];\n\n  for (let i = 0; i < segments; i++) {\n    const th2 = th0 + (i * thArc) / segments;\n    const th3 = th0 + ((i + 1) * thArc) / segments;\n    result[i] = [xc, yc, th2, th3, rx, ry, sinTh, cosTh];\n  }\n\n  return result;\n};\n\nconst segmentToBezier = (\n  cx1: number,\n  cy1: number,\n  th0: number,\n  th1: number,\n  rx: number,\n  ry: number,\n  sinTh: number,\n  cosTh: number,\n) => {\n  const a00 = cosTh * rx;\n  const a01 = -sinTh * ry;\n  const a10 = sinTh * rx;\n  const a11 = cosTh * ry;\n\n  const thHalf = 0.5 * (th1 - th0);\n  const t =\n    ((8 / 3) * Math.sin(thHalf * 0.5) * Math.sin(thHalf * 0.5)) /\n    Math.sin(thHalf);\n  const x1 = cx1 + Math.cos(th0) - t * Math.sin(th0);\n  const y1 = cy1 + Math.sin(th0) + t * Math.cos(th0);\n  const x3 = cx1 + Math.cos(th1);\n  const y3 = cy1 + Math.sin(th1);\n  const x2 = x3 + t * Math.sin(th1);\n  const y2 = y3 - t * Math.cos(th1);\n\n  const result: Bezier = [\n    a00 * x1 + a01 * y1,\n    a10 * x1 + a11 * y1,\n    a00 * x2 + a01 * y2,\n    a10 * x2 + a11 * y2,\n    a00 * x3 + a01 * y3,\n    a10 * x3 + a11 * y3,\n  ];\n  return result;\n};\n\nexport const svgPathToOperators = (path: string) => apply(parse(path));\n","import { Color, setFillingColor, setStrokingColor } from 'src/api/colors';\nimport {\n  beginText,\n  closePath,\n  drawObject,\n  endText,\n  fill,\n  fillAndStroke,\n  lineTo,\n  moveTo,\n  nextLine,\n  popGraphicsState,\n  pushGraphicsState,\n  rotateAndSkewTextRadiansAndTranslate,\n  rotateRadians,\n  scale,\n  setFontAndSize,\n  setLineHeight,\n  setLineWidth,\n  showText,\n  skewRadians,\n  stroke,\n  translate,\n  LineCapStyle,\n  setLineCap,\n  rotateDegrees,\n  setGraphicsState,\n  setDashPattern,\n  beginMarkedContent,\n  endMarkedContent,\n  clip,\n  endPath,\n  appendBezierCurve,\n} from 'src/api/operators';\nimport { Rotation, degrees, toRadians } from 'src/api/rotations';\nimport { svgPathToOperators } from 'src/api/svgPath';\nimport { PDFHexString, PDFName, PDFNumber, PDFOperator } from 'src/core';\nimport { asNumber } from 'src/api/objects';\n\nexport interface DrawTextOptions {\n  color: Color;\n  font: string | PDFName;\n  size: number | PDFNumber;\n  rotate: Rotation;\n  xSkew: Rotation;\n  ySkew: Rotation;\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  graphicsState?: string | PDFName;\n}\n\nexport const drawText = (\n  line: PDFHexString,\n  options: DrawTextOptions,\n): PDFOperator[] =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    beginText(),\n    setFillingColor(options.color),\n    setFontAndSize(options.font, options.size),\n    rotateAndSkewTextRadiansAndTranslate(\n      toRadians(options.rotate),\n      toRadians(options.xSkew),\n      toRadians(options.ySkew),\n      options.x,\n      options.y,\n    ),\n    showText(line),\n    endText(),\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport interface DrawLinesOfTextOptions extends DrawTextOptions {\n  lineHeight: number | PDFNumber;\n}\n\nexport const drawLinesOfText = (\n  lines: PDFHexString[],\n  options: DrawLinesOfTextOptions,\n): PDFOperator[] => {\n  const operators = [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    beginText(),\n    setFillingColor(options.color),\n    setFontAndSize(options.font, options.size),\n    setLineHeight(options.lineHeight),\n    rotateAndSkewTextRadiansAndTranslate(\n      toRadians(options.rotate),\n      toRadians(options.xSkew),\n      toRadians(options.ySkew),\n      options.x,\n      options.y,\n    ),\n  ].filter(Boolean) as PDFOperator[];\n\n  for (let idx = 0, len = lines.length; idx < len; idx++) {\n    operators.push(showText(lines[idx]), nextLine());\n  }\n\n  operators.push(endText(), popGraphicsState());\n  return operators;\n};\n\nexport const drawImage = (\n  name: string | PDFName,\n  options: {\n    x: number | PDFNumber;\n    y: number | PDFNumber;\n    width: number | PDFNumber;\n    height: number | PDFNumber;\n    rotate: Rotation;\n    xSkew: Rotation;\n    ySkew: Rotation;\n    graphicsState?: string | PDFName;\n  },\n): PDFOperator[] =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    translate(options.x, options.y),\n    rotateRadians(toRadians(options.rotate)),\n    scale(options.width, options.height),\n    skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n    drawObject(name),\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport const drawPage = (\n  name: string | PDFName,\n  options: {\n    x: number | PDFNumber;\n    y: number | PDFNumber;\n    xScale: number | PDFNumber;\n    yScale: number | PDFNumber;\n    rotate: Rotation;\n    xSkew: Rotation;\n    ySkew: Rotation;\n    graphicsState?: string | PDFName;\n  },\n): PDFOperator[] =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    translate(options.x, options.y),\n    rotateRadians(toRadians(options.rotate)),\n    scale(options.xScale, options.yScale),\n    skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n    drawObject(name),\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport const drawLine = (options: {\n  start: { x: number | PDFNumber; y: number | PDFNumber };\n  end: { x: number | PDFNumber; y: number | PDFNumber };\n  thickness: number | PDFNumber;\n  color: Color | undefined;\n  dashArray?: (number | PDFNumber)[];\n  dashPhase?: number | PDFNumber;\n  lineCap?: LineCapStyle;\n  graphicsState?: string | PDFName;\n}) =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    options.color && setStrokingColor(options.color),\n    setLineWidth(options.thickness),\n    setDashPattern(options.dashArray ?? [], options.dashPhase ?? 0),\n    moveTo(options.start.x, options.start.y),\n    options.lineCap && setLineCap(options.lineCap),\n    moveTo(options.start.x, options.start.y),\n    lineTo(options.end.x, options.end.y),\n    stroke(),\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport const drawRectangle = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  rotate: Rotation;\n  xSkew: Rotation;\n  ySkew: Rotation;\n  borderLineCap?: LineCapStyle;\n  borderDashArray?: (number | PDFNumber)[];\n  borderDashPhase?: number | PDFNumber;\n  graphicsState?: string | PDFName;\n}) =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    options.color && setFillingColor(options.color),\n    options.borderColor && setStrokingColor(options.borderColor),\n    setLineWidth(options.borderWidth),\n    options.borderLineCap && setLineCap(options.borderLineCap),\n    setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n    translate(options.x, options.y),\n    rotateRadians(toRadians(options.rotate)),\n    skewRadians(toRadians(options.xSkew), toRadians(options.ySkew)),\n    moveTo(0, 0),\n    lineTo(0, options.height),\n    lineTo(options.width, options.height),\n    lineTo(options.width, 0),\n    closePath(),\n\n    // prettier-ignore\n    options.color && options.borderWidth ? fillAndStroke()\n  : options.color                      ? fill()\n  : options.borderColor                ? stroke()\n  : closePath(),\n\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nconst KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0);\n\n/** @deprecated */\nexport const drawEllipsePath = (config: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  xScale: number | PDFNumber;\n  yScale: number | PDFNumber;\n}): PDFOperator[] => {\n  let x = asNumber(config.x);\n  let y = asNumber(config.y);\n  const xScale = asNumber(config.xScale);\n  const yScale = asNumber(config.yScale);\n\n  x -= xScale;\n  y -= yScale;\n\n  const ox = xScale * KAPPA;\n  const oy = yScale * KAPPA;\n  const xe = x + xScale * 2;\n  const ye = y + yScale * 2;\n  const xm = x + xScale;\n  const ym = y + yScale;\n\n  return [\n    pushGraphicsState(),\n    moveTo(x, ym),\n    appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n    appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n    appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n    appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n    popGraphicsState(),\n  ];\n};\n\nconst drawEllipseCurves = (config: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  xScale: number | PDFNumber;\n  yScale: number | PDFNumber;\n  rotate: Rotation;\n}): PDFOperator[] => {\n  const centerX = asNumber(config.x);\n  const centerY = asNumber(config.y);\n  const xScale = asNumber(config.xScale);\n  const yScale = asNumber(config.yScale);\n\n  const x = -xScale;\n  const y = -yScale;\n\n  const ox = xScale * KAPPA;\n  const oy = yScale * KAPPA;\n  const xe = x + xScale * 2;\n  const ye = y + yScale * 2;\n  const xm = x + xScale;\n  const ym = y + yScale;\n\n  return [\n    translate(centerX, centerY),\n    rotateRadians(toRadians(config.rotate)),\n    moveTo(x, ym),\n    appendBezierCurve(x, ym - oy, xm - ox, y, xm, y),\n    appendBezierCurve(xm + ox, y, xe, ym - oy, xe, ym),\n    appendBezierCurve(xe, ym + oy, xm + ox, ye, xm, ye),\n    appendBezierCurve(xm - ox, ye, x, ym + oy, x, ym),\n  ];\n};\n\nexport const drawEllipse = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  xScale: number | PDFNumber;\n  yScale: number | PDFNumber;\n  rotate?: Rotation;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  borderWidth: number | PDFNumber;\n  borderDashArray?: (number | PDFNumber)[];\n  borderDashPhase?: number | PDFNumber;\n  graphicsState?: string | PDFName;\n  borderLineCap?: LineCapStyle;\n}) =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n    options.color && setFillingColor(options.color),\n    options.borderColor && setStrokingColor(options.borderColor),\n    setLineWidth(options.borderWidth),\n    options.borderLineCap && setLineCap(options.borderLineCap),\n    setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n\n    // The `drawEllipsePath` branch is only here for backwards compatibility.\n    // See https://github.com/Hopding/pdf-lib/pull/511#issuecomment-667685655.\n    ...(options.rotate === undefined\n      ? drawEllipsePath({\n          x: options.x,\n          y: options.y,\n          xScale: options.xScale,\n          yScale: options.yScale,\n        })\n      : drawEllipseCurves({\n          x: options.x,\n          y: options.y,\n          xScale: options.xScale,\n          yScale: options.yScale,\n          rotate: options.rotate ?? degrees(0),\n        })),\n\n    // prettier-ignore\n    options.color && options.borderWidth ? fillAndStroke()\n  : options.color                      ? fill()\n  : options.borderColor                ? stroke()\n  : closePath(),\n\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport const drawSvgPath = (\n  path: string,\n  options: {\n    x: number | PDFNumber;\n    y: number | PDFNumber;\n    rotate?: Rotation;\n    scale: number | PDFNumber | undefined;\n    color: Color | undefined;\n    borderColor: Color | undefined;\n    borderWidth: number | PDFNumber;\n    borderDashArray?: (number | PDFNumber)[];\n    borderDashPhase?: number | PDFNumber;\n    borderLineCap?: LineCapStyle;\n    graphicsState?: string | PDFName;\n  },\n) =>\n  [\n    pushGraphicsState(),\n    options.graphicsState && setGraphicsState(options.graphicsState),\n\n    translate(options.x, options.y),\n    rotateRadians(toRadians(options.rotate ?? degrees(0))),\n\n    // SVG path Y axis is opposite pdf-lib's\n    options.scale ? scale(options.scale, -options.scale) : scale(1, -1),\n\n    options.color && setFillingColor(options.color),\n    options.borderColor && setStrokingColor(options.borderColor),\n    options.borderWidth && setLineWidth(options.borderWidth),\n    options.borderLineCap && setLineCap(options.borderLineCap),\n\n    setDashPattern(options.borderDashArray ?? [], options.borderDashPhase ?? 0),\n\n    ...svgPathToOperators(path),\n\n    // prettier-ignore\n    options.color && options.borderWidth ? fillAndStroke()\n  : options.color                      ? fill()\n  : options.borderColor                ? stroke()\n  : closePath(),\n\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n\nexport const drawCheckMark = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  size: number | PDFNumber;\n  thickness: number | PDFNumber;\n  color: Color | undefined;\n}) => {\n  const size = asNumber(options.size);\n\n  /*********************** Define Check Mark Points ***************************/\n  // A check mark is defined by three points in some coordinate space. Here, we\n  // define these points in a unit coordinate system, where the range of the x\n  // and y axis are both [-1, 1].\n  //\n  // Note that we do not hard code `p1y` in case we wish to change the\n  // size/shape of the check mark in the future. We want the check mark to\n  // always form a right angle. This means that the dot product between (p1-p2)\n  // and (p3-p2) should be zero:\n  //\n  //   (p1x-p2x) * (p3x-p2x) + (p1y-p2y) * (p3y-p2y) = 0\n  //\n  // We can now rejigger this equation to solve for `p1y`:\n  //\n  //   (p1y-p2y) * (p3y-p2y) = -((p1x-p2x) * (p3x-p2x))\n  //   (p1y-p2y) = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y)\n  //   p1y = -((p1x-p2x) * (p3x-p2x)) / (p3y-p2y) + p2y\n  //\n  // Thanks to my friend Joel Walker (https://github.com/JWalker1995) for\n  // devising the above equation and unit coordinate system approach!\n\n  // (x, y) coords of the check mark's bottommost point\n  const p2x = -1 + 0.75;\n  const p2y = -1 + 0.51;\n\n  // (x, y) coords of the check mark's topmost point\n  const p3y = 1 - 0.525;\n  const p3x = 1 - 0.31;\n\n  // (x, y) coords of the check mark's center (vertically) point\n  const p1x = -1 + 0.325;\n  const p1y = -((p1x - p2x) * (p3x - p2x)) / (p3y - p2y) + p2y;\n  /****************************************************************************/\n\n  return [\n    pushGraphicsState(),\n    options.color && setStrokingColor(options.color),\n    setLineWidth(options.thickness),\n\n    translate(options.x, options.y),\n    moveTo(p1x * size, p1y * size),\n    lineTo(p2x * size, p2y * size),\n    lineTo(p3x * size, p3y * size),\n\n    stroke(),\n    popGraphicsState(),\n  ].filter(Boolean) as PDFOperator[];\n};\n\n// prettier-ignore\nexport const rotateInPlace = (options: {\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  rotation: 0 | 90 | 180 | 270;\n}) =>\n    options.rotation === 0 ? [\n      translate(0, 0),\n      rotateDegrees(0)\n    ]\n  : options.rotation === 90 ? [\n      translate(options.width, 0),\n      rotateDegrees(90)\n    ]\n  : options.rotation === 180 ? [\n      translate(options.width, options.height),\n      rotateDegrees(180)\n    ]\n  : options.rotation === 270 ? [\n      translate(0, options.height),\n      rotateDegrees(270)\n    ]\n  : []; // Invalid rotation - noop\n\nexport const drawCheckBox = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  thickness: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  markColor: Color | undefined;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  filled: boolean;\n}) => {\n  const outline = drawRectangle({\n    x: options.x,\n    y: options.y,\n    width: options.width,\n    height: options.height,\n    borderWidth: options.borderWidth,\n    color: options.color,\n    borderColor: options.borderColor,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  if (!options.filled) return outline;\n\n  const width = asNumber(options.width);\n  const height = asNumber(options.height);\n\n  const checkMarkSize = Math.min(width, height) / 2;\n\n  const checkMark = drawCheckMark({\n    x: width / 2,\n    y: height / 2,\n    size: checkMarkSize,\n    thickness: options.thickness,\n    color: options.markColor,\n  });\n\n  return [pushGraphicsState(), ...outline, ...checkMark, popGraphicsState()];\n};\n\nexport const drawRadioButton = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  dotColor: Color | undefined;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  filled: boolean;\n}) => {\n  const width = asNumber(options.width);\n  const height = asNumber(options.height);\n\n  const outlineScale = Math.min(width, height) / 2;\n\n  const outline = drawEllipse({\n    x: options.x,\n    y: options.y,\n    xScale: outlineScale,\n    yScale: outlineScale,\n    color: options.color,\n    borderColor: options.borderColor,\n    borderWidth: options.borderWidth,\n  });\n\n  if (!options.filled) return outline;\n\n  const dot = drawEllipse({\n    x: options.x,\n    y: options.y,\n    xScale: outlineScale * 0.45,\n    yScale: outlineScale * 0.45,\n    color: options.dotColor,\n    borderColor: undefined,\n    borderWidth: 0,\n  });\n\n  return [pushGraphicsState(), ...outline, ...dot, popGraphicsState()];\n};\n\nexport const drawButton = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  textLines: { encoded: PDFHexString; x: number; y: number }[];\n  textColor: Color;\n  font: string | PDFName;\n  fontSize: number | PDFNumber;\n}) => {\n  const x = asNumber(options.x);\n  const y = asNumber(options.y);\n  const width = asNumber(options.width);\n  const height = asNumber(options.height);\n\n  const background = drawRectangle({\n    x,\n    y,\n    width,\n    height,\n    borderWidth: options.borderWidth,\n    color: options.color,\n    borderColor: options.borderColor,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  const lines = drawTextLines(options.textLines, {\n    color: options.textColor,\n    font: options.font,\n    size: options.fontSize,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  return [pushGraphicsState(), ...background, ...lines, popGraphicsState()];\n};\n\nexport interface DrawTextLinesOptions {\n  color: Color;\n  font: string | PDFName;\n  size: number | PDFNumber;\n  rotate: Rotation;\n  xSkew: Rotation;\n  ySkew: Rotation;\n}\n\nexport const drawTextLines = (\n  lines: { encoded: PDFHexString; x: number; y: number }[],\n  options: DrawTextLinesOptions,\n): PDFOperator[] => {\n  const operators = [\n    beginText(),\n    setFillingColor(options.color),\n    setFontAndSize(options.font, options.size),\n  ];\n\n  for (let idx = 0, len = lines.length; idx < len; idx++) {\n    const { encoded, x, y } = lines[idx];\n    operators.push(\n      rotateAndSkewTextRadiansAndTranslate(\n        toRadians(options.rotate),\n        toRadians(options.xSkew),\n        toRadians(options.ySkew),\n        x,\n        y,\n      ),\n      showText(encoded),\n    );\n  }\n\n  operators.push(endText());\n\n  return operators;\n};\n\nexport const drawTextField = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  textLines: { encoded: PDFHexString; x: number; y: number }[];\n  textColor: Color;\n  font: string | PDFName;\n  fontSize: number | PDFNumber;\n  padding: number | PDFNumber;\n}) => {\n  const x = asNumber(options.x);\n  const y = asNumber(options.y);\n  const width = asNumber(options.width);\n  const height = asNumber(options.height);\n  const borderWidth = asNumber(options.borderWidth);\n  const padding = asNumber(options.padding);\n\n  const clipX = x + borderWidth / 2 + padding;\n  const clipY = y + borderWidth / 2 + padding;\n  const clipWidth = width - (borderWidth / 2 + padding) * 2;\n  const clipHeight = height - (borderWidth / 2 + padding) * 2;\n\n  const clippingArea = [\n    moveTo(clipX, clipY),\n    lineTo(clipX, clipY + clipHeight),\n    lineTo(clipX + clipWidth, clipY + clipHeight),\n    lineTo(clipX + clipWidth, clipY),\n    closePath(),\n    clip(),\n    endPath(),\n  ];\n\n  const background = drawRectangle({\n    x,\n    y,\n    width,\n    height,\n    borderWidth: options.borderWidth,\n    color: options.color,\n    borderColor: options.borderColor,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  const lines = drawTextLines(options.textLines, {\n    color: options.textColor,\n    font: options.font,\n    size: options.fontSize,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  const markedContent = [\n    beginMarkedContent('Tx'),\n    pushGraphicsState(),\n    ...lines,\n    popGraphicsState(),\n    endMarkedContent(),\n  ];\n\n  return [\n    pushGraphicsState(),\n    ...background,\n    ...clippingArea,\n    ...markedContent,\n    popGraphicsState(),\n  ];\n};\n\nexport const drawOptionList = (options: {\n  x: number | PDFNumber;\n  y: number | PDFNumber;\n  width: number | PDFNumber;\n  height: number | PDFNumber;\n  borderWidth: number | PDFNumber;\n  color: Color | undefined;\n  borderColor: Color | undefined;\n  textLines: { encoded: PDFHexString; x: number; y: number; height: number }[];\n  textColor: Color;\n  font: string | PDFName;\n  fontSize: number | PDFNumber;\n  lineHeight: number | PDFNumber;\n  selectedLines: number[];\n  selectedColor: Color;\n  padding: number | PDFNumber;\n}) => {\n  const x = asNumber(options.x);\n  const y = asNumber(options.y);\n  const width = asNumber(options.width);\n  const height = asNumber(options.height);\n  const lineHeight = asNumber(options.lineHeight);\n  const borderWidth = asNumber(options.borderWidth);\n  const padding = asNumber(options.padding);\n\n  const clipX = x + borderWidth / 2 + padding;\n  const clipY = y + borderWidth / 2 + padding;\n  const clipWidth = width - (borderWidth / 2 + padding) * 2;\n  const clipHeight = height - (borderWidth / 2 + padding) * 2;\n\n  const clippingArea = [\n    moveTo(clipX, clipY),\n    lineTo(clipX, clipY + clipHeight),\n    lineTo(clipX + clipWidth, clipY + clipHeight),\n    lineTo(clipX + clipWidth, clipY),\n    closePath(),\n    clip(),\n    endPath(),\n  ];\n\n  const background = drawRectangle({\n    x,\n    y,\n    width,\n    height,\n    borderWidth: options.borderWidth,\n    color: options.color,\n    borderColor: options.borderColor,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  const highlights: PDFOperator[] = [];\n  for (let idx = 0, len = options.selectedLines.length; idx < len; idx++) {\n    const line = options.textLines[options.selectedLines[idx]];\n    highlights.push(\n      ...drawRectangle({\n        x: line.x - padding,\n        y: line.y - (lineHeight - line.height) / 2,\n        width: width - borderWidth,\n        height: line.height + (lineHeight - line.height) / 2,\n        borderWidth: 0,\n        color: options.selectedColor,\n        borderColor: undefined,\n        rotate: degrees(0),\n        xSkew: degrees(0),\n        ySkew: degrees(0),\n      }),\n    );\n  }\n\n  const lines = drawTextLines(options.textLines, {\n    color: options.textColor,\n    font: options.font,\n    size: options.fontSize,\n    rotate: degrees(0),\n    xSkew: degrees(0),\n    ySkew: degrees(0),\n  });\n\n  const markedContent = [\n    beginMarkedContent('Tx'),\n    pushGraphicsState(),\n    ...lines,\n    popGraphicsState(),\n    endMarkedContent(),\n  ];\n\n  return [\n    pushGraphicsState(),\n    ...background,\n    ...highlights,\n    ...clippingArea,\n    ...markedContent,\n    popGraphicsState(),\n  ];\n};\n","// tslint:disable: max-classes-per-file\n\n// TODO: Include link to documentation with example\nexport class EncryptedPDFError extends Error {\n  constructor() {\n    const msg =\n      'Input document to `PDFDocument.load` is encrypted. You can use `PDFDocument.load(..., { ignoreEncryption: true })` if you wish to load the document anyways.';\n    super(msg);\n  }\n}\n\n// TODO: Include link to documentation with example\nexport class FontkitNotRegisteredError extends Error {\n  constructor() {\n    const msg =\n      'Input to `PDFDocument.embedFont` was a custom font, but no `fontkit` instance was found. You must register a `fontkit` instance with `PDFDocument.registerFontkit(...)` before embedding custom fonts.';\n    super(msg);\n  }\n}\n\n// TODO: Include link to documentation with example\nexport class ForeignPageError extends Error {\n  constructor() {\n    const msg =\n      'A `page` passed to `PDFDocument.addPage` or `PDFDocument.insertPage` was from a different (foreign) PDF document. If you want to copy pages from one PDFDocument to another, you must use `PDFDocument.copyPages(...)` to copy the pages before adding or inserting them.';\n    super(msg);\n  }\n}\n\n// TODO: Include link to documentation with example\nexport class RemovePageFromEmptyDocumentError extends Error {\n  constructor() {\n    const msg =\n      'PDFDocument has no pages so `PDFDocument.removePage` cannot be called';\n    super(msg);\n  }\n}\n\nexport class NoSuchFieldError extends Error {\n  constructor(name: string) {\n    const msg = `PDFDocument has no form field with the name \"${name}\"`;\n    super(msg);\n  }\n}\n\nexport class UnexpectedFieldTypeError extends Error {\n  constructor(name: string, expected: any, actual: any) {\n    const expectedType = expected?.name;\n    const actualType = actual?.constructor?.name ?? actual;\n    const msg =\n      `Expected field \"${name}\" to be of type ${expectedType}, ` +\n      `but it is actually of type ${actualType}`;\n    super(msg);\n  }\n}\n\nexport class MissingOnValueCheckError extends Error {\n  constructor(onValue: any) {\n    const msg = `Failed to select check box due to missing onValue: \"${onValue}\"`;\n    super(msg);\n  }\n}\n\nexport class FieldAlreadyExistsError extends Error {\n  constructor(name: string) {\n    const msg = `A field already exists with the specified name: \"${name}\"`;\n    super(msg);\n  }\n}\n\nexport class InvalidFieldNamePartError extends Error {\n  constructor(namePart: string) {\n    const msg = `Field name contains invalid component: \"${namePart}\"`;\n    super(msg);\n  }\n}\n\nexport class FieldExistsAsNonTerminalError extends Error {\n  constructor(name: string) {\n    const msg = `A non-terminal field already exists with the specified name: \"${name}\"`;\n    super(msg);\n  }\n}\n\nexport class RichTextFieldReadError extends Error {\n  constructor(fieldName: string) {\n    const msg = `Reading rich text fields is not supported: Attempted to read rich text field: ${fieldName}`;\n    super(msg);\n  }\n}\n\nexport class CombedTextLayoutError extends Error {\n  constructor(lineLength: number, cellCount: number) {\n    const msg = `Failed to layout combed text as lineLength=${lineLength} is greater than cellCount=${cellCount}`;\n    super(msg);\n  }\n}\n\nexport class ExceededMaxLengthError extends Error {\n  constructor(textLength: number, maxLength: number, name: string) {\n    const msg = `Attempted to set text with length=${textLength} for TextField with maxLength=${maxLength} and name=${name}`;\n    super(msg);\n  }\n}\n\nexport class InvalidMaxLengthError extends Error {\n  constructor(textLength: number, maxLength: number, name: string) {\n    const msg = `Attempted to set maxLength=${maxLength}, which is less than ${textLength}, the length of this field's current value (name=${name})`;\n    super(msg);\n  }\n}\n","import PDFFont from 'src/api/PDFFont';\nimport { CombedTextLayoutError } from 'src/api/errors';\nimport { TextAlignment } from 'src/api/text/alignment';\n\nimport { PDFHexString } from 'src/core';\nimport {\n  cleanText,\n  lineSplit,\n  mergeLines,\n  charAtIndex,\n  charSplit,\n} from 'src/utils';\n\nexport interface TextPosition {\n  text: string;\n  encoded: PDFHexString;\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n}\n\nexport interface LayoutBounds {\n  x: number;\n  y: number;\n  width: number;\n  height: number;\n}\n\nconst MIN_FONT_SIZE = 4;\nconst MAX_FONT_SIZE = 500;\n\nconst computeFontSize = (\n  lines: string[],\n  font: PDFFont,\n  bounds: LayoutBounds,\n  multiline: boolean = false,\n) => {\n  let fontSize = MIN_FONT_SIZE;\n\n  while (fontSize < MAX_FONT_SIZE) {\n    let linesUsed = 0;\n\n    for (\n      let lineIdx = 0, lineLen = lines.length;\n      lineIdx < lineLen;\n      lineIdx++\n    ) {\n      linesUsed += 1;\n\n      const line = lines[lineIdx];\n      const words = line.split(' ');\n\n      // Layout the words using the current `fontSize`, line wrapping\n      // whenever we reach the end of the current line.\n      let spaceInLineRemaining = bounds.width;\n      for (let idx = 0, len = words.length; idx < len; idx++) {\n        const isLastWord = idx === len - 1;\n        const word = isLastWord ? words[idx] : words[idx] + ' ';\n        const widthOfWord = font.widthOfTextAtSize(word, fontSize);\n        spaceInLineRemaining -= widthOfWord;\n        if (spaceInLineRemaining <= 0) {\n          linesUsed += 1;\n          spaceInLineRemaining = bounds.width - widthOfWord;\n        }\n      }\n    }\n\n    // Return if we exceeded the allowed width\n    if (!multiline && linesUsed > lines.length) return fontSize - 1;\n\n    const height = font.heightAtSize(fontSize);\n    const lineHeight = height + height * 0.2;\n    const totalHeight = lineHeight * linesUsed;\n\n    // Return if we exceeded the allowed height\n    if (totalHeight > Math.abs(bounds.height)) return fontSize - 1;\n\n    fontSize += 1;\n  }\n\n  return fontSize;\n};\n\nconst computeCombedFontSize = (\n  line: string,\n  font: PDFFont,\n  bounds: LayoutBounds,\n  cellCount: number,\n) => {\n  const cellWidth = bounds.width / cellCount;\n  const cellHeight = bounds.height;\n\n  let fontSize = MIN_FONT_SIZE;\n\n  const chars = charSplit(line);\n  while (fontSize < MAX_FONT_SIZE) {\n    for (let idx = 0, len = chars.length; idx < len; idx++) {\n      const c = chars[idx];\n      const tooLong = font.widthOfTextAtSize(c, fontSize) > cellWidth * 0.75;\n      if (tooLong) return fontSize - 1;\n    }\n\n    const height = font.heightAtSize(fontSize, { descender: false });\n    if (height > cellHeight) return fontSize - 1;\n\n    fontSize += 1;\n  }\n\n  return fontSize;\n};\n\nexport interface LayoutTextOptions {\n  alignment: TextAlignment;\n  fontSize?: number;\n  font: PDFFont;\n  bounds: LayoutBounds;\n}\n\nexport interface MultilineTextLayout {\n  bounds: LayoutBounds;\n  lines: TextPosition[];\n  fontSize: number;\n  lineHeight: number;\n}\n\nconst lastIndexOfWhitespace = (line: string) => {\n  for (let idx = line.length; idx > 0; idx--) {\n    if (/\\s/.test(line[idx])) return idx;\n  }\n  return undefined;\n};\n\nconst splitOutLines = (\n  input: string,\n  maxWidth: number,\n  font: PDFFont,\n  fontSize: number,\n) => {\n  let lastWhitespaceIdx = input.length;\n  while (lastWhitespaceIdx > 0) {\n    const line = input.substring(0, lastWhitespaceIdx);\n    const encoded = font.encodeText(line);\n    const width = font.widthOfTextAtSize(line, fontSize);\n    if (width < maxWidth) {\n      const remainder = input.substring(lastWhitespaceIdx) || undefined;\n      return { line, encoded, width, remainder };\n    }\n    lastWhitespaceIdx = lastIndexOfWhitespace(line) ?? 0;\n  }\n\n  // We were unable to split the input enough to get a chunk that would fit\n  // within the specified `maxWidth` so we'll just return everything\n  return {\n    line: input,\n    encoded: font.encodeText(input),\n    width: font.widthOfTextAtSize(input, fontSize),\n    remainder: undefined,\n  };\n};\n\nexport const layoutMultilineText = (\n  text: string,\n  { alignment, fontSize, font, bounds }: LayoutTextOptions,\n): MultilineTextLayout => {\n  const lines = lineSplit(cleanText(text));\n\n  if (fontSize === undefined || fontSize === 0) {\n    fontSize = computeFontSize(lines, font, bounds, true);\n  }\n  const height = font.heightAtSize(fontSize);\n  const lineHeight = height + height * 0.2;\n\n  const textLines: TextPosition[] = [];\n\n  let minX = bounds.x;\n  let minY = bounds.y;\n  let maxX = bounds.x + bounds.width;\n  let maxY = bounds.y + bounds.height;\n\n  let y = bounds.y + bounds.height;\n  for (let idx = 0, len = lines.length; idx < len; idx++) {\n    let prevRemainder: string | undefined = lines[idx];\n    while (prevRemainder !== undefined) {\n      const { line, encoded, width, remainder } = splitOutLines(\n        prevRemainder,\n        bounds.width,\n        font,\n        fontSize,\n      );\n\n      // prettier-ignore\n      const x = (\n          alignment === TextAlignment.Left   ? bounds.x\n        : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n        : alignment === TextAlignment.Right  ? bounds.x + bounds.width - width\n        : bounds.x\n      );\n\n      y -= lineHeight;\n\n      if (x < minX) minX = x;\n      if (y < minY) minY = y;\n      if (x + width > maxX) maxX = x + width;\n      if (y + height > maxY) maxY = y + height;\n\n      textLines.push({ text: line, encoded, width, height, x, y });\n\n      // Only trim lines that we had to split ourselves. So we won't trim lines\n      // that the user provided themselves with whitespace.\n      prevRemainder = remainder?.trim();\n    }\n  }\n\n  return {\n    fontSize,\n    lineHeight,\n    lines: textLines,\n    bounds: {\n      x: minX,\n      y: minY,\n      width: maxX - minX,\n      height: maxY - minY,\n    },\n  };\n};\n\nexport interface LayoutCombedTextOptions {\n  fontSize?: number;\n  font: PDFFont;\n  bounds: LayoutBounds;\n  cellCount: number;\n}\n\nexport interface CombedTextLayout {\n  bounds: LayoutBounds;\n  cells: TextPosition[];\n  fontSize: number;\n}\n\nexport const layoutCombedText = (\n  text: string,\n  { fontSize, font, bounds, cellCount }: LayoutCombedTextOptions,\n): CombedTextLayout => {\n  const line = mergeLines(cleanText(text));\n\n  if (line.length > cellCount) {\n    throw new CombedTextLayoutError(line.length, cellCount);\n  }\n\n  if (fontSize === undefined || fontSize === 0) {\n    fontSize = computeCombedFontSize(line, font, bounds, cellCount);\n  }\n\n  const cellWidth = bounds.width / cellCount;\n\n  const height = font.heightAtSize(fontSize, { descender: false });\n  const y = bounds.y + (bounds.height / 2 - height / 2);\n\n  const cells: TextPosition[] = [];\n\n  let minX = bounds.x;\n  let minY = bounds.y;\n  let maxX = bounds.x + bounds.width;\n  let maxY = bounds.y + bounds.height;\n\n  let cellOffset = 0;\n  let charOffset = 0;\n  while (cellOffset < cellCount) {\n    const [char, charLength] = charAtIndex(line, charOffset);\n\n    const encoded = font.encodeText(char);\n    const width = font.widthOfTextAtSize(char, fontSize);\n\n    const cellCenter = bounds.x + (cellWidth * cellOffset + cellWidth / 2);\n    const x = cellCenter - width / 2;\n\n    if (x < minX) minX = x;\n    if (y < minY) minY = y;\n    if (x + width > maxX) maxX = x + width;\n    if (y + height > maxY) maxY = y + height;\n\n    cells.push({ text: line, encoded, width, height, x, y });\n\n    cellOffset += 1;\n    charOffset += charLength;\n  }\n\n  return {\n    fontSize,\n    cells,\n    bounds: {\n      x: minX,\n      y: minY,\n      width: maxX - minX,\n      height: maxY - minY,\n    },\n  };\n};\n\nexport interface LayoutSinglelineTextOptions {\n  alignment: TextAlignment;\n  fontSize?: number;\n  font: PDFFont;\n  bounds: LayoutBounds;\n}\n\nexport interface SinglelineTextLayout {\n  bounds: LayoutBounds;\n  line: TextPosition;\n  fontSize: number;\n}\n\nexport const layoutSinglelineText = (\n  text: string,\n  { alignment, fontSize, font, bounds }: LayoutSinglelineTextOptions,\n): SinglelineTextLayout => {\n  const line = mergeLines(cleanText(text));\n\n  if (fontSize === undefined || fontSize === 0) {\n    fontSize = computeFontSize([line], font, bounds);\n  }\n\n  const encoded = font.encodeText(line);\n  const width = font.widthOfTextAtSize(line, fontSize);\n  const height = font.heightAtSize(fontSize, { descender: false });\n\n  // prettier-ignore\n  const x = (\n      alignment === TextAlignment.Left   ? bounds.x\n    : alignment === TextAlignment.Center ? bounds.x + (bounds.width / 2) - (width / 2)\n    : alignment === TextAlignment.Right  ? bounds.x + bounds.width - width\n    : bounds.x\n  );\n\n  const y = bounds.y + (bounds.height / 2 - height / 2);\n\n  return {\n    fontSize,\n    line: { text: line, encoded, width, height, x, y },\n    bounds: { x, y, width, height },\n  };\n};\n","import { PDFOperator, PDFWidgetAnnotation } from 'src/core';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFButton from 'src/api/form/PDFButton';\nimport PDFCheckBox from 'src/api/form/PDFCheckBox';\nimport PDFDropdown from 'src/api/form/PDFDropdown';\nimport PDFField from 'src/api/form/PDFField';\nimport PDFOptionList from 'src/api/form/PDFOptionList';\nimport PDFRadioGroup from 'src/api/form/PDFRadioGroup';\nimport PDFSignature from 'src/api/form/PDFSignature';\nimport PDFTextField from 'src/api/form/PDFTextField';\nimport {\n  drawCheckBox,\n  rotateInPlace,\n  drawRadioButton,\n  drawButton,\n  drawTextField,\n  drawOptionList,\n} from 'src/api/operations';\nimport {\n  rgb,\n  componentsToColor,\n  setFillingColor,\n  grayscale,\n  cmyk,\n  Color,\n} from 'src/api/colors';\nimport { reduceRotation, adjustDimsForRotation } from 'src/api/rotations';\nimport {\n  layoutMultilineText,\n  layoutCombedText,\n  TextPosition,\n  layoutSinglelineText,\n} from 'src/api/text/layout';\nimport { TextAlignment } from 'src/api/text/alignment';\nimport { setFontAndSize } from 'src/api/operators';\nimport { findLastMatch } from 'src/utils';\n\n/*********************** Appearance Provider Types ****************************/\n\ntype CheckBoxAppearanceProvider = (\n  checkBox: PDFCheckBox,\n  widget: PDFWidgetAnnotation,\n) => AppearanceOrMapping<{\n  on: PDFOperator[];\n  off: PDFOperator[];\n}>;\n\ntype RadioGroupAppearanceProvider = (\n  radioGroup: PDFRadioGroup,\n  widget: PDFWidgetAnnotation,\n) => AppearanceOrMapping<{\n  on: PDFOperator[];\n  off: PDFOperator[];\n}>;\n\ntype ButtonAppearanceProvider = (\n  button: PDFButton,\n  widget: PDFWidgetAnnotation,\n  font: PDFFont,\n) => AppearanceOrMapping<PDFOperator[]>;\n\ntype DropdownAppearanceProvider = (\n  dropdown: PDFDropdown,\n  widget: PDFWidgetAnnotation,\n  font: PDFFont,\n) => AppearanceOrMapping<PDFOperator[]>;\n\ntype OptionListAppearanceProvider = (\n  optionList: PDFOptionList,\n  widget: PDFWidgetAnnotation,\n  font: PDFFont,\n) => AppearanceOrMapping<PDFOperator[]>;\n\ntype TextFieldAppearanceProvider = (\n  textField: PDFTextField,\n  widget: PDFWidgetAnnotation,\n  font: PDFFont,\n) => AppearanceOrMapping<PDFOperator[]>;\n\ntype SignatureAppearanceProvider = (\n  signature: PDFSignature,\n  widget: PDFWidgetAnnotation,\n  font: PDFFont,\n) => AppearanceOrMapping<PDFOperator[]>;\n\n/******************* Appearance Provider Utility Types ************************/\n\nexport type AppearanceMapping<T> = { normal: T; rollover?: T; down?: T };\n\ntype AppearanceOrMapping<T> = T | AppearanceMapping<T>;\n\n// prettier-ignore\nexport type AppearanceProviderFor<T extends PDFField> = \n  T extends PDFCheckBox   ? CheckBoxAppearanceProvider\n: T extends PDFRadioGroup ? RadioGroupAppearanceProvider\n: T extends PDFButton     ? ButtonAppearanceProvider\n: T extends PDFDropdown   ? DropdownAppearanceProvider\n: T extends PDFOptionList ? OptionListAppearanceProvider\n: T extends PDFTextField  ? TextFieldAppearanceProvider\n: T extends PDFSignature  ? SignatureAppearanceProvider\n: never;\n\n/********************* Appearance Provider Functions **************************/\n\nexport const normalizeAppearance = <T>(\n  appearance: T | AppearanceMapping<T>,\n): AppearanceMapping<T> => {\n  if ('normal' in appearance) return appearance;\n  return { normal: appearance };\n};\n\n// Examples:\n//   `/Helv 12 Tf` -> ['/Helv 12 Tf', 'Helv', '12']\n//   `/HeBo 8.00 Tf` -> ['/HeBo 8 Tf', 'HeBo', '8.00']\nconst tfRegex = /\\/([^\\0\\t\\n\\f\\r\\ ]+)[\\0\\t\\n\\f\\r\\ ]+(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]+Tf/;\n\nconst getDefaultFontSize = (field: {\n  getDefaultAppearance(): string | undefined;\n}) => {\n  const da = field.getDefaultAppearance() ?? '';\n  const daMatch = findLastMatch(da, tfRegex).match ?? [];\n  const defaultFontSize = Number(daMatch[2]);\n  return isFinite(defaultFontSize) ? defaultFontSize : undefined;\n};\n\n// Examples:\n//   `0.3 g` -> ['0.3', 'g']\n//   `0.3 1 .3 rg` -> ['0.3', '1', '.3', 'rg']\n//   `0.3 1 .3 0 k` -> ['0.3', '1', '.3', '0', 'k']\nconst colorRegex = /(\\d*\\.\\d+|\\d+)[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]*(\\d*\\.\\d+|\\d+)?[\\0\\t\\n\\f\\r\\ ]+(g|rg|k)/;\n\nconst getDefaultColor = (field: {\n  getDefaultAppearance(): string | undefined;\n}) => {\n  const da = field.getDefaultAppearance() ?? '';\n  const daMatch = findLastMatch(da, colorRegex).match;\n\n  const [, c1, c2, c3, c4, colorSpace] = daMatch ?? [];\n\n  if (colorSpace === 'g' && c1) {\n    return grayscale(Number(c1));\n  }\n  if (colorSpace === 'rg' && c1 && c2 && c3) {\n    return rgb(Number(c1), Number(c2), Number(c3));\n  }\n  if (colorSpace === 'k' && c1 && c2 && c3 && c4) {\n    return cmyk(Number(c1), Number(c2), Number(c3), Number(c4));\n  }\n\n  return undefined;\n};\n\nconst updateDefaultAppearance = (\n  field: { setDefaultAppearance(appearance: string): void },\n  color: Color,\n  font?: PDFFont,\n  fontSize: number = 0,\n) => {\n  const da = [\n    setFillingColor(color).toString(),\n    setFontAndSize(font?.name ?? 'dummy__noop', fontSize).toString(),\n  ].join('\\n');\n  field.setDefaultAppearance(da);\n};\n\nexport const defaultCheckBoxAppearanceProvider: AppearanceProviderFor<PDFCheckBox> = (\n  checkBox,\n  widget,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(checkBox.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n  const borderColor = componentsToColor(ap?.getBorderColor()) ?? black;\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n  const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n  // Update color\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor) {\n    updateDefaultAppearance(widget, textColor);\n  } else {\n    updateDefaultAppearance(checkBox.acroField, textColor);\n  }\n\n  const options = {\n    x: 0 + borderWidth / 2,\n    y: 0 + borderWidth / 2,\n    width: width - borderWidth,\n    height: height - borderWidth,\n    thickness: 1.5,\n    borderWidth,\n    borderColor,\n    markColor: textColor,\n  };\n\n  return {\n    normal: {\n      on: [\n        ...rotate,\n        ...drawCheckBox({\n          ...options,\n          color: normalBackgroundColor,\n          filled: true,\n        }),\n      ],\n      off: [\n        ...rotate,\n        ...drawCheckBox({\n          ...options,\n          color: normalBackgroundColor,\n          filled: false,\n        }),\n      ],\n    },\n    down: {\n      on: [\n        ...rotate,\n        ...drawCheckBox({\n          ...options,\n          color: downBackgroundColor,\n          filled: true,\n        }),\n      ],\n      off: [\n        ...rotate,\n        ...drawCheckBox({\n          ...options,\n          color: downBackgroundColor,\n          filled: false,\n        }),\n      ],\n    },\n  };\n};\n\nexport const defaultRadioGroupAppearanceProvider: AppearanceProviderFor<PDFRadioGroup> = (\n  radioGroup,\n  widget,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(radioGroup.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n  const borderColor = componentsToColor(ap?.getBorderColor()) ?? black;\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n  const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n  // Update color\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor) {\n    updateDefaultAppearance(widget, textColor);\n  } else {\n    updateDefaultAppearance(radioGroup.acroField, textColor);\n  }\n\n  const options = {\n    x: width / 2,\n    y: height / 2,\n    width: width - borderWidth,\n    height: height - borderWidth,\n    borderWidth,\n    borderColor,\n    dotColor: textColor,\n  };\n\n  return {\n    normal: {\n      on: [\n        ...rotate,\n        ...drawRadioButton({\n          ...options,\n          color: normalBackgroundColor,\n          filled: true,\n        }),\n      ],\n      off: [\n        ...rotate,\n        ...drawRadioButton({\n          ...options,\n          color: normalBackgroundColor,\n          filled: false,\n        }),\n      ],\n    },\n    down: {\n      on: [\n        ...rotate,\n        ...drawRadioButton({\n          ...options,\n          color: downBackgroundColor,\n          filled: true,\n        }),\n      ],\n      off: [\n        ...rotate,\n        ...drawRadioButton({\n          ...options,\n          color: downBackgroundColor,\n          filled: false,\n        }),\n      ],\n    },\n  };\n};\n\nexport const defaultButtonAppearanceProvider: AppearanceProviderFor<PDFButton> = (\n  button,\n  widget,\n  font,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(button.acroField);\n  const widgetFontSize = getDefaultFontSize(widget);\n  const fieldFontSize = getDefaultFontSize(button.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n  const captions = ap?.getCaptions();\n  const normalText = captions?.normal ?? '';\n  const downText = captions?.down ?? normalText ?? '';\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n\n  const borderColor = componentsToColor(ap?.getBorderColor());\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n  const downBackgroundColor = componentsToColor(ap?.getBackgroundColor(), 0.8);\n\n  const bounds = {\n    x: borderWidth,\n    y: borderWidth,\n    width: width - borderWidth * 2,\n    height: height - borderWidth * 2,\n  };\n  const normalLayout = layoutSinglelineText(normalText, {\n    alignment: TextAlignment.Center,\n    fontSize: widgetFontSize ?? fieldFontSize,\n    font,\n    bounds,\n  });\n  const downLayout = layoutSinglelineText(downText, {\n    alignment: TextAlignment.Center,\n    fontSize: widgetFontSize ?? fieldFontSize,\n    font,\n    bounds,\n  });\n\n  // Update font size and color\n  const fontSize = Math.min(normalLayout.fontSize, downLayout.fontSize);\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor || widgetFontSize !== undefined) {\n    updateDefaultAppearance(widget, textColor, font, fontSize);\n  } else {\n    updateDefaultAppearance(button.acroField, textColor, font, fontSize);\n  }\n\n  const options = {\n    x: 0 + borderWidth / 2,\n    y: 0 + borderWidth / 2,\n    width: width - borderWidth,\n    height: height - borderWidth,\n    borderWidth,\n    borderColor,\n    textColor,\n    font: font.name,\n    fontSize,\n  };\n\n  return {\n    normal: [\n      ...rotate,\n      ...drawButton({\n        ...options,\n        color: normalBackgroundColor,\n        textLines: [normalLayout.line],\n      }),\n    ],\n    down: [\n      ...rotate,\n      ...drawButton({\n        ...options,\n        color: downBackgroundColor,\n        textLines: [downLayout.line],\n      }),\n    ],\n  };\n};\n\nexport const defaultTextFieldAppearanceProvider: AppearanceProviderFor<PDFTextField> = (\n  textField,\n  widget,\n  font,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(textField.acroField);\n  const widgetFontSize = getDefaultFontSize(widget);\n  const fieldFontSize = getDefaultFontSize(textField.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n  const text = textField.getText() ?? '';\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n\n  const borderColor = componentsToColor(ap?.getBorderColor());\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n  let textLines: TextPosition[];\n  let fontSize: number;\n\n  const padding = textField.isCombed() ? 0 : 1;\n  const bounds = {\n    x: borderWidth + padding,\n    y: borderWidth + padding,\n    width: width - (borderWidth + padding) * 2,\n    height: height - (borderWidth + padding) * 2,\n  };\n  if (textField.isMultiline()) {\n    const layout = layoutMultilineText(text, {\n      alignment: textField.getAlignment(),\n      fontSize: widgetFontSize ?? fieldFontSize,\n      font,\n      bounds,\n    });\n    textLines = layout.lines;\n    fontSize = layout.fontSize;\n  } else if (textField.isCombed()) {\n    const layout = layoutCombedText(text, {\n      fontSize: widgetFontSize ?? fieldFontSize,\n      font,\n      bounds,\n      cellCount: textField.getMaxLength() ?? 0,\n    });\n    textLines = layout.cells;\n    fontSize = layout.fontSize;\n  } else {\n    const layout = layoutSinglelineText(text, {\n      alignment: textField.getAlignment(),\n      fontSize: widgetFontSize ?? fieldFontSize,\n      font,\n      bounds,\n    });\n    textLines = [layout.line];\n    fontSize = layout.fontSize;\n  }\n\n  // Update font size and color\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor || widgetFontSize !== undefined) {\n    updateDefaultAppearance(widget, textColor, font, fontSize);\n  } else {\n    updateDefaultAppearance(textField.acroField, textColor, font, fontSize);\n  }\n\n  const options = {\n    x: 0 + borderWidth / 2,\n    y: 0 + borderWidth / 2,\n    width: width - borderWidth,\n    height: height - borderWidth,\n    borderWidth: borderWidth ?? 0,\n    borderColor,\n    textColor,\n    font: font.name,\n    fontSize,\n    color: normalBackgroundColor,\n    textLines,\n    padding,\n  };\n\n  return [...rotate, ...drawTextField(options)];\n};\n\nexport const defaultDropdownAppearanceProvider: AppearanceProviderFor<PDFDropdown> = (\n  dropdown,\n  widget,\n  font,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(dropdown.acroField);\n  const widgetFontSize = getDefaultFontSize(widget);\n  const fieldFontSize = getDefaultFontSize(dropdown.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n  const text = dropdown.getSelected()[0] ?? '';\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n\n  const borderColor = componentsToColor(ap?.getBorderColor());\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n  const padding = 1;\n  const bounds = {\n    x: borderWidth + padding,\n    y: borderWidth + padding,\n    width: width - (borderWidth + padding) * 2,\n    height: height - (borderWidth + padding) * 2,\n  };\n  const { line, fontSize } = layoutSinglelineText(text, {\n    alignment: TextAlignment.Left,\n    fontSize: widgetFontSize ?? fieldFontSize,\n    font,\n    bounds,\n  });\n\n  // Update font size and color\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor || widgetFontSize !== undefined) {\n    updateDefaultAppearance(widget, textColor, font, fontSize);\n  } else {\n    updateDefaultAppearance(dropdown.acroField, textColor, font, fontSize);\n  }\n\n  const options = {\n    x: 0 + borderWidth / 2,\n    y: 0 + borderWidth / 2,\n    width: width - borderWidth,\n    height: height - borderWidth,\n    borderWidth: borderWidth ?? 0,\n    borderColor,\n    textColor,\n    font: font.name,\n    fontSize,\n    color: normalBackgroundColor,\n    textLines: [line],\n    padding,\n  };\n\n  return [...rotate, ...drawTextField(options)];\n};\n\nexport const defaultOptionListAppearanceProvider: AppearanceProviderFor<PDFOptionList> = (\n  optionList,\n  widget,\n  font,\n) => {\n  // The `/DA` entry can be at the widget or field level - so we handle both\n  const widgetColor = getDefaultColor(widget);\n  const fieldColor = getDefaultColor(optionList.acroField);\n  const widgetFontSize = getDefaultFontSize(widget);\n  const fieldFontSize = getDefaultFontSize(optionList.acroField);\n\n  const rectangle = widget.getRectangle();\n  const ap = widget.getAppearanceCharacteristics();\n  const bs = widget.getBorderStyle();\n\n  const borderWidth = bs?.getWidth() ?? 0;\n  const rotation = reduceRotation(ap?.getRotation());\n  const { width, height } = adjustDimsForRotation(rectangle, rotation);\n\n  const rotate = rotateInPlace({ ...rectangle, rotation });\n\n  const black = rgb(0, 0, 0);\n\n  const borderColor = componentsToColor(ap?.getBorderColor());\n  const normalBackgroundColor = componentsToColor(ap?.getBackgroundColor());\n\n  const options = optionList.getOptions();\n  const selected = optionList.getSelected();\n\n  if (optionList.isSorted()) options.sort();\n\n  let text = '';\n  for (let idx = 0, len = options.length; idx < len; idx++) {\n    text += options[idx];\n    if (idx < len - 1) text += '\\n';\n  }\n\n  const padding = 1;\n  const bounds = {\n    x: borderWidth + padding,\n    y: borderWidth + padding,\n    width: width - (borderWidth + padding) * 2,\n    height: height - (borderWidth + padding) * 2,\n  };\n  const { lines, fontSize, lineHeight } = layoutMultilineText(text, {\n    alignment: TextAlignment.Left,\n    fontSize: widgetFontSize ?? fieldFontSize,\n    font,\n    bounds,\n  });\n\n  const selectedLines: number[] = [];\n  for (let idx = 0, len = lines.length; idx < len; idx++) {\n    const line = lines[idx];\n    if (selected.includes(line.text)) selectedLines.push(idx);\n  }\n\n  const blue = rgb(153 / 255, 193 / 255, 218 / 255);\n\n  // Update font size and color\n  const textColor = widgetColor ?? fieldColor ?? black;\n  if (widgetColor || widgetFontSize !== undefined) {\n    updateDefaultAppearance(widget, textColor, font, fontSize);\n  } else {\n    updateDefaultAppearance(optionList.acroField, textColor, font, fontSize);\n  }\n\n  return [\n    ...rotate,\n    ...drawOptionList({\n      x: 0 + borderWidth / 2,\n      y: 0 + borderWidth / 2,\n      width: width - borderWidth,\n      height: height - borderWidth,\n      borderWidth: borderWidth ?? 0,\n      borderColor,\n      textColor,\n      font: font.name,\n      fontSize,\n      color: normalBackgroundColor,\n      textLines: lines,\n      lineHeight,\n      selectedColor: blue,\n      selectedLines,\n      padding,\n    }),\n  ];\n};\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport { PDFPageEmbedder, PDFRef } from 'src/core';\nimport { assertIs } from 'src/utils';\n\n/**\n * Represents a PDF page that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFEmbeddedPage implements Embeddable {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.embedPdf]] and\n   * > [[PDFDocument.embedPage]] methods, which will create instances of\n   * > [[PDFEmbeddedPage]] for you.\n   *\n   * Create an instance of [[PDFEmbeddedPage]] from an existing ref and embedder\n   *\n   * @param ref The unique reference for this embedded page.\n   * @param doc The document to which the embedded page will belong.\n   * @param embedder The embedder that will be used to embed the page.\n   */\n  static of = (ref: PDFRef, doc: PDFDocument, embedder: PDFPageEmbedder) =>\n    new PDFEmbeddedPage(ref, doc, embedder);\n\n  /** The unique reference assigned to this embedded page within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this embedded page belongs. */\n  readonly doc: PDFDocument;\n\n  /** The width of this page in pixels. */\n  readonly width: number;\n\n  /** The height of this page in pixels. */\n  readonly height: number;\n\n  private alreadyEmbedded = false;\n  private readonly embedder: PDFPageEmbedder;\n\n  private constructor(\n    ref: PDFRef,\n    doc: PDFDocument,\n    embedder: PDFPageEmbedder,\n  ) {\n    assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n    assertIs(embedder, 'embedder', [[PDFPageEmbedder, 'PDFPageEmbedder']]);\n\n    this.ref = ref;\n    this.doc = doc;\n    this.width = embedder.width;\n    this.height = embedder.height;\n\n    this.embedder = embedder;\n  }\n\n  /**\n   * Compute the width and height of this page after being scaled by the\n   * given `factor`. For example:\n   * ```js\n   * embeddedPage.width  // => 500\n   * embeddedPage.height // => 250\n   *\n   * const scaled = embeddedPage.scale(0.5)\n   * scaled.width  // => 250\n   * scaled.height // => 125\n   * ```\n   * This operation is often useful before drawing a page with\n   * [[PDFPage.drawPage]] to compute the `width` and `height` options.\n   * @param factor The factor by which this page should be scaled.\n   * @returns The width and height of the page after being scaled.\n   */\n  scale(factor: number) {\n    assertIs(factor, 'factor', ['number']);\n    return { width: this.width * factor, height: this.height * factor };\n  }\n\n  /**\n   * Get the width and height of this page. For example:\n   * ```js\n   * const { width, height } = embeddedPage.size()\n   * ```\n   * @returns The width and height of the page.\n   */\n  size() {\n    return this.scale(1);\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n   * > automatically ensure all embeddable pages get embedded.\n   *\n   * Embed this embeddable page in its document.\n   *\n   * @returns Resolves when the embedding is complete.\n   */\n  async embed(): Promise<void> {\n    if (!this.alreadyEmbedded) {\n      await this.embedder.embedIntoContext(this.doc.context, this.ref);\n      this.alreadyEmbedded = true;\n    }\n  }\n}\n","import Embeddable from 'src/api//Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport {\n  CustomFontEmbedder,\n  PDFHexString,\n  PDFRef,\n  StandardFontEmbedder,\n} from 'src/core';\nimport { assertIs, assertOrUndefined } from 'src/utils';\n\nexport type FontEmbedder = CustomFontEmbedder | StandardFontEmbedder;\n\n/**\n * Represents a font that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFFont implements Embeddable {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.embedFont]] and\n   * > [[PDFDocument.embedStandardFont]] methods, which will create instances\n   * > of [[PDFFont]] for you.\n   *\n   * Create an instance of [[PDFFont]] from an existing ref and embedder\n   *\n   * @param ref The unique reference for this font.\n   * @param doc The document to which the font will belong.\n   * @param embedder The embedder that will be used to embed the font.\n   */\n  static of = (ref: PDFRef, doc: PDFDocument, embedder: FontEmbedder) =>\n    new PDFFont(ref, doc, embedder);\n\n  /** The unique reference assigned to this font within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this font belongs. */\n  readonly doc: PDFDocument;\n\n  /** The name of this font. */\n  readonly name: string;\n\n  private modified = true;\n  private readonly embedder: FontEmbedder;\n\n  private constructor(ref: PDFRef, doc: PDFDocument, embedder: FontEmbedder) {\n    assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n    assertIs(embedder, 'embedder', [\n      [CustomFontEmbedder, 'CustomFontEmbedder'],\n      [StandardFontEmbedder, 'StandardFontEmbedder'],\n    ]);\n\n    this.ref = ref;\n    this.doc = doc;\n    this.name = embedder.fontName;\n\n    this.embedder = embedder;\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFPage.drawText]] method will automatically encode the text it is\n   * > given.\n   *\n   * Encodes a string of text in this font.\n   *\n   * @param text The text to be encoded.\n   * @returns The encoded text as a hex string.\n   */\n  encodeText(text: string): PDFHexString {\n    assertIs(text, 'text', ['string']);\n    this.modified = true;\n    return this.embedder.encodeText(text);\n  }\n\n  /**\n   * Measure the width of a string of text drawn in this font at a given size.\n   * For example:\n   * ```js\n   * const width = font.widthOfTextAtSize('Foo Bar Qux Baz', 36)\n   * ```\n   * @param text The string of text to be measured.\n   * @param size The font size to be used for this measurement.\n   * @returns The width of the string of text when drawn in this font at the\n   *          given size.\n   */\n  widthOfTextAtSize(text: string, size: number): number {\n    assertIs(text, 'text', ['string']);\n    assertIs(size, 'size', ['number']);\n    return this.embedder.widthOfTextAtSize(text, size);\n  }\n\n  /**\n   * Measure the height of this font at a given size. For example:\n   * ```js\n   * const height = font.heightAtSize(24)\n   * ```\n   *\n   * The `options.descender` value controls whether or not the font's\n   * descender is included in the height calculation.\n   *\n   * @param size The font size to be used for this measurement.\n   * @param options The options to be used when computing this measurement.\n   * @returns The height of this font at the given size.\n   */\n  heightAtSize(size: number, options?: { descender?: boolean }): number {\n    assertIs(size, 'size', ['number']);\n    assertOrUndefined(options?.descender, 'options.descender', ['boolean']);\n    return this.embedder.heightOfFontAtSize(size, {\n      descender: options?.descender ?? true,\n    });\n  }\n\n  /**\n   * Compute the font size at which this font is a given height. For example:\n   * ```js\n   * const fontSize = font.sizeAtHeight(12)\n   * ```\n   * @param height The height to be used for this calculation.\n   * @returns The font size at which this font is the given height.\n   */\n  sizeAtHeight(height: number): number {\n    assertIs(height, 'height', ['number']);\n    return this.embedder.sizeOfFontAtHeight(height);\n  }\n\n  /**\n   * Get the set of unicode code points that can be represented by this font.\n   * @returns The set of unicode code points supported by this font.\n   */\n  getCharacterSet(): number[] {\n    if (this.embedder instanceof StandardFontEmbedder) {\n      return this.embedder.encoding.supportedCodePoints;\n    } else {\n      return this.embedder.font.characterSet;\n    }\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n   * > automatically ensure all fonts get embedded.\n   *\n   * Embed this font in its document.\n   *\n   * @returns Resolves when the embedding is complete.\n   */\n  async embed(): Promise<void> {\n    // TODO: Cleanup orphan embedded objects if a font is embedded multiple times...\n    if (this.modified) {\n      await this.embedder.embedIntoContext(this.doc.context, this.ref);\n      this.modified = false;\n    }\n  }\n}\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport { JpegEmbedder, PDFRef, PngEmbedder } from 'src/core';\nimport { assertIs } from 'src/utils';\n\nexport type ImageEmbedder = JpegEmbedder | PngEmbedder;\n\n/**\n * Represents an image that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFImage implements Embeddable {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.embedPng]] and [[PDFDocument.embedJpg]]\n   * > methods, which will create instances of [[PDFImage]] for you.\n   *\n   * Create an instance of [[PDFImage]] from an existing ref and embedder\n   *\n   * @param ref The unique reference for this image.\n   * @param doc The document to which the image will belong.\n   * @param embedder The embedder that will be used to embed the image.\n   */\n  static of = (ref: PDFRef, doc: PDFDocument, embedder: ImageEmbedder) =>\n    new PDFImage(ref, doc, embedder);\n\n  /** The unique reference assigned to this image within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this image belongs. */\n  readonly doc: PDFDocument;\n\n  /** The width of this image in pixels. */\n  readonly width: number;\n\n  /** The height of this image in pixels. */\n  readonly height: number;\n\n  private embedder: ImageEmbedder | undefined;\n  private embedTask: Promise<PDFRef> | undefined;\n\n  private constructor(ref: PDFRef, doc: PDFDocument, embedder: ImageEmbedder) {\n    assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n    assertIs(embedder, 'embedder', [\n      [JpegEmbedder, 'JpegEmbedder'],\n      [PngEmbedder, 'PngEmbedder'],\n    ]);\n\n    this.ref = ref;\n    this.doc = doc;\n    this.width = embedder.width;\n    this.height = embedder.height;\n\n    this.embedder = embedder;\n  }\n\n  /**\n   * Compute the width and height of this image after being scaled by the\n   * given `factor`. For example:\n   * ```js\n   * image.width  // => 500\n   * image.height // => 250\n   *\n   * const scaled = image.scale(0.5)\n   * scaled.width  // => 250\n   * scaled.height // => 125\n   * ```\n   * This operation is often useful before drawing an image with\n   * [[PDFPage.drawImage]] to compute the `width` and `height` options.\n   * @param factor The factor by which this image should be scaled.\n   * @returns The width and height of the image after being scaled.\n   */\n  scale(factor: number) {\n    assertIs(factor, 'factor', ['number']);\n    return { width: this.width * factor, height: this.height * factor };\n  }\n\n  /**\n   * Get the width and height of this image after scaling it as large as\n   * possible while maintaining its aspect ratio and not exceeding the\n   * specified `width` and `height`. For example:\n   * ```\n   * image.width  // => 500\n   * image.height // => 250\n   *\n   * const scaled = image.scaleToFit(750, 1000)\n   * scaled.width  // => 750\n   * scaled.height // => 375\n   * ```\n   * The `width` and `height` parameters can also be thought of as the width\n   * and height of a box that the scaled image must fit within.\n   * @param width The bounding box's width.\n   * @param height The bounding box's height.\n   * @returns The width and height of the image after being scaled.\n   */\n  scaleToFit(width: number, height: number) {\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n\n    const imgWidthScale = width / this.width;\n    const imgHeightScale = height / this.height;\n    const scale = Math.min(imgWidthScale, imgHeightScale);\n\n    return this.scale(scale);\n  }\n\n  /**\n   * Get the width and height of this image. For example:\n   * ```js\n   * const { width, height } = image.size()\n   * ```\n   * @returns The width and height of the image.\n   */\n  size() {\n    return this.scale(1);\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n   * > automatically ensure all images get embedded.\n   *\n   * Embed this image in its document.\n   *\n   * @returns Resolves when the embedding is complete.\n   */\n  async embed(): Promise<void> {\n    if (!this.embedder) return;\n\n    // The image should only be embedded once. If there's a pending embed\n    // operation then wait on it. Otherwise we need to start the embed.\n    if (!this.embedTask) {\n      const { doc, ref } = this;\n      this.embedTask = this.embedder.embedIntoContext(doc.context, ref);\n    }\n    await this.embedTask;\n\n    // We clear `this.embedder` so that the indirectly referenced image data\n    // can be garbage collected, thus avoiding a memory leak.\n    // See https://github.com/Hopding/pdf-lib/pull/1032/files.\n    this.embedder = undefined;\n  }\n}\n","export enum ImageAlignment {\n  Left = 0,\n  Center = 1,\n  Right = 2,\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFFont from 'src/api/PDFFont';\nimport { AppearanceMapping } from 'src/api/form/appearances';\nimport { Color, colorToComponents, setFillingColor } from 'src/api/colors';\nimport {\n  Rotation,\n  toDegrees,\n  rotateRectangle,\n  reduceRotation,\n  adjustDimsForRotation,\n  degrees,\n} from 'src/api/rotations';\n\nimport {\n  PDFRef,\n  PDFWidgetAnnotation,\n  PDFOperator,\n  PDFName,\n  PDFDict,\n  MethodNotImplementedError,\n  AcroFieldFlags,\n  PDFAcroTerminal,\n  AnnotationFlags,\n} from 'src/core';\nimport { assertIs, assertMultiple, assertOrUndefined } from 'src/utils';\nimport { ImageAlignment } from '../image';\nimport PDFImage from '../PDFImage';\nimport { drawImage, rotateInPlace } from '../operations';\n\nexport interface FieldAppearanceOptions {\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n  textColor?: Color;\n  backgroundColor?: Color;\n  borderColor?: Color;\n  borderWidth?: number;\n  rotate?: Rotation;\n  font?: PDFFont;\n  hidden?: boolean;\n}\n\nexport const assertFieldAppearanceOptions = (\n  options?: FieldAppearanceOptions,\n) => {\n  assertOrUndefined(options?.x, 'options.x', ['number']);\n  assertOrUndefined(options?.y, 'options.y', ['number']);\n  assertOrUndefined(options?.width, 'options.width', ['number']);\n  assertOrUndefined(options?.height, 'options.height', ['number']);\n  assertOrUndefined(options?.textColor, 'options.textColor', [\n    [Object, 'Color'],\n  ]);\n  assertOrUndefined(options?.backgroundColor, 'options.backgroundColor', [\n    [Object, 'Color'],\n  ]);\n  assertOrUndefined(options?.borderColor, 'options.borderColor', [\n    [Object, 'Color'],\n  ]);\n  assertOrUndefined(options?.borderWidth, 'options.borderWidth', ['number']);\n  assertOrUndefined(options?.rotate, 'options.rotate', [[Object, 'Rotation']]);\n};\n\n/**\n * Represents a field of a [[PDFForm]].\n *\n * This class is effectively abstract. All fields in a [[PDFForm]] will\n * actually be an instance of a subclass of this class.\n *\n * Note that each field in a PDF is represented by a single field object.\n * However, a given field object may be rendered at multiple locations within\n * the document (across one or more pages). The rendering of a field is\n * controlled by its widgets. Each widget causes its field to be displayed at a\n * particular location in the document.\n *\n * Most of the time each field in a PDF has only a single widget, and thus is\n * only rendered once. However, if a field is rendered multiple times, it will\n * have multiple widgets - one for each location it is rendered.\n *\n * This abstraction of field objects and widgets is defined in the PDF\n * specification and dictates how PDF files store fields and where they are\n * to be rendered.\n */\nexport default class PDFField {\n  /** The low-level PDFAcroTerminal wrapped by this field. */\n  readonly acroField: PDFAcroTerminal;\n\n  /** The unique reference assigned to this field within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this field belongs. */\n  readonly doc: PDFDocument;\n\n  protected constructor(\n    acroField: PDFAcroTerminal,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    assertIs(acroField, 'acroField', [[PDFAcroTerminal, 'PDFAcroTerminal']]);\n    assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n    this.acroField = acroField;\n    this.ref = ref;\n    this.doc = doc;\n  }\n\n  /**\n   * Get the fully qualified name of this field. For example:\n   * ```js\n   * const fields = form.getFields()\n   * fields.forEach(field => {\n   *   const name = field.getName()\n   *   console.log('Field name:', name)\n   * })\n   * ```\n   * Note that PDF fields are structured as a tree. Each field is the\n   * descendent of a series of ancestor nodes all the way up to the form node,\n   * which is always the root of the tree. Each node in the tree (except for\n   * the form node) has a partial name. Partial names can be composed of any\n   * unicode characters except a period (`.`). The fully qualified name of a\n   * field is composed of the partial names of all its ancestors joined\n   * with periods. This means that splitting the fully qualified name on\n   * periods and taking the last element of the resulting array will give you\n   * the partial name of a specific field.\n   * @returns The fully qualified name of this field.\n   */\n  getName(): string {\n    return this.acroField.getFullyQualifiedName() ?? '';\n  }\n\n  /**\n   * Returns `true` if this field is read only. This means that PDF readers\n   * will not allow users to interact with the field or change its value. See\n   * [[PDFField.enableReadOnly]] and [[PDFField.disableReadOnly]].\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * if (field.isReadOnly()) console.log('Read only is enabled')\n   * ```\n   * @returns Whether or not this is a read only field.\n   */\n  isReadOnly(): boolean {\n    return this.acroField.hasFlag(AcroFieldFlags.ReadOnly);\n  }\n\n  /**\n   * Prevent PDF readers from allowing users to interact with this field or\n   * change its value. The field will not respond to mouse or keyboard input.\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.enableReadOnly()\n   * ```\n   * Useful for fields whose values are computed, imported from a database, or\n   * prefilled by software before being displayed to the user.\n   */\n  enableReadOnly() {\n    this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, true);\n  }\n\n  /**\n   * Allow users to interact with this field and change its value in PDF\n   * readers via mouse and keyboard input. For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.disableReadOnly()\n   * ```\n   */\n  disableReadOnly() {\n    this.acroField.setFlagTo(AcroFieldFlags.ReadOnly, false);\n  }\n\n  /**\n   * Returns `true` if this field must have a value when the form is submitted.\n   * See [[PDFField.enableRequired]] and [[PDFField.disableRequired]].\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * if (field.isRequired()) console.log('Field is required')\n   * ```\n   * @returns Whether or not this field is required.\n   */\n  isRequired(): boolean {\n    return this.acroField.hasFlag(AcroFieldFlags.Required);\n  }\n\n  /**\n   * Require this field to have a value when the form is submitted.\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.enableRequired()\n   * ```\n   */\n  enableRequired() {\n    this.acroField.setFlagTo(AcroFieldFlags.Required, true);\n  }\n\n  /**\n   * Do not require this field to have a value when the form is submitted.\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.disableRequired()\n   * ```\n   */\n  disableRequired() {\n    this.acroField.setFlagTo(AcroFieldFlags.Required, false);\n  }\n\n  /**\n   * Returns `true` if this field's value should be exported when the form is\n   * submitted. See [[PDFField.enableExporting]] and\n   * [[PDFField.disableExporting]].\n   * For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * if (field.isExported()) console.log('Exporting is enabled')\n   * ```\n   * @returns Whether or not this field's value should be exported.\n   */\n  isExported(): boolean {\n    return !this.acroField.hasFlag(AcroFieldFlags.NoExport);\n  }\n\n  /**\n   * Indicate that this field's value should be exported when the form is\n   * submitted in a PDF reader. For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.enableExporting()\n   * ```\n   */\n  enableExporting() {\n    this.acroField.setFlagTo(AcroFieldFlags.NoExport, false);\n  }\n\n  /**\n   * Indicate that this field's value should **not** be exported when the form\n   * is submitted in a PDF reader. For example:\n   * ```js\n   * const field = form.getField('some.field')\n   * field.disableExporting()\n   * ```\n   */\n  disableExporting() {\n    this.acroField.setFlagTo(AcroFieldFlags.NoExport, true);\n  }\n\n  /** @ignore */\n  needsAppearancesUpdate(): boolean {\n    throw new MethodNotImplementedError(\n      this.constructor.name,\n      'needsAppearancesUpdate',\n    );\n  }\n\n  /** @ignore */\n  defaultUpdateAppearances(_font: PDFFont) {\n    throw new MethodNotImplementedError(\n      this.constructor.name,\n      'defaultUpdateAppearances',\n    );\n  }\n\n  protected markAsDirty() {\n    this.doc.getForm().markFieldAsDirty(this.ref);\n  }\n\n  protected markAsClean() {\n    this.doc.getForm().markFieldAsClean(this.ref);\n  }\n\n  protected isDirty(): boolean {\n    return this.doc.getForm().fieldIsDirty(this.ref);\n  }\n\n  protected createWidget(options: {\n    x: number;\n    y: number;\n    width: number;\n    height: number;\n    textColor?: Color;\n    backgroundColor?: Color;\n    borderColor?: Color;\n    borderWidth: number;\n    rotate: Rotation;\n    caption?: string;\n    hidden?: boolean;\n    page?: PDFRef;\n  }): PDFWidgetAnnotation {\n    const textColor = options.textColor;\n    const backgroundColor = options.backgroundColor;\n    const borderColor = options.borderColor;\n    const borderWidth = options.borderWidth;\n    const degreesAngle = toDegrees(options.rotate);\n    const caption = options.caption;\n    const x = options.x;\n    const y = options.y;\n    const width = options.width + borderWidth;\n    const height = options.height + borderWidth;\n    const hidden = Boolean(options.hidden);\n    const pageRef = options.page;\n\n    assertMultiple(degreesAngle, 'degreesAngle', 90);\n\n    // Create a widget for this field\n    const widget = PDFWidgetAnnotation.create(this.doc.context, this.ref);\n\n    // Set widget properties\n    const rect = rotateRectangle(\n      { x, y, width, height },\n      borderWidth,\n      degreesAngle,\n    );\n    widget.setRectangle(rect);\n\n    if (pageRef) widget.setP(pageRef);\n\n    const ac = widget.getOrCreateAppearanceCharacteristics();\n    if (backgroundColor) {\n      ac.setBackgroundColor(colorToComponents(backgroundColor));\n    }\n    ac.setRotation(degreesAngle);\n    if (caption) ac.setCaptions({ normal: caption });\n    if (borderColor) ac.setBorderColor(colorToComponents(borderColor));\n\n    const bs = widget.getOrCreateBorderStyle();\n    if (borderWidth !== undefined) bs.setWidth(borderWidth);\n\n    widget.setFlagTo(AnnotationFlags.Print, true);\n    widget.setFlagTo(AnnotationFlags.Hidden, hidden);\n    widget.setFlagTo(AnnotationFlags.Invisible, false);\n\n    // Set acrofield properties\n    if (textColor) {\n      const da = this.acroField.getDefaultAppearance() ?? '';\n      const newDa = da + '\\n' + setFillingColor(textColor).toString();\n      this.acroField.setDefaultAppearance(newDa);\n    }\n\n    return widget;\n  }\n\n  protected updateWidgetAppearanceWithFont(\n    widget: PDFWidgetAnnotation,\n    font: PDFFont,\n    { normal, rollover, down }: AppearanceMapping<PDFOperator[]>,\n  ) {\n    this.updateWidgetAppearances(widget, {\n      normal: this.createAppearanceStream(widget, normal, font),\n      rollover: rollover && this.createAppearanceStream(widget, rollover, font),\n      down: down && this.createAppearanceStream(widget, down, font),\n    });\n  }\n\n  protected updateOnOffWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    onValue: PDFName,\n    {\n      normal,\n      rollover,\n      down,\n    }: AppearanceMapping<{ on: PDFOperator[]; off: PDFOperator[] }>,\n  ) {\n    this.updateWidgetAppearances(widget, {\n      normal: this.createAppearanceDict(widget, normal, onValue),\n      rollover:\n        rollover && this.createAppearanceDict(widget, rollover, onValue),\n      down: down && this.createAppearanceDict(widget, down, onValue),\n    });\n  }\n\n  protected updateWidgetAppearances(\n    widget: PDFWidgetAnnotation,\n    { normal, rollover, down }: AppearanceMapping<PDFRef | PDFDict>,\n  ) {\n    widget.setNormalAppearance(normal);\n\n    if (rollover) {\n      widget.setRolloverAppearance(rollover);\n    } else {\n      widget.removeRolloverAppearance();\n    }\n\n    if (down) {\n      widget.setDownAppearance(down);\n    } else {\n      widget.removeDownAppearance();\n    }\n  }\n\n  // // TODO: Do we need to do this...?\n  // private foo(font: PDFFont, dict: PDFDict) {\n  //   if (!dict.lookup(PDFName.of('DR'))) {\n  //     dict.set(PDFName.of('DR'), dict.context.obj({}));\n  //   }\n  //   const DR = dict.lookup(PDFName.of('DR'), PDFDict);\n\n  //   if (!DR.lookup(PDFName.of('Font'))) {\n  //     DR.set(PDFName.of('Font'), dict.context.obj({}));\n  //   }\n  //   const Font = DR.lookup(PDFName.of('Font'), PDFDict);\n\n  //   Font.set(PDFName.of(font.name), font.ref);\n  // }\n\n  private createAppearanceStream(\n    widget: PDFWidgetAnnotation,\n    appearance: PDFOperator[],\n    font?: PDFFont,\n  ): PDFRef {\n    const { context } = this.acroField.dict;\n    const { width, height } = widget.getRectangle();\n\n    // TODO: Do we need to do this...?\n    // if (font) {\n    //   this.foo(font, widget.dict);\n    //   this.foo(font, this.doc.getForm().acroForm.dict);\n    // }\n    // END TODO\n\n    const Resources = font && { Font: { [font.name]: font.ref } };\n    const stream = context.formXObject(appearance, {\n      Resources,\n      BBox: context.obj([0, 0, width, height]),\n      Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n    });\n    const streamRef = context.register(stream);\n\n    return streamRef;\n  }\n\n  /**\n   * Create a FormXObject of the supplied image and add it to context.\n   * The FormXObject size is calculated based on the widget (including\n   * the alignment).\n   * @param widget The widget that should display the image.\n   * @param alignment The alignment of the image.\n   * @param image The image that should be displayed.\n   * @returns The ref for the FormXObject that was added to the context.\n   */\n  protected createImageAppearanceStream(\n    widget: PDFWidgetAnnotation,\n    image: PDFImage,\n    alignment: ImageAlignment,\n  ): PDFRef {\n    // NOTE: This implementation doesn't handle image borders.\n    // NOTE: Acrobat seems to resize the image (maybe even skewing its aspect\n    //       ratio) to fit perfectly within the widget's rectangle. This method\n    //       does not currently do that. Should there be an option for that?\n\n    const { context } = this.acroField.dict;\n\n    const rectangle = widget.getRectangle();\n    const ap = widget.getAppearanceCharacteristics();\n    const bs = widget.getBorderStyle();\n\n    const borderWidth = bs?.getWidth() ?? 0;\n    const rotation = reduceRotation(ap?.getRotation());\n\n    const rotate = rotateInPlace({ ...rectangle, rotation });\n\n    const adj = adjustDimsForRotation(rectangle, rotation);\n    const imageDims = image.scaleToFit(\n      adj.width - borderWidth * 2,\n      adj.height - borderWidth * 2,\n    );\n\n    // Support borders on images and maybe other properties\n    const options = {\n      x: borderWidth,\n      y: borderWidth,\n      width: imageDims.width,\n      height: imageDims.height,\n      //\n      rotate: degrees(0),\n      xSkew: degrees(0),\n      ySkew: degrees(0),\n    };\n\n    if (alignment === ImageAlignment.Center) {\n      options.x += (adj.width - borderWidth * 2) / 2 - imageDims.width / 2;\n      options.y += (adj.height - borderWidth * 2) / 2 - imageDims.height / 2;\n    } else if (alignment === ImageAlignment.Right) {\n      options.x = adj.width - borderWidth - imageDims.width;\n      options.y = adj.height - borderWidth - imageDims.height;\n    }\n\n    const imageName = this.doc.context.addRandomSuffix('Image', 10);\n    const appearance = [...rotate, ...drawImage(imageName, options)];\n    ////////////\n\n    const Resources = { XObject: { [imageName]: image.ref } };\n    const stream = context.formXObject(appearance, {\n      Resources,\n      BBox: context.obj([0, 0, rectangle.width, rectangle.height]),\n      Matrix: context.obj([1, 0, 0, 1, 0, 0]),\n    });\n\n    return context.register(stream);\n  }\n\n  private createAppearanceDict(\n    widget: PDFWidgetAnnotation,\n    appearance: { on: PDFOperator[]; off: PDFOperator[] },\n    onValue: PDFName,\n  ): PDFDict {\n    const { context } = this.acroField.dict;\n\n    const onStreamRef = this.createAppearanceStream(widget, appearance.on);\n    const offStreamRef = this.createAppearanceStream(widget, appearance.off);\n\n    const appearanceDict = context.obj({});\n    appearanceDict.set(onValue, onStreamRef);\n    appearanceDict.set(PDFName.of('Off'), offStreamRef);\n\n    return appearanceDict;\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultCheckBoxAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\n\nimport {\n  PDFName,\n  PDFRef,\n  PDFDict,\n  PDFAcroCheckBox,\n  PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, assertOrUndefined } from 'src/utils';\n\n/**\n * Represents a check box field of a [[PDFForm]].\n *\n * [[PDFCheckBox]] fields are interactive boxes that users can click with their\n * mouse. This type of [[PDFField]] has two states: `on` and `off`. The purpose\n * of a check box is to enable users to select from one or more options, where\n * each option is represented by a single check box. Check boxes are typically\n * square in shape and display a check mark when they are in the `on` state.\n */\nexport default class PDFCheckBox extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getCheckBox]] method, which will create an\n   * > instance of [[PDFCheckBox]] for you.\n   *\n   * Create an instance of [[PDFCheckBox]] from an existing acroCheckBox and ref\n   *\n   * @param acroCheckBox The underlying `PDFAcroCheckBox` for this check box.\n   * @param ref The unique reference for this check box.\n   * @param doc The document to which this check box will belong.\n   */\n  static of = (acroCheckBox: PDFAcroCheckBox, ref: PDFRef, doc: PDFDocument) =>\n    new PDFCheckBox(acroCheckBox, ref, doc);\n\n  /** The low-level PDFAcroCheckBox wrapped by this check box. */\n  readonly acroField: PDFAcroCheckBox;\n\n  private constructor(\n    acroCheckBox: PDFAcroCheckBox,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroCheckBox, ref, doc);\n\n    assertIs(acroCheckBox, 'acroCheckBox', [\n      [PDFAcroCheckBox, 'PDFAcroCheckBox'],\n    ]);\n\n    this.acroField = acroCheckBox;\n  }\n\n  /**\n   * Mark this check box. This operation is analogous to a human user clicking\n   * a check box to fill it in a PDF reader. This method will update the\n   * underlying state of the check box field to indicate it has been selected.\n   * PDF libraries and readers will be able to extract this value from the\n   * saved document and determine that it was selected.\n   *\n   * For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * checkBox.check()\n   * ```\n   *\n   * This method will mark this check box as dirty, causing its appearance\n   * streams to be updated when either [[PDFDocument.save]] or\n   * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n   * streams will display a check mark inside the widgets of this check box\n   * field.\n   */\n  check() {\n    const onValue = this.acroField.getOnValue() ?? PDFName.of('Yes');\n    this.markAsDirty();\n    this.acroField.setValue(onValue);\n  }\n\n  /**\n   * Clears this check box. This operation is analogous to a human user clicking\n   * a check box to unmark it in a PDF reader. This method will update the\n   * underlying state of the check box field to indicate it has been deselected.\n   * PDF libraries and readers will be able to extract this value from the\n   * saved document and determine that it was not selected.\n   *\n   * For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * checkBox.uncheck()\n   * ```\n   *\n   * This method will mark this check box as dirty. See [[PDFCheckBox.check]]\n   * for more details about what this means.\n   */\n  uncheck() {\n    this.markAsDirty();\n    this.acroField.setValue(PDFName.of('Off'));\n  }\n\n  /**\n   * Returns `true` if this check box is selected (either by a human user via\n   * a PDF reader, or else programmatically via software). For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * if (checkBox.isChecked()) console.log('check box is selected')\n   * ```\n   * @returns Whether or not this check box is selected.\n   */\n  isChecked(): boolean {\n    const onValue = this.acroField.getOnValue();\n    return !!onValue && onValue === this.acroField.getValue();\n  }\n\n  /**\n   * Show this check box on the specified page. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const checkBox = form.createCheckBox('some.checkBox.field')\n   *\n   * checkBox.addToPage(page, {\n   *   x: 50,\n   *   y: 75,\n   *   width: 25,\n   *   height: 25,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   * })\n   * ```\n   * This will create a new widget for this check box field.\n   * @param page The page to which this check box widget should be added.\n   * @param options The options to be used when adding this check box widget.\n   */\n  addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    if (!options) options = {};\n\n    if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n    if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n    if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n    if (!('borderWidth' in options)) options.borderWidth = 1;\n\n    // Create a widget for this check box\n    const widget = this.createWidget({\n      x: options.x ?? 0,\n      y: options.y ?? 0,\n      width: options.width ?? 50,\n      height: options.height ?? 50,\n      textColor: options.textColor,\n      backgroundColor: options.backgroundColor,\n      borderColor: options.borderColor,\n      borderWidth: options.borderWidth ?? 0,\n      rotate: options.rotate ?? degrees(0),\n      hidden: options.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    this.acroField.addWidget(widgetRef);\n\n    // Set appearance streams for widget\n    widget.setAppearanceState(PDFName.of('Off'));\n    this.updateWidgetAppearance(widget, PDFName.of('Yes'));\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if any of this check box's widgets do not have an\n   * appearance stream for its current state. For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * if (checkBox.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this check box needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const state = widget.getAppearanceState();\n      const normal = widget.getAppearances()?.normal;\n\n      if (!(normal instanceof PDFDict)) return true;\n      if (state && !normal.has(state)) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this check box's widgets using\n   * the default appearance provider for check boxes. For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * checkBox.defaultUpdateAppearances()\n   * ```\n   */\n  defaultUpdateAppearances() {\n    this.updateAppearances();\n  }\n\n  /**\n   * Update the appearance streams for each of this check box's widgets using\n   * the given appearance provider. If no `provider` is passed, the default\n   * appearance provider for check boxs will be used. For example:\n   * ```js\n   * const checkBox = form.getCheckBox('some.checkBox.field')\n   * checkBox.updateAppearances((field, widget) => {\n   *   ...\n   *   return {\n   *     normal: { on: drawCheckBox(...), off: drawCheckBox(...) },\n   *     down: { on: drawCheckBox(...), off: drawCheckBox(...) },\n   *   }\n   * })\n   * ```\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(provider?: AppearanceProviderFor<PDFCheckBox>) {\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const onValue = widget.getOnValue() ?? PDFName.of('Yes');\n      if (!onValue) continue;\n      this.updateWidgetAppearance(widget, onValue, provider);\n    }\n    this.markAsClean();\n  }\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    onValue: PDFName,\n    provider?: AppearanceProviderFor<PDFCheckBox>,\n  ) {\n    const apProvider = provider ?? defaultCheckBoxAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget));\n    this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultDropdownAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n  PDFHexString,\n  PDFRef,\n  PDFString,\n  PDFStream,\n  PDFWidgetAnnotation,\n  PDFAcroComboBox,\n  AcroChoiceFlags,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertPositive } from 'src/utils';\n\n/**\n * Represents a dropdown field of a [[PDFForm]].\n *\n * [[PDFDropdown]] fields are interactive text boxes that display a single\n * element (the currently selected value). The purpose of a dropdown is to\n * enable users to select a single option from a set of possible options. Users\n * can click on a dropdown to view the full list of options it provides.\n * Clicking on an option in the list will cause it to be selected and displayed\n * in the dropdown's text box. Some dropdowns allow users to enter text\n * directly into the box from their keyboard, rather than only being allowed to\n * choose an option from the list (see [[PDFDropdown.isEditable]]).\n */\nexport default class PDFDropdown extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getDropdown]] method, which will create an\n   * > instance of [[PDFDropdown]] for you.\n   *\n   * Create an instance of [[PDFDropdown]] from an existing acroComboBox and ref\n   *\n   * @param acroComboBox The underlying `PDFAcroComboBox` for this dropdown.\n   * @param ref The unique reference for this dropdown.\n   * @param doc The document to which this dropdown will belong.\n   */\n  static of = (acroComboBox: PDFAcroComboBox, ref: PDFRef, doc: PDFDocument) =>\n    new PDFDropdown(acroComboBox, ref, doc);\n\n  /** The low-level PDFAcroComboBox wrapped by this dropdown. */\n  readonly acroField: PDFAcroComboBox;\n\n  private constructor(\n    acroComboBox: PDFAcroComboBox,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroComboBox, ref, doc);\n\n    assertIs(acroComboBox, 'acroComboBox', [\n      [PDFAcroComboBox, 'PDFAcroComboBox'],\n    ]);\n\n    this.acroField = acroComboBox;\n  }\n\n  /**\n   * Get the list of available options for this dropdown. These options will be\n   * displayed to users who click on this dropdown in a PDF reader.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * const options = dropdown.getOptions()\n   * console.log('Dropdown options:', options)\n   * ```\n   * @returns The options for this dropdown.\n   */\n  getOptions(): string[] {\n    const rawOptions = this.acroField.getOptions();\n\n    const options = new Array<string>(rawOptions.length);\n    for (let idx = 0, len = options.length; idx < len; idx++) {\n      const { display, value } = rawOptions[idx];\n      options[idx] = (display ?? value).decodeText();\n    }\n\n    return options;\n  }\n\n  /**\n   * Get the selected options for this dropdown. These are the values that were\n   * selected by a human user via a PDF reader, or programatically via\n   * software.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * const selections = dropdown.getSelected()\n   * console.log('Dropdown selections:', selections)\n   * ```\n   * > **NOTE:** Note that PDF readers only display one selected option when\n   * > rendering dropdowns. However, the PDF specification does allow for\n   * > multiple values to be selected in a dropdown. As such, the `pdf-lib`\n   * > API supports this. However, in most cases the array returned by this\n   * > method will contain only a single element (or no elements).\n   * @returns The selected options in this dropdown.\n   */\n  getSelected(): string[] {\n    const values = this.acroField.getValues();\n\n    const selected = new Array<string>(values.length);\n    for (let idx = 0, len = values.length; idx < len; idx++) {\n      selected[idx] = values[idx].decodeText();\n    }\n\n    return selected;\n  }\n\n  /**\n   * Set the list of options that are available for this dropdown. These are\n   * the values that will be available for users to select when they view this\n   * dropdown in a PDF reader. Note that preexisting options for this dropdown\n   * will be removed. Only the values passed as `options` will be available to\n   * select.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('planets.dropdown')\n   * dropdown.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n   * ```\n   * @param options The options that should be available in this dropdown.\n   */\n  setOptions(options: string[]) {\n    assertIs(options, 'options', [Array]);\n\n    const optionObjects = new Array<{ value: PDFHexString }>(options.length);\n    for (let idx = 0, len = options.length; idx < len; idx++) {\n      optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n    }\n    this.acroField.setOptions(optionObjects);\n  }\n\n  /**\n   * Add to the list of options that are available for this dropdown. Users\n   * will be able to select these values in a PDF reader. In addition to the\n   * values passed as `options`, any preexisting options for this dropdown will\n   * still be available for users to select.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('rockets.dropdown')\n   * dropdown.addOptions(['Saturn IV', 'Falcon Heavy'])\n   * ```\n   * @param options New options that should be available in this dropdown.\n   */\n  addOptions(options: string | string[]) {\n    assertIs(options, 'options', ['string', Array]);\n\n    const optionsArr = Array.isArray(options) ? options : [options];\n\n    const existingOptions: {\n      value: PDFString | PDFHexString;\n      display?: PDFString | PDFHexString;\n    }[] = this.acroField.getOptions();\n\n    const newOptions = new Array<{ value: PDFHexString }>(optionsArr.length);\n    for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n      newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n    }\n\n    this.acroField.setOptions(existingOptions.concat(newOptions));\n  }\n\n  /**\n   * Select one or more values for this dropdown. This operation is analogous\n   * to a human user opening the dropdown in a PDF reader and clicking on a\n   * value to select it. This method will update the underlying state of the\n   * dropdown to indicate which values have been selected. PDF libraries and\n   * readers will be able to extract these values from the saved document and\n   * determine which values were selected.\n   *\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('best.superhero.dropdown')\n   * dropdown.select('One Punch Man')\n   * ```\n   *\n   * This method will mark this dropdown as dirty, causing its appearance\n   * streams to be updated when either [[PDFDocument.save]] or\n   * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n   * display the selected option inside the widgets of this dropdown.\n   *\n   * **IMPORTANT:** The default font used to update appearance streams is\n   * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n   * that encoding errors will be thrown if the selected option for this field\n   * contains characters outside the WinAnsi character set (the latin alphabet).\n   *\n   * Embedding a custom font and passing it to\n   * [[PDFForm.updateFieldAppearances]] or [[PDFDropdown.updateAppearances]]\n   * allows you to generate appearance streams with characters outside the\n   * latin alphabet (assuming the custom font supports them).\n   *\n   * Selecting an option that does not exist in this dropdown's option list\n   * (see [[PDFDropdown.getOptions]]) will enable editing on this dropdown\n   * (see [[PDFDropdown.enableEditing]]).\n   *\n   * > **NOTE:** PDF readers only display one selected option when rendering\n   * > dropdowns. However, the PDF specification does allow for multiple values\n   * > to be selected in a dropdown. As such, the `pdf-lib` API supports this.\n   * > However, it is not recommended to select more than one value with this\n   * > method, as only one will be visible. [[PDFOptionList]] fields are better\n   * > suited for displaying multiple selected values.\n   *\n   * @param options The options to be selected.\n   * @param merge Whether or not existing selections should be preserved.\n   */\n  select(options: string | string[], merge = false) {\n    assertIs(options, 'options', ['string', Array]);\n    assertIs(merge, 'merge', ['boolean']);\n\n    const optionsArr = Array.isArray(options) ? options : [options];\n\n    const validOptions = this.getOptions();\n    const hasCustomOption = optionsArr.find(\n      (option) => !validOptions.includes(option),\n    );\n    if (hasCustomOption) this.enableEditing();\n\n    this.markAsDirty();\n\n    if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n      this.enableMultiselect();\n    }\n\n    const values = new Array<PDFHexString>(optionsArr.length);\n    for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n      values[idx] = PDFHexString.fromText(optionsArr[idx]);\n    }\n\n    if (merge) {\n      const existingValues = this.acroField.getValues();\n      this.acroField.setValues(existingValues.concat(values));\n    } else {\n      this.acroField.setValues(values);\n    }\n  }\n\n  /**\n   * Clear all selected values for this dropdown. This operation is equivalent\n   * to selecting an empty list. This method will update the underlying state\n   * of the dropdown to indicate that no values have been selected.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.clear()\n   * ```\n   * This method will mark this text field as dirty. See [[PDFDropdown.select]]\n   * for more details about what this means.\n   */\n  clear() {\n    this.markAsDirty();\n    this.acroField.setValues([]);\n  }\n\n  /**\n   * Set the font size for this field. Larger font sizes will result in larger\n   * text being displayed when PDF readers render this dropdown. Font sizes may\n   * be integer or floating point numbers. Supplying a negative font size will\n   * cause this method to throw an error.\n   *\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.setFontSize(4)\n   * dropdown.setFontSize(15.7)\n   * ```\n   *\n   * > This method depends upon the existence of a default appearance\n   * > (`/DA`) string. If this field does not have a default appearance string,\n   * > or that string does not contain a font size (via the `Tf` operator),\n   * > then this method will throw an error.\n   *\n   * @param fontSize The font size to be used when rendering text in this field.\n   */\n  setFontSize(fontSize: number) {\n    assertPositive(fontSize, 'fontSize');\n    this.acroField.setFontSize(fontSize);\n    this.markAsDirty();\n  }\n\n  /**\n   * Returns `true` if users are allowed to edit the selected value of this\n   * dropdown directly and are not constrained by the list of available\n   * options. See [[PDFDropdown.enableEditing]] and\n   * [[PDFDropdown.disableEditing]]. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.isEditable()) console.log('Editing is enabled')\n   * ```\n   * @returns Whether or not this dropdown is editable.\n   */\n  isEditable(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.Edit);\n  }\n\n  /**\n   * Allow users to edit the selected value of this dropdown in PDF readers\n   * with their keyboard. This means that the selected value of this dropdown\n   * will not be constrained by the list of available options. However, if this\n   * dropdown has any available options, users will still be allowed to select\n   * from that list.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.enableEditing()\n   * ```\n   */\n  enableEditing() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Edit, true);\n  }\n\n  /**\n   * Do not allow users to edit the selected value of this dropdown in PDF\n   * readers with their keyboard. This will constrain the selected value of\n   * this dropdown to the list of available options. Users will only be able\n   * to select an option from that list.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.disableEditing()\n   * ```\n   */\n  disableEditing() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Edit, false);\n  }\n\n  /**\n   * Returns `true` if the option list of this dropdown is always displayed\n   * in alphabetical order, irrespective of the order in which the options\n   * were added to the dropdown. See [[PDFDropdown.enableSorting]] and\n   * [[PDFDropdown.disableSorting]]. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.isSorted()) console.log('Sorting is enabled')\n   * ```\n   * @returns Whether or not this dropdown's options are sorted.\n   */\n  isSorted(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n  }\n\n  /**\n   * Always display the option list of this dropdown in alphabetical order,\n   * irrespective of the order in which the options were added to this dropdown.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.enableSorting()\n   * ```\n   */\n  enableSorting() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n  }\n\n  /**\n   * Do not always display the option list of this dropdown in alphabetical\n   * order. Instead, display the options in whichever order they were added\n   * to the list. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.disableSorting()\n   * ```\n   */\n  disableSorting() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n  }\n\n  /**\n   * Returns `true` if multiple options can be selected from this dropdown's\n   * option list. See [[PDFDropdown.enableMultiselect]] and\n   * [[PDFDropdown.disableMultiselect]]. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.isMultiselect()) console.log('Multiselect is enabled')\n   * ```\n   * @returns Whether or not multiple options can be selected.\n   */\n  isMultiselect(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n  }\n\n  /**\n   * Allow users to select more than one option from this dropdown's option\n   * list. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.enableMultiselect()\n   * ```\n   */\n  enableMultiselect() {\n    this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n  }\n\n  /**\n   * Do not allow users to select more than one option from this dropdown's\n   * option list. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.disableMultiselect()\n   * ```\n   */\n  disableMultiselect() {\n    this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n  }\n\n  /**\n   * Returns `true` if the selected option should be spell checked by PDF\n   * readers. Spell checking will only be performed if this dropdown allows\n   * editing (see [[PDFDropdown.isEditable]]). See\n   * [[PDFDropdown.enableSpellChecking]] and\n   * [[PDFDropdown.disableSpellChecking]]. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.isSpellChecked()) console.log('Spell checking is enabled')\n   * ```\n   * @returns Whether or not this dropdown can be spell checked.\n   */\n  isSpellChecked(): boolean {\n    return !this.acroField.hasFlag(AcroChoiceFlags.DoNotSpellCheck);\n  }\n\n  /**\n   * Allow PDF readers to spell check the selected option of this dropdown.\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.enableSpellChecking()\n   * ```\n   */\n  enableSpellChecking() {\n    this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, false);\n  }\n\n  /**\n   * Do not allow PDF readers to spell check the selected option of this\n   * dropdown. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.disableSpellChecking()\n   * ```\n   */\n  disableSpellChecking() {\n    this.acroField.setFlagTo(AcroChoiceFlags.DoNotSpellCheck, true);\n  }\n\n  /**\n   * Returns `true` if the option selected by a user is stored, or \"committed\",\n   * when the user clicks the option. The alternative is that the user's\n   * selection is stored when the user leaves this dropdown field (by clicking\n   * outside of it - on another field, for example). See\n   * [[PDFDropdown.enableSelectOnClick]] and\n   * [[PDFDropdown.disableSelectOnClick]]. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.isSelectOnClick()) console.log('Select on click is enabled')\n   * ```\n   * @returns Whether or not options are selected immediately after they are\n   *          clicked.\n   */\n  isSelectOnClick(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n  }\n\n  /**\n   * Store the option selected by a user immediately after the user clicks the\n   * option. Do not wait for the user to leave this dropdown field (by clicking\n   * outside of it - on another field, for example). For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.enableSelectOnClick()\n   * ```\n   */\n  enableSelectOnClick() {\n    this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n  }\n\n  /**\n   * Wait to store the option selected by a user until they leave this dropdown\n   * field (by clicking outside of it - on another field, for example).\n   * For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.disableSelectOnClick()\n   * ```\n   */\n  disableSelectOnClick() {\n    this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n  }\n\n  /**\n   * Show this dropdown on the specified page. For example:\n   * ```js\n   * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const dropdown = form.createDropdown('best.gundam')\n   * dropdown.setOptions(['Exia', 'Dynames'])\n   * dropdown.select('Exia')\n   *\n   * dropdown.addToPage(page, {\n   *   x: 50,\n   *   y: 75,\n   *   width: 200,\n   *   height: 100,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   *   font: ubuntuFont,\n   * })\n   * ```\n   * This will create a new widget for this dropdown field.\n   * @param page The page to which this dropdown widget should be added.\n   * @param options The options to be used when adding this dropdown widget.\n   */\n  addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    if (!options) options = {};\n\n    if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n    if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n    if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n    if (!('borderWidth' in options)) options.borderWidth = 1;\n\n    // Create a widget for this dropdown\n    const widget = this.createWidget({\n      x: options.x ?? 0,\n      y: options.y ?? 0,\n      width: options.width ?? 200,\n      height: options.height ?? 50,\n      textColor: options.textColor,\n      backgroundColor: options.backgroundColor,\n      borderColor: options.borderColor,\n      borderWidth: options.borderWidth ?? 0,\n      rotate: options.rotate ?? degrees(0),\n      hidden: options.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    this.acroField.addWidget(widgetRef);\n\n    // Set appearance streams for widget\n    const font = options.font ?? this.doc.getForm().getDefaultFont();\n    this.updateWidgetAppearance(widget, font);\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if this dropdown has been marked as dirty, or if any of\n   * this dropdown's widgets do not have an appearance stream. For example:\n   * ```js\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * if (dropdown.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this dropdown needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    if (this.isDirty()) return true;\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const hasAppearances =\n        widget.getAppearances()?.normal instanceof PDFStream;\n      if (!hasAppearances) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this dropdown's widgets using\n   * the default appearance provider for dropdowns. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.defaultUpdateAppearances(helvetica)\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   */\n  defaultUpdateAppearances(font: PDFFont) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    this.updateAppearances(font);\n  }\n\n  /**\n   * Update the appearance streams for each of this dropdown's widgets using\n   * the given appearance provider. If no `provider` is passed, the default\n   * appearance provider for dropdowns will be used. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const dropdown = form.getDropdown('some.dropdown.field')\n   * dropdown.updateAppearances(helvetica, (field, widget, font) => {\n   *   ...\n   *   return drawTextField(...)\n   * })\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFDropdown>,\n  ) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      this.updateWidgetAppearance(widget, font, provider);\n    }\n    this.markAsClean();\n  }\n\n  // getOption(index: number): string {}\n  // getSelectedIndices(): number[] {}\n  // removeOptions(option: string | string[]) {}\n  // removeIndices(option: number[]) {}\n  // deselect(options: string | string[]) {}\n  // deselectIndices(optionIndices: number[]) {}\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFDropdown>,\n  ) {\n    const apProvider = provider ?? defaultDropdownAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget, font));\n    this.updateWidgetAppearanceWithFont(widget, font, appearances);\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultOptionListAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n  PDFRef,\n  PDFHexString,\n  PDFString,\n  PDFStream,\n  PDFAcroListBox,\n  AcroChoiceFlags,\n  PDFWidgetAnnotation,\n} from 'src/core';\nimport {\n  assertIs,\n  assertIsSubset,\n  assertOrUndefined,\n  assertPositive,\n} from 'src/utils';\n\n/**\n * Represents an option list field of a [[PDFForm]].\n *\n * [[PDFOptionList]] fields are interactive lists of options. The purpose of an\n * option list is to enable users to select one or more options from a set of\n * possible options. Users are able to see the full set of options without\n * first having to click on the field (though scrolling may be necessary).\n * Clicking an option in the list will cause it to be selected and displayed\n * with a highlighted background. Some option lists allow users to select\n * more than one option (see [[PDFOptionList.isMultiselect]]).\n */\nexport default class PDFOptionList extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getOptionList]] method, which will create\n   * > an instance of [[PDFOptionList]] for you.\n   *\n   * Create an instance of [[PDFOptionList]] from an existing acroListBox and\n   * ref\n   *\n   * @param acroComboBox The underlying `PDFAcroListBox` for this option list.\n   * @param ref The unique reference for this option list.\n   * @param doc The document to which this option list will belong.\n   */\n  static of = (acroListBox: PDFAcroListBox, ref: PDFRef, doc: PDFDocument) =>\n    new PDFOptionList(acroListBox, ref, doc);\n\n  /** The low-level PDFAcroListBox wrapped by this option list. */\n  readonly acroField: PDFAcroListBox;\n\n  private constructor(\n    acroListBox: PDFAcroListBox,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroListBox, ref, doc);\n\n    assertIs(acroListBox, 'acroListBox', [[PDFAcroListBox, 'PDFAcroListBox']]);\n\n    this.acroField = acroListBox;\n  }\n\n  /**\n   * Get the list of available options for this option list. These options will\n   * be displayed to users who view this option list in a PDF reader.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * const options = optionList.getOptions()\n   * console.log('Option List options:', options)\n   * ```\n   * @returns The options for this option list.\n   */\n  getOptions(): string[] {\n    const rawOptions = this.acroField.getOptions();\n\n    const options = new Array<string>(rawOptions.length);\n    for (let idx = 0, len = options.length; idx < len; idx++) {\n      const { display, value } = rawOptions[idx];\n      options[idx] = (display ?? value).decodeText();\n    }\n\n    return options;\n  }\n\n  /**\n   * Get the selected options for this option list. These are the values that\n   * were selected by a human user via a PDF reader, or programatically via\n   * software.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * const selections = optionList.getSelected()\n   * console.log('Option List selections:', selections)\n   * ```\n   * @returns The selected options for this option list.\n   */\n  getSelected(): string[] {\n    const values = this.acroField.getValues();\n\n    const selected = new Array<string>(values.length);\n    for (let idx = 0, len = values.length; idx < len; idx++) {\n      selected[idx] = values[idx].decodeText();\n    }\n\n    return selected;\n  }\n\n  /**\n   * Set the list of options that are available for this option list. These are\n   * the values that will be available for users to select when they view this\n   * option list in a PDF reader. Note that preexisting options for this\n   * option list will be removed. Only the values passed as `options` will be\n   * available to select.\n   *\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('planets.optionList')\n   * optionList.setOptions(['Earth', 'Mars', 'Pluto', 'Venus'])\n   * ```\n   *\n   * This method will mark this option list as dirty, causing its appearance\n   * streams to be updated when either [[PDFDocument.save]] or\n   * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n   * display the options this field contains inside the widgets of this text\n   * field (with selected options highlighted).\n   *\n   * **IMPORTANT:** The default font used to update appearance streams is\n   * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n   * that encoding errors will be thrown if this field contains any options\n   * with characters outside the WinAnsi character set (the latin alphabet).\n   *\n   * Embedding a custom font and passing it to\n   * [[PDFForm.updateFieldAppearances]] or [[PDFOptionList.updateAppearances]]\n   * allows you to generate appearance streams with characters outside the\n   * latin alphabet (assuming the custom font supports them).\n   *\n   * @param options The options that should be available in this option list.\n   */\n  setOptions(options: string[]) {\n    assertIs(options, 'options', [Array]);\n\n    this.markAsDirty();\n    const optionObjects = new Array<{ value: PDFHexString }>(options.length);\n    for (let idx = 0, len = options.length; idx < len; idx++) {\n      optionObjects[idx] = { value: PDFHexString.fromText(options[idx]) };\n    }\n    this.acroField.setOptions(optionObjects);\n  }\n\n  /**\n   * Add to the list of options that are available for this option list. Users\n   * will be able to select these values in a PDF reader. In addition to the\n   * values passed as `options`, any preexisting options for this option list\n   * will still be available for users to select.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('rockets.optionList')\n   * optionList.addOptions(['Saturn IV', 'Falcon Heavy'])\n   * ```\n   * This method will mark this option list as dirty. See\n   * [[PDFOptionList.setOptions]] for more details about what this means.\n   * @param options New options that should be available in this option list.\n   */\n  addOptions(options: string | string[]) {\n    assertIs(options, 'options', ['string', Array]);\n\n    this.markAsDirty();\n\n    const optionsArr = Array.isArray(options) ? options : [options];\n\n    const existingOptions: {\n      value: PDFString | PDFHexString;\n      display?: PDFString | PDFHexString;\n    }[] = this.acroField.getOptions();\n\n    const newOptions = new Array<{ value: PDFHexString }>(optionsArr.length);\n    for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n      newOptions[idx] = { value: PDFHexString.fromText(optionsArr[idx]) };\n    }\n\n    this.acroField.setOptions(existingOptions.concat(newOptions));\n  }\n\n  /**\n   * Select one or more values for this option list. This operation is analogous\n   * to a human user opening the option list in a PDF reader and clicking on one\n   * or more values to select them. This method will update the underlying state\n   * of the option list to indicate which values have been selected. PDF\n   * libraries and readers will be able to extract these values from the saved\n   * document and determine which values were selected.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('best.superheroes.optionList')\n   * optionList.select(['One Punch Man', 'Iron Man'])\n   * ```\n   * This method will mark this option list as dirty. See\n   * [[PDFOptionList.setOptions]] for more details about what this means.\n   * @param options The options to be selected.\n   * @param merge Whether or not existing selections should be preserved.\n   */\n  select(options: string | string[], merge = false) {\n    assertIs(options, 'options', ['string', Array]);\n    assertIs(merge, 'merge', ['boolean']);\n\n    const optionsArr = Array.isArray(options) ? options : [options];\n\n    const validOptions = this.getOptions();\n    assertIsSubset(optionsArr, 'option', validOptions);\n\n    this.markAsDirty();\n\n    if (optionsArr.length > 1 || (optionsArr.length === 1 && merge)) {\n      this.enableMultiselect();\n    }\n\n    const values = new Array<PDFHexString>(optionsArr.length);\n    for (let idx = 0, len = optionsArr.length; idx < len; idx++) {\n      values[idx] = PDFHexString.fromText(optionsArr[idx]);\n    }\n\n    if (merge) {\n      const existingValues = this.acroField.getValues();\n      this.acroField.setValues(existingValues.concat(values));\n    } else {\n      this.acroField.setValues(values);\n    }\n  }\n\n  /**\n   * Clear all selected values for this option list. This operation is\n   * equivalent to selecting an empty list. This method will update the\n   * underlying state of the option list to indicate that no values have been\n   * selected.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.clear()\n   * ```\n   * This method will mark this option list as dirty. See\n   * [[PDFOptionList.setOptions]] for more details about what this means.\n   */\n  clear() {\n    this.markAsDirty();\n    this.acroField.setValues([]);\n  }\n\n  /**\n   * Set the font size for the text in this field. There needs to be a\n   * default appearance string (DA) set with a font value specified\n   * for this to work. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.setFontSize(4);\n   * ```\n   * @param fontSize The font size to set the font to.\n   */\n\n  /**\n   * Set the font size for this field. Larger font sizes will result in larger\n   * text being displayed when PDF readers render this option list. Font sizes\n   * may be integer or floating point numbers. Supplying a negative font size\n   * will cause this method to throw an error.\n   *\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.setFontSize(4)\n   * optionList.setFontSize(15.7)\n   * ```\n   *\n   * > This method depends upon the existence of a default appearance\n   * > (`/DA`) string. If this field does not have a default appearance string,\n   * > or that string does not contain a font size (via the `Tf` operator),\n   * > then this method will throw an error.\n   *\n   * @param fontSize The font size to be used when rendering text in this field.\n   */\n  setFontSize(fontSize: number) {\n    assertPositive(fontSize, 'fontSize');\n    this.acroField.setFontSize(fontSize);\n    this.markAsDirty();\n  }\n\n  /**\n   * Returns `true` if the options of this option list are always displayed\n   * in alphabetical order, irrespective of the order in which the options\n   * were added to the option list. See [[PDFOptionList.enableSorting]] and\n   * [[PDFOptionList.disableSorting]]. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * if (optionList.isSorted()) console.log('Sorting is enabled')\n   * ```\n   * @returns Whether or not this option list is sorted.\n   */\n  isSorted(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.Sort);\n  }\n\n  /**\n   * Always display the options of this option list in alphabetical order,\n   * irrespective of the order in which the options were added to this option\n   * list.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.enableSorting()\n   * ```\n   */\n  enableSorting() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Sort, true);\n  }\n\n  /**\n   * Do not always display the options of this option list in alphabetical\n   * order. Instead, display the options in whichever order they were added\n   * to this option list. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.disableSorting()\n   * ```\n   */\n  disableSorting() {\n    this.acroField.setFlagTo(AcroChoiceFlags.Sort, false);\n  }\n\n  /**\n   * Returns `true` if multiple options can be selected from this option list.\n   * See [[PDFOptionList.enableMultiselect]] and\n   * [[PDFOptionList.disableMultiselect]]. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * if (optionList.isMultiselect()) console.log('Multiselect is enabled')\n   * ```\n   * @returns Whether or not multiple options can be selected.\n   */\n  isMultiselect(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.MultiSelect);\n  }\n\n  /**\n   * Allow users to select more than one option from this option list.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.enableMultiselect()\n   * ```\n   */\n  enableMultiselect() {\n    this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, true);\n  }\n\n  /**\n   * Do not allow users to select more than one option from this option list.\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.disableMultiselect()\n   * ```\n   */\n  disableMultiselect() {\n    this.acroField.setFlagTo(AcroChoiceFlags.MultiSelect, false);\n  }\n\n  /**\n   * Returns `true` if the option selected by a user is stored, or \"committed\",\n   * when the user clicks the option. The alternative is that the user's\n   * selection is stored when the user leaves this option list field (by\n   * clicking outside of it - on another field, for example). See\n   * [[PDFOptionList.enableSelectOnClick]] and\n   * [[PDFOptionList.disableSelectOnClick]]. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * if (optionList.isSelectOnClick()) console.log('Select on click is enabled')\n   * ```\n   * @returns Whether or not options are selected immediately after they are\n   *          clicked.\n   */\n  isSelectOnClick(): boolean {\n    return this.acroField.hasFlag(AcroChoiceFlags.CommitOnSelChange);\n  }\n\n  /**\n   * Store the option selected by a user immediately after the user clicks the\n   * option. Do not wait for the user to leave this option list field (by\n   * clicking outside of it - on another field, for example). For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.enableSelectOnClick()\n   * ```\n   */\n  enableSelectOnClick() {\n    this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, true);\n  }\n\n  /**\n   * Wait to store the option selected by a user until they leave this option\n   * list field (by clicking outside of it - on another field, for example).\n   * For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.disableSelectOnClick()\n   * ```\n   */\n  disableSelectOnClick() {\n    this.acroField.setFlagTo(AcroChoiceFlags.CommitOnSelChange, false);\n  }\n\n  /**\n   * Show this option list on the specified page. For example:\n   * ```js\n   * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const optionList = form.createOptionList('best.gundams')\n   * optionList.setOptions(['Exia', 'Dynames', 'Kyrios', 'Virtue'])\n   * optionList.select(['Exia', 'Virtue'])\n   *\n   * optionList.addToPage(page, {\n   *   x: 50,\n   *   y: 75,\n   *   width: 200,\n   *   height: 100,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   *   font: ubuntuFont,\n   * })\n   * ```\n   * This will create a new widget for this option list field.\n   * @param page The page to which this option list widget should be added.\n   * @param options The options to be used when adding this option list widget.\n   */\n  addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    if (!options) options = {};\n\n    if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n    if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n    if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n    if (!('borderWidth' in options)) options.borderWidth = 1;\n\n    // Create a widget for this option list\n    const widget = this.createWidget({\n      x: options.x ?? 0,\n      y: options.y ?? 0,\n      width: options.width ?? 200,\n      height: options.height ?? 100,\n      textColor: options.textColor,\n      backgroundColor: options.backgroundColor,\n      borderColor: options.borderColor,\n      borderWidth: options.borderWidth ?? 0,\n      rotate: options.rotate ?? degrees(0),\n      hidden: options.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    this.acroField.addWidget(widgetRef);\n\n    // Set appearance streams for widget\n    const font = options.font ?? this.doc.getForm().getDefaultFont();\n    this.updateWidgetAppearance(widget, font);\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if this option list has been marked as dirty, or if any of\n   * this option list's widgets do not have an appearance stream. For example:\n   * ```js\n   * const optionList = form.getOptionList('some.optionList.field')\n   * if (optionList.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this option list needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    if (this.isDirty()) return true;\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const hasAppearances =\n        widget.getAppearances()?.normal instanceof PDFStream;\n      if (!hasAppearances) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this option list's widgets using\n   * the default appearance provider for option lists. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.defaultUpdateAppearances(helvetica)\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   */\n  defaultUpdateAppearances(font: PDFFont) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    this.updateAppearances(font);\n  }\n\n  /**\n   * Update the appearance streams for each of this option list's widgets using\n   * the given appearance provider. If no `provider` is passed, the default\n   * appearance provider for option lists will be used. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const optionList = form.getOptionList('some.optionList.field')\n   * optionList.updateAppearances(helvetica, (field, widget, font) => {\n   *   ...\n   *   return drawOptionList(...)\n   * })\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFOptionList>,\n  ) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      this.updateWidgetAppearance(widget, font, provider);\n    }\n    this.markAsClean();\n  }\n\n  // getOption(index: number): string {}\n  // getSelectedIndices(): number[] {}\n  // removeOptions(option: string | string[]) {}\n  // removeIndices(option: number[]) {}\n  // deselect(options: string | string[]) {}\n  // deselectIndices(optionIndices: number[]) {}\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFOptionList>,\n  ) {\n    const apProvider = provider ?? defaultOptionListAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget, font));\n    this.updateWidgetAppearanceWithFont(widget, font, appearances);\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultRadioGroupAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n  PDFName,\n  PDFRef,\n  PDFHexString,\n  PDFDict,\n  PDFWidgetAnnotation,\n  PDFAcroRadioButton,\n  AcroButtonFlags,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertIsOneOf } from 'src/utils';\n\n/**\n * Represents a radio group field of a [[PDFForm]].\n *\n * [[PDFRadioGroup]] fields are collections of radio buttons. The purpose of a\n * radio group is to enable users to select one option from a set of mutually\n * exclusive choices. Each choice in a radio group is represented by a radio\n * button. Radio buttons each have two states: `on` and `off`. At most one\n * radio button in a group may be in the `on` state at any time. Users can\n * click on a radio button to select it (and thereby automatically deselect any\n * other radio button that might have already been selected). Some radio\n * groups allow users to toggle a selected radio button `off` by clicking on\n * it (see [[PDFRadioGroup.isOffToggleable]]).\n *\n * Note that some radio groups allow multiple radio buttons to be in the `on`\n * state at the same type **if** they represent the same underlying value (see\n * [[PDFRadioGroup.isMutuallyExclusive]]).\n */\nexport default class PDFRadioGroup extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getOptionList]] method, which will create an\n   * > instance of [[PDFOptionList]] for you.\n   *\n   * Create an instance of [[PDFOptionList]] from an existing acroRadioButton\n   * and ref\n   *\n   * @param acroRadioButton The underlying `PDFAcroRadioButton` for this\n   *                        radio group.\n   * @param ref The unique reference for this radio group.\n   * @param doc The document to which this radio group will belong.\n   */\n  static of = (\n    acroRadioButton: PDFAcroRadioButton,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) => new PDFRadioGroup(acroRadioButton, ref, doc);\n\n  /** The low-level PDFAcroRadioButton wrapped by this radio group. */\n  readonly acroField: PDFAcroRadioButton;\n\n  private constructor(\n    acroRadioButton: PDFAcroRadioButton,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroRadioButton, ref, doc);\n\n    assertIs(acroRadioButton, 'acroRadioButton', [\n      [PDFAcroRadioButton, 'PDFAcroRadioButton'],\n    ]);\n\n    this.acroField = acroRadioButton;\n  }\n\n  /**\n   * Get the list of available options for this radio group. Each option is\n   * represented by a radio button. These radio buttons are displayed at\n   * various locations in the document, potentially on different pages (though\n   * typically they are stacked horizontally or vertically on the same page).\n   * For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * const options = radioGroup.getOptions()\n   * console.log('Radio Group options:', options)\n   * ```\n   * @returns The options for this radio group.\n   */\n  getOptions(): string[] {\n    const exportValues = this.acroField.getExportValues();\n    if (exportValues) {\n      const exportOptions = new Array<string>(exportValues.length);\n      for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n        exportOptions[idx] = exportValues[idx].decodeText();\n      }\n      return exportOptions;\n    }\n\n    const onValues = this.acroField.getOnValues();\n    const onOptions = new Array<string>(onValues.length);\n    for (let idx = 0, len = onOptions.length; idx < len; idx++) {\n      onOptions[idx] = onValues[idx].decodeText();\n    }\n    return onOptions;\n  }\n\n  /**\n   * Get the selected option for this radio group. The selected option is\n   * represented by the radio button in this group that is turned on. At most\n   * one radio button in a group can be selected. If no buttons in this group\n   * are selected, `undefined` is returned.\n   * For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * const selected = radioGroup.getSelected()\n   * console.log('Selected radio button:', selected)\n   * ```\n   * @returns The selected option for this radio group.\n   */\n  getSelected(): string | undefined {\n    const value = this.acroField.getValue();\n    if (value === PDFName.of('Off')) return undefined;\n    const exportValues = this.acroField.getExportValues();\n    if (exportValues) {\n      const onValues = this.acroField.getOnValues();\n      for (let idx = 0, len = onValues.length; idx < len; idx++) {\n        if (onValues[idx] === value) return exportValues[idx].decodeText();\n      }\n    }\n    return value.decodeText();\n  }\n\n  // // TODO: Figure out why this seems to crash Acrobat. Maybe it's because we\n  // //       aren't removing the widget reference from the page's Annots?\n  // removeOption(option: string) {\n  //   assertIs(option, 'option', ['string']);\n  //   // TODO: Assert is valid `option`!\n\n  //   const onValues = this.acroField.getOnValues();\n  //   const exportValues = this.acroField.getExportValues();\n  //   if (exportValues) {\n  //     for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n  //       if (exportValues[idx].decodeText() === option) {\n  //         this.acroField.removeWidget(idx);\n  //         this.acroField.removeExportValue(idx);\n  //       }\n  //     }\n  //   } else {\n  //     for (let idx = 0, len = onValues.length; idx < len; idx++) {\n  //       const value = onValues[idx];\n  //       if (value.decodeText() === option) {\n  //         this.acroField.removeWidget(idx);\n  //         this.acroField.removeExportValue(idx);\n  //       }\n  //     }\n  //   }\n  // }\n\n  /**\n   * Select an option for this radio group. This operation is analogous to a\n   * human user clicking one of the radio buttons in this group via a PDF\n   * reader to toggle it on. This method will update the underlying state of\n   * the radio group to indicate which option has been selected. PDF libraries\n   * and readers will be able to extract this value from the saved document and\n   * determine which option was selected.\n   *\n   * For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('best.superhero.radioGroup')\n   * radioGroup.select('One Punch Man')\n   * ```\n   *\n   * This method will mark this radio group as dirty, causing its appearance\n   * streams to be updated when either [[PDFDocument.save]] or\n   * [[PDFForm.updateFieldAppearances]] is called. The updated appearance\n   * streams will display a dot inside the widget of this check box field\n   * that represents the selected option.\n   *\n   * @param option The option to be selected.\n   */\n  select(option: string) {\n    assertIs(option, 'option', ['string']);\n\n    const validOptions = this.getOptions();\n    assertIsOneOf(option, 'option', validOptions);\n\n    this.markAsDirty();\n\n    const onValues = this.acroField.getOnValues();\n    const exportValues = this.acroField.getExportValues();\n    if (exportValues) {\n      for (let idx = 0, len = exportValues.length; idx < len; idx++) {\n        if (exportValues[idx].decodeText() === option) {\n          this.acroField.setValue(onValues[idx]);\n        }\n      }\n    } else {\n      for (let idx = 0, len = onValues.length; idx < len; idx++) {\n        const value = onValues[idx];\n        if (value.decodeText() === option) this.acroField.setValue(value);\n      }\n    }\n  }\n\n  /**\n   * Clear any selected option for this dropdown. This will result in all\n   * radio buttons in this group being toggled off. This method will update\n   * the underlying state of the dropdown to indicate that no radio buttons\n   * have been selected.\n   * For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.clear()\n   * ```\n   * This method will mark this radio group as dirty. See\n   * [[PDFRadioGroup.select]] for more details about what this means.\n   */\n  clear() {\n    this.markAsDirty();\n    this.acroField.setValue(PDFName.of('Off'));\n  }\n\n  /**\n   * Returns `true` if users can click on radio buttons in this group to toggle\n   * them off. The alternative is that once a user clicks on a radio button\n   * to select it, the only way to deselect it is by selecting on another radio\n   * button in the group. See [[PDFRadioGroup.enableOffToggling]] and\n   * [[PDFRadioGroup.disableOffToggling]]. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * if (radioGroup.isOffToggleable()) console.log('Off toggling is enabled')\n   * ```\n   */\n  isOffToggleable() {\n    return !this.acroField.hasFlag(AcroButtonFlags.NoToggleToOff);\n  }\n\n  /**\n   * Allow users to click on selected radio buttons in this group to toggle\n   * them off. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.enableOffToggling()\n   * ```\n   * > **NOTE:** This feature is documented in the PDF specification\n   * > (Table 226). However, most PDF readers do not respect this option and\n   * > prevent users from toggling radio buttons off even when it is enabled.\n   * > At the time of this writing (9/6/2020) Mac's Preview software did\n   * > respect the option. Adobe Acrobat, Foxit Reader, and Google Chrome did\n   * > not.\n   */\n  enableOffToggling() {\n    this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, false);\n  }\n\n  /**\n   * Prevent users from clicking on selected radio buttons in this group to\n   * toggle them off. Clicking on a selected radio button will have no effect.\n   * The only way to deselect a selected radio button is to click on a\n   * different radio button in the group. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.disableOffToggling()\n   * ```\n   */\n  disableOffToggling() {\n    this.acroField.setFlagTo(AcroButtonFlags.NoToggleToOff, true);\n  }\n\n  /**\n   * Returns `true` if the radio buttons in this group are mutually exclusive.\n   * This means that when the user selects a radio button, only that specific\n   * button will be turned on. Even if other radio buttons in the group\n   * represent the same value, they will not be enabled. The alternative to\n   * this is that clicking a radio button will select that button along with\n   * any other radio buttons in the group that share the same value. See\n   * [[PDFRadioGroup.enableMutualExclusion]] and\n   * [[PDFRadioGroup.disableMutualExclusion]].\n   * For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * if (radioGroup.isMutuallyExclusive()) console.log('Mutual exclusion is enabled')\n   * ```\n   */\n  isMutuallyExclusive() {\n    return !this.acroField.hasFlag(AcroButtonFlags.RadiosInUnison);\n  }\n\n  /**\n   * When the user clicks a radio button in this group it will be selected. In\n   * addition, any other radio buttons in this group that share the same\n   * underlying value will also be selected. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.enableMutualExclusion()\n   * ```\n   * Note that this option must be enabled prior to adding options to the\n   * radio group. It does not currently apply retroactively to existing\n   * radio buttons in the group.\n   */\n  enableMutualExclusion() {\n    this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, false);\n  }\n\n  /**\n   * When the user clicks a radio button in this group only it will be selected.\n   * No other radio buttons in the group will be selected, even if they share\n   * the same underlying value. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.disableMutualExclusion()\n   * ```\n   * Note that this option must be disabled prior to adding options to the\n   * radio group. It does not currently apply retroactively to existing\n   * radio buttons in the group.\n   */\n  disableMutualExclusion() {\n    this.acroField.setFlagTo(AcroButtonFlags.RadiosInUnison, true);\n  }\n\n  /**\n   * Add a new radio button to this group on the specified page. For example:\n   * ```js\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const radioGroup = form.createRadioGroup('best.gundam')\n   *\n   * const options = {\n   *   x: 50,\n   *   width: 25,\n   *   height: 25,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   * }\n   *\n   * radioGroup.addOptionToPage('Exia', page, { ...options, y: 50 })\n   * radioGroup.addOptionToPage('Dynames', page, { ...options, y: 110 })\n   * ```\n   * This will create a new radio button widget for this radio group field.\n   * @param option The option that the radio button widget represents.\n   * @param page The page to which the radio button widget should be added.\n   * @param options The options to be used when adding the radio button widget.\n   */\n  addOptionToPage(\n    option: string,\n    page: PDFPage,\n    options?: FieldAppearanceOptions,\n  ) {\n    assertIs(option, 'option', ['string']);\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    // Create a widget for this radio button\n    const widget = this.createWidget({\n      x: options?.x ?? 0,\n      y: options?.y ?? 0,\n      width: options?.width ?? 50,\n      height: options?.height ?? 50,\n      textColor: options?.textColor ?? rgb(0, 0, 0),\n      backgroundColor: options?.backgroundColor ?? rgb(1, 1, 1),\n      borderColor: options?.borderColor ?? rgb(0, 0, 0),\n      borderWidth: options?.borderWidth ?? 1,\n      rotate: options?.rotate ?? degrees(0),\n      hidden: options?.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    const apStateValue = this.acroField.addWidgetWithOpt(\n      widgetRef,\n      PDFHexString.fromText(option),\n      !this.isMutuallyExclusive(),\n    );\n\n    // Set appearance streams for widget\n    widget.setAppearanceState(PDFName.of('Off'));\n    this.updateWidgetAppearance(widget, apStateValue);\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if any of this group's radio button widgets do not have an\n   * appearance stream for their current state. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * if (radioGroup.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this radio group needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const state = widget.getAppearanceState();\n      const normal = widget.getAppearances()?.normal;\n\n      if (!(normal instanceof PDFDict)) return true;\n      if (state && !normal.has(state)) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this group's radio button widgets\n   * using the default appearance provider for radio groups. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.defaultUpdateAppearances()\n   * ```\n   */\n  defaultUpdateAppearances() {\n    this.updateAppearances();\n  }\n\n  // rg.updateAppearances((field: any, widget: any) => {\n  //   assert(field === rg);\n  //   assert(widget instanceof PDFWidgetAnnotation);\n  //   return { on: [...rectangle, ...circle], off: [...rectangle, ...circle] };\n  // });\n\n  /**\n   * Update the appearance streams for each of this group's radio button widgets\n   * using the given appearance provider. If no `provider` is passed, the\n   * default appearance provider for radio groups will be used. For example:\n   * ```js\n   * const radioGroup = form.getRadioGroup('some.radioGroup.field')\n   * radioGroup.updateAppearances((field, widget) => {\n   *   ...\n   *   return {\n   *     normal: { on: drawRadioButton(...), off: drawRadioButton(...) },\n   *     down: { on: drawRadioButton(...), off: drawRadioButton(...) },\n   *   }\n   * })\n   * ```\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(provider?: AppearanceProviderFor<PDFRadioGroup>) {\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const onValue = widget.getOnValue();\n      if (!onValue) continue;\n      this.updateWidgetAppearance(widget, onValue, provider);\n    }\n  }\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    onValue: PDFName,\n    provider?: AppearanceProviderFor<PDFRadioGroup>,\n  ) {\n    const apProvider = provider ?? defaultRadioGroupAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget));\n    this.updateOnOffWidgetAppearance(widget, onValue, appearances);\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFField from 'src/api/form/PDFField';\n\nimport { PDFRef, PDFAcroSignature } from 'src/core';\nimport { assertIs } from 'src/utils';\n\n/**\n * Represents a signature field of a [[PDFForm]].\n *\n * [[PDFSignature]] fields are digital signatures. `pdf-lib` does not\n * currently provide any specialized APIs for creating digital signatures or\n * reading the contents of existing digital signatures.\n */\nexport default class PDFSignature extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getSignature]] method, which will create an\n   * > instance of [[PDFSignature]] for you.\n   *\n   * Create an instance of [[PDFSignature]] from an existing acroSignature and\n   * ref\n   *\n   * @param acroSignature The underlying `PDFAcroSignature` for this signature.\n   * @param ref The unique reference for this signature.\n   * @param doc The document to which this signature will belong.\n   */\n  static of = (\n    acroSignature: PDFAcroSignature,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) => new PDFSignature(acroSignature, ref, doc);\n\n  /** The low-level PDFAcroSignature wrapped by this signature. */\n  readonly acroField: PDFAcroSignature;\n\n  private constructor(\n    acroSignature: PDFAcroSignature,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroSignature, ref, doc);\n\n    assertIs(acroSignature, 'acroSignature', [\n      [PDFAcroSignature, 'PDFAcroSignature'],\n    ]);\n\n    this.acroField = acroSignature;\n  }\n\n  needsAppearancesUpdate() {\n    return false;\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultTextFieldAppearanceProvider,\n} from 'src/api/form/appearances';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\nimport {\n  RichTextFieldReadError,\n  ExceededMaxLengthError,\n  InvalidMaxLengthError,\n} from 'src/api/errors';\nimport { ImageAlignment } from 'src/api/image/alignment';\nimport { TextAlignment } from 'src/api/text/alignment';\n\nimport {\n  PDFHexString,\n  PDFRef,\n  PDFStream,\n  PDFAcroText,\n  AcroTextFlags,\n  PDFWidgetAnnotation,\n} from 'src/core';\nimport {\n  assertIs,\n  assertIsOneOf,\n  assertOrUndefined,\n  assertPositive,\n  assertRangeOrUndefined,\n} from 'src/utils';\n\n/**\n * Represents a text field of a [[PDFForm]].\n *\n * [[PDFTextField]] fields are boxes that display text entered by the user. The\n * purpose of a text field is to enable users to enter text or view text values\n * in the document prefilled by software. Users can click on a text field and\n * input text via their keyboard. Some text fields allow multiple lines of text\n * to be entered (see [[PDFTextField.isMultiline]]).\n */\nexport default class PDFTextField extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getTextField]] method, which will create an\n   * > instance of [[PDFTextField]] for you.\n   *\n   * Create an instance of [[PDFTextField]] from an existing acroText and ref\n   *\n   * @param acroText The underlying `PDFAcroText` for this text field.\n   * @param ref The unique reference for this text field.\n   * @param doc The document to which this text field will belong.\n   */\n  static of = (acroText: PDFAcroText, ref: PDFRef, doc: PDFDocument) =>\n    new PDFTextField(acroText, ref, doc);\n\n  /** The low-level PDFAcroText wrapped by this text field. */\n  readonly acroField: PDFAcroText;\n\n  private constructor(acroText: PDFAcroText, ref: PDFRef, doc: PDFDocument) {\n    super(acroText, ref, doc);\n\n    assertIs(acroText, 'acroText', [[PDFAcroText, 'PDFAcroText']]);\n\n    this.acroField = acroText;\n  }\n\n  /**\n   * Get the text that this field contains. This text is visible to users who\n   * view this field in a PDF reader.\n   *\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * const text = textField.getText()\n   * console.log('Text field contents:', text)\n   * ```\n   *\n   * Note that if this text field contains no underlying value, `undefined`\n   * will be returned. Text fields may also contain an underlying value that\n   * is simply an empty string (`''`). This detail is largely irrelevant for\n   * most applications. In general, you'll want to treat both cases the same\n   * way and simply consider the text field to be empty. In either case, the\n   * text field will appear empty to users when viewed in a PDF reader.\n   *\n   * An error will be thrown if this is a rich text field. `pdf-lib` does not\n   * support reading rich text fields. Nor do most PDF readers and writers.\n   * Rich text fields are based on XFA (XML Forms Architecture). Relatively few\n   * PDFs use rich text fields or XFA. Unlike PDF itself, XFA is not an ISO\n   * standard. XFA has been deprecated in PDF 2.0:\n   * * https://en.wikipedia.org/wiki/XFA\n   * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n   *\n   * @returns The text contained in this text field.\n   */\n  getText(): string | undefined {\n    const value = this.acroField.getValue();\n    if (!value && this.isRichFormatted()) {\n      throw new RichTextFieldReadError(this.getName());\n    }\n    return value?.decodeText();\n  }\n\n  /**\n   * Set the text for this field. This operation is analogous to a human user\n   * clicking on the text field in a PDF reader and typing in text via their\n   * keyboard. This method will update the underlying state of the text field\n   * to indicate what text has been set. PDF libraries and readers will be able\n   * to extract these values from the saved document and determine what text\n   * was set.\n   *\n   * For example:\n   * ```js\n   * const textField = form.getTextField('best.superhero.text.field')\n   * textField.setText('One Punch Man')\n   * ```\n   *\n   * This method will mark this text field as dirty, causing its appearance\n   * streams to be updated when either [[PDFDocument.save]] or\n   * [[PDFForm.updateFieldAppearances]] is called. The updated streams will\n   * display the text this field contains inside the widgets of this text\n   * field.\n   *\n   * **IMPORTANT:** The default font used to update appearance streams is\n   * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n   * that encoding errors will be thrown if this field contains text outside\n   * the WinAnsi character set (the latin alphabet).\n   *\n   * Embedding a custom font and passing it to\n   * [[PDFForm.updateFieldAppearances]] or [[PDFTextField.updateAppearances]]\n   * allows you to generate appearance streams with characters outside the\n   * latin alphabet (assuming the custom font supports them).\n   *\n   * If this is a rich text field, it will be converted to a standard text\n   * field in order to set the text. `pdf-lib` does not support writing rich\n   * text strings. Nor do most PDF readers and writers. See\n   * [[PDFTextField.getText]] for more information about rich text fields and\n   * their deprecation in PDF 2.0.\n   *\n   * @param text The text this field should contain.\n   */\n  setText(text: string | undefined) {\n    assertOrUndefined(text, 'text', ['string']);\n\n    const maxLength = this.getMaxLength();\n    if (maxLength !== undefined && text && text.length > maxLength) {\n      throw new ExceededMaxLengthError(text.length, maxLength, this.getName());\n    }\n\n    this.markAsDirty();\n    this.disableRichFormatting();\n\n    if (text) {\n      this.acroField.setValue(PDFHexString.fromText(text));\n    } else {\n      this.acroField.removeValue();\n    }\n  }\n\n  /**\n   * Get the alignment for this text field. This value represents the\n   * justification of the text when it is displayed to the user in PDF readers.\n   * There are three possible alignments: left, center, and right. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * const alignment = textField.getAlignment()\n   * if (alignment === TextAlignment.Left) console.log('Text is left justified')\n   * if (alignment === TextAlignment.Center) console.log('Text is centered')\n   * if (alignment === TextAlignment.Right) console.log('Text is right justified')\n   * ```\n   * @returns The alignment of this text field.\n   */\n  getAlignment(): TextAlignment {\n    const quadding = this.acroField.getQuadding();\n\n    // prettier-ignore\n    return (\n        quadding === 0 ? TextAlignment.Left\n      : quadding === 1 ? TextAlignment.Center\n      : quadding === 2 ? TextAlignment.Right\n      : TextAlignment.Left\n    );\n  }\n\n  /**\n   * Set the alignment for this text field. This will determine the\n   * justification of the text when it is displayed to the user in PDF readers.\n   * There are three possible alignments: left, center, and right. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   *\n   * // Text will be left justified when displayed\n   * textField.setAlignment(TextAlignment.Left)\n   *\n   * // Text will be centered when displayed\n   * textField.setAlignment(TextAlignment.Center)\n   *\n   * // Text will be right justified when displayed\n   * textField.setAlignment(TextAlignment.Right)\n   * ```\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   * @param alignment The alignment for this text field.\n   */\n  setAlignment(alignment: TextAlignment) {\n    assertIsOneOf(alignment, 'alignment', TextAlignment);\n    this.markAsDirty();\n    this.acroField.setQuadding(alignment);\n  }\n\n  /**\n   * Get the maximum length of this field. This value represents the maximum\n   * number of characters that can be typed into this field by the user. If\n   * this field does not have a maximum length, `undefined` is returned.\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * const maxLength = textField.getMaxLength()\n   * if (maxLength === undefined) console.log('No max length')\n   * else console.log(`Max length is ${maxLength}`)\n   * ```\n   * @returns The maximum number of characters allowed in this field, or\n   *          `undefined` if no limit exists.\n   */\n  getMaxLength(): number | undefined {\n    return this.acroField.getMaxLength();\n  }\n\n  /**\n   * Set the maximum length of this field. This limits the number of characters\n   * that can be typed into this field by the user. This also limits the length\n   * of the string that can be passed to [[PDFTextField.setText]]. This limit\n   * can be removed by passing `undefined` as `maxLength`. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   *\n   * // Allow between 0 and 5 characters to be entered\n   * textField.setMaxLength(5)\n   *\n   * // Allow any number of characters to be entered\n   * textField.setMaxLength(undefined)\n   * ```\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   * @param maxLength The maximum number of characters allowed in this field, or\n   *                  `undefined` to remove the limit.\n   */\n  setMaxLength(maxLength?: number) {\n    assertRangeOrUndefined(maxLength, 'maxLength', 0, Number.MAX_SAFE_INTEGER);\n\n    this.markAsDirty();\n\n    if (maxLength === undefined) {\n      this.acroField.removeMaxLength();\n    } else {\n      const text = this.getText();\n      if (text && text.length > maxLength) {\n        throw new InvalidMaxLengthError(text.length, maxLength, this.getName());\n      }\n      this.acroField.setMaxLength(maxLength);\n    }\n  }\n\n  /**\n   * Remove the maximum length for this text field. This allows any number of\n   * characters to be typed into this field by the user. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.removeMaxLength()\n   * ```\n   * Calling this method is equivalent to passing `undefined` to\n   * [[PDFTextField.setMaxLength]].\n   */\n  removeMaxLength() {\n    this.markAsDirty();\n    this.acroField.removeMaxLength();\n  }\n\n  /**\n   * Display an image inside the bounds of this text field's widgets. For example:\n   * ```js\n   * const pngImage = await pdfDoc.embedPng(...)\n   * const textField = form.getTextField('some.text.field')\n   * textField.setImage(pngImage)\n   * ```\n   * This will update the appearances streams for each of this text field's widgets.\n   * @param image The image that should be displayed.\n   */\n  setImage(image: PDFImage) {\n    const fieldAlignment = this.getAlignment();\n\n    // prettier-ignore\n    const alignment = \n        fieldAlignment === TextAlignment.Center ? ImageAlignment.Center\n      : fieldAlignment === TextAlignment.Right ? ImageAlignment.Right\n      : ImageAlignment.Left;\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const streamRef = this.createImageAppearanceStream(\n        widget,\n        image,\n        alignment,\n      );\n      this.updateWidgetAppearances(widget, { normal: streamRef });\n    }\n\n    this.markAsClean();\n  }\n\n  /**\n   * Set the font size for this field. Larger font sizes will result in larger\n   * text being displayed when PDF readers render this text field. Font sizes\n   * may be integer or floating point numbers. Supplying a negative font size\n   * will cause this method to throw an error.\n   *\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.setFontSize(4)\n   * textField.setFontSize(15.7)\n   * ```\n   *\n   * > This method depends upon the existence of a default appearance\n   * > (`/DA`) string. If this field does not have a default appearance string,\n   * > or that string does not contain a font size (via the `Tf` operator),\n   * > then this method will throw an error.\n   *\n   * @param fontSize The font size to be used when rendering text in this field.\n   */\n  setFontSize(fontSize: number) {\n    assertPositive(fontSize, 'fontSize');\n    this.acroField.setFontSize(fontSize);\n    this.markAsDirty();\n  }\n\n  /**\n   * Returns `true` if each line of text is shown on a new line when this\n   * field is displayed in a PDF reader. The alternative is that all lines of\n   * text are merged onto a single line when displayed. See\n   * [[PDFTextField.enableMultiline]] and [[PDFTextField.disableMultiline]].\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isMultiline()) console.log('Multiline is enabled')\n   * ```\n   * @returns Whether or not this is a multiline text field.\n   */\n  isMultiline(): boolean {\n    return this.acroField.hasFlag(AcroTextFlags.Multiline);\n  }\n\n  /**\n   * Display each line of text on a new line when this field is displayed in a\n   * PDF reader. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableMultiline()\n   * ```\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   */\n  enableMultiline() {\n    this.markAsDirty();\n    this.acroField.setFlagTo(AcroTextFlags.Multiline, true);\n  }\n\n  /**\n   * Display each line of text on the same line when this field is displayed\n   * in a PDF reader. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableMultiline()\n   * ```\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   */\n  disableMultiline() {\n    this.markAsDirty();\n    this.acroField.setFlagTo(AcroTextFlags.Multiline, false);\n  }\n\n  /**\n   * Returns `true` if this is a password text field. This means that the field\n   * is intended for storing a secure password. See\n   * [[PDFTextField.enablePassword]] and [[PDFTextField.disablePassword]].\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isPassword()) console.log('Password is enabled')\n   * ```\n   * @returns Whether or not this is a password text field.\n   */\n  isPassword(): boolean {\n    return this.acroField.hasFlag(AcroTextFlags.Password);\n  }\n\n  /**\n   * Indicate that this text field is intended for storing a secure password.\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enablePassword()\n   * ```\n   * Values entered into password text fields should not be displayed on the\n   * screen by PDF readers. Most PDF readers will display the value as\n   * asterisks or bullets. PDF readers should never store values entered by the\n   * user into password text fields. Similarly, applications should not\n   * write data to a password text field.\n   *\n   * **Please note that this method does not cause entered values to be\n   * encrypted or secured in any way! It simply sets a flag that PDF software\n   * and readers can access to determine the _purpose_ of this field.**\n   */\n  enablePassword() {\n    this.acroField.setFlagTo(AcroTextFlags.Password, true);\n  }\n\n  /**\n   * Indicate that this text field is **not** intended for storing a secure\n   * password. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disablePassword()\n   * ```\n   */\n  disablePassword() {\n    this.acroField.setFlagTo(AcroTextFlags.Password, false);\n  }\n\n  /**\n   * Returns `true` if the contents of this text field represent a file path.\n   * See [[PDFTextField.enableFileSelection]] and\n   * [[PDFTextField.disableFileSelection]]. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isFileSelector()) console.log('Is a file selector')\n   * ```\n   * @returns Whether or not this field should contain file paths.\n   */\n  isFileSelector(): boolean {\n    return this.acroField.hasFlag(AcroTextFlags.FileSelect);\n  }\n\n  /**\n   * Indicate that this text field is intended to store a file path. The\n   * contents of the file stored at that path should be submitted as the value\n   * of the field. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableFileSelection()\n   * ```\n   */\n  enableFileSelection() {\n    this.acroField.setFlagTo(AcroTextFlags.FileSelect, true);\n  }\n\n  /**\n   * Indicate that this text field is **not** intended to store a file path.\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableFileSelection()\n   * ```\n   */\n  disableFileSelection() {\n    this.acroField.setFlagTo(AcroTextFlags.FileSelect, false);\n  }\n\n  /**\n   * Returns `true` if the text entered in this field should be spell checked\n   * by PDF readers. See [[PDFTextField.enableSpellChecking]] and\n   * [[PDFTextField.disableSpellChecking]]. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isSpellChecked()) console.log('Spell checking is enabled')\n   * ```\n   * @returns Whether or not this field should be spell checked.\n   */\n  isSpellChecked(): boolean {\n    return !this.acroField.hasFlag(AcroTextFlags.DoNotSpellCheck);\n  }\n\n  /**\n   * Allow PDF readers to spell check the text entered in this field.\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableSpellChecking()\n   * ```\n   */\n  enableSpellChecking() {\n    this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, false);\n  }\n\n  /**\n   * Do not allow PDF readers to spell check the text entered in this field.\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableSpellChecking()\n   * ```\n   */\n  disableSpellChecking() {\n    this.acroField.setFlagTo(AcroTextFlags.DoNotSpellCheck, true);\n  }\n\n  /**\n   * Returns `true` if PDF readers should allow the user to scroll the text\n   * field when its contents do not fit within the field's view bounds. See\n   * [[PDFTextField.enableScrolling]] and [[PDFTextField.disableScrolling]].\n   * For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isScrollable()) console.log('Scrolling is enabled')\n   * ```\n   * @returns Whether or not the field is scrollable in PDF readers.\n   */\n  isScrollable(): boolean {\n    return !this.acroField.hasFlag(AcroTextFlags.DoNotScroll);\n  }\n\n  /**\n   * Allow PDF readers to present a scroll bar to the user when the contents\n   * of this text field do not fit within its view bounds. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableScrolling()\n   * ```\n   * A horizontal scroll bar should be shown for singleline fields. A vertical\n   * scroll bar should be shown for multiline fields.\n   */\n  enableScrolling() {\n    this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, false);\n  }\n\n  /**\n   * Do not allow PDF readers to present a scroll bar to the user when the\n   * contents of this text field do not fit within its view bounds. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableScrolling()\n   * ```\n   */\n  disableScrolling() {\n    this.acroField.setFlagTo(AcroTextFlags.DoNotScroll, true);\n  }\n\n  /**\n   * Returns `true` if this is a combed text field. This means that the field\n   * is split into `n` equal size cells with one character in each (where `n`\n   * is equal to the max length of the text field). The result is that all\n   * characters in this field are displayed an equal distance apart from one\n   * another. See [[PDFTextField.enableCombing]] and\n   * [[PDFTextField.disableCombing]]. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isCombed()) console.log('Combing is enabled')\n   * ```\n   * Note that in order for a text field to be combed, the following must be\n   * true (in addition to enabling combing):\n   * * It must not be a multiline field (see [[PDFTextField.isMultiline]])\n   * * It must not be a password field (see [[PDFTextField.isPassword]])\n   * * It must not be a file selector field (see [[PDFTextField.isFileSelector]])\n   * * It must have a max length defined (see [[PDFTextField.setMaxLength]])\n   * @returns Whether or not this field is combed.\n   */\n  isCombed(): boolean {\n    return (\n      this.acroField.hasFlag(AcroTextFlags.Comb) &&\n      !this.isMultiline() &&\n      !this.isPassword() &&\n      !this.isFileSelector() &&\n      this.getMaxLength() !== undefined\n    );\n  }\n\n  /**\n   * Split this field into `n` equal size cells with one character in each\n   * (where `n` is equal to the max length of the text field). This will cause\n   * all characters in the field to be displayed an equal distance apart from\n   * one another. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableCombing()\n   * ```\n   *\n   * In addition to calling this method, text fields must have a max length\n   * defined in order to be combed (see [[PDFTextField.setMaxLength]]).\n   *\n   * This method will also call the following three methods internally:\n   * * [[PDFTextField.disableMultiline]]\n   * * [[PDFTextField.disablePassword]]\n   * * [[PDFTextField.disableFileSelection]]\n   *\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   */\n  enableCombing() {\n    if (this.getMaxLength() === undefined) {\n      const msg = `PDFTextFields must have a max length in order to be combed`;\n      console.warn(msg);\n    }\n\n    this.markAsDirty();\n\n    this.disableMultiline();\n    this.disablePassword();\n    this.disableFileSelection();\n\n    this.acroField.setFlagTo(AcroTextFlags.Comb, true);\n  }\n\n  /**\n   * Turn off combing for this text field. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableCombing()\n   * ```\n   * See [[PDFTextField.isCombed]] and [[PDFTextField.enableCombing]] for more\n   * information about what combing is.\n   *\n   * This method will mark this text field as dirty. See\n   * [[PDFTextField.setText]] for more details about what this means.\n   */\n  disableCombing() {\n    this.markAsDirty();\n    this.acroField.setFlagTo(AcroTextFlags.Comb, false);\n  }\n\n  /**\n   * Returns `true` if this text field contains rich text. See\n   * [[PDFTextField.enableRichFormatting]] and\n   * [[PDFTextField.disableRichFormatting]]. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.isRichFormatted()) console.log('Rich formatting enabled')\n   * ```\n   * @returns Whether or not this field contains rich text.\n   */\n  isRichFormatted(): boolean {\n    return this.acroField.hasFlag(AcroTextFlags.RichText);\n  }\n\n  /**\n   * Indicate that this field contains XFA data - or rich text. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.enableRichFormatting()\n   * ```\n   * Note that `pdf-lib` does not support reading or writing rich text fields.\n   * Nor do most PDF readers and writers. Rich text fields are based on XFA\n   * (XML Forms Architecture). Relatively few PDFs use rich text fields or XFA.\n   * Unlike PDF itself, XFA is not an ISO standard. XFA has been deprecated in\n   * PDF 2.0:\n   * * https://en.wikipedia.org/wiki/XFA\n   * * http://blog.pdfshareforms.com/pdf-2-0-release-bid-farewell-xfa-forms/\n   */\n  enableRichFormatting() {\n    this.acroField.setFlagTo(AcroTextFlags.RichText, true);\n  }\n\n  /**\n   * Indicate that this is a standard text field that does not XFA data (rich\n   * text). For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * textField.disableRichFormatting()\n   * ```\n   */\n  disableRichFormatting() {\n    this.acroField.setFlagTo(AcroTextFlags.RichText, false);\n  }\n\n  /**\n   * Show this text field on the specified page. For example:\n   * ```js\n   * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const textField = form.createTextField('best.gundam')\n   * textField.setText('Exia')\n   *\n   * textField.addToPage(page, {\n   *   x: 50,\n   *   y: 75,\n   *   width: 200,\n   *   height: 100,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   *   font: ubuntuFont,\n   * })\n   * ```\n   * This will create a new widget for this text field.\n   * @param page The page to which this text field widget should be added.\n   * @param options The options to be used when adding this text field widget.\n   */\n  addToPage(page: PDFPage, options?: FieldAppearanceOptions) {\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    if (!options) options = {};\n\n    if (!('textColor' in options)) options.textColor = rgb(0, 0, 0);\n    if (!('backgroundColor' in options)) options.backgroundColor = rgb(1, 1, 1);\n    if (!('borderColor' in options)) options.borderColor = rgb(0, 0, 0);\n    if (!('borderWidth' in options)) options.borderWidth = 1;\n\n    // Create a widget for this text field\n    const widget = this.createWidget({\n      x: options.x ?? 0,\n      y: options.y ?? 0,\n      width: options.width ?? 200,\n      height: options.height ?? 50,\n      textColor: options.textColor,\n      backgroundColor: options.backgroundColor,\n      borderColor: options.borderColor,\n      borderWidth: options.borderWidth ?? 0,\n      rotate: options.rotate ?? degrees(0),\n      hidden: options.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    this.acroField.addWidget(widgetRef);\n\n    // Set appearance streams for widget\n    const font = options.font ?? this.doc.getForm().getDefaultFont();\n    this.updateWidgetAppearance(widget, font);\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if this text field has been marked as dirty, or if any of\n   * this text field's widgets do not have an appearance stream. For example:\n   * ```js\n   * const textField = form.getTextField('some.text.field')\n   * if (textField.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this text field needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    if (this.isDirty()) return true;\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const hasAppearances =\n        widget.getAppearances()?.normal instanceof PDFStream;\n      if (!hasAppearances) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this text field's widgets using\n   * the default appearance provider for text fields. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const textField = form.getTextField('some.text.field')\n   * textField.defaultUpdateAppearances(helvetica)\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   */\n  defaultUpdateAppearances(font: PDFFont) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    this.updateAppearances(font);\n  }\n\n  /**\n   * Update the appearance streams for each of this text field's widgets using\n   * the given appearance provider. If no `provider` is passed, the default\n   * appearance provider for text fields will be used. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const textField = form.getTextField('some.text.field')\n   * textField.updateAppearances(helvetica, (field, widget, font) => {\n   *   ...\n   *   return drawTextField(...)\n   * })\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFTextField>,\n  ) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      this.updateWidgetAppearance(widget, font, provider);\n    }\n    this.markAsClean();\n  }\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFTextField>,\n  ) {\n    const apProvider = provider ?? defaultTextFieldAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget, font));\n    this.updateWidgetAppearanceWithFont(widget, font, appearances);\n  }\n}\n","export enum StandardFonts {\n  Courier = 'Courier',\n  CourierBold = 'Courier-Bold',\n  CourierOblique = 'Courier-Oblique',\n  CourierBoldOblique = 'Courier-BoldOblique',\n  Helvetica = 'Helvetica',\n  HelveticaBold = 'Helvetica-Bold',\n  HelveticaOblique = 'Helvetica-Oblique',\n  HelveticaBoldOblique = 'Helvetica-BoldOblique',\n  TimesRoman = 'Times-Roman',\n  TimesRomanBold = 'Times-Bold',\n  TimesRomanItalic = 'Times-Italic',\n  TimesRomanBoldItalic = 'Times-BoldItalic',\n  Symbol = 'Symbol',\n  ZapfDingbats = 'ZapfDingbats',\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFField from 'src/api/form/PDFField';\nimport PDFButton from 'src/api/form/PDFButton';\nimport PDFCheckBox from 'src/api/form/PDFCheckBox';\nimport PDFDropdown from 'src/api/form/PDFDropdown';\nimport PDFOptionList from 'src/api/form/PDFOptionList';\nimport PDFRadioGroup from 'src/api/form/PDFRadioGroup';\nimport PDFSignature from 'src/api/form/PDFSignature';\nimport PDFTextField from 'src/api/form/PDFTextField';\nimport {\n  NoSuchFieldError,\n  UnexpectedFieldTypeError,\n  FieldAlreadyExistsError,\n  InvalidFieldNamePartError,\n} from 'src/api/errors';\nimport PDFFont from 'src/api/PDFFont';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport { rotateInPlace } from 'src/api/operations';\nimport {\n  drawObject,\n  popGraphicsState,\n  pushGraphicsState,\n  translate,\n} from 'src/api/operators';\nimport {\n  PDFAcroForm,\n  PDFAcroField,\n  PDFAcroCheckBox,\n  PDFAcroComboBox,\n  PDFAcroListBox,\n  PDFAcroRadioButton,\n  PDFAcroSignature,\n  PDFAcroText,\n  PDFAcroPushButton,\n  PDFAcroNonTerminal,\n  PDFDict,\n  PDFOperator,\n  PDFRef,\n  createPDFAcroFields,\n  PDFName,\n  PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, Cache, assertOrUndefined } from 'src/utils';\n\nexport interface FlattenOptions {\n  updateFieldAppearances: boolean;\n}\n\n/**\n * Represents the interactive form of a [[PDFDocument]].\n *\n * Interactive forms (sometimes called _AcroForms_) are collections of fields\n * designed to gather information from a user. A PDF document may contains any\n * number of fields that appear on various pages, all of which make up a single,\n * global interactive form spanning the entire document. This means that\n * instances of [[PDFDocument]] shall contain at most one [[PDFForm]].\n *\n * The fields of an interactive form are represented by [[PDFField]] instances.\n */\nexport default class PDFForm {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.getForm]] method, which will create an\n   * > instance of [[PDFForm]] for you.\n   *\n   * Create an instance of [[PDFForm]] from an existing acroForm and embedder\n   *\n   * @param acroForm The underlying `PDFAcroForm` for this form.\n   * @param doc The document to which the form will belong.\n   */\n  static of = (acroForm: PDFAcroForm, doc: PDFDocument) =>\n    new PDFForm(acroForm, doc);\n\n  /** The low-level PDFAcroForm wrapped by this form. */\n  readonly acroForm: PDFAcroForm;\n\n  /** The document to which this form belongs. */\n  readonly doc: PDFDocument;\n\n  private readonly dirtyFields: Set<PDFRef>;\n  private readonly defaultFontCache: Cache<PDFFont>;\n\n  private constructor(acroForm: PDFAcroForm, doc: PDFDocument) {\n    assertIs(acroForm, 'acroForm', [[PDFAcroForm, 'PDFAcroForm']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n    this.acroForm = acroForm;\n    this.doc = doc;\n\n    this.dirtyFields = new Set();\n    this.defaultFontCache = Cache.populatedBy(this.embedDefaultFont);\n  }\n\n  /**\n   * Returns `true` if this [[PDFForm]] has XFA data. Most PDFs with form\n   * fields do not use XFA as it is not widely supported by PDF readers.\n   *\n   * > `pdf-lib` does not support creation, modification, or reading of XFA\n   * > fields.\n   *\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * if (form.hasXFA()) console.log('PDF has XFA data')\n   * ```\n   * @returns Whether or not this form has XFA data.\n   */\n  hasXFA(): boolean {\n    return this.acroForm.dict.has(PDFName.of('XFA'));\n  }\n\n  /**\n   * Disconnect the XFA data from this [[PDFForm]] (if any exists). This will\n   * force readers to fallback to standard fields if the [[PDFDocument]]\n   * contains any. For example:\n   *\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * form.deleteXFA()\n   * ```\n   */\n  deleteXFA(): void {\n    this.acroForm.dict.delete(PDFName.of('XFA'));\n  }\n\n  /**\n   * Get all fields contained in this [[PDFForm]]. For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const fields = form.getFields()\n   * fields.forEach(field => {\n   *   const type = field.constructor.name\n   *   const name = field.getName()\n   *   console.log(`${type}: ${name}`)\n   * })\n   * ```\n   * @returns An array of all fields in this form.\n   */\n  getFields(): PDFField[] {\n    const allFields = this.acroForm.getAllFields();\n\n    const fields: PDFField[] = [];\n    for (let idx = 0, len = allFields.length; idx < len; idx++) {\n      const [acroField, ref] = allFields[idx];\n      const field = convertToPDFField(acroField, ref, this.doc);\n      if (field) fields.push(field);\n    }\n\n    return fields;\n  }\n\n  /**\n   * Get the field in this [[PDFForm]] with the given name. For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const field = form.getFieldMaybe('Page1.Foo.Bar[0]')\n   * if (field) console.log('Field exists!')\n   * ```\n   * @param name A fully qualified field name.\n   * @returns The field with the specified name, if one exists.\n   */\n  getFieldMaybe(name: string): PDFField | undefined {\n    assertIs(name, 'name', ['string']);\n    const fields = this.getFields();\n    for (let idx = 0, len = fields.length; idx < len; idx++) {\n      const field = fields[idx];\n      if (field.getName() === name) return field;\n    }\n    return undefined;\n  }\n\n  /**\n   * Get the field in this [[PDFForm]] with the given name. For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const field = form.getField('Page1.Foo.Bar[0]')\n   * ```\n   * If no field exists with the provided name, an error will be thrown.\n   * @param name A fully qualified field name.\n   * @returns The field with the specified name.\n   */\n  getField(name: string): PDFField {\n    assertIs(name, 'name', ['string']);\n    const field = this.getFieldMaybe(name);\n    if (field) return field;\n    throw new NoSuchFieldError(name);\n  }\n\n  /**\n   * Get the button field in this [[PDFForm]] with the given name. For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const button = form.getButton('Page1.Foo.Button[0]')\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a button.\n   * @param name A fully qualified button name.\n   * @returns The button with the specified name.\n   */\n  getButton(name: string): PDFButton {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFButton) return field;\n    throw new UnexpectedFieldTypeError(name, PDFButton, field);\n  }\n\n  /**\n   * Get the check box field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const checkBox = form.getCheckBox('Page1.Foo.CheckBox[0]')\n   * checkBox.check()\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a check box.\n   * @param name A fully qualified check box name.\n   * @returns The check box with the specified name.\n   */\n  getCheckBox(name: string): PDFCheckBox {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFCheckBox) return field;\n    throw new UnexpectedFieldTypeError(name, PDFCheckBox, field);\n  }\n\n  /**\n   * Get the dropdown field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const dropdown = form.getDropdown('Page1.Foo.Dropdown[0]')\n   * const options = dropdown.getOptions()\n   * dropdown.select(options[0])\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a dropdown.\n   * @param name A fully qualified dropdown name.\n   * @returns The dropdown with the specified name.\n   */\n  getDropdown(name: string): PDFDropdown {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFDropdown) return field;\n    throw new UnexpectedFieldTypeError(name, PDFDropdown, field);\n  }\n\n  /**\n   * Get the option list field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const optionList = form.getOptionList('Page1.Foo.OptionList[0]')\n   * const options = optionList.getOptions()\n   * optionList.select(options[0])\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not an option list.\n   * @param name A fully qualified option list name.\n   * @returns The option list with the specified name.\n   */\n  getOptionList(name: string): PDFOptionList {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFOptionList) return field;\n    throw new UnexpectedFieldTypeError(name, PDFOptionList, field);\n  }\n\n  /**\n   * Get the radio group field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const radioGroup = form.getRadioGroup('Page1.Foo.RadioGroup[0]')\n   * const options = radioGroup.getOptions()\n   * radioGroup.select(options[0])\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a radio group.\n   * @param name A fully qualified radio group name.\n   * @returns The radio group with the specified name.\n   */\n  getRadioGroup(name: string): PDFRadioGroup {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFRadioGroup) return field;\n    throw new UnexpectedFieldTypeError(name, PDFRadioGroup, field);\n  }\n\n  /**\n   * Get the signature field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const signature = form.getSignature('Page1.Foo.Signature[0]')\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a signature.\n   * @param name A fully qualified signature name.\n   * @returns The signature with the specified name.\n   */\n  getSignature(name: string): PDFSignature {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFSignature) return field;\n    throw new UnexpectedFieldTypeError(name, PDFSignature, field);\n  }\n\n  /**\n   * Get the text field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const textField = form.getTextField('Page1.Foo.TextField[0]')\n   * textField.setText('Are you designed to act or to be acted upon?')\n   * ```\n   * An error will be thrown if no field exists with the provided name, or if\n   * the field exists but is not a text field.\n   * @param name A fully qualified text field name.\n   * @returns The text field with the specified name.\n   */\n  getTextField(name: string): PDFTextField {\n    assertIs(name, 'name', ['string']);\n    const field = this.getField(name);\n    if (field instanceof PDFTextField) return field;\n    throw new UnexpectedFieldTypeError(name, PDFTextField, field);\n  }\n\n  /**\n   * Create a new button field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const button = form.createButton('cool.new.button')\n   *\n   * button.addToPage('Do Stuff', font, page)\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new button.\n   * @returns The new button field.\n   */\n  createButton(name: string): PDFButton {\n    assertIs(name, 'name', ['string']);\n\n    const nameParts = splitFieldName(name);\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const button = PDFAcroPushButton.create(this.doc.context);\n    button.setPartialName(nameParts.terminal);\n\n    addFieldToParent(parent, [button, button.ref], nameParts.terminal);\n\n    return PDFButton.of(button, button.ref, this.doc);\n  }\n\n  /**\n   * Create a new check box field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const checkBox = form.createCheckBox('cool.new.checkBox')\n   *\n   * checkBox.addToPage(page)\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new check box.\n   * @returns The new check box field.\n   */\n  createCheckBox(name: string): PDFCheckBox {\n    assertIs(name, 'name', ['string']);\n\n    const nameParts = splitFieldName(name);\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const checkBox = PDFAcroCheckBox.create(this.doc.context);\n    checkBox.setPartialName(nameParts.terminal);\n\n    addFieldToParent(parent, [checkBox, checkBox.ref], nameParts.terminal);\n\n    return PDFCheckBox.of(checkBox, checkBox.ref, this.doc);\n  }\n\n  /**\n   * Create a new dropdown field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const dropdown = form.createDropdown('cool.new.dropdown')\n   *\n   * dropdown.addToPage(font, page)\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new dropdown.\n   * @returns The new dropdown field.\n   */\n  createDropdown(name: string): PDFDropdown {\n    assertIs(name, 'name', ['string']);\n\n    const nameParts = splitFieldName(name);\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const comboBox = PDFAcroComboBox.create(this.doc.context);\n    comboBox.setPartialName(nameParts.terminal);\n\n    addFieldToParent(parent, [comboBox, comboBox.ref], nameParts.terminal);\n\n    return PDFDropdown.of(comboBox, comboBox.ref, this.doc);\n  }\n\n  /**\n   * Create a new option list field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const optionList = form.createOptionList('cool.new.optionList')\n   *\n   * optionList.addToPage(font, page)\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new option list.\n   * @returns The new option list field.\n   */\n  createOptionList(name: string): PDFOptionList {\n    assertIs(name, 'name', ['string']);\n\n    const nameParts = splitFieldName(name);\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const listBox = PDFAcroListBox.create(this.doc.context);\n    listBox.setPartialName(nameParts.terminal);\n\n    addFieldToParent(parent, [listBox, listBox.ref], nameParts.terminal);\n\n    return PDFOptionList.of(listBox, listBox.ref, this.doc);\n  }\n\n  /**\n   * Create a new radio group field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const radioGroup = form.createRadioGroup('cool.new.radioGroup')\n   *\n   * radioGroup.addOptionToPage('is-dog', page, { y: 0 })\n   * radioGroup.addOptionToPage('is-cat', page, { y: 75 })\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new radio group.\n   * @returns The new radio group field.\n   */\n  createRadioGroup(name: string): PDFRadioGroup {\n    assertIs(name, 'name', ['string']);\n    const nameParts = splitFieldName(name);\n\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const radioButton = PDFAcroRadioButton.create(this.doc.context);\n    radioButton.setPartialName(nameParts.terminal);\n\n    addFieldToParent(\n      parent,\n      [radioButton, radioButton.ref],\n      nameParts.terminal,\n    );\n\n    return PDFRadioGroup.of(radioButton, radioButton.ref, this.doc);\n  }\n\n  /**\n   * Create a new text field in this [[PDFForm]] with the given name.\n   * For example:\n   * ```js\n   * const font = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const textField = form.createTextField('cool.new.textField')\n   *\n   * textField.addToPage(font, page)\n   * ```\n   * An error will be thrown if a field already exists with the provided name.\n   * @param name The fully qualified name for the new radio group.\n   * @returns The new radio group field.\n   */\n  createTextField(name: string): PDFTextField {\n    assertIs(name, 'name', ['string']);\n    const nameParts = splitFieldName(name);\n\n    const parent = this.findOrCreateNonTerminals(nameParts.nonTerminal);\n\n    const text = PDFAcroText.create(this.doc.context);\n    text.setPartialName(nameParts.terminal);\n\n    addFieldToParent(parent, [text, text.ref], nameParts.terminal);\n\n    return PDFTextField.of(text, text.ref, this.doc);\n  }\n\n  /**\n   * Flatten all fields in this [[PDFForm]].\n   *\n   * Flattening a form field will take the current appearance for each of that\n   * field's widgets and make them part of their page's content stream. All form\n   * fields and annotations associated are then removed. Note that once a form\n   * has been flattened its fields can no longer be accessed or edited.\n   *\n   * This operation is often used after filling form fields to ensure a\n   * consistent appearance across different PDF readers and/or printers.\n   * Another common use case is to copy a template document with form fields\n   * into another document. In this scenario you would load the template\n   * document, fill its fields, flatten it, and then copy its pages into the\n   * recipient document - the filled fields will be copied over.\n   *\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm();\n   * form.flatten();\n   * ```\n   */\n  flatten(options: FlattenOptions = { updateFieldAppearances: true }) {\n    if (options.updateFieldAppearances) {\n      this.updateFieldAppearances();\n    }\n\n    const fields = this.getFields();\n\n    for (let i = 0, lenFields = fields.length; i < lenFields; i++) {\n      const field = fields[i];\n      const widgets = field.acroField.getWidgets();\n\n      for (let j = 0, lenWidgets = widgets.length; j < lenWidgets; j++) {\n        const widget = widgets[j];\n        const page = this.findWidgetPage(widget);\n        const widgetRef = this.findWidgetAppearanceRef(field, widget);\n\n        const xObjectKey = page.node.newXObject('FlatWidget', widgetRef);\n\n        const rectangle = widget.getRectangle();\n        const operators = [\n          pushGraphicsState(),\n          translate(rectangle.x, rectangle.y),\n          ...rotateInPlace({ ...rectangle, rotation: 0 }),\n          drawObject(xObjectKey),\n          popGraphicsState(),\n        ].filter(Boolean) as PDFOperator[];\n\n        page.pushOperators(...operators);\n      }\n\n      this.removeField(field);\n    }\n  }\n\n  /**\n   * Remove a field from this [[PDFForm]].\n   *\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm();\n   * const ageField = form.getFields().find(x => x.getName() === 'Age');\n   * form.removeField(ageField);\n   * ```\n   */\n  removeField(field: PDFField) {\n    const widgets = field.acroField.getWidgets();\n    const pages: Set<PDFPage> = new Set();\n\n    for (let i = 0, len = widgets.length; i < len; i++) {\n      const widget = widgets[i];\n      const widgetRef = this.findWidgetAppearanceRef(field, widget);\n\n      const page = this.findWidgetPage(widget);\n      pages.add(page);\n\n      page.node.removeAnnot(widgetRef);\n    }\n\n    pages.forEach((page) => page.node.removeAnnot(field.ref));\n    this.acroForm.removeField(field.acroField);\n    const fieldKids = field.acroField.normalizedEntries().Kids;\n    const kidsCount = fieldKids.size();\n    for (let childIndex = 0; childIndex < kidsCount; childIndex++) {\n      const child = fieldKids.get(childIndex);\n      if (child instanceof PDFRef) {\n        this.doc.context.delete(child);\n      }\n    }\n    this.doc.context.delete(field.ref);\n  }\n\n  /**\n   * Update the appearance streams for all widgets of all fields in this\n   * [[PDFForm]]. Appearance streams will only be created for a widget if it\n   * does not have any existing appearance streams, or the field's value has\n   * changed (e.g. by calling [[PDFTextField.setText]] or\n   * [[PDFDropdown.select]]).\n   *\n   * For example:\n   * ```js\n   * const courier = await pdfDoc.embedFont(StandardFonts.Courier)\n   * const form = pdfDoc.getForm()\n   * form.updateFieldAppearances(courier)\n   * ```\n   *\n   * **IMPORTANT:** The default value for the `font` parameter is\n   * [[StandardFonts.Helvetica]]. Note that this is a WinAnsi font. This means\n   * that encoding errors will be thrown if any fields contain text with\n   * characters outside the WinAnsi character set (the latin alphabet).\n   *\n   * Embedding a custom font and passing that as the `font`\n   * parameter allows you to generate appearance streams with non WinAnsi\n   * characters (assuming your custom font supports them).\n   *\n   * > **NOTE:** The [[PDFDocument.save]] method will call this method to\n   * > update appearances automatically if a form was accessed via the\n   * > [[PDFDocument.getForm]] method prior to saving.\n   *\n   * @param font Optionally, the font to use when creating new appearances.\n   */\n  updateFieldAppearances(font?: PDFFont) {\n    assertOrUndefined(font, 'font', [[PDFFont, 'PDFFont']]);\n\n    font = font ?? this.getDefaultFont();\n\n    const fields = this.getFields();\n\n    for (let idx = 0, len = fields.length; idx < len; idx++) {\n      const field = fields[idx];\n      if (field.needsAppearancesUpdate()) {\n        field.defaultUpdateAppearances(font);\n      }\n    }\n  }\n\n  /**\n   * Mark a field as dirty. This will cause its appearance streams to be\n   * updated by [[PDFForm.updateFieldAppearances]].\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const field = form.getField('foo.bar')\n   * form.markFieldAsDirty(field.ref)\n   * ```\n   * @param fieldRef The reference to the field that should be marked.\n   */\n  markFieldAsDirty(fieldRef: PDFRef) {\n    assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n    this.dirtyFields.add(fieldRef);\n  }\n\n  /**\n   * Mark a field as dirty. This will cause its appearance streams to not be\n   * updated by [[PDFForm.updateFieldAppearances]].\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const field = form.getField('foo.bar')\n   * form.markFieldAsClean(field.ref)\n   * ```\n   * @param fieldRef The reference to the field that should be marked.\n   */\n  markFieldAsClean(fieldRef: PDFRef) {\n    assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n    this.dirtyFields.delete(fieldRef);\n  }\n\n  /**\n   * Returns `true` is the specified field has been marked as dirty.\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const field = form.getField('foo.bar')\n   * if (form.fieldIsDirty(field.ref)) console.log('Field is dirty')\n   * ```\n   * @param fieldRef The reference to the field that should be checked.\n   * @returns Whether or not the specified field is dirty.\n   */\n  fieldIsDirty(fieldRef: PDFRef): boolean {\n    assertOrUndefined(fieldRef, 'fieldRef', [[PDFRef, 'PDFRef']]);\n    return this.dirtyFields.has(fieldRef);\n  }\n\n  getDefaultFont() {\n    return this.defaultFontCache.access();\n  }\n\n  private findWidgetPage(widget: PDFWidgetAnnotation): PDFPage {\n    const pageRef = widget.P();\n    let page = this.doc.getPages().find((x) => x.ref === pageRef);\n    if (page === undefined) {\n      const widgetRef = this.doc.context.getObjectRef(widget.dict);\n      if (widgetRef === undefined) {\n        throw new Error('Could not find PDFRef for PDFObject');\n      }\n\n      page = this.doc.findPageForAnnotationRef(widgetRef);\n\n      if (page === undefined) {\n        throw new Error(`Could not find page for PDFRef ${widgetRef}`);\n      }\n    }\n\n    return page;\n  }\n\n  private findWidgetAppearanceRef(\n    field: PDFField,\n    widget: PDFWidgetAnnotation,\n  ): PDFRef {\n    let refOrDict = widget.getNormalAppearance();\n\n    if (\n      refOrDict instanceof PDFDict &&\n      (field instanceof PDFCheckBox || field instanceof PDFRadioGroup)\n    ) {\n      const value = field.acroField.getValue();\n      const ref = refOrDict.get(value) ?? refOrDict.get(PDFName.of('Off'));\n\n      if (ref instanceof PDFRef) {\n        refOrDict = ref;\n      }\n    }\n\n    if (!(refOrDict instanceof PDFRef)) {\n      const name = field.getName();\n      throw new Error(`Failed to extract appearance ref for: ${name}`);\n    }\n\n    return refOrDict;\n  }\n\n  private findOrCreateNonTerminals(partialNames: string[]) {\n    let nonTerminal: [PDFAcroForm] | [PDFAcroNonTerminal, PDFRef] = [\n      this.acroForm,\n    ];\n    for (let idx = 0, len = partialNames.length; idx < len; idx++) {\n      const namePart = partialNames[idx];\n      if (!namePart) throw new InvalidFieldNamePartError(namePart);\n      const [parent, parentRef] = nonTerminal;\n      const res = this.findNonTerminal(namePart, parent);\n\n      if (res) {\n        nonTerminal = res;\n      } else {\n        const node = PDFAcroNonTerminal.create(this.doc.context);\n        node.setPartialName(namePart);\n        node.setParent(parentRef);\n        const nodeRef = this.doc.context.register(node.dict);\n        parent.addField(nodeRef);\n        nonTerminal = [node, nodeRef];\n      }\n    }\n    return nonTerminal;\n  }\n\n  private findNonTerminal(\n    partialName: string,\n    parent: PDFAcroForm | PDFAcroNonTerminal,\n  ): [PDFAcroNonTerminal, PDFRef] | undefined {\n    const fields =\n      parent instanceof PDFAcroForm\n        ? this.acroForm.getFields()\n        : createPDFAcroFields(parent.Kids());\n\n    for (let idx = 0, len = fields.length; idx < len; idx++) {\n      const [field, ref] = fields[idx];\n      if (field.getPartialName() === partialName) {\n        if (field instanceof PDFAcroNonTerminal) return [field, ref];\n        throw new FieldAlreadyExistsError(partialName);\n      }\n    }\n\n    return undefined;\n  }\n\n  private embedDefaultFont = (): PDFFont =>\n    this.doc.embedStandardFont(StandardFonts.Helvetica);\n}\n\nconst convertToPDFField = (\n  field: PDFAcroField,\n  ref: PDFRef,\n  doc: PDFDocument,\n): PDFField | undefined => {\n  if (field instanceof PDFAcroPushButton) return PDFButton.of(field, ref, doc);\n  if (field instanceof PDFAcroCheckBox) return PDFCheckBox.of(field, ref, doc);\n  if (field instanceof PDFAcroComboBox) return PDFDropdown.of(field, ref, doc);\n  if (field instanceof PDFAcroListBox) return PDFOptionList.of(field, ref, doc);\n  if (field instanceof PDFAcroText) return PDFTextField.of(field, ref, doc);\n  if (field instanceof PDFAcroRadioButton) {\n    return PDFRadioGroup.of(field, ref, doc);\n  }\n  if (field instanceof PDFAcroSignature) {\n    return PDFSignature.of(field, ref, doc);\n  }\n  return undefined;\n};\n\nconst splitFieldName = (fullyQualifiedName: string) => {\n  if (fullyQualifiedName.length === 0) {\n    throw new Error('PDF field names must not be empty strings');\n  }\n\n  const parts = fullyQualifiedName.split('.');\n\n  for (let idx = 0, len = parts.length; idx < len; idx++) {\n    if (parts[idx] === '') {\n      throw new Error(\n        `Periods in PDF field names must be separated by at least one character: \"${fullyQualifiedName}\"`,\n      );\n    }\n  }\n\n  if (parts.length === 1) return { nonTerminal: [], terminal: parts[0] };\n\n  return {\n    nonTerminal: parts.slice(0, parts.length - 1),\n    terminal: parts[parts.length - 1],\n  };\n};\n\nconst addFieldToParent = (\n  [parent, parentRef]: [PDFAcroForm] | [PDFAcroNonTerminal, PDFRef],\n  [field, fieldRef]: [PDFAcroField, PDFRef],\n  partialName: string,\n) => {\n  const entries = parent.normalizedEntries();\n  const fields = createPDFAcroFields(\n    'Kids' in entries ? entries.Kids : entries.Fields,\n  );\n  for (let idx = 0, len = fields.length; idx < len; idx++) {\n    if (fields[idx][0].getPartialName() === partialName) {\n      throw new FieldAlreadyExistsError(partialName);\n    }\n  }\n  parent.addField(fieldRef);\n  field.setParent(parentRef);\n};\n","import { EmbeddedFileOptions } from 'src/core/embedders/FileEmbedder';\nimport { TypeFeatures } from 'src/types/fontkit';\n\nexport enum ParseSpeeds {\n  Fastest = Infinity,\n  Fast = 1500,\n  Medium = 500,\n  Slow = 100,\n}\n\nexport interface AttachmentOptions extends EmbeddedFileOptions {}\n\nexport interface SaveOptions {\n  useObjectStreams?: boolean;\n  addDefaultPage?: boolean;\n  objectsPerTick?: number;\n  updateFieldAppearances?: boolean;\n}\n\nexport interface Base64SaveOptions extends SaveOptions {\n  dataUri?: boolean;\n}\n\nexport interface LoadOptions {\n  ignoreEncryption?: boolean;\n  parseSpeed?: ParseSpeeds | number;\n  throwOnInvalidObject?: boolean;\n  updateMetadata?: boolean;\n  capNumbers?: boolean;\n}\n\nexport interface CreateOptions {\n  updateMetadata?: boolean;\n}\n\nexport interface EmbedFontOptions {\n  subset?: boolean;\n  customName?: string;\n  features?: TypeFeatures;\n}\n\nexport interface SetTitleOptions {\n  showInWindowTitleBar: boolean;\n}\n","export const PageSizes = {\n  '4A0': [4767.87, 6740.79] as [number, number],\n  '2A0': [3370.39, 4767.87] as [number, number],\n  A0: [2383.94, 3370.39] as [number, number],\n  A1: [1683.78, 2383.94] as [number, number],\n  A2: [1190.55, 1683.78] as [number, number],\n  A3: [841.89, 1190.55] as [number, number],\n  A4: [595.28, 841.89] as [number, number],\n  A5: [419.53, 595.28] as [number, number],\n  A6: [297.64, 419.53] as [number, number],\n  A7: [209.76, 297.64] as [number, number],\n  A8: [147.4, 209.76] as [number, number],\n  A9: [104.88, 147.4] as [number, number],\n  A10: [73.7, 104.88] as [number, number],\n  B0: [2834.65, 4008.19] as [number, number],\n  B1: [2004.09, 2834.65] as [number, number],\n  B2: [1417.32, 2004.09] as [number, number],\n  B3: [1000.63, 1417.32] as [number, number],\n  B4: [708.66, 1000.63] as [number, number],\n  B5: [498.9, 708.66] as [number, number],\n  B6: [354.33, 498.9] as [number, number],\n  B7: [249.45, 354.33] as [number, number],\n  B8: [175.75, 249.45] as [number, number],\n  B9: [124.72, 175.75] as [number, number],\n  B10: [87.87, 124.72] as [number, number],\n  C0: [2599.37, 3676.54] as [number, number],\n  C1: [1836.85, 2599.37] as [number, number],\n  C2: [1298.27, 1836.85] as [number, number],\n  C3: [918.43, 1298.27] as [number, number],\n  C4: [649.13, 918.43] as [number, number],\n  C5: [459.21, 649.13] as [number, number],\n  C6: [323.15, 459.21] as [number, number],\n  C7: [229.61, 323.15] as [number, number],\n  C8: [161.57, 229.61] as [number, number],\n  C9: [113.39, 161.57] as [number, number],\n  C10: [79.37, 113.39] as [number, number],\n  RA0: [2437.8, 3458.27] as [number, number],\n  RA1: [1729.13, 2437.8] as [number, number],\n  RA2: [1218.9, 1729.13] as [number, number],\n  RA3: [864.57, 1218.9] as [number, number],\n  RA4: [609.45, 864.57] as [number, number],\n  SRA0: [2551.18, 3628.35] as [number, number],\n  SRA1: [1814.17, 2551.18] as [number, number],\n  SRA2: [1275.59, 1814.17] as [number, number],\n  SRA3: [907.09, 1275.59] as [number, number],\n  SRA4: [637.8, 907.09] as [number, number],\n  Executive: [521.86, 756.0] as [number, number],\n  Folio: [612.0, 936.0] as [number, number],\n  Legal: [612.0, 1008.0] as [number, number],\n  Letter: [612.0, 792.0] as [number, number],\n  Tabloid: [792.0, 1224.0] as [number, number],\n};\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport FileEmbedder from 'src/core/embedders/FileEmbedder';\nimport { PDFName, PDFArray, PDFDict, PDFHexString, PDFRef } from 'src/core';\n\n/**\n * Represents a file that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFEmbeddedFile implements Embeddable {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.attach]] method, which will create\n   * instances of [[PDFEmbeddedFile]] for you.\n   *\n   * Create an instance of [[PDFEmbeddedFile]] from an existing ref and embedder\n   *\n   * @param ref The unique reference for this file.\n   * @param doc The document to which the file will belong.\n   * @param embedder The embedder that will be used to embed the file.\n   */\n  static of = (ref: PDFRef, doc: PDFDocument, embedder: FileEmbedder) =>\n    new PDFEmbeddedFile(ref, doc, embedder);\n\n  /** The unique reference assigned to this embedded file within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this embedded file belongs. */\n  readonly doc: PDFDocument;\n\n  private alreadyEmbedded = false;\n  private readonly embedder: FileEmbedder;\n\n  private constructor(ref: PDFRef, doc: PDFDocument, embedder: FileEmbedder) {\n    this.ref = ref;\n    this.doc = doc;\n    this.embedder = embedder;\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n   * > automatically ensure all embeddable files get embedded.\n   *\n   * Embed this embeddable file in its document.\n   *\n   * @returns Resolves when the embedding is complete.\n   */\n  async embed(): Promise<void> {\n    if (!this.alreadyEmbedded) {\n      const ref = await this.embedder.embedIntoContext(\n        this.doc.context,\n        this.ref,\n      );\n\n      if (!this.doc.catalog.has(PDFName.of('Names'))) {\n        this.doc.catalog.set(PDFName.of('Names'), this.doc.context.obj({}));\n      }\n      const Names = this.doc.catalog.lookup(PDFName.of('Names'), PDFDict);\n\n      if (!Names.has(PDFName.of('EmbeddedFiles'))) {\n        Names.set(PDFName.of('EmbeddedFiles'), this.doc.context.obj({}));\n      }\n      const EmbeddedFiles = Names.lookup(PDFName.of('EmbeddedFiles'), PDFDict);\n\n      if (!EmbeddedFiles.has(PDFName.of('Names'))) {\n        EmbeddedFiles.set(PDFName.of('Names'), this.doc.context.obj([]));\n      }\n      const EFNames = EmbeddedFiles.lookup(PDFName.of('Names'), PDFArray);\n\n      EFNames.push(PDFHexString.fromText(this.embedder.fileName));\n      EFNames.push(ref);\n\n      /**\n       * The AF-Tag is needed to achieve PDF-A3 compliance for embedded files\n       *\n       * The following document outlines the uses cases of the associated files (AF) tag.\n       * See:\n       * https://www.pdfa.org/wp-content/uploads/2018/10/PDF20_AN002-AF.pdf\n       */\n\n      if (!this.doc.catalog.has(PDFName.of('AF'))) {\n        this.doc.catalog.set(PDFName.of('AF'), this.doc.context.obj([]));\n      }\n      const AF = this.doc.catalog.lookup(PDFName.of('AF'), PDFArray);\n      AF.push(ref);\n\n      this.alreadyEmbedded = true;\n    }\n  }\n}\n","import Embeddable from 'src/api/Embeddable';\nimport PDFDocument from 'src/api/PDFDocument';\nimport JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';\nimport { PDFName, PDFArray, PDFDict, PDFHexString, PDFRef } from 'src/core';\n\n/**\n * Represents JavaScript that has been embedded in a [[PDFDocument]].\n */\nexport default class PDFJavaScript implements Embeddable {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.addJavaScript]] method, which will\n   * create instances of [[PDFJavaScript]] for you.\n   *\n   * Create an instance of [[PDFJavaScript]] from an existing ref and script\n   *\n   * @param ref The unique reference for this script.\n   * @param doc The document to which the script will belong.\n   * @param embedder The embedder that will be used to embed the script.\n   */\n  static of = (ref: PDFRef, doc: PDFDocument, embedder: JavaScriptEmbedder) =>\n    new PDFJavaScript(ref, doc, embedder);\n\n  /** The unique reference assigned to this embedded script within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this embedded script belongs. */\n  readonly doc: PDFDocument;\n\n  private alreadyEmbedded = false;\n  private readonly embedder: JavaScriptEmbedder;\n\n  private constructor(\n    ref: PDFRef,\n    doc: PDFDocument,\n    embedder: JavaScriptEmbedder,\n  ) {\n    this.ref = ref;\n    this.doc = doc;\n    this.embedder = embedder;\n  }\n\n  /**\n   * > **NOTE:** You probably don't need to call this method directly. The\n   * > [[PDFDocument.save]] and [[PDFDocument.saveAsBase64]] methods will\n   * > automatically ensure all JavaScripts get embedded.\n   *\n   * Embed this JavaScript in its document.\n   *\n   * @returns Resolves when the embedding is complete.\n   */\n  async embed(): Promise<void> {\n    if (!this.alreadyEmbedded) {\n      const { catalog, context } = this.doc;\n\n      const ref = await this.embedder.embedIntoContext(\n        this.doc.context,\n        this.ref,\n      );\n\n      if (!catalog.has(PDFName.of('Names'))) {\n        catalog.set(PDFName.of('Names'), context.obj({}));\n      }\n      const Names = catalog.lookup(PDFName.of('Names'), PDFDict);\n\n      if (!Names.has(PDFName.of('JavaScript'))) {\n        Names.set(PDFName.of('JavaScript'), context.obj({}));\n      }\n      const Javascript = Names.lookup(PDFName.of('JavaScript'), PDFDict);\n\n      if (!Javascript.has(PDFName.of('Names'))) {\n        Javascript.set(PDFName.of('Names'), context.obj([]));\n      }\n      const JSNames = Javascript.lookup(PDFName.of('Names'), PDFArray);\n\n      JSNames.push(PDFHexString.fromText(this.embedder.scriptName));\n      JSNames.push(ref);\n\n      this.alreadyEmbedded = true;\n    }\n  }\n}\n","import PDFHexString from 'src/core/objects/PDFHexString';\nimport PDFContext from 'src/core/PDFContext';\nimport PDFRef from 'src/core/objects/PDFRef';\n\nclass JavaScriptEmbedder {\n  static for(script: string, scriptName: string) {\n    return new JavaScriptEmbedder(script, scriptName);\n  }\n\n  private readonly script: string;\n  readonly scriptName: string;\n\n  private constructor(script: string, scriptName: string) {\n    this.script = script;\n    this.scriptName = scriptName;\n  }\n\n  async embedIntoContext(context: PDFContext, ref?: PDFRef): Promise<PDFRef> {\n    const jsActionDict = context.obj({\n      Type: 'Action',\n      S: 'JavaScript',\n      JS: PDFHexString.fromText(this.script),\n    });\n\n    if (ref) {\n      context.assign(ref, jsActionDict);\n      return ref;\n    } else {\n      return context.register(jsActionDict);\n    }\n  }\n}\n\nexport default JavaScriptEmbedder;\n","import Embeddable from 'src/api/Embeddable';\nimport {\n  EncryptedPDFError,\n  FontkitNotRegisteredError,\n  ForeignPageError,\n  RemovePageFromEmptyDocumentError,\n} from 'src/api/errors';\nimport PDFEmbeddedPage from 'src/api/PDFEmbeddedPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFForm from 'src/api/form/PDFForm';\nimport { PageSizes } from 'src/api/sizes';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport {\n  CustomFontEmbedder,\n  CustomFontSubsetEmbedder,\n  JpegEmbedder,\n  PageBoundingBox,\n  PageEmbeddingMismatchedContextError,\n  PDFCatalog,\n  PDFContext,\n  PDFDict,\n  PDFHexString,\n  PDFName,\n  PDFObjectCopier,\n  PDFPageEmbedder,\n  PDFPageLeaf,\n  PDFPageTree,\n  PDFParser,\n  PDFStreamWriter,\n  PDFString,\n  PDFWriter,\n  PngEmbedder,\n  StandardFontEmbedder,\n  UnexpectedObjectTypeError,\n} from 'src/core';\nimport {\n  ParseSpeeds,\n  AttachmentOptions,\n  SaveOptions,\n  Base64SaveOptions,\n  LoadOptions,\n  CreateOptions,\n  EmbedFontOptions,\n  SetTitleOptions,\n} from 'src/api/PDFDocumentOptions';\nimport PDFObject from 'src/core/objects/PDFObject';\nimport PDFRef from 'src/core/objects/PDFRef';\nimport { Fontkit } from 'src/types/fontkit';\nimport { TransformationMatrix } from 'src/types/matrix';\nimport {\n  assertIs,\n  assertIsOneOfOrUndefined,\n  assertOrUndefined,\n  assertRange,\n  Cache,\n  canBeConvertedToUint8Array,\n  encodeToBase64,\n  isStandardFont,\n  pluckIndices,\n  range,\n  toUint8Array,\n} from 'src/utils';\nimport FileEmbedder, { AFRelationship } from 'src/core/embedders/FileEmbedder';\nimport PDFEmbeddedFile from 'src/api/PDFEmbeddedFile';\nimport PDFJavaScript from 'src/api/PDFJavaScript';\nimport JavaScriptEmbedder from 'src/core/embedders/JavaScriptEmbedder';\n\n/**\n * Represents a PDF document.\n */\nexport default class PDFDocument {\n  /**\n   * Load an existing [[PDFDocument]]. The input data can be provided in\n   * multiple formats:\n   *\n   * | Type          | Contents                                               |\n   * | ------------- | ------------------------------------------------------ |\n   * | `string`      | A base64 encoded string (or data URI) containing a PDF |\n   * | `Uint8Array`  | The raw bytes of a PDF                                 |\n   * | `ArrayBuffer` | The raw bytes of a PDF                                 |\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument } from 'pdf-lib'\n   *\n   * // pdf=string\n   * const base64 =\n   *  'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +\n   *  'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +\n   *  '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +\n   *  'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +\n   *  'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +\n   *  'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +\n   *  '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +\n   *  'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +\n   *  'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +\n   *  'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +\n   *  'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +\n   *  '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +\n   *  'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +\n   *  'FydHhyZWYKNTEwCiUlRU9G'\n   *\n   * const dataUri = 'data:application/pdf;base64,' + base64\n   *\n   * const pdfDoc1 = await PDFDocument.load(base64)\n   * const pdfDoc2 = await PDFDocument.load(dataUri)\n   *\n   * // pdf=Uint8Array\n   * import fs from 'fs'\n   * const uint8Array = fs.readFileSync('with_update_sections.pdf')\n   * const pdfDoc3 = await PDFDocument.load(uint8Array)\n   *\n   * // pdf=ArrayBuffer\n   * const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'\n   * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n   * const pdfDoc4 = await PDFDocument.load(arrayBuffer)\n   *\n   * ```\n   *\n   * @param pdf The input data containing a PDF document.\n   * @param options The options to be used when loading the document.\n   * @returns Resolves with a document loaded from the input.\n   */\n  static async load(\n    pdf: string | Uint8Array | ArrayBuffer,\n    options: LoadOptions = {},\n  ) {\n    const {\n      ignoreEncryption = false,\n      parseSpeed = ParseSpeeds.Slow,\n      throwOnInvalidObject = false,\n      updateMetadata = true,\n      capNumbers = false,\n    } = options;\n\n    assertIs(pdf, 'pdf', ['string', Uint8Array, ArrayBuffer]);\n    assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n    assertIs(parseSpeed, 'parseSpeed', ['number']);\n    assertIs(throwOnInvalidObject, 'throwOnInvalidObject', ['boolean']);\n\n    const bytes = toUint8Array(pdf);\n    const context = await PDFParser.forBytesWithOptions(\n      bytes,\n      parseSpeed,\n      throwOnInvalidObject,\n      capNumbers,\n    ).parseDocument();\n    return new PDFDocument(context, ignoreEncryption, updateMetadata);\n  }\n\n  /**\n   * Create a new [[PDFDocument]].\n   * @returns Resolves with the newly created document.\n   */\n  static async create(options: CreateOptions = {}) {\n    const { updateMetadata = true } = options;\n\n    const context = PDFContext.create();\n    const pageTree = PDFPageTree.withContext(context);\n    const pageTreeRef = context.register(pageTree);\n    const catalog = PDFCatalog.withContextAndPages(context, pageTreeRef);\n    context.trailerInfo.Root = context.register(catalog);\n\n    return new PDFDocument(context, false, updateMetadata);\n  }\n\n  /** The low-level context of this document. */\n  readonly context: PDFContext;\n\n  /** The catalog of this document. */\n  readonly catalog: PDFCatalog;\n\n  /** Whether or not this document is encrypted. */\n  readonly isEncrypted: boolean;\n\n  /** The default word breaks used in PDFPage.drawText */\n  defaultWordBreaks: string[] = [' '];\n\n  private fontkit?: Fontkit;\n  private pageCount: number | undefined;\n  private readonly pageCache: Cache<PDFPage[]>;\n  private readonly pageMap: Map<PDFPageLeaf, PDFPage>;\n  private readonly formCache: Cache<PDFForm>;\n  private readonly fonts: PDFFont[];\n  private readonly images: PDFImage[];\n  private readonly embeddedPages: PDFEmbeddedPage[];\n  private readonly embeddedFiles: PDFEmbeddedFile[];\n  private readonly javaScripts: PDFJavaScript[];\n\n  private constructor(\n    context: PDFContext,\n    ignoreEncryption: boolean,\n    updateMetadata: boolean,\n  ) {\n    assertIs(context, 'context', [[PDFContext, 'PDFContext']]);\n    assertIs(ignoreEncryption, 'ignoreEncryption', ['boolean']);\n\n    this.context = context;\n    this.catalog = context.lookup(context.trailerInfo.Root) as PDFCatalog;\n    this.isEncrypted = !!context.lookup(context.trailerInfo.Encrypt);\n\n    this.pageCache = Cache.populatedBy(this.computePages);\n    this.pageMap = new Map();\n    this.formCache = Cache.populatedBy(this.getOrCreateForm);\n    this.fonts = [];\n    this.images = [];\n    this.embeddedPages = [];\n    this.embeddedFiles = [];\n    this.javaScripts = [];\n\n    if (!ignoreEncryption && this.isEncrypted) throw new EncryptedPDFError();\n\n    if (updateMetadata) this.updateInfoDict();\n  }\n\n  /**\n   * Register a fontkit instance. This must be done before custom fonts can\n   * be embedded. See [here](https://github.com/Hopding/pdf-lib/tree/master#fontkit-installation)\n   * for instructions on how to install and register a fontkit instance.\n   *\n   * > You do **not** need to call this method to embed standard fonts.\n   *\n   * For example:\n   * ```js\n   * import { PDFDocument } from 'pdf-lib'\n   * import fontkit from '@pdf-lib/fontkit'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * pdfDoc.registerFontkit(fontkit)\n   * ```\n   *\n   * @param fontkit The fontkit instance to be registered.\n   */\n  registerFontkit(fontkit: Fontkit): void {\n    this.fontkit = fontkit;\n  }\n\n  /**\n   * Get the [[PDFForm]] containing all interactive fields for this document.\n   * For example:\n   * ```js\n   * const form = pdfDoc.getForm()\n   * const fields = form.getFields()\n   * fields.forEach(field => {\n   *   const type = field.constructor.name\n   *   const name = field.getName()\n   *   console.log(`${type}: ${name}`)\n   * })\n   * ```\n   * @returns The form for this document.\n   */\n  getForm(): PDFForm {\n    const form = this.formCache.access();\n    if (form.hasXFA()) {\n      console.warn(\n        'Removing XFA form data as pdf-lib does not support reading or writing XFA',\n      );\n      form.deleteXFA();\n    }\n    return form;\n  }\n\n  /**\n   * Get this document's title metadata. The title appears in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const title = pdfDoc.getTitle()\n   * ```\n   * @returns A string containing the title of this document, if it has one.\n   */\n  getTitle(): string | undefined {\n    const title = this.getInfoDict().lookup(PDFName.Title);\n    if (!title) return undefined;\n    assertIsLiteralOrHexString(title);\n    return title.decodeText();\n  }\n\n  /**\n   * Get this document's author metadata. The author appears in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const author = pdfDoc.getAuthor()\n   * ```\n   * @returns A string containing the author of this document, if it has one.\n   */\n  getAuthor(): string | undefined {\n    const author = this.getInfoDict().lookup(PDFName.Author);\n    if (!author) return undefined;\n    assertIsLiteralOrHexString(author);\n    return author.decodeText();\n  }\n\n  /**\n   * Get this document's subject metadata. The subject appears in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const subject = pdfDoc.getSubject()\n   * ```\n   * @returns A string containing the subject of this document, if it has one.\n   */\n  getSubject(): string | undefined {\n    const subject = this.getInfoDict().lookup(PDFName.Subject);\n    if (!subject) return undefined;\n    assertIsLiteralOrHexString(subject);\n    return subject.decodeText();\n  }\n\n  /**\n   * Get this document's keywords metadata. The keywords appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const keywords = pdfDoc.getKeywords()\n   * ```\n   * @returns A string containing the keywords of this document, if it has any.\n   */\n  getKeywords(): string | undefined {\n    const keywords = this.getInfoDict().lookup(PDFName.Keywords);\n    if (!keywords) return undefined;\n    assertIsLiteralOrHexString(keywords);\n    return keywords.decodeText();\n  }\n\n  /**\n   * Get this document's creator metadata. The creator appears in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const creator = pdfDoc.getCreator()\n   * ```\n   * @returns A string containing the creator of this document, if it has one.\n   */\n  getCreator(): string | undefined {\n    const creator = this.getInfoDict().lookup(PDFName.Creator);\n    if (!creator) return undefined;\n    assertIsLiteralOrHexString(creator);\n    return creator.decodeText();\n  }\n\n  /**\n   * Get this document's producer metadata. The producer appears in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const producer = pdfDoc.getProducer()\n   * ```\n   * @returns A string containing the producer of this document, if it has one.\n   */\n  getProducer(): string | undefined {\n    const producer = this.getInfoDict().lookup(PDFName.Producer);\n    if (!producer) return undefined;\n    assertIsLiteralOrHexString(producer);\n    return producer.decodeText();\n  }\n\n  /**\n   * Get this document's creation date metadata. The creation date appears in\n   * the \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * const creationDate = pdfDoc.getCreationDate()\n   * ```\n   * @returns A Date containing the creation date of this document,\n   *          if it has one.\n   */\n  getCreationDate(): Date | undefined {\n    const creationDate = this.getInfoDict().lookup(PDFName.CreationDate);\n    if (!creationDate) return undefined;\n    assertIsLiteralOrHexString(creationDate);\n    return creationDate.decodeDate();\n  }\n\n  /**\n   * Get this document's modification date metadata. The modification date\n   * appears in the \"Document Properties\" section of most PDF readers.\n   * For example:\n   * ```js\n   * const modification = pdfDoc.getModificationDate()\n   * ```\n   * @returns A Date containing the modification date of this document,\n   *          if it has one.\n   */\n  getModificationDate(): Date | undefined {\n    const modificationDate = this.getInfoDict().lookup(PDFName.ModDate);\n    if (!modificationDate) return undefined;\n    assertIsLiteralOrHexString(modificationDate);\n    return modificationDate.decodeDate();\n  }\n\n  /**\n   * Set this document's title metadata. The title will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setTitle('🥚 The Life of an Egg 🍳')\n   * ```\n   *\n   * To display the title in the window's title bar, set the\n   * `showInWindowTitleBar` option to `true` (works for _most_ PDF readers).\n   * For example:\n   * ```js\n   * pdfDoc.setTitle('🥚 The Life of an Egg 🍳', { showInWindowTitleBar: true })\n   * ```\n   *\n   * @param title The title of this document.\n   * @param options The options to be used when setting the title.\n   */\n  setTitle(title: string, options?: SetTitleOptions): void {\n    assertIs(title, 'title', ['string']);\n    const key = PDFName.of('Title');\n    this.getInfoDict().set(key, PDFHexString.fromText(title));\n\n    // Indicate that readers should display the title rather than the filename\n    if (options?.showInWindowTitleBar) {\n      const prefs = this.catalog.getOrCreateViewerPreferences();\n      prefs.setDisplayDocTitle(true);\n    }\n  }\n\n  /**\n   * Set this document's author metadata. The author will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setAuthor('Humpty Dumpty')\n   * ```\n   * @param author The author of this document.\n   */\n  setAuthor(author: string): void {\n    assertIs(author, 'author', ['string']);\n    const key = PDFName.of('Author');\n    this.getInfoDict().set(key, PDFHexString.fromText(author));\n  }\n\n  /**\n   * Set this document's subject metadata. The subject will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setSubject('📘 An Epic Tale of Woe 📖')\n   * ```\n   * @param subject The subject of this document.\n   */\n  setSubject(subject: string): void {\n    assertIs(subject, 'author', ['string']);\n    const key = PDFName.of('Subject');\n    this.getInfoDict().set(key, PDFHexString.fromText(subject));\n  }\n\n  /**\n   * Set this document's keyword metadata. These keywords will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setKeywords(['eggs', 'wall', 'fall', 'king', 'horses', 'men'])\n   * ```\n   * @param keywords An array of keywords associated with this document.\n   */\n  setKeywords(keywords: string[]): void {\n    assertIs(keywords, 'keywords', [Array]);\n    const key = PDFName.of('Keywords');\n    this.getInfoDict().set(key, PDFHexString.fromText(keywords.join(' ')));\n  }\n\n  /**\n   * Set this document's creator metadata. The creator will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setCreator('PDF App 9000 🤖')\n   * ```\n   * @param creator The creator of this document.\n   */\n  setCreator(creator: string): void {\n    assertIs(creator, 'creator', ['string']);\n    const key = PDFName.of('Creator');\n    this.getInfoDict().set(key, PDFHexString.fromText(creator));\n  }\n\n  /**\n   * Set this document's producer metadata. The producer will appear in the\n   * \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setProducer('PDF App 9000 🤖')\n   * ```\n   * @param producer The producer of this document.\n   */\n  setProducer(producer: string): void {\n    assertIs(producer, 'creator', ['string']);\n    const key = PDFName.of('Producer');\n    this.getInfoDict().set(key, PDFHexString.fromText(producer));\n  }\n\n  /**\n   * Set this document's language metadata. The language will appear in the\n   * \"Document Properties\" section of some PDF readers. For example:\n   * ```js\n   * pdfDoc.setLanguage('en-us')\n   * ```\n   *\n   * @param language An RFC 3066 _Language-Tag_ denoting the language of this\n   *                 document, or an empty string if the language is unknown.\n   */\n  setLanguage(language: string): void {\n    assertIs(language, 'language', ['string']);\n    const key = PDFName.of('Lang');\n    this.catalog.set(key, PDFString.of(language));\n  }\n\n  /**\n   * Set this document's creation date metadata. The creation date will appear\n   * in the \"Document Properties\" section of most PDF readers. For example:\n   * ```js\n   * pdfDoc.setCreationDate(new Date())\n   * ```\n   * @param creationDate The date this document was created.\n   */\n  setCreationDate(creationDate: Date): void {\n    assertIs(creationDate, 'creationDate', [[Date, 'Date']]);\n    const key = PDFName.of('CreationDate');\n    this.getInfoDict().set(key, PDFString.fromDate(creationDate));\n  }\n\n  /**\n   * Set this document's modification date metadata. The modification date will\n   * appear in the \"Document Properties\" section of most PDF readers. For\n   * example:\n   * ```js\n   * pdfDoc.setModificationDate(new Date())\n   * ```\n   * @param modificationDate The date this document was last modified.\n   */\n  setModificationDate(modificationDate: Date): void {\n    assertIs(modificationDate, 'modificationDate', [[Date, 'Date']]);\n    const key = PDFName.of('ModDate');\n    this.getInfoDict().set(key, PDFString.fromDate(modificationDate));\n  }\n\n  /**\n   * Get the number of pages contained in this document. For example:\n   * ```js\n   * const totalPages = pdfDoc.getPageCount()\n   * ```\n   * @returns The number of pages in this document.\n   */\n  getPageCount(): number {\n    if (this.pageCount === undefined) this.pageCount = this.getPages().length;\n    return this.pageCount;\n  }\n\n  /**\n   * Get an array of all the pages contained in this document. The pages are\n   * stored in the array in the same order that they are rendered in the\n   * document. For example:\n   * ```js\n   * const pages = pdfDoc.getPages()\n   * pages[0]   // The first page of the document\n   * pages[2]   // The third page of the document\n   * pages[197] // The 198th page of the document\n   * ```\n   * @returns An array of all the pages contained in this document.\n   */\n  getPages(): PDFPage[] {\n    return this.pageCache.access();\n  }\n\n  /**\n   * Get the page rendered at a particular `index` of the document. For example:\n   * ```js\n   * pdfDoc.getPage(0)   // The first page of the document\n   * pdfDoc.getPage(2)   // The third page of the document\n   * pdfDoc.getPage(197) // The 198th page of the document\n   * ```\n   * @returns The [[PDFPage]] rendered at the given `index` of the document.\n   */\n  getPage(index: number): PDFPage {\n    const pages = this.getPages();\n    assertRange(index, 'index', 0, pages.length - 1);\n    return pages[index];\n  }\n\n  /**\n   * Get an array of indices for all the pages contained in this document. The\n   * array will contain a range of integers from\n   * `0..pdfDoc.getPageCount() - 1`. For example:\n   * ```js\n   * const pdfDoc = await PDFDocument.create()\n   * pdfDoc.addPage()\n   * pdfDoc.addPage()\n   * pdfDoc.addPage()\n   *\n   * const indices = pdfDoc.getPageIndices()\n   * indices // => [0, 1, 2]\n   * ```\n   * @returns An array of indices for all pages contained in this document.\n   */\n  getPageIndices(): number[] {\n    return range(0, this.getPageCount());\n  }\n\n  /**\n   * Remove the page at a given index from this document. For example:\n   * ```js\n   * pdfDoc.removePage(0)   // Remove the first page of the document\n   * pdfDoc.removePage(2)   // Remove the third page of the document\n   * pdfDoc.removePage(197) // Remove the 198th page of the document\n   * ```\n   * Once a page has been removed, it will no longer be rendered at that index\n   * in the document.\n   * @param index The index of the page to be removed.\n   */\n  removePage(index: number): void {\n    const pageCount = this.getPageCount();\n    if (this.pageCount === 0) throw new RemovePageFromEmptyDocumentError();\n    assertRange(index, 'index', 0, pageCount - 1);\n    this.catalog.removeLeafNode(index);\n    this.pageCount = pageCount - 1;\n  }\n\n  /**\n   * Add a page to the end of this document. This method accepts three\n   * different value types for the `page` parameter:\n   *\n   * | Type               | Behavior                                                                            |\n   * | ------------------ | ----------------------------------------------------------------------------------- |\n   * | `undefined`        | Create a new page and add it to the end of this document                            |\n   * | `[number, number]` | Create a new page with the given dimensions and add it to the end of this document  |\n   * | `PDFPage`          | Add the existing page to the end of this document                                   |\n   *\n   * For example:\n   * ```js\n   * // page=undefined\n   * const newPage = pdfDoc.addPage()\n   *\n   * // page=[number, number]\n   * import { PageSizes } from 'pdf-lib'\n   * const newPage1 = pdfDoc.addPage(PageSizes.A7)\n   * const newPage2 = pdfDoc.addPage(PageSizes.Letter)\n   * const newPage3 = pdfDoc.addPage([500, 750])\n   *\n   * // page=PDFPage\n   * const pdfDoc1 = await PDFDocument.create()\n   * const pdfDoc2 = await PDFDocument.load(...)\n   * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n   * pdfDoc1.addPage(existingPage)\n   * ```\n   *\n   * @param page Optionally, the desired dimensions or existing page.\n   * @returns The newly created (or existing) page.\n   */\n  addPage(page?: PDFPage | [number, number]): PDFPage {\n    assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n    return this.insertPage(this.getPageCount(), page);\n  }\n\n  /**\n   * Insert a page at a given index within this document. This method accepts\n   * three different value types for the `page` parameter:\n   *\n   * | Type               | Behavior                                                                       |\n   * | ------------------ | ------------------------------------------------------------------------------ |\n   * | `undefined`        | Create a new page and insert it into this document                             |\n   * | `[number, number]` | Create a new page with the given dimensions and insert it into this document   |\n   * | `PDFPage`          | Insert the existing page into this document                                    |\n   *\n   * For example:\n   * ```js\n   * // page=undefined\n   * const newPage = pdfDoc.insertPage(2)\n   *\n   * // page=[number, number]\n   * import { PageSizes } from 'pdf-lib'\n   * const newPage1 = pdfDoc.insertPage(2, PageSizes.A7)\n   * const newPage2 = pdfDoc.insertPage(0, PageSizes.Letter)\n   * const newPage3 = pdfDoc.insertPage(198, [500, 750])\n   *\n   * // page=PDFPage\n   * const pdfDoc1 = await PDFDocument.create()\n   * const pdfDoc2 = await PDFDocument.load(...)\n   * const [existingPage] = await pdfDoc1.copyPages(pdfDoc2, [0])\n   * pdfDoc1.insertPage(0, existingPage)\n   * ```\n   *\n   * @param index The index at which the page should be inserted (zero-based).\n   * @param page Optionally, the desired dimensions or existing page.\n   * @returns The newly created (or existing) page.\n   */\n  insertPage(index: number, page?: PDFPage | [number, number]): PDFPage {\n    const pageCount = this.getPageCount();\n    assertRange(index, 'index', 0, pageCount);\n    assertIs(page, 'page', ['undefined', [PDFPage, 'PDFPage'], Array]);\n    if (!page || Array.isArray(page)) {\n      const dims = Array.isArray(page) ? page : PageSizes.A4;\n      page = PDFPage.create(this);\n      page.setSize(...dims);\n    } else if (page.doc !== this) {\n      throw new ForeignPageError();\n    }\n\n    const parentRef = this.catalog.insertLeafNode(page.ref, index);\n    page.node.setParent(parentRef);\n\n    this.pageMap.set(page.node, page);\n    this.pageCache.invalidate();\n\n    this.pageCount = pageCount + 1;\n\n    return page;\n  }\n\n  /**\n   * Copy pages from a source document into this document. Allows pages to be\n   * copied between different [[PDFDocument]] instances. For example:\n   * ```js\n   * const pdfDoc = await PDFDocument.create()\n   * const srcDoc = await PDFDocument.load(...)\n   *\n   * const copiedPages = await pdfDoc.copyPages(srcDoc, [0, 3, 89])\n   * const [firstPage, fourthPage, ninetiethPage] = copiedPages;\n   *\n   * pdfDoc.addPage(fourthPage)\n   * pdfDoc.insertPage(0, ninetiethPage)\n   * pdfDoc.addPage(firstPage)\n   * ```\n   * @param srcDoc The document from which pages should be copied.\n   * @param indices The indices of the pages that should be copied.\n   * @returns Resolves with an array of pages copied into this document.\n   */\n  async copyPages(srcDoc: PDFDocument, indices: number[]): Promise<PDFPage[]> {\n    assertIs(srcDoc, 'srcDoc', [[PDFDocument, 'PDFDocument']]);\n    assertIs(indices, 'indices', [Array]);\n    await srcDoc.flush();\n    const copier = PDFObjectCopier.for(srcDoc.context, this.context);\n    const srcPages = srcDoc.getPages();\n    const copiedPages: PDFPage[] = new Array(indices.length);\n    for (let idx = 0, len = indices.length; idx < len; idx++) {\n      const srcPage = srcPages[indices[idx]];\n      const copiedPage = copier.copy(srcPage.node);\n      const ref = this.context.register(copiedPage);\n      copiedPages[idx] = PDFPage.of(copiedPage, ref, this);\n    }\n    return copiedPages;\n  }\n\n  /**\n   * Get a copy of this document.\n   *\n   * For example:\n   * ```js\n   * const srcDoc = await PDFDocument.load(...)\n   * const pdfDoc = await srcDoc.copy()\n   * ```\n   *\n   * > **NOTE:**  This method won't copy all information over to the new\n   * > document (acroforms, outlines, etc...).\n   *\n   * @returns Resolves with a copy this document.\n   */\n  async copy(): Promise<PDFDocument> {\n    const pdfCopy = await PDFDocument.create();\n    const contentPages = await pdfCopy.copyPages(this, this.getPageIndices());\n\n    for (let idx = 0, len = contentPages.length; idx < len; idx++) {\n      pdfCopy.addPage(contentPages[idx]);\n    }\n\n    if (this.getAuthor() !== undefined) {\n      pdfCopy.setAuthor(this.getAuthor()!);\n    }\n    if (this.getCreationDate() !== undefined) {\n      pdfCopy.setCreationDate(this.getCreationDate()!);\n    }\n    if (this.getCreator() !== undefined) {\n      pdfCopy.setCreator(this.getCreator()!);\n    }\n    if (this.getModificationDate() !== undefined) {\n      pdfCopy.setModificationDate(this.getModificationDate()!);\n    }\n    if (this.getProducer() !== undefined) {\n      pdfCopy.setProducer(this.getProducer()!);\n    }\n    if (this.getSubject() !== undefined) {\n      pdfCopy.setSubject(this.getSubject()!);\n    }\n    if (this.getTitle() !== undefined) {\n      pdfCopy.setTitle(this.getTitle()!);\n    }\n    pdfCopy.defaultWordBreaks = this.defaultWordBreaks;\n\n    return pdfCopy;\n  }\n\n  /**\n   * Add JavaScript to this document. The supplied `script` is executed when the\n   * document is opened. The `script` can be used to perform some operation\n   * when the document is opened (e.g. logging to the console), or it can be\n   * used to define a function that can be referenced later in a JavaScript\n   * action. For example:\n   * ```js\n   * // Show \"Hello World!\" in the console when the PDF is opened\n   * pdfDoc.addJavaScript(\n   *   'main',\n   *   'console.show(); console.println(\"Hello World!\");'\n   * );\n   *\n   * // Define a function named \"foo\" that can be called in JavaScript Actions\n   * pdfDoc.addJavaScript(\n   *   'foo',\n   *   'function foo() { return \"foo\"; }'\n   * );\n   * ```\n   * See the [JavaScript for Acrobat API Reference](https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf)\n   * for details.\n   * @param name The name of the script. Must be unique per document.\n   * @param script The JavaScript to execute.\n   */\n  addJavaScript(name: string, script: string) {\n    assertIs(name, 'name', ['string']);\n    assertIs(script, 'script', ['string']);\n\n    const embedder = JavaScriptEmbedder.for(script, name);\n\n    const ref = this.context.nextRef();\n    const javaScript = PDFJavaScript.of(ref, this, embedder);\n    this.javaScripts.push(javaScript);\n  }\n\n  /**\n   * Add an attachment to this document. Attachments are visible in the\n   * \"Attachments\" panel of Adobe Acrobat and some other PDF readers. Any\n   * type of file can be added as an attachment. This includes, but is not\n   * limited to, `.png`, `.jpg`, `.pdf`, `.csv`, `.docx`, and `.xlsx` files.\n   *\n   * The input data can be provided in multiple formats:\n   *\n   * | Type          | Contents                                                       |\n   * | ------------- | -------------------------------------------------------------- |\n   * | `string`      | A base64 encoded string (or data URI) containing an attachment |\n   * | `Uint8Array`  | The raw bytes of an attachment                                 |\n   * | `ArrayBuffer` | The raw bytes of an attachment                                 |\n   *\n   * For example:\n   * ```js\n   * // attachment=string\n   * await pdfDoc.attach('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...', 'cat_riding_unicorn.jpg', {\n   *   mimeType: 'image/jpeg',\n   *   description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n   *   creationDate: new Date('2019/12/01'),\n   *   modificationDate: new Date('2020/04/19'),\n   * })\n   * await pdfDoc.attach('data:image/jpeg;base64,/9j/4AAQ...', 'cat_riding_unicorn.jpg', {\n   *   mimeType: 'image/jpeg',\n   *   description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n   *   creationDate: new Date('2019/12/01'),\n   *   modificationDate: new Date('2020/04/19'),\n   * })\n   *\n   * // attachment=Uint8Array\n   * import fs from 'fs'\n   * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n   * await pdfDoc.attach(uint8Array, 'cat_riding_unicorn.jpg', {\n   *   mimeType: 'image/jpeg',\n   *   description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n   *   creationDate: new Date('2019/12/01'),\n   *   modificationDate: new Date('2020/04/19'),\n   * })\n   *\n   * // attachment=ArrayBuffer\n   * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n   * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n   * await pdfDoc.attach(arrayBuffer, 'cat_riding_unicorn.jpg', {\n   *   mimeType: 'image/jpeg',\n   *   description: 'Cool cat riding a unicorn! 🦄🐈🕶️',\n   *   creationDate: new Date('2019/12/01'),\n   *   modificationDate: new Date('2020/04/19'),\n   * })\n   * ```\n   *\n   * @param attachment The input data containing the file to be attached.\n   * @param name The name of the file to be attached.\n   * @returns Resolves when the attachment is complete.\n   */\n  async attach(\n    attachment: string | Uint8Array | ArrayBuffer,\n    name: string,\n    options: AttachmentOptions = {},\n  ): Promise<void> {\n    assertIs(attachment, 'attachment', ['string', Uint8Array, ArrayBuffer]);\n    assertIs(name, 'name', ['string']);\n    assertOrUndefined(options.mimeType, 'mimeType', ['string']);\n    assertOrUndefined(options.description, 'description', ['string']);\n    assertOrUndefined(options.creationDate, 'options.creationDate', [Date]);\n    assertOrUndefined(options.modificationDate, 'options.modificationDate', [\n      Date,\n    ]);\n    assertIsOneOfOrUndefined(\n      options.afRelationship,\n      'options.afRelationship',\n      AFRelationship,\n    );\n\n    const bytes = toUint8Array(attachment);\n    const embedder = FileEmbedder.for(bytes, name, options);\n\n    const ref = this.context.nextRef();\n    const embeddedFile = PDFEmbeddedFile.of(ref, this, embedder);\n    this.embeddedFiles.push(embeddedFile);\n  }\n\n  /**\n   * Embed a font into this document. The input data can be provided in multiple\n   * formats:\n   *\n   * | Type            | Contents                                                |\n   * | --------------- | ------------------------------------------------------- |\n   * | `StandardFonts` | One of the standard 14 fonts                            |\n   * | `string`        | A base64 encoded string (or data URI) containing a font |\n   * | `Uint8Array`    | The raw bytes of a font                                 |\n   * | `ArrayBuffer`   | The raw bytes of a font                                 |\n   *\n   * For example:\n   * ```js\n   * // font=StandardFonts\n   * import { StandardFonts } from 'pdf-lib'\n   * const font1 = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   *\n   * // font=string\n   * const font2 = await pdfDoc.embedFont('AAEAAAAVAQAABABQRFNJRx/upe...')\n   * const font3 = await pdfDoc.embedFont('data:font/opentype;base64,AAEAAA...')\n   *\n   * // font=Uint8Array\n   * import fs from 'fs'\n   * const font4 = await pdfDoc.embedFont(fs.readFileSync('Ubuntu-R.ttf'))\n   *\n   * // font=ArrayBuffer\n   * const url = 'https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf'\n   * const ubuntuBytes = await fetch(url).then(res => res.arrayBuffer())\n   * const font5 = await pdfDoc.embedFont(ubuntuBytes)\n   * ```\n   * See also: [[registerFontkit]]\n   * @param font The input data for a font.\n   * @param options The options to be used when embedding the font.\n   * @returns Resolves with the embedded font.\n   */\n  async embedFont(\n    font: StandardFonts | string | Uint8Array | ArrayBuffer,\n    options: EmbedFontOptions = {},\n  ): Promise<PDFFont> {\n    const { subset = false, customName, features } = options;\n\n    assertIs(font, 'font', ['string', Uint8Array, ArrayBuffer]);\n    assertIs(subset, 'subset', ['boolean']);\n\n    let embedder: CustomFontEmbedder | StandardFontEmbedder;\n    if (isStandardFont(font)) {\n      embedder = StandardFontEmbedder.for(font, customName);\n    } else if (canBeConvertedToUint8Array(font)) {\n      const bytes = toUint8Array(font);\n      const fontkit = this.assertFontkit();\n      embedder = subset\n        ? await CustomFontSubsetEmbedder.for(\n            fontkit,\n            bytes,\n            customName,\n            features,\n          )\n        : await CustomFontEmbedder.for(fontkit, bytes, customName, features);\n    } else {\n      throw new TypeError(\n        '`font` must be one of `StandardFonts | string | Uint8Array | ArrayBuffer`',\n      );\n    }\n\n    const ref = this.context.nextRef();\n    const pdfFont = PDFFont.of(ref, this, embedder);\n    this.fonts.push(pdfFont);\n\n    return pdfFont;\n  }\n\n  /**\n   * Embed a standard font into this document.\n   * For example:\n   * ```js\n   * import { StandardFonts } from 'pdf-lib'\n   * const helveticaFont = pdfDoc.embedFont(StandardFonts.Helvetica)\n   * ```\n   * @param font The standard font to be embedded.\n   * @param customName The name to be used when embedding the font.\n   * @returns The embedded font.\n   */\n  embedStandardFont(font: StandardFonts, customName?: string): PDFFont {\n    assertIs(font, 'font', ['string']);\n    if (!isStandardFont(font)) {\n      throw new TypeError('`font` must be one of type `StandardFonts`');\n    }\n\n    const embedder = StandardFontEmbedder.for(font, customName);\n\n    const ref = this.context.nextRef();\n    const pdfFont = PDFFont.of(ref, this, embedder);\n    this.fonts.push(pdfFont);\n\n    return pdfFont;\n  }\n\n  /**\n   * Embed a JPEG image into this document. The input data can be provided in\n   * multiple formats:\n   *\n   * | Type          | Contents                                                      |\n   * | ------------- | ------------------------------------------------------------- |\n   * | `string`      | A base64 encoded string (or data URI) containing a JPEG image |\n   * | `Uint8Array`  | The raw bytes of a JPEG image                                 |\n   * | `ArrayBuffer` | The raw bytes of a JPEG image                                 |\n   *\n   * For example:\n   * ```js\n   * // jpg=string\n   * const image1 = await pdfDoc.embedJpg('/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...')\n   * const image2 = await pdfDoc.embedJpg('data:image/jpeg;base64,/9j/4AAQ...')\n   *\n   * // jpg=Uint8Array\n   * import fs from 'fs'\n   * const uint8Array = fs.readFileSync('cat_riding_unicorn.jpg')\n   * const image3 = await pdfDoc.embedJpg(uint8Array)\n   *\n   * // jpg=ArrayBuffer\n   * const url = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n   * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n   * const image4 = await pdfDoc.embedJpg(arrayBuffer)\n   * ```\n   *\n   * @param jpg The input data for a JPEG image.\n   * @returns Resolves with the embedded image.\n   */\n  async embedJpg(jpg: string | Uint8Array | ArrayBuffer): Promise<PDFImage> {\n    assertIs(jpg, 'jpg', ['string', Uint8Array, ArrayBuffer]);\n    const bytes = toUint8Array(jpg);\n    const embedder = await JpegEmbedder.for(bytes);\n    const ref = this.context.nextRef();\n    const pdfImage = PDFImage.of(ref, this, embedder);\n    this.images.push(pdfImage);\n    return pdfImage;\n  }\n\n  /**\n   * Embed a PNG image into this document. The input data can be provided in\n   * multiple formats:\n   *\n   * | Type          | Contents                                                     |\n   * | ------------- | ------------------------------------------------------------ |\n   * | `string`      | A base64 encoded string (or data URI) containing a PNG image |\n   * | `Uint8Array`  | The raw bytes of a PNG image                                 |\n   * | `ArrayBuffer` | The raw bytes of a PNG image                                 |\n   *\n   * For example:\n   * ```js\n   * // png=string\n   * const image1 = await pdfDoc.embedPng('iVBORw0KGgoAAAANSUhEUgAAAlgAAAF3...')\n   * const image2 = await pdfDoc.embedPng('data:image/png;base64,iVBORw0KGg...')\n   *\n   * // png=Uint8Array\n   * import fs from 'fs'\n   * const uint8Array = fs.readFileSync('small_mario.png')\n   * const image3 = await pdfDoc.embedPng(uint8Array)\n   *\n   * // png=ArrayBuffer\n   * const url = 'https://pdf-lib.js.org/assets/small_mario.png'\n   * const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())\n   * const image4 = await pdfDoc.embedPng(arrayBuffer)\n   * ```\n   *\n   * @param png The input data for a PNG image.\n   * @returns Resolves with the embedded image.\n   */\n  async embedPng(png: string | Uint8Array | ArrayBuffer): Promise<PDFImage> {\n    assertIs(png, 'png', ['string', Uint8Array, ArrayBuffer]);\n    const bytes = toUint8Array(png);\n    const embedder = await PngEmbedder.for(bytes);\n    const ref = this.context.nextRef();\n    const pdfImage = PDFImage.of(ref, this, embedder);\n    this.images.push(pdfImage);\n    return pdfImage;\n  }\n\n  /**\n   * Embed one or more PDF pages into this document.\n   *\n   * For example:\n   * ```js\n   * const pdfDoc = await PDFDocument.create()\n   *\n   * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n   * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n   *\n   * // Embed page 74 of `sourcePdf` into `pdfDoc`\n   * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, [73])\n   * ```\n   *\n   * See [[PDFDocument.load]] for examples of the allowed input data formats.\n   *\n   * @param pdf The input data containing a PDF document.\n   * @param indices The indices of the pages that should be embedded.\n   * @returns Resolves with an array of the embedded pages.\n   */\n  async embedPdf(\n    pdf: string | Uint8Array | ArrayBuffer | PDFDocument,\n    indices: number[] = [0],\n  ): Promise<PDFEmbeddedPage[]> {\n    assertIs(pdf, 'pdf', [\n      'string',\n      Uint8Array,\n      ArrayBuffer,\n      [PDFDocument, 'PDFDocument'],\n    ]);\n    assertIs(indices, 'indices', [Array]);\n\n    const srcDoc =\n      pdf instanceof PDFDocument ? pdf : await PDFDocument.load(pdf);\n\n    const srcPages = pluckIndices(srcDoc.getPages(), indices);\n\n    return this.embedPages(srcPages);\n  }\n\n  /**\n   * Embed a single PDF page into this document.\n   *\n   * For example:\n   * ```js\n   * const pdfDoc = await PDFDocument.create()\n   *\n   * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n   * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n   * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n   * const sourcePdfPage = sourcePdfDoc.getPages()[73]\n   *\n   * const embeddedPage = await pdfDoc.embedPage(\n   *   sourcePdfPage,\n   *\n   *   // Clip a section of the source page so that we only embed part of it\n   *   { left: 100, right: 450, bottom: 330, top: 570 },\n   *\n   *   // Translate all drawings of the embedded page by (10, 200) units\n   *   [1, 0, 0, 1, 10, 200],\n   * )\n   * ```\n   *\n   * @param page The page to be embedded.\n   * @param boundingBox\n   * Optionally, an area of the source page that should be embedded\n   * (defaults to entire page).\n   * @param transformationMatrix\n   * Optionally, a transformation matrix that is always applied to the embedded\n   * page anywhere it is drawn.\n   * @returns Resolves with the embedded pdf page.\n   */\n  async embedPage(\n    page: PDFPage,\n    boundingBox?: PageBoundingBox,\n    transformationMatrix?: TransformationMatrix,\n  ): Promise<PDFEmbeddedPage> {\n    assertIs(page, 'page', [[PDFPage, 'PDFPage']]);\n    const [embeddedPage] = await this.embedPages(\n      [page],\n      [boundingBox],\n      [transformationMatrix],\n    );\n    return embeddedPage;\n  }\n\n  /**\n   * Embed one or more PDF pages into this document.\n   *\n   * For example:\n   * ```js\n   * const pdfDoc = await PDFDocument.create()\n   *\n   * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n   * const sourceBuffer = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n   * const sourcePdfDoc = await PDFDocument.load(sourceBuffer)\n   *\n   * const page1 = sourcePdfDoc.getPages()[0]\n   * const page2 = sourcePdfDoc.getPages()[52]\n   * const page3 = sourcePdfDoc.getPages()[73]\n   *\n   * const embeddedPages = await pdfDoc.embedPages([page1, page2, page3])\n   * ```\n   *\n   * @param page\n   * The pages to be embedded (they must all share the same context).\n   * @param boundingBoxes\n   * Optionally, an array of clipping boundaries - one for each page\n   * (defaults to entirety of each page).\n   * @param transformationMatrices\n   * Optionally, an array of transformation matrices - one for each page\n   * (each page's transformation will apply anywhere it is drawn).\n   * @returns Resolves with an array of the embedded pdf pages.\n   */\n  async embedPages(\n    pages: PDFPage[],\n    boundingBoxes: (PageBoundingBox | undefined)[] = [],\n    transformationMatrices: (TransformationMatrix | undefined)[] = [],\n  ) {\n    if (pages.length === 0) return [];\n\n    // Assert all pages have the same context\n    for (let idx = 0, len = pages.length - 1; idx < len; idx++) {\n      const currPage = pages[idx];\n      const nextPage = pages[idx + 1];\n      if (currPage.node.context !== nextPage.node.context) {\n        throw new PageEmbeddingMismatchedContextError();\n      }\n    }\n\n    const context = pages[0].node.context;\n    const maybeCopyPage =\n      context === this.context\n        ? (p: PDFPageLeaf) => p\n        : PDFObjectCopier.for(context, this.context).copy;\n\n    const embeddedPages = new Array<PDFEmbeddedPage>(pages.length);\n    for (let idx = 0, len = pages.length; idx < len; idx++) {\n      const page = maybeCopyPage(pages[idx].node);\n      const box = boundingBoxes[idx];\n      const matrix = transformationMatrices[idx];\n\n      const embedder = await PDFPageEmbedder.for(page, box, matrix);\n\n      const ref = this.context.nextRef();\n      embeddedPages[idx] = PDFEmbeddedPage.of(ref, this, embedder);\n    }\n\n    this.embeddedPages.push(...embeddedPages);\n\n    return embeddedPages;\n  }\n\n  /**\n   * > **NOTE:** You shouldn't need to call this method directly. The [[save]]\n   * > and [[saveAsBase64]] methods will automatically ensure that all embedded\n   * > assets are flushed before serializing the document.\n   *\n   * Flush all embedded fonts, PDF pages, and images to this document's\n   * [[context]].\n   *\n   * @returns Resolves when the flush is complete.\n   */\n  async flush(): Promise<void> {\n    await this.embedAll(this.fonts);\n    await this.embedAll(this.images);\n    await this.embedAll(this.embeddedPages);\n    await this.embedAll(this.embeddedFiles);\n    await this.embedAll(this.javaScripts);\n  }\n\n  /**\n   * Serialize this document to an array of bytes making up a PDF file.\n   * For example:\n   * ```js\n   * const pdfBytes = await pdfDoc.save()\n   * ```\n   *\n   * There are a number of things you can do with the serialized document,\n   * depending on the JavaScript environment you're running in:\n   * * Write it to a file in Node or React Native\n   * * Download it as a Blob in the browser\n   * * Render it in an `iframe`\n   *\n   * @param options The options to be used when saving the document.\n   * @returns Resolves with the bytes of the serialized document.\n   */\n  async save(options: SaveOptions = {}): Promise<Uint8Array> {\n    const {\n      useObjectStreams = true,\n      addDefaultPage = true,\n      objectsPerTick = 50,\n      updateFieldAppearances = true,\n    } = options;\n\n    assertIs(useObjectStreams, 'useObjectStreams', ['boolean']);\n    assertIs(addDefaultPage, 'addDefaultPage', ['boolean']);\n    assertIs(objectsPerTick, 'objectsPerTick', ['number']);\n    assertIs(updateFieldAppearances, 'updateFieldAppearances', ['boolean']);\n\n    if (addDefaultPage && this.getPageCount() === 0) this.addPage();\n\n    if (updateFieldAppearances) {\n      const form = this.formCache.getValue();\n      if (form) form.updateFieldAppearances();\n    }\n\n    await this.flush();\n\n    const Writer = useObjectStreams ? PDFStreamWriter : PDFWriter;\n    return Writer.forContext(this.context, objectsPerTick).serializeToBuffer();\n  }\n\n  /**\n   * Serialize this document to a base64 encoded string or data URI making up a\n   * PDF file. For example:\n   * ```js\n   * const base64String = await pdfDoc.saveAsBase64()\n   * base64String // => 'JVBERi0xLjcKJYGBgYEKC...'\n   *\n   * const base64DataUri = await pdfDoc.saveAsBase64({ dataUri: true })\n   * base64DataUri // => 'data:application/pdf;base64,JVBERi0xLjcKJYGBgYEKC...'\n   * ```\n   *\n   * @param options The options to be used when saving the document.\n   * @returns Resolves with a base64 encoded string or data URI of the\n   *          serialized document.\n   */\n  async saveAsBase64(options: Base64SaveOptions = {}): Promise<string> {\n    const { dataUri = false, ...otherOptions } = options;\n    assertIs(dataUri, 'dataUri', ['boolean']);\n    const bytes = await this.save(otherOptions);\n    const base64 = encodeToBase64(bytes);\n    return dataUri ? `data:application/pdf;base64,${base64}` : base64;\n  }\n\n  findPageForAnnotationRef(ref: PDFRef): PDFPage | undefined {\n    const pages = this.getPages();\n    for (let idx = 0, len = pages.length; idx < len; idx++) {\n      const page = pages[idx];\n      const annotations = page.node.Annots();\n\n      if (annotations?.indexOf(ref) !== undefined) {\n        return page;\n      }\n    }\n\n    return undefined;\n  }\n\n  private async embedAll(embeddables: Embeddable[]): Promise<void> {\n    for (let idx = 0, len = embeddables.length; idx < len; idx++) {\n      await embeddables[idx].embed();\n    }\n  }\n\n  private updateInfoDict(): void {\n    const pdfLib = `pdf-lib (https://github.com/Hopding/pdf-lib)`;\n    const now = new Date();\n\n    const info = this.getInfoDict();\n\n    this.setProducer(pdfLib);\n    this.setModificationDate(now);\n\n    if (!info.get(PDFName.of('Creator'))) this.setCreator(pdfLib);\n    if (!info.get(PDFName.of('CreationDate'))) this.setCreationDate(now);\n  }\n\n  private getInfoDict(): PDFDict {\n    const existingInfo = this.context.lookup(this.context.trailerInfo.Info);\n    if (existingInfo instanceof PDFDict) return existingInfo;\n\n    const newInfo = this.context.obj({});\n    this.context.trailerInfo.Info = this.context.register(newInfo);\n\n    return newInfo;\n  }\n\n  private assertFontkit(): Fontkit {\n    if (!this.fontkit) throw new FontkitNotRegisteredError();\n    return this.fontkit;\n  }\n\n  private computePages = (): PDFPage[] => {\n    const pages: PDFPage[] = [];\n    this.catalog.Pages().traverse((node, ref) => {\n      if (node instanceof PDFPageLeaf) {\n        let page = this.pageMap.get(node);\n        if (!page) {\n          page = PDFPage.of(node, ref, this);\n          this.pageMap.set(node, page);\n        }\n        pages.push(page);\n      }\n    });\n    return pages;\n  };\n\n  private getOrCreateForm = (): PDFForm => {\n    const acroForm = this.catalog.getOrCreateAcroForm();\n    return PDFForm.of(acroForm, this);\n  };\n}\n\n/* tslint:disable-next-line only-arrow-functions */\nfunction assertIsLiteralOrHexString(\n  pdfObject: PDFObject,\n): asserts pdfObject is PDFHexString | PDFString {\n  if (\n    !(pdfObject instanceof PDFHexString) &&\n    !(pdfObject instanceof PDFString)\n  ) {\n    throw new UnexpectedObjectTypeError([PDFHexString, PDFString], pdfObject);\n  }\n}\n","import { Color } from 'src/api/colors';\nimport PDFFont from 'src/api/PDFFont';\nimport { Rotation } from 'src/api/rotations';\nimport { LineCapStyle } from 'src/api/operators';\n\nexport enum BlendMode {\n  Normal = 'Normal',\n  Multiply = 'Multiply',\n  Screen = 'Screen',\n  Overlay = 'Overlay',\n  Darken = 'Darken',\n  Lighten = 'Lighten',\n  ColorDodge = 'ColorDodge',\n  ColorBurn = 'ColorBurn',\n  HardLight = 'HardLight',\n  SoftLight = 'SoftLight',\n  Difference = 'Difference',\n  Exclusion = 'Exclusion',\n}\n\nexport interface PDFPageDrawTextOptions {\n  color?: Color;\n  opacity?: number;\n  blendMode?: BlendMode;\n  font?: PDFFont;\n  size?: number;\n  rotate?: Rotation;\n  xSkew?: Rotation;\n  ySkew?: Rotation;\n  x?: number;\n  y?: number;\n  lineHeight?: number;\n  maxWidth?: number;\n  wordBreaks?: string[];\n}\n\nexport interface PDFPageDrawImageOptions {\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n  rotate?: Rotation;\n  xSkew?: Rotation;\n  ySkew?: Rotation;\n  opacity?: number;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawPageOptions {\n  x?: number;\n  y?: number;\n  xScale?: number;\n  yScale?: number;\n  width?: number;\n  height?: number;\n  rotate?: Rotation;\n  xSkew?: Rotation;\n  ySkew?: Rotation;\n  opacity?: number;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawSVGOptions {\n  x?: number;\n  y?: number;\n  scale?: number;\n  rotate?: Rotation;\n  borderWidth?: number;\n  color?: Color;\n  opacity?: number;\n  borderColor?: Color;\n  borderOpacity?: number;\n  borderDashArray?: number[];\n  borderDashPhase?: number;\n  borderLineCap?: LineCapStyle;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawLineOptions {\n  start: { x: number; y: number };\n  end: { x: number; y: number };\n  thickness?: number;\n  color?: Color;\n  opacity?: number;\n  lineCap?: LineCapStyle;\n  dashArray?: number[];\n  dashPhase?: number;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawRectangleOptions {\n  x?: number;\n  y?: number;\n  width?: number;\n  height?: number;\n  rotate?: Rotation;\n  xSkew?: Rotation;\n  ySkew?: Rotation;\n  borderWidth?: number;\n  color?: Color;\n  opacity?: number;\n  borderColor?: Color;\n  borderOpacity?: number;\n  borderDashArray?: number[];\n  borderDashPhase?: number;\n  borderLineCap?: LineCapStyle;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawSquareOptions {\n  x?: number;\n  y?: number;\n  size?: number;\n  rotate?: Rotation;\n  xSkew?: Rotation;\n  ySkew?: Rotation;\n  borderWidth?: number;\n  color?: Color;\n  opacity?: number;\n  borderColor?: Color;\n  borderOpacity?: number;\n  borderDashArray?: number[];\n  borderDashPhase?: number;\n  borderLineCap?: LineCapStyle;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawEllipseOptions {\n  x?: number;\n  y?: number;\n  xScale?: number;\n  yScale?: number;\n  rotate?: Rotation;\n  color?: Color;\n  opacity?: number;\n  borderColor?: Color;\n  borderOpacity?: number;\n  borderWidth?: number;\n  borderDashArray?: number[];\n  borderDashPhase?: number;\n  borderLineCap?: LineCapStyle;\n  blendMode?: BlendMode;\n}\n\nexport interface PDFPageDrawCircleOptions {\n  x?: number;\n  y?: number;\n  size?: number;\n  color?: Color;\n  opacity?: number;\n  borderColor?: Color;\n  borderOpacity?: number;\n  borderWidth?: number;\n  borderDashArray?: number[];\n  borderDashPhase?: number;\n  borderLineCap?: LineCapStyle;\n  blendMode?: BlendMode;\n}\n","import { Color, rgb } from 'src/api/colors';\nimport {\n  drawImage,\n  drawLine,\n  drawLinesOfText,\n  drawPage,\n  drawRectangle,\n  drawSvgPath,\n  drawEllipse,\n} from 'src/api/operations';\nimport {\n  popGraphicsState,\n  pushGraphicsState,\n  translate,\n  LineCapStyle,\n  scale,\n} from 'src/api/operators';\nimport PDFDocument from 'src/api/PDFDocument';\nimport PDFEmbeddedPage from 'src/api/PDFEmbeddedPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport {\n  PDFPageDrawCircleOptions,\n  PDFPageDrawEllipseOptions,\n  PDFPageDrawImageOptions,\n  PDFPageDrawLineOptions,\n  PDFPageDrawPageOptions,\n  PDFPageDrawRectangleOptions,\n  PDFPageDrawSquareOptions,\n  PDFPageDrawSVGOptions,\n  PDFPageDrawTextOptions,\n  BlendMode,\n} from 'src/api/PDFPageOptions';\nimport { degrees, Rotation, toDegrees } from 'src/api/rotations';\nimport { StandardFonts } from 'src/api/StandardFonts';\nimport {\n  PDFContentStream,\n  PDFHexString,\n  PDFName,\n  PDFOperator,\n  PDFPageLeaf,\n  PDFRef,\n  PDFDict,\n  PDFArray,\n} from 'src/core';\nimport {\n  assertEachIs,\n  assertIs,\n  assertMultiple,\n  assertOrUndefined,\n  breakTextIntoLines,\n  cleanText,\n  rectanglesAreEqual,\n  lineSplit,\n  assertRangeOrUndefined,\n  assertIsOneOfOrUndefined,\n} from 'src/utils';\n\n/**\n * Represents a single page of a [[PDFDocument]].\n */\nexport default class PDFPage {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n   * > methods, which can create instances of [[PDFPage]] for you.\n   *\n   * Create an instance of [[PDFPage]] from an existing leaf node.\n   *\n   * @param leafNode The leaf node to be wrapped.\n   * @param ref The unique reference for the page.\n   * @param doc The document to which the page will belong.\n   */\n  static of = (leafNode: PDFPageLeaf, ref: PDFRef, doc: PDFDocument) =>\n    new PDFPage(leafNode, ref, doc);\n\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFDocument.addPage]] and [[PDFDocument.insertPage]]\n   * > methods, which can create instances of [[PDFPage]] for you.\n   *\n   * Create an instance of [[PDFPage]].\n   *\n   * @param doc The document to which the page will belong.\n   */\n  static create = (doc: PDFDocument) => {\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n    const dummyRef = PDFRef.of(-1);\n    const pageLeaf = PDFPageLeaf.withContextAndParent(doc.context, dummyRef);\n    const pageRef = doc.context.register(pageLeaf);\n    return new PDFPage(pageLeaf, pageRef, doc);\n  };\n\n  /** The low-level PDFDictionary wrapped by this page. */\n  readonly node: PDFPageLeaf;\n\n  /** The unique reference assigned to this page within the document. */\n  readonly ref: PDFRef;\n\n  /** The document to which this page belongs. */\n  readonly doc: PDFDocument;\n\n  private fontKey?: PDFName;\n  private font?: PDFFont;\n  private fontSize = 24;\n  private fontColor = rgb(0, 0, 0) as Color;\n  private lineHeight = 24;\n  private x = 0;\n  private y = 0;\n  private contentStream?: PDFContentStream;\n  private contentStreamRef?: PDFRef;\n\n  private constructor(leafNode: PDFPageLeaf, ref: PDFRef, doc: PDFDocument) {\n    assertIs(leafNode, 'leafNode', [[PDFPageLeaf, 'PDFPageLeaf']]);\n    assertIs(ref, 'ref', [[PDFRef, 'PDFRef']]);\n    assertIs(doc, 'doc', [[PDFDocument, 'PDFDocument']]);\n\n    this.node = leafNode;\n    this.ref = ref;\n    this.doc = doc;\n  }\n\n  /**\n   * Rotate this page by a multiple of 90 degrees. For example:\n   * ```js\n   * import { degrees } from 'pdf-lib'\n   *\n   * page.setRotation(degrees(-90))\n   * page.setRotation(degrees(0))\n   * page.setRotation(degrees(90))\n   * page.setRotation(degrees(180))\n   * page.setRotation(degrees(270))\n   * ```\n   * @param angle The angle to rotate this page.\n   */\n  setRotation(angle: Rotation): void {\n    const degreesAngle = toDegrees(angle);\n    assertMultiple(degreesAngle, 'degreesAngle', 90);\n    this.node.set(PDFName.of('Rotate'), this.doc.context.obj(degreesAngle));\n  }\n\n  /**\n   * Get this page's rotation angle in degrees. For example:\n   * ```js\n   * const rotationAngle = page.getRotation().angle;\n   * ```\n   * @returns The rotation angle of the page in degrees (always a multiple of\n   *          90 degrees).\n   */\n  getRotation(): Rotation {\n    const Rotate = this.node.Rotate();\n    return degrees(Rotate ? Rotate.asNumber() : 0);\n  }\n\n  /**\n   * Resize this page by increasing or decreasing its width and height. For\n   * example:\n   * ```js\n   * page.setSize(250, 500)\n   * page.setSize(page.getWidth() + 50, page.getHeight() + 100)\n   * page.setSize(page.getWidth() - 50, page.getHeight() - 100)\n   * ```\n   *\n   * Note that the PDF specification does not allow for pages to have explicit\n   * widths and heights. Instead it defines the \"size\" of a page in terms of\n   * five rectangles: the MediaBox, CropBox, BleedBox, TrimBox, and ArtBox. As a\n   * result, this method cannot directly change the width and height of a page.\n   * Instead, it works by adjusting these five boxes.\n   *\n   * This method performs the following steps:\n   *   1. Set width & height of MediaBox.\n   *   2. Set width & height of CropBox, if it has same dimensions as MediaBox.\n   *   3. Set width & height of BleedBox, if it has same dimensions as MediaBox.\n   *   4. Set width & height of TrimBox, if it has same dimensions as MediaBox.\n   *   5. Set width & height of ArtBox, if it has same dimensions as MediaBox.\n   *\n   * This approach works well for most PDF documents as all PDF pages must\n   * have a MediaBox, but relatively few have a CropBox, BleedBox, TrimBox, or\n   * ArtBox. And when they do have these additional boxes, they often have the\n   * same dimensions as the MediaBox. However, if you find this method does not\n   * work for your document, consider setting the boxes directly:\n   *   * [[PDFPage.setMediaBox]]\n   *   * [[PDFPage.setCropBox]]\n   *   * [[PDFPage.setBleedBox]]\n   *   * [[PDFPage.setTrimBox]]\n   *   * [[PDFPage.setArtBox]]\n   *\n   * @param width The new width of the page.\n   * @param height The new height of the page.\n   */\n  setSize(width: number, height: number): void {\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n\n    const mediaBox = this.getMediaBox();\n    this.setMediaBox(mediaBox.x, mediaBox.y, width, height);\n\n    const cropBox = this.getCropBox();\n    const bleedBox = this.getBleedBox();\n    const trimBox = this.getTrimBox();\n    const artBox = this.getArtBox();\n\n    const hasCropBox = this.node.CropBox()!!;\n    const hasBleedBox = this.node.BleedBox()!!;\n    const hasTrimBox = this.node.TrimBox()!!;\n    const hasArtBox = this.node.ArtBox()!!;\n\n    if (hasCropBox && rectanglesAreEqual(cropBox, mediaBox)) {\n      this.setCropBox(mediaBox.x, mediaBox.y, width, height);\n    }\n    if (hasBleedBox && rectanglesAreEqual(bleedBox, mediaBox)) {\n      this.setBleedBox(mediaBox.x, mediaBox.y, width, height);\n    }\n    if (hasTrimBox && rectanglesAreEqual(trimBox, mediaBox)) {\n      this.setTrimBox(mediaBox.x, mediaBox.y, width, height);\n    }\n    if (hasArtBox && rectanglesAreEqual(artBox, mediaBox)) {\n      this.setArtBox(mediaBox.x, mediaBox.y, width, height);\n    }\n  }\n\n  /**\n   * Resize this page by increasing or decreasing its width. For example:\n   * ```js\n   * page.setWidth(250)\n   * page.setWidth(page.getWidth() + 50)\n   * page.setWidth(page.getWidth() - 50)\n   * ```\n   *\n   * This method uses [[PDFPage.setSize]] to set the page's width.\n   *\n   * @param width The new width of the page.\n   */\n  setWidth(width: number): void {\n    assertIs(width, 'width', ['number']);\n    this.setSize(width, this.getSize().height);\n  }\n\n  /**\n   * Resize this page by increasing or decreasing its height. For example:\n   * ```js\n   * page.setHeight(500)\n   * page.setHeight(page.getWidth() + 100)\n   * page.setHeight(page.getWidth() - 100)\n   * ```\n   *\n   * This method uses [[PDFPage.setSize]] to set the page's height.\n   *\n   * @param height The new height of the page.\n   */\n  setHeight(height: number): void {\n    assertIs(height, 'height', ['number']);\n    this.setSize(this.getSize().width, height);\n  }\n\n  /**\n   * Set the MediaBox of this page. For example:\n   * ```js\n   * const mediaBox = page.getMediaBox()\n   *\n   * page.setMediaBox(0, 0, 250, 500)\n   * page.setMediaBox(mediaBox.x, mediaBox.y, 50, 100)\n   * page.setMediaBox(15, 5, mediaBox.width - 50, mediaBox.height - 100)\n   * ```\n   *\n   * See [[PDFPage.getMediaBox]] for details about what the MediaBox represents.\n   *\n   * @param x The x coordinate of the lower left corner of the new MediaBox.\n   * @param y The y coordinate of the lower left corner of the new MediaBox.\n   * @param width The width of the new MediaBox.\n   * @param height The height of the new MediaBox.\n   */\n  setMediaBox(x: number, y: number, width: number, height: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n    const mediaBox = this.doc.context.obj([x, y, x + width, y + height]);\n    this.node.set(PDFName.MediaBox, mediaBox);\n  }\n\n  /**\n   * Set the CropBox of this page. For example:\n   * ```js\n   * const cropBox = page.getCropBox()\n   *\n   * page.setCropBox(0, 0, 250, 500)\n   * page.setCropBox(cropBox.x, cropBox.y, 50, 100)\n   * page.setCropBox(15, 5, cropBox.width - 50, cropBox.height - 100)\n   * ```\n   *\n   * See [[PDFPage.getCropBox]] for details about what the CropBox represents.\n   *\n   * @param x The x coordinate of the lower left corner of the new CropBox.\n   * @param y The y coordinate of the lower left corner of the new CropBox.\n   * @param width The width of the new CropBox.\n   * @param height The height of the new CropBox.\n   */\n  setCropBox(x: number, y: number, width: number, height: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n    const cropBox = this.doc.context.obj([x, y, x + width, y + height]);\n    this.node.set(PDFName.CropBox, cropBox);\n  }\n\n  /**\n   * Set the BleedBox of this page. For example:\n   * ```js\n   * const bleedBox = page.getBleedBox()\n   *\n   * page.setBleedBox(0, 0, 250, 500)\n   * page.setBleedBox(bleedBox.x, bleedBox.y, 50, 100)\n   * page.setBleedBox(15, 5, bleedBox.width - 50, bleedBox.height - 100)\n   * ```\n   *\n   * See [[PDFPage.getBleedBox]] for details about what the BleedBox represents.\n   *\n   * @param x The x coordinate of the lower left corner of the new BleedBox.\n   * @param y The y coordinate of the lower left corner of the new BleedBox.\n   * @param width The width of the new BleedBox.\n   * @param height The height of the new BleedBox.\n   */\n  setBleedBox(x: number, y: number, width: number, height: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n    const bleedBox = this.doc.context.obj([x, y, x + width, y + height]);\n    this.node.set(PDFName.BleedBox, bleedBox);\n  }\n\n  /**\n   * Set the TrimBox of this page. For example:\n   * ```js\n   * const trimBox = page.getTrimBox()\n   *\n   * page.setTrimBox(0, 0, 250, 500)\n   * page.setTrimBox(trimBox.x, trimBox.y, 50, 100)\n   * page.setTrimBox(15, 5, trimBox.width - 50, trimBox.height - 100)\n   * ```\n   *\n   * See [[PDFPage.getTrimBox]] for details about what the TrimBox represents.\n   *\n   * @param x The x coordinate of the lower left corner of the new TrimBox.\n   * @param y The y coordinate of the lower left corner of the new TrimBox.\n   * @param width The width of the new TrimBox.\n   * @param height The height of the new TrimBox.\n   */\n  setTrimBox(x: number, y: number, width: number, height: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n    const trimBox = this.doc.context.obj([x, y, x + width, y + height]);\n    this.node.set(PDFName.TrimBox, trimBox);\n  }\n\n  /**\n   * Set the ArtBox of this page. For example:\n   * ```js\n   * const artBox = page.getArtBox()\n   *\n   * page.setArtBox(0, 0, 250, 500)\n   * page.setArtBox(artBox.x, artBox.y, 50, 100)\n   * page.setArtBox(15, 5, artBox.width - 50, artBox.height - 100)\n   * ```\n   *\n   * See [[PDFPage.getArtBox]] for details about what the ArtBox represents.\n   *\n   * @param x The x coordinate of the lower left corner of the new ArtBox.\n   * @param y The y coordinate of the lower left corner of the new ArtBox.\n   * @param width The width of the new ArtBox.\n   * @param height The height of the new ArtBox.\n   */\n  setArtBox(x: number, y: number, width: number, height: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    assertIs(width, 'width', ['number']);\n    assertIs(height, 'height', ['number']);\n    const artBox = this.doc.context.obj([x, y, x + width, y + height]);\n    this.node.set(PDFName.ArtBox, artBox);\n  }\n\n  /**\n   * Get this page's width and height. For example:\n   * ```js\n   * const { width, height } = page.getSize()\n   * ```\n   *\n   * This method uses [[PDFPage.getMediaBox]] to obtain the page's\n   * width and height.\n   *\n   * @returns The width and height of the page.\n   */\n  getSize(): { width: number; height: number } {\n    const { width, height } = this.getMediaBox();\n    return { width, height };\n  }\n\n  /**\n   * Get this page's width. For example:\n   * ```js\n   * const width = page.getWidth()\n   * ```\n   *\n   * This method uses [[PDFPage.getSize]] to obtain the page's size.\n   *\n   * @returns The width of the page.\n   */\n  getWidth(): number {\n    return this.getSize().width;\n  }\n\n  /**\n   * Get this page's height. For example:\n   * ```js\n   * const height = page.getHeight()\n   * ```\n   *\n   * This method uses [[PDFPage.getSize]] to obtain the page's size.\n   *\n   * @returns The height of the page.\n   */\n  getHeight(): number {\n    return this.getSize().height;\n  }\n\n  /**\n   * Get the rectangle defining this page's MediaBox. For example:\n   * ```js\n   * const { x, y, width, height } = page.getMediaBox()\n   * ```\n   *\n   * The MediaBox of a page defines the boundaries of the physical medium on\n   * which the page is to be displayed/printed. It may include extended area\n   * surrounding the page content for bleed marks, printing marks, etc...\n   * It may also include areas close to the edges of the medium that cannot be\n   * marked because of physical limitations of the output device. Content\n   * falling outside this boundary may safely be discarded without affecting\n   * the meaning of the PDF file.\n   *\n   * @returns An object defining the lower left corner of the MediaBox and its\n   *          width & height.\n   */\n  getMediaBox(): { x: number; y: number; width: number; height: number } {\n    const mediaBox = this.node.MediaBox();\n    return mediaBox.asRectangle();\n  }\n\n  /**\n   * Get the rectangle defining this page's CropBox. For example:\n   * ```js\n   * const { x, y, width, height } = page.getCropBox()\n   * ```\n   *\n   * The CropBox of a page defines the region to which the contents of the page\n   * shall be clipped when displayed or printed. Unlike the other boxes, the\n   * CropBox does not necessarily represent the physical page geometry. It\n   * merely imposes clipping on the page contents.\n   *\n   * The CropBox's default value is the page's MediaBox.\n   *\n   * @returns An object defining the lower left corner of the CropBox and its\n   *          width & height.\n   */\n  getCropBox(): { x: number; y: number; width: number; height: number } {\n    const cropBox = this.node.CropBox();\n    return cropBox?.asRectangle() ?? this.getMediaBox();\n  }\n\n  /**\n   * Get the rectangle defining this page's BleedBox. For example:\n   * ```js\n   * const { x, y, width, height } = page.getBleedBox()\n   * ```\n   *\n   * The BleedBox of a page defines the region to which the contents of the\n   * page shall be clipped when output in a production environment. This may\n   * include any extra bleed area needed to accommodate the physical\n   * limitations of cutting, folding, and trimming equipment. The actual\n   * printed page may include printing marks that fall outside the BleedBox.\n   *\n   * The BleedBox's default value is the page's CropBox.\n   *\n   * @returns An object defining the lower left corner of the BleedBox and its\n   *          width & height.\n   */\n  getBleedBox(): { x: number; y: number; width: number; height: number } {\n    const bleedBox = this.node.BleedBox();\n    return bleedBox?.asRectangle() ?? this.getCropBox();\n  }\n\n  /**\n   * Get the rectangle defining this page's TrimBox. For example:\n   * ```js\n   * const { x, y, width, height } = page.getTrimBox()\n   * ```\n   *\n   * The TrimBox of a page defines the intended dimensions of the finished\n   * page after trimming. It may be smaller than the MediaBox to allow for\n   * production-related content, such as printing instructions, cut marks, or\n   * color bars.\n   *\n   * The TrimBox's default value is the page's CropBox.\n   *\n   * @returns An object defining the lower left corner of the TrimBox and its\n   *          width & height.\n   */\n  getTrimBox(): { x: number; y: number; width: number; height: number } {\n    const trimBox = this.node.TrimBox();\n    return trimBox?.asRectangle() ?? this.getCropBox();\n  }\n\n  /**\n   * Get the rectangle defining this page's ArtBox. For example:\n   * ```js\n   * const { x, y, width, height } = page.getArtBox()\n   * ```\n   *\n   * The ArtBox of a page defines the extent of the page's meaningful content\n   * (including potential white space).\n   *\n   * The ArtBox's default value is the page's CropBox.\n   *\n   * @returns An object defining the lower left corner of the ArtBox and its\n   *          width & height.\n   */\n  getArtBox(): { x: number; y: number; width: number; height: number } {\n    const artBox = this.node.ArtBox();\n    return artBox?.asRectangle() ?? this.getCropBox();\n  }\n\n  /**\n   * Translate this page's content to a new location on the page. This operation\n   * is often useful after resizing the page with [[setSize]]. For example:\n   * ```js\n   * // Add 50 units of whitespace to the top and right of the page\n   * page.setSize(page.getWidth() + 50, page.getHeight() + 50)\n   *\n   * // Move the page's content from the lower-left corner of the page\n   * // to the top-right corner.\n   * page.translateContent(50, 50)\n   *\n   * // Now there are 50 units of whitespace to the left and bottom of the page\n   * ```\n   * See also: [[resetPosition]]\n   * @param x The new position on the x-axis for this page's content.\n   * @param y The new position on the y-axis for this page's content.\n   */\n  translateContent(x: number, y: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n\n    this.node.normalize();\n    this.getContentStream();\n\n    const start = this.createContentStream(\n      pushGraphicsState(),\n      translate(x, y),\n    );\n    const startRef = this.doc.context.register(start);\n\n    const end = this.createContentStream(popGraphicsState());\n    const endRef = this.doc.context.register(end);\n\n    this.node.wrapContentStreams(startRef, endRef);\n  }\n\n  /**\n   * Scale the size, content, and annotations of a page.\n   *\n   * For example:\n   * ```js\n   * page.scale(0.5, 0.5);\n   * ```\n   *\n   * @param x The factor by which the width for the page should be scaled\n   *          (e.g. `0.5` is 50%).\n   * @param y The factor by which the height for the page should be scaled\n   *          (e.g. `2.0` is 200%).\n   */\n  scale(x: number, y: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    this.setSize(this.getWidth() * x, this.getHeight() * y);\n    this.scaleContent(x, y);\n    this.scaleAnnotations(x, y);\n  }\n\n  /**\n   * Scale the content of a page. This is useful after resizing an existing\n   * page. This scales only the content, not the annotations.\n   *\n   * For example:\n   * ```js\n   * // Bisect the size of the page\n   * page.setSize(page.getWidth() / 2, page.getHeight() / 2);\n   *\n   * // Scale the content of the page down by 50% in x and y\n   * page.scaleContent(0.5, 0.5);\n   * ```\n   * See also: [[scaleAnnotations]]\n   * @param x The factor by which the x-axis for the content should be scaled\n   *          (e.g. `0.5` is 50%).\n   * @param y The factor by which the y-axis for the content should be scaled\n   *          (e.g. `2.0` is 200%).\n   */\n  scaleContent(x: number, y: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n\n    this.node.normalize();\n    this.getContentStream();\n\n    const start = this.createContentStream(pushGraphicsState(), scale(x, y));\n    const startRef = this.doc.context.register(start);\n\n    const end = this.createContentStream(popGraphicsState());\n    const endRef = this.doc.context.register(end);\n\n    this.node.wrapContentStreams(startRef, endRef);\n  }\n\n  /**\n   * Scale the annotations of a page. This is useful if you want to scale a\n   * page with comments or other annotations.\n   * ```js\n   * // Scale the content of the page down by 50% in x and y\n   * page.scaleContent(0.5, 0.5);\n   *\n   * // Scale the content of the page down by 50% in x and y\n   * page.scaleAnnotations(0.5, 0.5);\n   * ```\n   * See also: [[scaleContent]]\n   * @param x The factor by which the x-axis for the annotations should be\n   *          scaled (e.g. `0.5` is 50%).\n   * @param y The factor by which the y-axis for the annotations should be\n   *          scaled (e.g. `2.0` is 200%).\n   */\n  scaleAnnotations(x: number, y: number) {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n\n    const annots = this.node.Annots();\n    if (!annots) return;\n\n    for (let idx = 0; idx < annots.size(); idx++) {\n      const annot = annots.lookup(idx);\n      if (annot instanceof PDFDict) this.scaleAnnot(annot, x, y);\n    }\n  }\n\n  /**\n   * Reset the x and y coordinates of this page to `(0, 0)`. This operation is\n   * often useful after calling [[translateContent]]. For example:\n   * ```js\n   * // Shift the page's contents up and to the right by 50 units\n   * page.translateContent(50, 50)\n   *\n   * // This text will shifted - it will be drawn at (50, 50)\n   * page.drawText('I am shifted')\n   *\n   * // Move back to (0, 0)\n   * page.resetPosition()\n   *\n   * // This text will not be shifted - it will be drawn at (0, 0)\n   * page.drawText('I am not shifted')\n   * ```\n   */\n  resetPosition(): void {\n    this.getContentStream(false);\n    this.x = 0;\n    this.y = 0;\n  }\n\n  /**\n   * Choose a default font for this page. The default font will be used whenever\n   * text is drawn on this page and no font is specified. For example:\n   * ```js\n   * import { StandardFonts } from 'pdf-lib'\n   *\n   * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n   * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const courierFont = await pdfDoc.embedFont(StandardFonts.Courier)\n   *\n   * const page = pdfDoc.addPage()\n   *\n   * page.setFont(helveticaFont)\n   * page.drawText('I will be drawn in Helvetica')\n   *\n   * page.setFont(timesRomanFont)\n   * page.drawText('I will be drawn in Courier', { font: courierFont })\n   * ```\n   * @param font The default font to be used when drawing text on this page.\n   */\n  setFont(font: PDFFont): void {\n    // TODO: Reuse image Font name if we've already added this image to Resources.Fonts\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    this.font = font;\n    this.fontKey = this.node.newFontDictionary(this.font.name, this.font.ref);\n  }\n\n  /**\n   * Choose a default font size for this page. The default font size will be\n   * used whenever text is drawn on this page and no font size is specified.\n   * For example:\n   * ```js\n   * page.setFontSize(12)\n   * page.drawText('I will be drawn in size 12')\n   *\n   * page.setFontSize(36)\n   * page.drawText('I will be drawn in size 24', { fontSize: 24 })\n   * ```\n   * @param fontSize The default font size to be used when drawing text on this\n   *                 page.\n   */\n  setFontSize(fontSize: number): void {\n    assertIs(fontSize, 'fontSize', ['number']);\n    this.fontSize = fontSize;\n  }\n\n  /**\n   * Choose a default font color for this page. The default font color will be\n   * used whenever text is drawn on this page and no font color is specified.\n   * For example:\n   * ```js\n   * import { rgb, cmyk, grayscale } from 'pdf-lib'\n   *\n   * page.setFontColor(rgb(0.97, 0.02, 0.97))\n   * page.drawText('I will be drawn in pink')\n   *\n   * page.setFontColor(cmyk(0.4, 0.7, 0.39, 0.15))\n   * page.drawText('I will be drawn in gray', { color: grayscale(0.5) })\n   * ```\n   * @param fontColor The default font color to be used when drawing text on\n   *                  this page.\n   */\n  setFontColor(fontColor: Color): void {\n    assertIs(fontColor, 'fontColor', [[Object, 'Color']]);\n    this.fontColor = fontColor;\n  }\n\n  /**\n   * Choose a default line height for this page. The default line height will be\n   * used whenever text is drawn on this page and no line height is specified.\n   * For example:\n   * ```js\n   * page.setLineHeight(12);\n   * page.drawText('These lines will be vertically \\n separated by 12 units')\n   *\n   * page.setLineHeight(36);\n   * page.drawText('These lines will be vertically \\n separated by 24 units', {\n   *   lineHeight: 24\n   * })\n   * ```\n   * @param lineHeight The default line height to be used when drawing text on\n   *                   this page.\n   */\n  setLineHeight(lineHeight: number): void {\n    assertIs(lineHeight, 'lineHeight', ['number']);\n    this.lineHeight = lineHeight;\n  }\n\n  /**\n   * Get the default position of this page. For example:\n   * ```js\n   * const { x, y } = page.getPosition()\n   * ```\n   * @returns The default position of the page.\n   */\n  getPosition(): { x: number; y: number } {\n    return { x: this.x, y: this.y };\n  }\n\n  /**\n   * Get the default x coordinate of this page. For example:\n   * ```js\n   * const x = page.getX()\n   * ```\n   * @returns The default x coordinate of the page.\n   */\n  getX(): number {\n    return this.x;\n  }\n\n  /**\n   * Get the default y coordinate of this page. For example:\n   * ```js\n   * const y = page.getY()\n   * ```\n   * @returns The default y coordinate of the page.\n   */\n  getY(): number {\n    return this.y;\n  }\n\n  /**\n   * Change the default position of this page. For example:\n   * ```js\n   * page.moveTo(0, 0)\n   * page.drawText('I will be drawn at the origin')\n   *\n   * page.moveTo(0, 25)\n   * page.drawText('I will be drawn 25 units up')\n   *\n   * page.moveTo(25, 25)\n   * page.drawText('I will be drawn 25 units up and 25 units to the right')\n   * ```\n   * @param x The new default position on the x-axis for this page.\n   * @param y The new default position on the y-axis for this page.\n   */\n  moveTo(x: number, y: number): void {\n    assertIs(x, 'x', ['number']);\n    assertIs(y, 'y', ['number']);\n    this.x = x;\n    this.y = y;\n  }\n\n  /**\n   * Change the default position of this page to be further down the y-axis.\n   * For example:\n   * ```js\n   * page.moveTo(50, 50)\n   * page.drawText('I will be drawn at (50, 50)')\n   *\n   * page.moveDown(10)\n   * page.drawText('I will be drawn at (50, 40)')\n   * ```\n   * @param yDecrease The amount by which the page's default position along the\n   *                  y-axis should be decreased.\n   */\n  moveDown(yDecrease: number): void {\n    assertIs(yDecrease, 'yDecrease', ['number']);\n    this.y -= yDecrease;\n  }\n\n  /**\n   * Change the default position of this page to be further up the y-axis.\n   * For example:\n   * ```js\n   * page.moveTo(50, 50)\n   * page.drawText('I will be drawn at (50, 50)')\n   *\n   * page.moveUp(10)\n   * page.drawText('I will be drawn at (50, 60)')\n   * ```\n   * @param yIncrease The amount by which the page's default position along the\n   *                  y-axis should be increased.\n   */\n  moveUp(yIncrease: number): void {\n    assertIs(yIncrease, 'yIncrease', ['number']);\n    this.y += yIncrease;\n  }\n\n  /**\n   * Change the default position of this page to be further left on the x-axis.\n   * For example:\n   * ```js\n   * page.moveTo(50, 50)\n   * page.drawText('I will be drawn at (50, 50)')\n   *\n   * page.moveLeft(10)\n   * page.drawText('I will be drawn at (40, 50)')\n   * ```\n   * @param xDecrease The amount by which the page's default position along the\n   *                  x-axis should be decreased.\n   */\n  moveLeft(xDecrease: number): void {\n    assertIs(xDecrease, 'xDecrease', ['number']);\n    this.x -= xDecrease;\n  }\n\n  /**\n   * Change the default position of this page to be further right on the y-axis.\n   * For example:\n   * ```js\n   * page.moveTo(50, 50)\n   * page.drawText('I will be drawn at (50, 50)')\n   *\n   * page.moveRight(10)\n   * page.drawText('I will be drawn at (60, 50)')\n   * ```\n   * @param xIncrease The amount by which the page's default position along the\n   *                  x-axis should be increased.\n   */\n  moveRight(xIncrease: number): void {\n    assertIs(xIncrease, 'xIncrease', ['number']);\n    this.x += xIncrease;\n  }\n\n  /**\n   * Push one or more operators to the end of this page's current content\n   * stream. For example:\n   * ```js\n   * import {\n   *   pushGraphicsState,\n   *   moveTo,\n   *   lineTo,\n   *   closePath,\n   *   setFillingColor,\n   *   rgb,\n   *   fill,\n   *   popGraphicsState,\n   * } from 'pdf-lib'\n   *\n   * // Draw a green triangle in the lower-left corner of the page\n   * page.pushOperators(\n   *   pushGraphicsState(),\n   *   moveTo(0, 0),\n   *   lineTo(100, 0),\n   *   lineTo(50, 100),\n   *   closePath(),\n   *   setFillingColor(rgb(0.0, 1.0, 0.0)),\n   *   fill(),\n   *   popGraphicsState(),\n   * )\n   * ```\n   * @param operator The operators to be pushed.\n   */\n  pushOperators(...operator: PDFOperator[]): void {\n    assertEachIs(operator, 'operator', [[PDFOperator, 'PDFOperator']]);\n    const contentStream = this.getContentStream();\n    contentStream.push(...operator);\n  }\n\n  /**\n   * Draw one or more lines of text on this page. For example:\n   * ```js\n   * import { StandardFonts, rgb } from 'pdf-lib'\n   *\n   * const helveticaFont = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const timesRomanFont = await pdfDoc.embedFont(StandardFonts.TimesRoman)\n   *\n   * const page = pdfDoc.addPage()\n   *\n   * page.setFont(helveticaFont)\n   *\n   * page.moveTo(5, 200)\n   * page.drawText('The Life of an Egg', { size: 36 })\n   *\n   * page.moveDown(36)\n   * page.drawText('An Epic Tale of Woe', { size: 30 })\n   *\n   * page.drawText(\n   *   `Humpty Dumpty sat on a wall \\n` +\n   *   `Humpty Dumpty had a great fall; \\n` +\n   *   `All the king's horses and all the king's men \\n` +\n   *   `Couldn't put Humpty together again. \\n`,\n   *   {\n   *     x: 25,\n   *     y: 100,\n   *     font: timesRomanFont,\n   *     size: 24,\n   *     color: rgb(1, 0, 0),\n   *     lineHeight: 24,\n   *     opacity: 0.75,\n   *   },\n   * )\n   * ```\n   * @param text The text to be drawn.\n   * @param options The options to be used when drawing the text.\n   */\n  drawText(text: string, options: PDFPageDrawTextOptions = {}): void {\n    assertIs(text, 'text', ['string']);\n    assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertOrUndefined(options.font, 'options.font', [[PDFFont, 'PDFFont']]);\n    assertOrUndefined(options.size, 'options.size', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.lineHeight, 'options.lineHeight', ['number']);\n    assertOrUndefined(options.maxWidth, 'options.maxWidth', ['number']);\n    assertOrUndefined(options.wordBreaks, 'options.wordBreaks', [Array]);\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const { oldFont, newFont, newFontKey } = this.setOrEmbedFont(options.font);\n    const fontSize = options.size || this.fontSize;\n\n    const wordBreaks = options.wordBreaks || this.doc.defaultWordBreaks;\n    const textWidth = (t: string) => newFont.widthOfTextAtSize(t, fontSize);\n    const lines =\n      options.maxWidth === undefined\n        ? lineSplit(cleanText(text))\n        : breakTextIntoLines(text, wordBreaks, options.maxWidth, textWidth);\n\n    const encodedLines = new Array(lines.length) as PDFHexString[];\n    for (let idx = 0, len = lines.length; idx < len; idx++) {\n      encodedLines[idx] = newFont.encodeText(lines[idx]);\n    }\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      blendMode: options.blendMode,\n    });\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawLinesOfText(encodedLines, {\n        color: options.color ?? this.fontColor,\n        font: newFontKey,\n        size: fontSize,\n        rotate: options.rotate ?? degrees(0),\n        xSkew: options.xSkew ?? degrees(0),\n        ySkew: options.ySkew ?? degrees(0),\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        lineHeight: options.lineHeight ?? this.lineHeight,\n        graphicsState: graphicsStateKey,\n      }),\n    );\n\n    if (options.font) {\n      if (oldFont) this.setFont(oldFont);\n      else this.resetFont();\n    }\n  }\n\n  /**\n   * Draw an image on this page. For example:\n   * ```js\n   * import { degrees } from 'pdf-lib'\n   *\n   * const jpgUrl = 'https://pdf-lib.js.org/assets/cat_riding_unicorn.jpg'\n   * const jpgImageBytes = await fetch(jpgUrl).then((res) => res.arrayBuffer())\n   *\n   * const jpgImage = await pdfDoc.embedJpg(jpgImageBytes)\n   * const jpgDims = jpgImage.scale(0.5)\n   *\n   * const page = pdfDoc.addPage()\n   *\n   * page.drawImage(jpgImage, {\n   *   x: 25,\n   *   y: 25,\n   *   width: jpgDims.width,\n   *   height: jpgDims.height,\n   *   rotate: degrees(30),\n   *   opacity: 0.75,\n   * })\n   * ```\n   * @param image The image to be drawn.\n   * @param options The options to be used when drawing the image.\n   */\n  drawImage(image: PDFImage, options: PDFPageDrawImageOptions = {}): void {\n    // TODO: Reuse image XObject name if we've already added this image to Resources.XObjects\n    assertIs(image, 'image', [[PDFImage, 'PDFImage']]);\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.width, 'options.width', ['number']);\n    assertOrUndefined(options.height, 'options.height', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const xObjectKey = this.node.newXObject('Image', image.ref);\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      blendMode: options.blendMode,\n    });\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawImage(xObjectKey, {\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        width: options.width ?? image.size().width,\n        height: options.height ?? image.size().height,\n        rotate: options.rotate ?? degrees(0),\n        xSkew: options.xSkew ?? degrees(0),\n        ySkew: options.ySkew ?? degrees(0),\n        graphicsState: graphicsStateKey,\n      }),\n    );\n  }\n\n  /**\n   * Draw an embedded PDF page on this page. For example:\n   * ```js\n   * import { degrees } from 'pdf-lib'\n   *\n   * const pdfDoc = await PDFDocument.create()\n   * const page = pdfDoc.addPage()\n   *\n   * const sourcePdfUrl = 'https://pdf-lib.js.org/assets/with_large_page_count.pdf'\n   * const sourcePdf = await fetch(sourcePdfUrl).then((res) => res.arrayBuffer())\n   *\n   * // Embed page 74 from the PDF\n   * const [embeddedPage] = await pdfDoc.embedPdf(sourcePdf, 73)\n   *\n   * page.drawPage(embeddedPage, {\n   *   x: 250,\n   *   y: 200,\n   *   xScale: 0.5,\n   *   yScale: 0.5,\n   *   rotate: degrees(30),\n   *   opacity: 0.75,\n   * })\n   * ```\n   *\n   * The `options` argument accepts both `width`/`height` and `xScale`/`yScale`\n   * as options. Since each of these options defines the size of the drawn page,\n   * if both options are given, `width` and `height` take precedence and the\n   * corresponding scale variants are ignored.\n   *\n   * @param embeddedPage The embedded page to be drawn.\n   * @param options The options to be used when drawing the embedded page.\n   */\n  drawPage(\n    embeddedPage: PDFEmbeddedPage,\n    options: PDFPageDrawPageOptions = {},\n  ): void {\n    // TODO: Reuse embeddedPage XObject name if we've already added this embeddedPage to Resources.XObjects\n    assertIs(embeddedPage, 'embeddedPage', [\n      [PDFEmbeddedPage, 'PDFEmbeddedPage'],\n    ]);\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n    assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n    assertOrUndefined(options.width, 'options.width', ['number']);\n    assertOrUndefined(options.height, 'options.height', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const xObjectKey = this.node.newXObject(\n      'EmbeddedPdfPage',\n      embeddedPage.ref,\n    );\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      blendMode: options.blendMode,\n    });\n\n    // prettier-ignore\n    const xScale = (\n        options.width  !== undefined ? options.width / embeddedPage.width\n      : options.xScale !== undefined ? options.xScale\n      : 1\n    );\n\n    // prettier-ignore\n    const yScale = (\n        options.height !== undefined ? options.height / embeddedPage.height\n      : options.yScale !== undefined ? options.yScale\n      : 1\n    );\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawPage(xObjectKey, {\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        xScale,\n        yScale,\n        rotate: options.rotate ?? degrees(0),\n        xSkew: options.xSkew ?? degrees(0),\n        ySkew: options.ySkew ?? degrees(0),\n        graphicsState: graphicsStateKey,\n      }),\n    );\n  }\n\n  /**\n   * Draw an SVG path on this page. For example:\n   * ```js\n   * import { rgb } from 'pdf-lib'\n   *\n   * const svgPath = 'M 0,20 L 100,160 Q 130,200 150,120 C 190,-40 200,200 300,150 L 400,90'\n   *\n   * // Draw path as black line\n   * page.drawSvgPath(svgPath, { x: 25, y: 75 })\n   *\n   * // Change border style and opacity\n   * page.drawSvgPath(svgPath, {\n   *   x: 25,\n   *   y: 275,\n   *   borderColor: rgb(0.5, 0.5, 0.5),\n   *   borderWidth: 2,\n   *   borderOpacity: 0.75,\n   * })\n   *\n   * // Set fill color and opacity\n   * page.drawSvgPath(svgPath, {\n   *   x: 25,\n   *   y: 475,\n   *   color: rgb(1.0, 0, 0),\n   *   opacity: 0.75,\n   * })\n   *\n   * // Draw 50% of original size\n   * page.drawSvgPath(svgPath, {\n   *   x: 25,\n   *   y: 675,\n   *   scale: 0.5,\n   * })\n   * ```\n   * @param path The SVG path to be drawn.\n   * @param options The options to be used when drawing the SVG path.\n   */\n  drawSvgPath(path: string, options: PDFPageDrawSVGOptions = {}): void {\n    assertIs(path, 'path', ['string']);\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.scale, 'options.scale', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n    assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertOrUndefined(options.borderColor, 'options.borderColor', [\n      [Object, 'Color'],\n    ]);\n    assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n      Array,\n    ]);\n    assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n      'number',\n    ]);\n    assertIsOneOfOrUndefined(\n      options.borderLineCap,\n      'options.borderLineCap',\n      LineCapStyle,\n    );\n    assertRangeOrUndefined(\n      options.borderOpacity,\n      'options.borderOpacity',\n      0,\n      1,\n    );\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      borderOpacity: options.borderOpacity,\n      blendMode: options.blendMode,\n    });\n\n    if (!('color' in options) && !('borderColor' in options)) {\n      options.borderColor = rgb(0, 0, 0);\n    }\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawSvgPath(path, {\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        scale: options.scale,\n        rotate: options.rotate ?? degrees(0),\n        color: options.color ?? undefined,\n        borderColor: options.borderColor ?? undefined,\n        borderWidth: options.borderWidth ?? 0,\n        borderDashArray: options.borderDashArray ?? undefined,\n        borderDashPhase: options.borderDashPhase ?? undefined,\n        borderLineCap: options.borderLineCap ?? undefined,\n        graphicsState: graphicsStateKey,\n      }),\n    );\n  }\n\n  /**\n   * Draw a line on this page. For example:\n   * ```js\n   * import { rgb } from 'pdf-lib'\n   *\n   * page.drawLine({\n   *   start: { x: 25, y: 75 },\n   *   end: { x: 125, y: 175 },\n   *   thickness: 2,\n   *   color: rgb(0.75, 0.2, 0.2),\n   *   opacity: 0.75,\n   * })\n   * ```\n   * @param options The options to be used when drawing the line.\n   */\n  drawLine(options: PDFPageDrawLineOptions): void {\n    assertIs(options.start, 'options.start', [\n      [Object, '{ x: number, y: number }'],\n    ]);\n    assertIs(options.end, 'options.end', [\n      [Object, '{ x: number, y: number }'],\n    ]);\n    assertIs(options.start.x, 'options.start.x', ['number']);\n    assertIs(options.start.y, 'options.start.y', ['number']);\n    assertIs(options.end.x, 'options.end.x', ['number']);\n    assertIs(options.end.y, 'options.end.y', ['number']);\n    assertOrUndefined(options.thickness, 'options.thickness', ['number']);\n    assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n    assertOrUndefined(options.dashArray, 'options.dashArray', [Array]);\n    assertOrUndefined(options.dashPhase, 'options.dashPhase', ['number']);\n    assertIsOneOfOrUndefined(options.lineCap, 'options.lineCap', LineCapStyle);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      borderOpacity: options.opacity,\n      blendMode: options.blendMode,\n    });\n\n    if (!('color' in options)) {\n      options.color = rgb(0, 0, 0);\n    }\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawLine({\n        start: options.start,\n        end: options.end,\n        thickness: options.thickness ?? 1,\n        color: options.color ?? undefined,\n        dashArray: options.dashArray ?? undefined,\n        dashPhase: options.dashPhase ?? undefined,\n        lineCap: options.lineCap ?? undefined,\n        graphicsState: graphicsStateKey,\n      }),\n    );\n  }\n\n  /**\n   * Draw a rectangle on this page. For example:\n   * ```js\n   * import { degrees, grayscale, rgb } from 'pdf-lib'\n   *\n   * page.drawRectangle({\n   *   x: 25,\n   *   y: 75,\n   *   width: 250,\n   *   height: 75,\n   *   rotate: degrees(-15),\n   *   borderWidth: 5,\n   *   borderColor: grayscale(0.5),\n   *   color: rgb(0.75, 0.2, 0.2),\n   *   opacity: 0.5,\n   *   borderOpacity: 0.75,\n   * })\n   * ```\n   * @param options The options to be used when drawing the rectangle.\n   */\n  drawRectangle(options: PDFPageDrawRectangleOptions = {}): void {\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.width, 'options.width', ['number']);\n    assertOrUndefined(options.height, 'options.height', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.xSkew, 'options.xSkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.ySkew, 'options.ySkew', [[Object, 'Rotation']]);\n    assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n    assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertOrUndefined(options.borderColor, 'options.borderColor', [\n      [Object, 'Color'],\n    ]);\n    assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n      Array,\n    ]);\n    assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n      'number',\n    ]);\n    assertIsOneOfOrUndefined(\n      options.borderLineCap,\n      'options.borderLineCap',\n      LineCapStyle,\n    );\n    assertRangeOrUndefined(\n      options.borderOpacity,\n      'options.borderOpacity',\n      0,\n      1,\n    );\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      borderOpacity: options.borderOpacity,\n      blendMode: options.blendMode,\n    });\n\n    if (!('color' in options) && !('borderColor' in options)) {\n      options.color = rgb(0, 0, 0);\n    }\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawRectangle({\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        width: options.width ?? 150,\n        height: options.height ?? 100,\n        rotate: options.rotate ?? degrees(0),\n        xSkew: options.xSkew ?? degrees(0),\n        ySkew: options.ySkew ?? degrees(0),\n        borderWidth: options.borderWidth ?? 0,\n        color: options.color ?? undefined,\n        borderColor: options.borderColor ?? undefined,\n        borderDashArray: options.borderDashArray ?? undefined,\n        borderDashPhase: options.borderDashPhase ?? undefined,\n        graphicsState: graphicsStateKey,\n        borderLineCap: options.borderLineCap ?? undefined,\n      }),\n    );\n  }\n\n  /**\n   * Draw a square on this page. For example:\n   * ```js\n   * import { degrees, grayscale, rgb } from 'pdf-lib'\n   *\n   * page.drawSquare({\n   *   x: 25,\n   *   y: 75,\n   *   size: 100,\n   *   rotate: degrees(-15),\n   *   borderWidth: 5,\n   *   borderColor: grayscale(0.5),\n   *   color: rgb(0.75, 0.2, 0.2),\n   *   opacity: 0.5,\n   *   borderOpacity: 0.75,\n   * })\n   * ```\n   * @param options The options to be used when drawing the square.\n   */\n  drawSquare(options: PDFPageDrawSquareOptions = {}): void {\n    const { size } = options;\n    assertOrUndefined(size, 'size', ['number']);\n    this.drawRectangle({ ...options, width: size, height: size });\n  }\n\n  /**\n   * Draw an ellipse on this page. For example:\n   * ```js\n   * import { grayscale, rgb } from 'pdf-lib'\n   *\n   * page.drawEllipse({\n   *   x: 200,\n   *   y: 75,\n   *   xScale: 100,\n   *   yScale: 50,\n   *   borderWidth: 5,\n   *   borderColor: grayscale(0.5),\n   *   color: rgb(0.75, 0.2, 0.2),\n   *   opacity: 0.5,\n   *   borderOpacity: 0.75,\n   * })\n   * ```\n   * @param options The options to be used when drawing the ellipse.\n   */\n  drawEllipse(options: PDFPageDrawEllipseOptions = {}): void {\n    assertOrUndefined(options.x, 'options.x', ['number']);\n    assertOrUndefined(options.y, 'options.y', ['number']);\n    assertOrUndefined(options.xScale, 'options.xScale', ['number']);\n    assertOrUndefined(options.yScale, 'options.yScale', ['number']);\n    assertOrUndefined(options.rotate, 'options.rotate', [[Object, 'Rotation']]);\n    assertOrUndefined(options.color, 'options.color', [[Object, 'Color']]);\n    assertRangeOrUndefined(options.opacity, 'opacity.opacity', 0, 1);\n    assertOrUndefined(options.borderColor, 'options.borderColor', [\n      [Object, 'Color'],\n    ]);\n    assertRangeOrUndefined(\n      options.borderOpacity,\n      'options.borderOpacity',\n      0,\n      1,\n    );\n    assertOrUndefined(options.borderWidth, 'options.borderWidth', ['number']);\n    assertOrUndefined(options.borderDashArray, 'options.borderDashArray', [\n      Array,\n    ]);\n    assertOrUndefined(options.borderDashPhase, 'options.borderDashPhase', [\n      'number',\n    ]);\n    assertIsOneOfOrUndefined(\n      options.borderLineCap,\n      'options.borderLineCap',\n      LineCapStyle,\n    );\n    assertIsOneOfOrUndefined(options.blendMode, 'options.blendMode', BlendMode);\n    const graphicsStateKey = this.maybeEmbedGraphicsState({\n      opacity: options.opacity,\n      borderOpacity: options.borderOpacity,\n      blendMode: options.blendMode,\n    });\n\n    if (!('color' in options) && !('borderColor' in options)) {\n      options.color = rgb(0, 0, 0);\n    }\n\n    const contentStream = this.getContentStream();\n    contentStream.push(\n      ...drawEllipse({\n        x: options.x ?? this.x,\n        y: options.y ?? this.y,\n        xScale: options.xScale ?? 100,\n        yScale: options.yScale ?? 100,\n        rotate: options.rotate ?? undefined,\n        color: options.color ?? undefined,\n        borderColor: options.borderColor ?? undefined,\n        borderWidth: options.borderWidth ?? 0,\n        borderDashArray: options.borderDashArray ?? undefined,\n        borderDashPhase: options.borderDashPhase ?? undefined,\n        borderLineCap: options.borderLineCap ?? undefined,\n        graphicsState: graphicsStateKey,\n      }),\n    );\n  }\n\n  /**\n   * Draw a circle on this page. For example:\n   * ```js\n   * import { grayscale, rgb } from 'pdf-lib'\n   *\n   * page.drawCircle({\n   *   x: 200,\n   *   y: 150,\n   *   size: 100,\n   *   borderWidth: 5,\n   *   borderColor: grayscale(0.5),\n   *   color: rgb(0.75, 0.2, 0.2),\n   *   opacity: 0.5,\n   *   borderOpacity: 0.75,\n   * })\n   * ```\n   * @param options The options to be used when drawing the ellipse.\n   */\n  drawCircle(options: PDFPageDrawCircleOptions = {}): void {\n    const { size = 100 } = options;\n    assertOrUndefined(size, 'size', ['number']);\n    this.drawEllipse({ ...options, xScale: size, yScale: size });\n  }\n\n  private setOrEmbedFont(font?: PDFFont) {\n    const oldFont = this.font;\n    const oldFontKey = this.fontKey;\n\n    if (font) this.setFont(font);\n    else this.getFont();\n\n    const newFont = this.font!;\n    const newFontKey = this.fontKey!;\n\n    return { oldFont, oldFontKey, newFont, newFontKey };\n  }\n\n  private getFont(): [PDFFont, PDFName] {\n    if (!this.font || !this.fontKey) {\n      const font = this.doc.embedStandardFont(StandardFonts.Helvetica);\n      this.setFont(font);\n    }\n    return [this.font!, this.fontKey!];\n  }\n\n  private resetFont(): void {\n    this.font = undefined;\n    this.fontKey = undefined;\n  }\n\n  private getContentStream(useExisting = true): PDFContentStream {\n    if (useExisting && this.contentStream) return this.contentStream;\n    this.contentStream = this.createContentStream();\n    this.contentStreamRef = this.doc.context.register(this.contentStream);\n    this.node.addContentStream(this.contentStreamRef);\n    return this.contentStream;\n  }\n\n  private createContentStream(...operators: PDFOperator[]): PDFContentStream {\n    const dict = this.doc.context.obj({});\n    const contentStream = PDFContentStream.of(dict, operators);\n    return contentStream;\n  }\n\n  private maybeEmbedGraphicsState(options: {\n    opacity?: number;\n    borderOpacity?: number;\n    blendMode?: BlendMode;\n  }): PDFName | undefined {\n    const { opacity, borderOpacity, blendMode } = options;\n\n    if (\n      opacity === undefined &&\n      borderOpacity === undefined &&\n      blendMode === undefined\n    ) {\n      return undefined;\n    }\n\n    const graphicsState = this.doc.context.obj({\n      Type: 'ExtGState',\n      ca: opacity,\n      CA: borderOpacity,\n      BM: blendMode,\n    });\n\n    const key = this.node.newExtGState('GS', graphicsState);\n\n    return key;\n  }\n\n  private scaleAnnot(annot: PDFDict, x: number, y: number) {\n    const selectors = ['RD', 'CL', 'Vertices', 'QuadPoints', 'L', 'Rect'];\n    for (let idx = 0, len = selectors.length; idx < len; idx++) {\n      const list = annot.lookup(PDFName.of(selectors[idx]));\n      if (list instanceof PDFArray) list.scalePDFNumbers(x, y);\n    }\n\n    const inkLists = annot.lookup(PDFName.of('InkList'));\n    if (inkLists instanceof PDFArray) {\n      for (let idx = 0, len = inkLists.size(); idx < len; idx++) {\n        const arr = inkLists.lookup(idx);\n        if (arr instanceof PDFArray) arr.scalePDFNumbers(x, y);\n      }\n    }\n  }\n}\n","import PDFDocument from 'src/api/PDFDocument';\nimport PDFPage from 'src/api/PDFPage';\nimport PDFFont from 'src/api/PDFFont';\nimport PDFImage from 'src/api/PDFImage';\nimport { ImageAlignment } from 'src/api/image/alignment';\nimport {\n  AppearanceProviderFor,\n  normalizeAppearance,\n  defaultButtonAppearanceProvider,\n} from 'src/api/form/appearances';\nimport PDFField, {\n  FieldAppearanceOptions,\n  assertFieldAppearanceOptions,\n} from 'src/api/form/PDFField';\nimport { rgb } from 'src/api/colors';\nimport { degrees } from 'src/api/rotations';\n\nimport {\n  PDFRef,\n  PDFStream,\n  PDFAcroPushButton,\n  PDFWidgetAnnotation,\n} from 'src/core';\nimport { assertIs, assertOrUndefined, assertPositive } from 'src/utils';\n\n/**\n * Represents a button field of a [[PDFForm]].\n *\n * [[PDFButton]] fields are interactive controls that users can click with their\n * mouse. This type of [[PDFField]] is not stateful. The purpose of a button\n * is to perform an action when the user clicks on it, such as opening a print\n * modal or resetting the form. Buttons are typically rectangular in shape and\n * have a text label describing the action that they perform when clicked.\n */\nexport default class PDFButton extends PDFField {\n  /**\n   * > **NOTE:** You probably don't want to call this method directly. Instead,\n   * > consider using the [[PDFForm.getButton]] method, which will create an\n   * > instance of [[PDFButton]] for you.\n   *\n   * Create an instance of [[PDFButton]] from an existing acroPushButton and ref\n   *\n   * @param acroPushButton The underlying `PDFAcroPushButton` for this button.\n   * @param ref The unique reference for this button.\n   * @param doc The document to which this button will belong.\n   */\n  static of = (\n    acroPushButton: PDFAcroPushButton,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) => new PDFButton(acroPushButton, ref, doc);\n\n  /** The low-level PDFAcroPushButton wrapped by this button. */\n  readonly acroField: PDFAcroPushButton;\n\n  private constructor(\n    acroPushButton: PDFAcroPushButton,\n    ref: PDFRef,\n    doc: PDFDocument,\n  ) {\n    super(acroPushButton, ref, doc);\n\n    assertIs(acroPushButton, 'acroButton', [\n      [PDFAcroPushButton, 'PDFAcroPushButton'],\n    ]);\n\n    this.acroField = acroPushButton;\n  }\n\n  /**\n   * Display an image inside the bounds of this button's widgets. For example:\n   * ```js\n   * const pngImage = await pdfDoc.embedPng(...)\n   * const button = form.getButton('some.button.field')\n   * button.setImage(pngImage, ImageAlignment.Center)\n   * ```\n   * This will update the appearances streams for each of this button's widgets.\n   * @param image The image that should be displayed.\n   * @param alignment The alignment of the image.\n   */\n  setImage(image: PDFImage, alignment = ImageAlignment.Center) {\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const streamRef = this.createImageAppearanceStream(\n        widget,\n        image,\n        alignment,\n      );\n      this.updateWidgetAppearances(widget, { normal: streamRef });\n    }\n\n    this.markAsClean();\n  }\n\n  /**\n   * Set the font size for this field. Larger font sizes will result in larger\n   * text being displayed when PDF readers render this button. Font sizes may\n   * be integer or floating point numbers. Supplying a negative font size will\n   * cause this method to throw an error.\n   *\n   * For example:\n   * ```js\n   * const button = form.getButton('some.button.field')\n   * button.setFontSize(4)\n   * button.setFontSize(15.7)\n   * ```\n   *\n   * > This method depends upon the existence of a default appearance\n   * > (`/DA`) string. If this field does not have a default appearance string,\n   * > or that string does not contain a font size (via the `Tf` operator),\n   * > then this method will throw an error.\n   *\n   * @param fontSize The font size to be used when rendering text in this field.\n   */\n  setFontSize(fontSize: number) {\n    assertPositive(fontSize, 'fontSize');\n    this.acroField.setFontSize(fontSize);\n    this.markAsDirty();\n  }\n\n  /**\n   * Show this button on the specified page with the given text. For example:\n   * ```js\n   * const ubuntuFont = await pdfDoc.embedFont(ubuntuFontBytes)\n   * const page = pdfDoc.addPage()\n   *\n   * const form = pdfDoc.getForm()\n   * const button = form.createButton('some.button.field')\n   *\n   * button.addToPage('Do Stuff', page, {\n   *   x: 50,\n   *   y: 75,\n   *   width: 200,\n   *   height: 100,\n   *   textColor: rgb(1, 0, 0),\n   *   backgroundColor: rgb(0, 1, 0),\n   *   borderColor: rgb(0, 0, 1),\n   *   borderWidth: 2,\n   *   rotate: degrees(90),\n   *   font: ubuntuFont,\n   * })\n   * ```\n   * This will create a new widget for this button field.\n   * @param text The text to be displayed for this button widget.\n   * @param page The page to which this button widget should be added.\n   * @param options The options to be used when adding this button widget.\n   */\n  addToPage(\n    // TODO: This needs to be optional, e.g. for image buttons\n    text: string,\n    page: PDFPage,\n    options?: FieldAppearanceOptions,\n  ) {\n    assertOrUndefined(text, 'text', ['string']);\n    assertOrUndefined(page, 'page', [[PDFPage, 'PDFPage']]);\n    assertFieldAppearanceOptions(options);\n\n    // Create a widget for this button\n    const widget = this.createWidget({\n      x: (options?.x ?? 0) - (options?.borderWidth ?? 0) / 2,\n      y: (options?.y ?? 0) - (options?.borderWidth ?? 0) / 2,\n      width: options?.width ?? 100,\n      height: options?.height ?? 50,\n      textColor: options?.textColor ?? rgb(0, 0, 0),\n      backgroundColor: options?.backgroundColor ?? rgb(0.75, 0.75, 0.75),\n      borderColor: options?.borderColor,\n      borderWidth: options?.borderWidth ?? 0,\n      rotate: options?.rotate ?? degrees(0),\n      caption: text,\n      hidden: options?.hidden,\n      page: page.ref,\n    });\n    const widgetRef = this.doc.context.register(widget.dict);\n\n    // Add widget to this field\n    this.acroField.addWidget(widgetRef);\n\n    // Set appearance streams for widget\n    const font = options?.font ?? this.doc.getForm().getDefaultFont();\n    this.updateWidgetAppearance(widget, font);\n\n    // Add widget to the given page\n    page.node.addAnnot(widgetRef);\n  }\n\n  /**\n   * Returns `true` if this button has been marked as dirty, or if any of this\n   * button's widgets do not have an appearance stream. For example:\n   * ```js\n   * const button = form.getButton('some.button.field')\n   * if (button.needsAppearancesUpdate()) console.log('Needs update')\n   * ```\n   * @returns Whether or not this button needs an appearance update.\n   */\n  needsAppearancesUpdate(): boolean {\n    if (this.isDirty()) return true;\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      const hasAppearances =\n        widget.getAppearances()?.normal instanceof PDFStream;\n      if (!hasAppearances) return true;\n    }\n\n    return false;\n  }\n\n  /**\n   * Update the appearance streams for each of this button's widgets using\n   * the default appearance provider for buttons. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const button = form.getButton('some.button.field')\n   * button.defaultUpdateAppearances(helvetica)\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   */\n  defaultUpdateAppearances(font: PDFFont) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    this.updateAppearances(font);\n  }\n\n  /**\n   * Update the appearance streams for each of this button's widgets using\n   * the given appearance provider. If no `provider` is passed, the default\n   * appearance provider for buttons will be used. For example:\n   * ```js\n   * const helvetica = await pdfDoc.embedFont(StandardFonts.Helvetica)\n   * const button = form.getButton('some.button.field')\n   * button.updateAppearances(helvetica, (field, widget, font) => {\n   *   ...\n   *   return {\n   *     normal: drawButton(...),\n   *     down: drawButton(...),\n   *   }\n   * })\n   * ```\n   * @param font The font to be used for creating the appearance streams.\n   * @param provider Optionally, the appearance provider to be used for\n   *                 generating the contents of the appearance streams.\n   */\n  updateAppearances(\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFButton>,\n  ) {\n    assertIs(font, 'font', [[PDFFont, 'PDFFont']]);\n    assertOrUndefined(provider, 'provider', [Function]);\n\n    const widgets = this.acroField.getWidgets();\n    for (let idx = 0, len = widgets.length; idx < len; idx++) {\n      const widget = widgets[idx];\n      this.updateWidgetAppearance(widget, font, provider);\n    }\n  }\n\n  private updateWidgetAppearance(\n    widget: PDFWidgetAnnotation,\n    font: PDFFont,\n    provider?: AppearanceProviderFor<PDFButton>,\n  ) {\n    const apProvider = provider ?? defaultButtonAppearanceProvider;\n    const appearances = normalizeAppearance(apProvider(this, widget, font));\n    this.updateWidgetAppearanceWithFont(widget, font, appearances);\n  }\n}\n","import React, { useEffect } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { toast, ToastContainer } from \"react-toastify\";\nimport \"react-toastify/dist/ReactToastify.css\";\nimport \"./PaymentSucess.css\"; // Import the CSS file\nimport axios from \"axios\";\nimport { PDFDocument, rgb, StandardFonts } from \"pdf-lib\";\nimport baseUrl from \"../../baseUrl\";\n\nconst PaymentSuccess = () => {\n  const location = useLocation();\n  const navigate = useNavigate();\n  const queryParams = new URLSearchParams(location.search);\n  const paymentIntent = queryParams.get(\"payment_intent\") || \"N/A\";\n  const redirectStatus = queryParams.get(\"redirect_status\");\n  const userId = queryParams.get(\"userId\");\n  useEffect(() => {\n    if (redirectStatus === \"succeeded\") {\n      toast.success(\"Payment succeeded!\");\n      datapusher();\n    } else {\n      toast.error(\"Payment failed or was canceled.\");\n    }\n  }, [redirectStatus]);\n\n  const handleContinueShopping = () => {\n    navigate(`/dashboard/${userId}`, { replace: true });\n  };\n  const datapusher = async () => {\n    try {\n      const response = await axios.patch(\n        `${baseUrl}/api/v1/user/update/${userId}`\n      );\n      if(response.status===200){\n        console.log(\"success\");\n        \n      }\n    } catch (error) {\n      console.log(error);\n    }\n  };\n  const generateInvoice = async () => {\n    try {\n      // Fetch user details\n      const userResponse = await axios.get(\n        `${baseUrl}/api/v1/user/usercarddetails/${userId}`\n      );\n      console.log(\"User Data:\", userResponse.data.data);\n\n      const userName = userResponse.data.data.firstName || \"User\";\n      const amount = \"100 Pounds\"; // Static amount\n\n      // Create a new PDF document\n      const pdfDoc = await PDFDocument.create();\n      const page = pdfDoc.addPage([600, 400]);\n      const { width, height } = page.getSize();\n\n      // Correct way to embed standard fonts\n      const boldFont = await pdfDoc.embedFont(StandardFonts.HelveticaBold);\n      const regularFont = await pdfDoc.embedFont(StandardFonts.Helvetica);\n\n      // Define styles\n      const fontSize = 12;\n      const titleSize = 20;\n      const sectionTitleSize = 14;\n      const lineHeight = 24;\n      let yPos = height - 50;\n\n      // Invoice Title\n      page.drawText(\"PAYMENT INVOICE\", {\n        x: width / 2 - 60,\n        y: yPos,\n        size: titleSize,\n        color: rgb(0, 0, 0),\n        font: boldFont, // Use the correct bold font reference\n      });\n      yPos -= lineHeight * 1.5;\n\n      // Company & Invoice Details\n      page.drawText(\"Ezhava Matrimony\", {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: regularFont,\n        color: rgb(0, 0, 0),\n      });\n      page.drawText(`Invoice No: INV-${Math.floor(Math.random() * 10000)}`, {\n        x: 400,\n        y: yPos,\n        size: fontSize,\n        font: regularFont,\n        color: rgb(0, 0, 0),\n      });\n      yPos -= lineHeight;\n\n      page.drawText(`Date: ${new Date().toLocaleDateString()}`, {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: regularFont,\n        color: rgb(0, 0, 0),\n      });\n      yPos -= lineHeight;\n\n      // Invoice Details Section\n      page.drawText(\"BILL TO:\", {\n        x: 50,\n        y: yPos,\n        size: sectionTitleSize,\n        font: boldFont,\n        color: rgb(0, 0, 0.8),\n      });\n      yPos -= lineHeight;\n\n      page.drawText(`Account Holder: ${userName}`, {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: regularFont,\n        color: rgb(0.2, 0.2, 0.2),\n      });\n      yPos -= lineHeight;\n\n      // Payment Details Section\n      page.drawText(\"PAYMENT DETAILS:\", {\n        x: 50,\n        y: yPos,\n        size: sectionTitleSize,\n        font: boldFont,\n        color: rgb(0, 0, 0.8),\n      });\n      yPos -= lineHeight;\n\n      page.drawText(`Transaction ID: ${paymentIntent}`, {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: regularFont,\n        color: rgb(0.2, 0.2, 0.2),\n      });\n      yPos -= lineHeight;\n      page.drawText(`Amount Paid: ${amount}`, {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: boldFont,\n        color: rgb(0, 0.5, 0),\n      });\n      yPos -= lineHeight;\n      page.drawText(`Status: Payment Succeeded`, {\n        x: 50,\n        y: yPos,\n        size: fontSize,\n        font: boldFont,\n        color: rgb(0, 0.5, 0),\n      });\n      yPos -= lineHeight * 2;\n\n      // Footer\n\n      // Serialize the PDFDocument to bytes (Uint8Array)\n      const pdfBytes = await pdfDoc.save();\n\n      // Create a Blob and trigger download\n      const blob = new Blob([pdfBytes], { type: \"application/pdf\" });\n      const link = document.createElement(\"a\");\n      link.href = URL.createObjectURL(blob);\n      link.download = `invoice_${paymentIntent}.pdf`;\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n    } catch (error) {\n      console.error(\"Error generating invoice:\", error);\n      toast.error(\"Failed to generate invoice\");\n    }\n  };\n\n  return (\n    <div className=\"payment-success-container\">\n      <ToastContainer\n        position=\"bottom-right\"\n        autoClose={3000}\n        style={{ zIndex: 9999 }}\n      />\n      <div className=\"payment-success-card\">\n        <h1 className=\"payment-success-title\">Payment Successful!</h1>\n        <p className=\"payment-success-message\">\n          Thank you for your purchase. Your payment was successful.\n        </p>\n        <div className=\"payment-details\">\n          <p>\n            <strong>Payment Intent ID:</strong> {paymentIntent}\n          </p>\n          <p>\n            <strong>Status:</strong> {redirectStatus}\n          </p>\n        </div>\n        <div className=\"buttonClass\">\n          <button\n            className=\"continue-shopping-button\"\n            onClick={handleContinueShopping}\n          >\n            Continue\n          </button>\n          <button\n            className=\"continue-shopping-button2 \"\n            onClick={generateInvoice}\n          >\n            Download Invoice\n          </button>\n        </div>\n      </div>\n    </div>\n  );\n};\n\nexport default PaymentSuccess;\n","import { Navigate, Outlet } from \"react-router-dom\";\nimport { useSelector } from \"react-redux\";\n\nconst ProtectedRoute = ({ allowedRoles }) => {\n  const { token, role } = useSelector((state) => state.user);\n\n\n  const parsedRole = parseInt(role);\n\n  if (!token) {\n    return <Navigate to=\"/\" replace />;\n  }\n\n  if (!allowedRoles.includes(parsedRole)) {\n    return <Navigate to=\"/\" replace />;\n  }\n\n  return <Outlet />;\n};\n\nexport default ProtectedRoute;\n","import \"./App.css\";\nimport { BrowserRouter, Routes, Route } from \"react-router-dom\";\nimport LoginPAge from \"./pages/LoginPage/LoginPAge\";\nimport FormPage1 from \"./pages/FormPage1/FormPage1\";\nimport LandingPage from \"./pages/LandingPage/LandingPage\";\nimport FormPage2 from \"./pages/FormPage2/FormPage2\";\nimport FormPage4 from \"./pages/FormPage4/FormPage4\";\nimport FormPage3 from \"./pages/FormPage3/FormPage3\";\nimport Formpage5 from \"./pages/FormPage5/FormPage5\";\nimport Dashboard from \"./pages/Dashboard/Dashboard\";\nimport OtpPage from \"./pages/Otppage/OtpPage\";\nimport AdminProfile from \"./pages/Admin/adminDashboard/Adimindashboard\";\nimport Report from \"./pages/Admin/AdminReportPage/AdminReportPage\";\nimport TopRecommendation from \"./pages/TopRecomendation/TopRecommendation\";\nimport Settings from \"./pages/Admin/settings/Settings\";\nimport AdminUserProfileView from \"./pages/Admin/adminprofile/Adminprofile\";\nimport GetFullUser from \"./pages/Admin/userPage/GetFullUser\";\nimport AllMatches from \"./pages/AllMatches/AllMatches\";\nimport AdminLanding from \"./pages/Admin/adminLoginPage/AdminLogin\";\nimport Report1 from \"./pages/ReportViolation/Report1\";\nimport UserMain from \"./pages/UserMain/UserMain\";\nimport UserSettings from \"./pages/UserSettings/UserSettings\";\nimport LikedProfiles from \"./pages/LikedProfiles/LikedProfiles\";\nimport ResetPassword from \"./pages/Admin/Passwordreset/PasswordReset\";\nimport MyProfile from \"./pages/MyProfile/MyProfile\";\nimport AdminFullReport from \"./pages/Admin/Reports/GetFullReport\";\nimport AdminSideUserReport from \"./pages/Admin/Reports/Report\";\nimport ProfileVerification from \"./pages/Admin/Profile/Profile\";\nimport UnverifiedUsers from \"./pages/Admin/Profile/GetFullProfile\";\nimport AdminUserVerification from \"./pages/Admin/AdminProfileVerification/AdminVerififcation\";\nimport { loadStripe } from \"@stripe/stripe-js\";\nimport Checkout from \"./pages/Checkout/Checkout\";\nimport UserPasswordReset from \"./pages/UserPasswordReset/PasswordReset\";\nimport PaymentSuccess from \"./pages/Checkout/PaymentSuccess\";\nimport ProtectedRoute from \"./component/ProtectedRoute/ProtectedRoute\";\nfunction App() {\n\n  return (\n    <div className=\"App\">\n      <BrowserRouter>\n        <Routes>\n          <Route path=\"/\" element={<LandingPage />} />\n          <Route path=\"/register\" element={<LoginPAge />} />\n          <Route path=\"/OtpPage\" element={<OtpPage />} />\n          <Route\n            path=\"/resetPasswordUser/:id/:token\"\n            element={<UserPasswordReset />}\n          />\n          <Route element={<ProtectedRoute allowedRoles={[300]} />}>\n            <Route path=\"/formpage1\" element={<FormPage1 />} />\n            <Route path=\"/formpage2\" element={<FormPage2 />} />\n            <Route path=\"/formpage3\" element={<FormPage3 />} />\n            <Route path=\"/formpage5\" element={<Formpage5 />} />\n            <Route path=\"/formpage4\" element={<FormPage4 />} />\n            <Route path=\"/dashboard/:userId\" element={<Dashboard />} />\n            <Route\n              path=\"/toprecommendations/:id\"\n              element={<TopRecommendation />}\n            />\n            <Route path=\"/allmatches/:id\" element={<AllMatches />} />\n            <Route path=\"/report/:userId\" element={<Report1 />} />\n            <Route path=\"/mainuser/:id\" element={<UserMain />} />\n            <Route path=\"/Usettings\" element={<UserSettings />} />\n            <Route path=\"/Usettings/:id\" element={<UserSettings />} />\n\n            <Route path=\"/likedprofiles/:id\" element={<LikedProfiles />} />\n            <Route path=\"/myprofile/:id\" element={<MyProfile />} />\n          </Route>\n\n          {/* Admin routes */}\n          <Route element={<ProtectedRoute allowedRoles={[500]} />}>\n            <Route path=\"/Admindashboard\" element={<AdminProfile />} />\n            <Route path=\"/Adminreport\" element={<Report />} />\n            <Route path=\"/Adminsettings/:token\" element={<Settings />} />\n            <Route\n              path=\"/Adminusersview/:id\"\n              element={<AdminUserProfileView />}\n            />\n            <Route\n              path=\"/Adminreportview/:id\"\n              element={<AdminSideUserReport />}\n            />\n            <Route path=\"/getFullUser\" element={<GetFullUser />} />\n            <Route path=\"/resetPassword/:token\" element={<ResetPassword />} />\n            <Route path=\"/getFullReport\" element={<AdminFullReport />} />\n            <Route\n              path=\"/profileVerification\"\n              element={<ProfileVerification />}\n            />\n            <Route path=\"/unverifieduser\" element={<UnverifiedUsers />} />\n            <Route\n              path=\"/userProfileVerify/:id\"\n              element={<AdminUserVerification />}\n            />\n          </Route>\n\n          <Route path=\"/adminlanding\" element={<AdminLanding />} />\n\n          {/* <Route path=\"main/mainuser/:id\" element={<UserMain/>} /> */}\n          <Route path=\"/checkout/:userId\" element={<Checkout />} />\n          <Route path=\"/payment-success/\" element={<PaymentSuccess />} />\n        </Routes>\n\n        \n      </BrowserRouter>\n    </div>\n  );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n  if (onPerfEntry && onPerfEntry instanceof Function) {\n    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n      getCLS(onPerfEntry);\n      getFID(onPerfEntry);\n      getFCP(onPerfEntry);\n      getLCP(onPerfEntry);\n      getTTFB(onPerfEntry);\n    });\n  }\n};\n\nexport default reportWebVitals;\n","function _typeof(obj) { 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 _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, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n\nexport var PersistGate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n  _inherits(PersistGate, _PureComponent);\n\n  function PersistGate() {\n    var _getPrototypeOf2;\n\n    var _this;\n\n    _classCallCheck(this, PersistGate);\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(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n    _defineProperty(_assertThisInitialized(_this), \"state\", {\n      bootstrapped: false\n    });\n\n    _defineProperty(_assertThisInitialized(_this), \"_unsubscribe\", void 0);\n\n    _defineProperty(_assertThisInitialized(_this), \"handlePersistorState\", function () {\n      var persistor = _this.props.persistor;\n\n      var _persistor$getState = persistor.getState(),\n          bootstrapped = _persistor$getState.bootstrapped;\n\n      if (bootstrapped) {\n        if (_this.props.onBeforeLift) {\n          Promise.resolve(_this.props.onBeforeLift()).finally(function () {\n            return _this.setState({\n              bootstrapped: true\n            });\n          });\n        } else {\n          _this.setState({\n            bootstrapped: true\n          });\n        }\n\n        _this._unsubscribe && _this._unsubscribe();\n      }\n    });\n\n    return _this;\n  }\n\n  _createClass(PersistGate, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n      this.handlePersistorState();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this._unsubscribe && this._unsubscribe();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (process.env.NODE_ENV !== 'production') {\n        if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n      }\n\n      if (typeof this.props.children === 'function') {\n        return this.props.children(this.state.bootstrapped);\n      }\n\n      return this.state.bootstrapped ? this.props.children : this.props.loading;\n    }\n  }]);\n\n  return PersistGate;\n}(PureComponent);\n\n_defineProperty(PersistGate, \"defaultProps\", {\n  children: null,\n  loading: null\n});","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { 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 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(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\n/*\n  autoMergeLevel1: \n    - merges 1 level of substate\n    - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n  var debug = _ref.debug;\n\n  var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n  if (inboundState && _typeof(inboundState) === 'object') {\n    Object.keys(inboundState).forEach(function (key) {\n      // ignore _persist data\n      if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n      if (originalState[key] !== reducedState[key]) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n        return;\n      } // otherwise hard set the new value\n\n\n      newState[key] = inboundState[key];\n    });\n  }\n\n  if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n  return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n  // defaults\n  var blacklist = config.blacklist || null;\n  var whitelist = config.whitelist || null;\n  var transforms = config.transforms || [];\n  var throttle = config.throttle || 0;\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  var storage = config.storage;\n  var serialize;\n\n  if (config.serialize === false) {\n    serialize = function serialize(x) {\n      return x;\n    };\n  } else if (typeof config.serialize === 'function') {\n    serialize = config.serialize;\n  } else {\n    serialize = defaultSerialize;\n  }\n\n  var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n  var lastState = {};\n  var stagedState = {};\n  var keysToProcess = [];\n  var timeIterator = null;\n  var writePromise = null;\n\n  var update = function update(state) {\n    // add any changed keys to the queue\n    Object.keys(state).forEach(function (key) {\n      if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n      if (lastState[key] === state[key]) return; // value unchanged? noop\n\n      if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n      keysToProcess.push(key); // add key to queue\n    }); //if any key is missing in the new state which was present in the lastState,\n    //add it for processing too\n\n    Object.keys(lastState).forEach(function (key) {\n      if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n        keysToProcess.push(key);\n      }\n    }); // start the time iterator if not running (read: throttle)\n\n    if (timeIterator === null) {\n      timeIterator = setInterval(processNextKey, throttle);\n    }\n\n    lastState = state;\n  };\n\n  function processNextKey() {\n    if (keysToProcess.length === 0) {\n      if (timeIterator) clearInterval(timeIterator);\n      timeIterator = null;\n      return;\n    }\n\n    var key = keysToProcess.shift();\n    var endState = transforms.reduce(function (subState, transformer) {\n      return transformer.in(subState, key, lastState);\n    }, lastState[key]);\n\n    if (endState !== undefined) {\n      try {\n        stagedState[key] = serialize(endState);\n      } catch (err) {\n        console.error('redux-persist/createPersistoid: error serializing state', err);\n      }\n    } else {\n      //if the endState is undefined, no need to persist the existing serialized content\n      delete stagedState[key];\n    }\n\n    if (keysToProcess.length === 0) {\n      writeStagedState();\n    }\n  }\n\n  function writeStagedState() {\n    // cleanup any removed keys just before write.\n    Object.keys(stagedState).forEach(function (key) {\n      if (lastState[key] === undefined) {\n        delete stagedState[key];\n      }\n    });\n    writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n  }\n\n  function passWhitelistBlacklist(key) {\n    if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n    if (blacklist && blacklist.indexOf(key) !== -1) return false;\n    return true;\n  }\n\n  function onWriteFail(err) {\n    // @TODO add fail handlers (typically storage full)\n    if (writeFailHandler) writeFailHandler(err);\n\n    if (err && process.env.NODE_ENV !== 'production') {\n      console.error('Error storing data', err);\n    }\n  }\n\n  var flush = function flush() {\n    while (keysToProcess.length !== 0) {\n      processNextKey();\n    }\n\n    return writePromise || Promise.resolve();\n  }; // return `persistoid`\n\n\n  return {\n    update: update,\n    flush: flush\n  };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n  return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n  var transforms = config.transforms || [];\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  var storage = config.storage;\n  var debug = config.debug;\n  var deserialize;\n\n  if (config.deserialize === false) {\n    deserialize = function deserialize(x) {\n      return x;\n    };\n  } else if (typeof config.deserialize === 'function') {\n    deserialize = config.deserialize;\n  } else {\n    deserialize = defaultDeserialize;\n  }\n\n  return storage.getItem(storageKey).then(function (serialized) {\n    if (!serialized) return undefined;else {\n      try {\n        var state = {};\n        var rawState = deserialize(serialized);\n        Object.keys(rawState).forEach(function (key) {\n          state[key] = transforms.reduceRight(function (subState, transformer) {\n            return transformer.out(subState, key, rawState);\n          }, deserialize(rawState[key]));\n        });\n        return state;\n      } catch (err) {\n        if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n        throw err;\n      }\n    }\n  });\n}\n\nfunction defaultDeserialize(serial) {\n  return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n  var storage = config.storage;\n  var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n  return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n  if (err && process.env.NODE_ENV !== 'production') {\n    console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n  }\n}","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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(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 { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n  @TODO add validation / handling for:\n  - persisting a reducer which has nested _persist\n  - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!config) throw new Error('config is required for persistReducer');\n    if (!config.key) throw new Error('key is required in persistor config');\n    if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n  }\n\n  var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n  var debug = config.debug || false;\n  var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n  var getStoredState = config.getStoredState || defaultGetStoredState;\n  var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n  var _persistoid = null;\n  var _purge = false;\n  var _paused = true;\n\n  var conditionalUpdate = function conditionalUpdate(state) {\n    // update the persistoid only if we are rehydrated and not paused\n    state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n    return state;\n  };\n\n  return function (state, action) {\n    var _ref = state || {},\n        _persist = _ref._persist,\n        rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n    var restState = rest;\n\n    if (action.type === PERSIST) {\n      var _sealed = false;\n\n      var _rehydrate = function _rehydrate(payload, err) {\n        // dev warning if we are already sealed\n        if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n        if (!_sealed) {\n          action.rehydrate(config.key, payload, err);\n          _sealed = true;\n        }\n      };\n\n      timeout && setTimeout(function () {\n        !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n      }, timeout); // @NOTE PERSIST resumes if paused.\n\n      _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n      if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n      if (_persist) {\n        // We still need to call the base reducer because there might be nested\n        // uses of persistReducer which need to be aware of the PERSIST action\n        return _objectSpread({}, baseReducer(restState, action), {\n          _persist: _persist\n        });\n      }\n\n      if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n      action.register(config.key);\n      getStoredState(config).then(function (restoredState) {\n        var migrate = config.migrate || function (s, v) {\n          return Promise.resolve(s);\n        };\n\n        migrate(restoredState, version).then(function (migratedState) {\n          _rehydrate(migratedState);\n        }, function (migrateErr) {\n          if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n          _rehydrate(undefined, migrateErr);\n        });\n      }, function (err) {\n        _rehydrate(undefined, err);\n      });\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: {\n          version: version,\n          rehydrated: false\n        }\n      });\n    } else if (action.type === PURGE) {\n      _purge = true;\n      action.result(purgeStoredState(config));\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === FLUSH) {\n      action.result(_persistoid && _persistoid.flush());\n      return _objectSpread({}, baseReducer(restState, action), {\n        _persist: _persist\n      });\n    } else if (action.type === PAUSE) {\n      _paused = true;\n    } else if (action.type === REHYDRATE) {\n      // noop on restState if purging\n      if (_purge) return _objectSpread({}, restState, {\n        _persist: _objectSpread({}, _persist, {\n          rehydrated: true\n        }) // @NOTE if key does not match, will continue to default else below\n\n      });\n\n      if (action.key === config.key) {\n        var reducedState = baseReducer(restState, action);\n        var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n        var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n        var _newState = _objectSpread({}, reconciledRest, {\n          _persist: _objectSpread({}, _persist, {\n            rehydrated: true\n          })\n        });\n\n        return conditionalUpdate(_newState);\n      }\n    } // if we have not already handled PERSIST, straight passthrough\n\n\n    if (!_persist) return baseReducer(state, action); // run base reducer:\n    // is state modified ? return original : return updated\n\n    var newState = baseReducer(restState, action);\n    if (newState === restState) return state;\n    return conditionalUpdate(_objectSpread({}, newState, {\n      _persist: _persist\n    }));\n  };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction 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(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(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\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n  registry: [],\n  bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n  var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n  var action = arguments.length > 1 ? arguments[1] : undefined;\n\n  switch (action.type) {\n    case REGISTER:\n      return _objectSpread({}, state, {\n        registry: [].concat(_toConsumableArray(state.registry), [action.key])\n      });\n\n    case REHYDRATE:\n      var firstIndex = state.registry.indexOf(action.key);\n\n      var registry = _toConsumableArray(state.registry);\n\n      registry.splice(firstIndex, 1);\n      return _objectSpread({}, state, {\n        registry: registry,\n        bootstrapped: registry.length === 0\n      });\n\n    default:\n      return state;\n  }\n};\n\nexport default function persistStore(store, options, cb) {\n  // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n  if (process.env.NODE_ENV !== 'production') {\n    var optionsToTest = options || {};\n    var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n    bannedKeys.forEach(function (k) {\n      if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n    });\n  }\n\n  var boostrappedCb = cb || false;\n\n  var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n  var register = function register(key) {\n    _pStore.dispatch({\n      type: REGISTER,\n      key: key\n    });\n  };\n\n  var rehydrate = function rehydrate(key, payload, err) {\n    var rehydrateAction = {\n      type: REHYDRATE,\n      payload: payload,\n      err: err,\n      key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n    };\n    store.dispatch(rehydrateAction);\n\n    _pStore.dispatch(rehydrateAction);\n\n    if (boostrappedCb && persistor.getState().bootstrapped) {\n      boostrappedCb();\n      boostrappedCb = false;\n    }\n  };\n\n  var persistor = _objectSpread({}, _pStore, {\n    purge: function purge() {\n      var results = [];\n      store.dispatch({\n        type: PURGE,\n        result: function result(purgeResult) {\n          results.push(purgeResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    flush: function flush() {\n      var results = [];\n      store.dispatch({\n        type: FLUSH,\n        result: function result(flushResult) {\n          results.push(flushResult);\n        }\n      });\n      return Promise.all(results);\n    },\n    pause: function pause() {\n      store.dispatch({\n        type: PAUSE\n      });\n    },\n    persist: function persist() {\n      store.dispatch({\n        type: PERSIST,\n        register: register,\n        rehydrate: rehydrate\n      });\n    }\n  });\n\n  if (!(options && options.manualPersist)) {\n    persistor.persist();\n  }\n\n  return persistor;\n}","import { configureStore } from \"@reduxjs/toolkit\";\nimport storage from \"redux-persist/lib/storage\"; // Uses localStorage\nimport { persistReducer, persistStore } from \"redux-persist\";\nimport userReducer from \"../features/slice\"; \n\nconst persistConfig = {\n  key: \"user\", \n  storage,\n};\n\nconst persistedUserReducer = persistReducer(persistConfig, userReducer);\n\nconst store = configureStore({\n  reducer: {\n    user: persistedUserReducer,\n  },\n});\n\nexport const persistor = persistStore(store); // Create persistor\nexport default store;\n","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from 'redux';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<Middlewares<S>>, E extends Tuple<Enhancers> = Tuple<Enhancers>, P = S> {\n  /**\n   * A single reducer function that will be used as the root reducer, or an\n   * object of slice reducers that will be passed to `combineReducers()`.\n   */\n  reducer: Reducer<S, A, P> | ReducersMapObject<S, A, P>;\n\n  /**\n   * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n   * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n   *\n   * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n   * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n   */\n  middleware?: (getDefaultMiddleware: GetDefaultMiddleware<S>) => M;\n\n  /**\n   * Whether to enable Redux DevTools integration. Defaults to `true`.\n   *\n   * Additional configuration can be done by passing Redux DevTools options\n   */\n  devTools?: boolean | DevToolsOptions;\n\n  /**\n   * The initial state, same as Redux's createStore.\n   * You may optionally specify it to hydrate the state\n   * from the server in universal apps, or to restore a previously serialized\n   * user session. If you use `combineReducers()` to produce the root reducer\n   * function (either directly or indirectly by passing an object as `reducer`),\n   * this must be an object with the same shape as the reducer map keys.\n   */\n  // we infer here, and instead complain if the reducer doesn't match\n  preloadedState?: P;\n\n  /**\n   * The store enhancers to apply. See Redux's `createStore()`.\n   * All enhancers will be included before the DevTools Extension enhancer.\n   * If you need to customize the order of enhancers, supply a callback\n   * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n   * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n   * If you only need to add middleware, you can use the `middleware` parameter instead.\n   */\n  enhancers?: (getDefaultEnhancers: GetDefaultEnhancers<M>) => E;\n}\nexport type Middlewares<S> = ReadonlyArray<Middleware<{}, S>>;\ntype Enhancers = ReadonlyArray<StoreEnhancer>;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore<S = any, A extends Action = UnknownAction, E extends Enhancers = Enhancers> = ExtractStoreExtensions<E> & Store<S, A, UnknownIfNonSpecific<ExtractStateExtensions<E>>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore<S = any, A extends Action = UnknownAction, M extends Tuple<Middlewares<S>> = Tuple<[ThunkMiddlewareFor<S>]>, E extends Tuple<Enhancers> = Tuple<[StoreEnhancer<{\n  dispatch: ExtractDispatchExtensions<M>;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions<S, A, M, E, P>): EnhancedStore<S, A, E> {\n  const getDefaultMiddleware = buildGetDefaultMiddleware<S>();\n  const {\n    reducer = undefined,\n    middleware,\n    devTools = true,\n    preloadedState = undefined,\n    enhancers = undefined\n  } = options || {};\n  let rootReducer: Reducer<S, A, P>;\n  if (typeof reducer === 'function') {\n    rootReducer = reducer;\n  } else if (isPlainObject(reducer)) {\n    rootReducer = combineReducers(reducer) as unknown as Reducer<S, A, P>;\n  } else {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n  }\n  if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n  }\n  let finalMiddleware: Tuple<Middlewares<S>>;\n  if (typeof middleware === 'function') {\n    finalMiddleware = middleware(getDefaultMiddleware);\n    if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n    }\n  } else {\n    finalMiddleware = getDefaultMiddleware();\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n  }\n  let finalCompose = compose;\n  if (devTools) {\n    finalCompose = composeWithDevTools({\n      // Enable capture of stack traces for dispatched Redux actions\n      trace: process.env.NODE_ENV !== 'production',\n      ...(typeof devTools === 'object' && devTools)\n    });\n  }\n  const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n  const getDefaultEnhancers = buildGetDefaultEnhancers<M>(middlewareEnhancer);\n  if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(5) : '`enhancers` field must be a callback');\n  }\n  let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n  if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(6) : '`enhancers` callback must return an array');\n  }\n  if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n    throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(7) : 'each enhancer provided to configureStore must be a function');\n  }\n  if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n    console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n  }\n  const composedEnhancer: StoreEnhancer<any> = finalCompose(...storeEnhancers);\n  return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware<Ext1, S>(middleware1: Middleware<Ext1, S, any>): StoreEnhancer<{\n  dispatch: Ext1;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware<Ext1, Ext2, Ext3, Ext4, Ext5, S>(middleware1: Middleware<Ext1, S, any>, middleware2: Middleware<Ext2, S, any>, middleware3: Middleware<Ext3, S, any>, middleware4: Middleware<Ext4, S, any>, middleware5: Middleware<Ext5, S, any>): StoreEnhancer<{\n  dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware<Ext, S = any>(...middlewares: Middleware<any, S, any>[]): StoreEnhancer<{\n  dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<any> {\n  return createStore => (reducer, preloadedState) => {\n    const store = createStore(reducer, preloadedState);\n    let dispatch: Dispatch = () => {\n      throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n    };\n    const middlewareAPI: MiddlewareAPI = {\n      getState: store.getState,\n      dispatch: (action, ...args) => dispatch(action, ...args)\n    };\n    const chain = middlewares.map(middleware => middleware(middlewareAPI));\n    dispatch = compose<typeof dispatch>(...chain)(store.dispatch);\n    return {\n      ...store,\n      dispatch\n    };\n  };\n}","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\nimport {Provider} from \"react-redux\";\nimport { PersistGate } from \"redux-persist/integration/react\";\nimport store, { persistor } from \"./store/store\"\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n  <React.StrictMode>\n  <Provider store={store}>\n    <PersistGate loading={null} persistor={persistor}>\n      <App />\n    </PersistGate>\n  </Provider>\n</React.StrictMode>\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["e","require","t","n","Object","create","keys","forEach","r","getOwnPropertyDescriptor","defineProperty","get","enumerable","default","freeze","o","a","exports","Text","Link","FreeText","Line","Square","Circle","Polygon","Polyline","Highlight","Underline","Squiggly","StrikeOut","Stamp","Caret","Ink","Popup","FileAttachment","i","setPrototypeOf","__proto__","Array","prototype","hasOwnProperty","call","c","TypeError","String","this","constructor","s","l","assign","arguments","length","apply","RightToLeft","LeftToRight","u","p","createContext","currentTheme","direction","setCurrentTheme","d","push","join","f","window","useLayoutEffect","useEffect","g","useRef","once","threshold","onVisibilityChanged","current","IntersectionObserver","isIntersecting","intersectionRatio","isVisible","ratio","unobserve","disconnect","observe","v","children","ignoreDirection","size","useContext","concat","createElement","className","focusable","height","viewBox","width","h","m","testId","onClick","type","x","useState","ref","style","w","ariaLabel","autoFocus","placeholder","value","onChange","onKeyDown","E","b","y","S","target","scrollX","scrollY","focus","scrollTo","ExitFullScreen","FullScreenChange","FullScreenElement","FullScreenEnabled","RequestFullScreen","_","P","document","R","M","Promise","resolve","k","C","clearTimeout","useCallback","setTimeout","T","L","NotRenderedYet","Rendering","Rendered","O","F","D","doc","numPages","loadingTask","docId","useMemo","fill","map","pageIndex","renderStatus","visibility","currentRenderingPage","startRange","endRange","visibilities","getHighestPriorityPage","slice","filter","isInRange","markNotRendered","markRendered","markRendering","setOutOfRange","setRange","setVisibility","I","core","askingPassword","requirePasswordToOpen","submit","wrongPassword","tryAgain","pageLabel","A","l10n","setL10n","H","N","V","Element","shadowRoot","composedPath","contains","capture","addEventListener","removeEventListener","z","key","B","ariaControlsSuffix","closeOnClickOutside","closeOnEscape","onToggle","getComputedStyle","body","overflow","clientHeight","getBoundingClientRect","maxHeight","id","role","tabIndex","W","Close","Open","Toggle","j","q","opened","toggle","U","content","isOpened","Fragment","TopLeft","TopCenter","TopRight","RightTop","RightCenter","RightBottom","BottomLeft","BottomCenter","BottomRight","LeftTop","LeftCenter","LeftBottom","Z","J","G","Y","K","X","Q","$","ee","top","left","te","customClassName","position","ne","offset","targetRef","onClose","re","oe","contentRef","Normal","Entering","Entered","EnteredCompletely","Exitting","Exited","PreRender","DidRender","Attachments","Bookmarks","ContentGroup","Default","FullScreen","Thumbnails","RequiredPassword","WrongPassword","Backward","Forward","Page","Horizontal","Vertical","Wrapped","ActualSize","PageFit","PageWidth","DualPage","DualPageWithCover","SinglePage","ae","ie","reduce","ce","name","bottomOffset","leftOffset","scaleTo","se","Map","le","ue","num","gen","pe","set","de","reject","getPage","then","fe","getDestination","has","getPageIndex","Solid","Dashed","Beveled","Inset","ge","ve","RegExp","he","parseInt","me","contentsObj","str","contents","xe","titleObj","title","we","annotation","modificationDate","exec","Date","UTC","toLocaleDateString","toLocaleTimeString","querySelector","zIndex","annotationType","split","Click","Hover","Ee","be","ignoreBorder","hasPopup","isRenderable","page","viewport","rect","closeOnHover","openOnHover","toggleOnClick","view","Math","min","max","borderColor","borderRadius","borderStyle","borderWidth","borderBottomStyle","horizontalCornerRadius","verticalCornerRadius","color","popup","slot","attrs","transform","transformOrigin","ye","onMouseEnter","onMouseLeave","Se","preserveAspectRatio","version","cy","rx","ry","stroke","strokeWidth","_e","file","filename","URL","createObjectURL","Blob","display","href","setAttribute","pop","appendChild","click","removeChild","revokeObjectURL","onDoubleClick","Pe","Re","parentType","indexOf","parentId","parseFloat","Me","childAnnotation","quadPoints","ke","inkLists","points","Ce","x1","lineCoordinates","x2","y1","y2","Te","Le","Oe","Fe","Ie","annotationContainerRef","outlines","scale","onExecuteNamedAction","onJumpFromLinkAnnotation","onJumpToDest","dest","find","url","action","unsafeUrl","replace","fromCharCode","trim","match","test","De","rel","newWindow","preventDefault","setProperty","removeProperty","bottom","label","Ae","vertices","He","Ne","Ve","ze","Be","We","je","qe","Ue","Ze","Je","Ge","toLowerCase","Ye","Ke","annotations","plugins","rotation","getViewport","clone","dontFlip","onAnnotationLayerRender","container","Xe","renderAnnotations","loading","getAnnotations","intent","Qe","$e","floor","et","canvasLayerRef","onRenderCanvasCompleted","cancel","removeAttribute","onCanvasLayerRender","ele","status","devicePixelRatio","sqrt","hidden","getContext","alpha","render","canvasContext","promise","tt","getOperatorList","innerHTML","SVGGraphics","commonObjs","objs","getSVG","nt","containerRef","onRenderTextCompleted","querySelectorAll","onTextLayerRender","getTextContent","renderTextLayer","textContent","textContentSource","classList","add","rt","measureRef","pageRotation","pageSize","renderPage","renderQueueKey","shouldRender","viewMode","onRenderCompleted","onRotatePage","abs","pageWidth","pageHeight","canvasLayer","textLayer","annotationLayer","canvasLayerRendered","svgLayer","textLayerRendered","renderPageLayer","textLayerRef","ot","Both","at","pow","it","ct","st","passive","ut","pt","dt","ft","gt","vt","ht","mt","xt","wt","Et","enableSmoothScroll","isRtl","numberOfItems","parentRef","setRenderRange","sizes","scrollMode","elementRef","scrollDirection","onSmoothScroll","scrollLeft","scrollTop","cancelAnimationFrame","requestAnimationFrame","scrollOffset","lt","useReducer","ResizeObserver","contentRect","measurements","getAttribute","end","index","start","endPage","startPage","maxVisbilityIndex","minWidth","boundingClientRect","isSmoothScrolling","virtualItems","getContainerStyles","getItemContainerStyles","getItemStyles","scrollToItem","scrollToNextItem","scrollToPreviousItem","zoom","bt","clientWidth","St","items","_t","Pt","Rt","Mt","getCurrentPage","getCurrentScrollMode","jumpToPage","innerHeight","innerWidth","backgroundColor","enterFullScreenMode","exitFullScreenMode","fullScreenMode","kt","buildPageStyles","transformSize","Ct","Tt","currentFile","defaultScale","initialPage","initialRotation","initialScale","pageLayout","pageSizes","viewerState","onDocumentLoad","onOpenFile","onPageChange","onRotate","onZoom","shift","dequeue","enqueue","getNextDestination","getPreviousDestination","markVisitedDestination","yt","getOutline","clear","onResize","onViewerStateChange","FileReader","readAsArrayBuffer","onload","Uint8Array","result","pagesRotation","rotatedPage","getPagesContainer","getViewerState","jumpToDestination","jumpToNextDestination","jumpToPreviousDestination","jumpToNextPage","jumpToPreviousPage","openFile","rotate","rotatePage","setViewerState","switchScrollMode","switchViewMode","install","uninstall","currentPage","subSlot","renderViewer","pagesContainerRef","themeContext","Lt","Ot","all","parentElement","findIndex","Ft","Dt","verifyPassword","passwordStatus","It","renderProtectedView","onDocumentAskPassword","At","Ht","error","Nt","percentages","Vt","characterMap","httpHeaders","renderError","renderLoader","transformGetDocumentParams","withCredentials","PDFWorker","now","worker","data","cMapUrl","cMapPacked","isCompressed","getDocument","onPassword","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","onProgress","total","loaded","destroyed","message","destroy","Bt","Viewer","fileUrl","localization","theme","onSwitchTheme","shouldLoad","every","matchMedia","matches","zt","Provider","Worker","workerUrl","GlobalWorkerOptions","workerSrc","module","React","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_typeof","obj","Symbol","iterator","configurable","writable","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","isArray","_i","_s","_arr","_n","_d","next","done","err","minLen","_arrayLikeToArray","toString","from","len","arr2","getDefaultExportFromCjs","__esModule","ReactPropTypesSecret_1","hasRequiredReactPropTypesSecret","factoryWithThrowingShims","hasRequiredFactoryWithThrowingShims","propTypes","requireReactPropTypesSecret","requireFactoryWithThrowingShims","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","useAttachEvent","event","cb","cbDefined","cbRef","decoratedCb","on","off","usePrevious","isUnknownObject","raw","isPromise","isStripe","elements","createToken","createPaymentMethod","confirmCardPayment","PLAIN_OBJECT_STR","isEqual","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","pred","extractAllowedOptionsUpdates","options","prevOptions","immutableKeys","newOptions","isUpdated","includes","console","warn","INVALID_STRIPE_ERROR$2","validateStripe","maybeStripe","errorMsg","undefined","parseStripeProp","tag","stripePromise","stripe","registerWithStripeJs","_registerWrapper","registerAppInfo","ElementsContext","displayName","parseElementsContext","ctx","useCase","Elements","_ref","rawStripeProp","parsed","_React$useState2","setContext","isMounted","safeSetContext","prevStripe","updates","update","useElementsContextWithUseCase","useCaseMessage","useElements","ElementsConsumer","_ref2","_excluded","CheckoutSdkContext","parseCheckoutSdkContext","CheckoutContext","extractCheckoutContextValue","checkoutSdk","sessionState","session","actions","INVALID_STRIPE_ERROR$1","CheckoutProvider","setSession","_React$useState4","initCheckoutCalledRef","initCheckout","_prevOptions$elements","_options$elementsOpti","clientSecret","previousAppearance","elementsOptions","appearance","currentAppearance","changeAppearance","checkoutContextValue","useCheckoutSdkContextWithUseCase","useCaseString","useElementsOrCheckoutSdkContextWithUseCase","checkoutSdkContext","elementsContext","useCheckout","capitalized","charAt","toUpperCase","createElementComponent","isServer","readyCallback","_ref$options","onBlur","onFocus","onReady","onEscape","onLoadError","onLoaderStart","onNetworksChange","onConfirm","onCancel","onShippingAddressChange","onShippingRateChange","setElement","domNode","newElement","mount","__elementType","EmbeddedCheckoutContext","useEmbeddedCheckoutContext","INVALID_STRIPE_ERROR","EmbeddedCheckoutProvider","embeddedCheckoutPromise","loadedStripe","embeddedCheckout","setStripeAndInitEmbeddedCheckout","initEmbeddedCheckout","fetchClientSecret","onComplete","onShippingDetailsChange","onLineItemsChange","EmbeddedCheckoutClientElement","unmount","EmbeddedCheckoutServerElement","EmbeddedCheckout","useStripe","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","ExpressCheckoutElement","CurrencySelectorElement","PaymentRequestButtonElement","LinkAuthenticationElement","AddressElement","ShippingAddressElement","PaymentMethodMessagingElement","AffirmMessageElement","AfterpayClearpayMessageElement","factory","canUseDOM","ExecutionEnvironment","canUseWorkers","canUseEventListeners","attachEvent","canUseViewport","screen","define","camel2hyphen","obj2mq","mq","features","feature","isDimension","query","pako","zlib_deflate","utils","strings","msg","ZStream","Deflate","level","method","chunkSize","windowBits","memLevel","strategy","to","opt","gzip","ended","chunks","strm","avail_out","deflateInit2","header","deflateSetHeader","dictionary","dict","string2buf","deflateSetDictionary","_dict_set","deflate","input","deflator","mode","_mode","next_in","avail_in","output","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","chunk","flattenChunks","deflateRaw","zlib_inflate","GZheader","Inflate","inflateInit2","Z_OK","inflateGetHeader","inflateSetDictionary","inflate","inflator","next_out_utf8","tail","utf8str","allowBufError","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_NEED_DICT","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","inflateRaw","ungzip","TYPED_OK","Uint16Array","Int32Array","_has","sources","buf","subarray","fnTyped","src","src_offs","dest_offs","pos","fnUntyped","setTyped","Buf16","Buf32","STR_APPLY_OK","STR_APPLY_UIA_OK","__","_utf8len","c2","m_pos","str_len","buf_len","charCodeAt","out","c_len","utf16buf","adler","s1","s2","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","crcTable","table","makeTable","crc","configuration_table","trees","adler32","crc32","MAX_MATCH","MIN_LOOKAHEAD","HCRC_STATE","BUSY_STATE","FINISH_STATE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_fast","flush","hash_head","bflush","match_length","_tr_tally","max_lazy_match","MIN_MATCH","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","HEAP_SIZE","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","MAX_BITS","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","ret","max_block_size","max_start","deflateInit","old_flush","beg","val","text","hcrc","extra","comment","time","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","xflags","extra_len","_in","_out","dmax","wsize","whave","wnext","s_window","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","dolen","dodist","sane","inflate_fast","inflate_table","TYPE","BAD","zswap32","InflateState","havedict","flags","check","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","copy","inflateInit","put","here_bits","here_op","here_val","last_bits","last_op","last_val","opts","hbuf","order","inf_leave","inflateInfo","MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","incr","low","mask","root","curr","drop","used","huff","base","base_index","count","offs","extra_index","LITERALS","L_CODES","D_CODES","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","send_bits","send_code","tree","bi_reverse","code","res","gen_codes","next_code","init_block","END_BLOCK","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","desc","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","REP_3_6","REPZ_3_10","REPZ_11_138","send_tree","static_init_done","stored_len","copy_block","LENGTH_CODES","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","BL_CODES","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","globalThis","cond","unreachable","baseUrl","addDefaultProtocol","startsWith","dots","tryConvertEncoding","stringToUTF8String","_unused","absoluteUrl","protocol","_isValidProtocol","_unused2","date","getUTCFullYear","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","_crypto","_crypto2","crypto","randomUUID","getRandomValues","random","bytesToString","verbosity","VerbosityLevel","INFOS","log","byteLength","arr1","ii","NormalizeRegex","NormalizationMap","replaceAll","p1","p2","normalize","Number","isInteger","encoding","decoder","TextDecoder","fatal","buffer","stringToBytes","decode","ex","strBuf","PDFStringTranslateTable","unescape","encodeURIComponent","isNodeJS","process","versions","nw","electron","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","STAMP","INK","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","Fo","Bl","PO","PC","PV","PI","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","ERRORS","WARNINGS","CMapCompressionType","BINARY","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","shadow","prop","nonSerializable","BaseException","bytes","MAX_ARGUMENT_COUNT","chunkEnd","PasswordException","super","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","FormatError","AbortException","FeatureTest","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","_unused3","isOffscreenCanvasSupported","OffscreenCanvas","platform","navigator","isWin","isMac","isCSSRoundSupported","_globalThis$CSS","_globalThis$CSS$suppo","CSS","supports","hexNumbers","Util","makeHexColor","scaleMinMax","minMax","temp","m1","m2","applyTransform","applyInverseTransform","getAxialAlignedBoundingBox","p3","p4","inverseTransform","singularValueDecompose2dScale","transpose","first","second","sx","sy","normalizeRect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x3","y3","tvalues","bounds","t1","t2","b2ac","sqrtb2ac","jlen","decodeURIComponent","escape","_settled","WeakMap","PromiseCapability","_classPrivateFieldInitSpec","_classPrivateFieldSet","reason","settled","_classPrivateFieldGet","AnnotationPrefix","_util","__w_pdfjs_require__","_annotation_storage","_display_utils","_font_loader","_displayNode_utils","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_displayFetch_stream","_displayNetwork","_displayNode_stream","_displaySvg","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","DefaultCanvasFactory","NodeCanvasFactory","DOMCanvasFactory","DefaultCMapReaderFactory","NodeCMapReaderFactory","DOMCMapReaderFactory","DefaultFilterFactory","NodeFilterFactory","DOMFilterFactory","DefaultStandardFontDataFactory","NodeStandardFontDataFactory","DOMStandardFontDataFactory","_src$password","_src$length","isArrayBuffer","range","task","PDFDocumentLoadingTask","getUrlProp","getDataProp","password","rangeTransport","PDFDataRangeTransport","rangeChunkSize","docBaseUrl","isDataScheme","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","disableRange","disableStream","disableAutoFetch","pdfBug","NaN","useSystemFonts","useWorkerFetch","isValidFetchUrl","baseURI","canvasFactory","filterFactory","setVerbosityLevel","transportFactory","cMapReaderFactory","standardFontDataFactory","workerParams","port","workerPort","fromPort","_worker","fetchDocParams","apiVersion","evaluatorOptions","transportParams","styleElement","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","params","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","PDFNodeStream","PDFFetchStream","PDFNetworkStream","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","catch","_capability","async","sendWithPromise","_unused4","Buffer","isNaN","_PDFDocumentLoadingTa","_PDFDocumentLoadingTa2","_docId","_this$_worker","_this$_transport","_pendingDestroy","_this$_worker2","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","PDFDocumentProxy","pdfInfo","_pdfInfo","deprecated","getJSActions","js","jsArr","annotationStorage","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","pageNumber","getDestinations","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getDocJSActions","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingParams","getFieldObjects","hasJSActions","getCalculationOrderIds","_delayedCleanupTimeout","_pendingCleanup","_PDFPageProxy_brand","WeakSet","PDFPageProxy","pageInfo","_classPrivateMethodInitSpec","_pageIndex","_pageInfo","_stats","StatTimer","_pdfBug","PDFObjects","_maybeCleanupAfterRender","_intentStates","userUnit","offsetX","offsetY","PageViewport","intentArgs","getRenderingIntent","renderingIntent","getPageJSActions","getXfa","_this$_transport$_htm","_this$_stats","_intentState","annotationMode","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","_assertClassBrand","_abortDelayedCleanup","intentState","cacheKey","streamReaderCancelTimeout","intentPrint","_this$_stats2","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","_this$_stats3","_this$_stats4","renderTasks","delete","internalRenderTask","_tryCleanup","capability","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","Set","renderTask","_ref3","_this$_stats5","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","opListTask","_intentState2","_this$_stats6","opListReadCapability","streamTextContent","includeMarkedContent","disableNormalization","sendWithStream","highWaterMark","xfa","XfaText","readableStream","reader","getReader","styles","pump","read","_ref4","getStructTree","_destroy","waitOn","values","force","completed","resetStats","success","_startRenderPage","_this$_stats7","_intentState$displayR","_renderPageChunk","operatorListChunk","_ref5","annotationStorageSerializable","transfers","streamReader","_ref6","_ref7","RenderingCancelledException","delay","extraDelay","curCacheKey","curIntentState","stats","delayed","_listeners","_deferred","LoopbackPort","postMessage","transfer","structuredClone","terminate","PDFWorkerUtil","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","_document","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","origin","_unused5","other","createCDNWrapper","wrapper","getVerbosityLevel","_port","_webWorker","_messageHandler","_workerPorts$_","_workerPorts","_initializeFromPort","_initialize","_mainThreadWorkerMessageHandler","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","_unused6","testObj","_unused7","info","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","_workerPorts$_2","_assertClassBrand$_","cachedPort","_globalThis$pdfjsWork","pdfjsWorker","_unused8","loader","mainWorkerMessageHandler","eval","loadScript","_methodPromises","_pageCache","_pagePromises","_passwordCapability","_WorkerTransport_brand","fontLoader","FontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","SerializableEmpty","PrintAnnotationStorage","serializable","hash","_classPrivateFieldGet2","resetModified","terminated","_this$_networkStream","cancelAllRequests","sink","assert","getFullReader","evt","onPull","_ref8","close","ArrayBuffer","ready","readyReason","headersCapability","fullReader","headersReady","_loadingTask$onProgre","isStreamingSupported","isRangeSupported","_loadingTask$onProgre2","contentLength","rangeReader","getRangeReader","_ref9","_ref10","_numPages","htmlForXfa","exception","updatePassword","_loadingTask$onProgre3","_ref11","_globalThis$FontInspe","exportedData","exportedError","inspectFont","FontInspector","enabled","font","fontAdded","FontFaceObject","bind","finally","_ref12","imageData","pageProxy","bitmap","_imageData$data","_loadingTask$onProgre4","fetch","_this$_fullReader$fil","_this$_fullReader","cachedPromise","_cacheSimpleMethod","results","OptionalContentConfig","_this$_fullReader$fil2","_this$_fullReader2","_this$_fullReader$con","_this$_fullReader3","metadata","Metadata","_objs","_PDFObjects_brand","objId","_ensureObj","_data$bitmap","_classPrivateFieldGet3","_internalRenderTask","RenderTask","onContinue","form","canvas","_ref13","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_ref14","_globalThis$StepperMa","_this$graphicsReadyCa","_canvasInUse","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","_this$gfx","endDrawing","_this$stepper","updateOperatorList","executeOperatorList","build","_editor","_murmurhash","_modified","_storage","_AnnotationStorage_brand","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","getRawValue","remove","AnnotationEditor","setValue","modified","entry","entries","_setModified","_type","getAll","objectFromMap","setAll","print","MurmurHash3_64","context","hasBitmap","serialized","serialize","JSON","stringify","hexdigest","_serializable","parent","_tools","_altText","_altTextDecorative","_altTextButton","_altTextTooltip","_altTextTooltipTimeout","_keepAspectRatio","_resizersDiv","_boundFocusin","_boundFocusout","_hasBeenClicked","_isEditing","_isInEditMode","_isDraggable","_zIndex","_AnnotationEditor_brand","parameters","focusin","focusout","div","_uiManager","uiManager","annotationElementId","_willKeepAspectRatio","_initialOptions","isCentered","_structTreeParentId","rawDims","pageX","pageY","viewParameters","pageDimensions","pageTranslation","parentDimensions","isAttachedToDOM","deleted","editorType","getPrototypeOf","_defaultLineColor","_colorManager","getHexCode","deleteAnnotationElement","editor","fakeEditor","FakeEditor","getNextId","addToAnnotationStorage","initialize","_l10nPromise","_borderLineWidth","documentElement","getPropertyValue","updateDefaultParams","_value","defaultPropertiesToUpdate","isHandlingMimeForPasting","mime","paste","item","propertiesToUpdate","_this$div","center","parentRotation","fixAndSetPosition","addCommands","currentLayer","setInBackground","setInForeground","setParent","_focusEventsAllowed","setSelected","_this$parent","relatedTarget","closest","isMultipleSelection","commitOrRemove","isEmpty","commit","setAt","tx","ty","screenToPageTranslation","translate","_translate","translateInPage","scrollIntoView","block","drag","parentWidth","parentHeight","findNewParent","bx","by","_getBaseTranslation","toFixed","moveInDOM","_rotatePoint","pageTranslationToScreen","parentScale","realScale","scaledWidth","scaledHeight","round","setDims","_classPrivateFieldGet4","SMALL_EDITOR_SIZE","fixDims","widthPercent","endsWith","heightPercent","getInitialTranslation","addAltTextButton","altText","noContextMenu","stopPropagation","editAltText","_setAltTextButtonState","append","PERCENT","getClientDimensions","altTextData","decorative","_ref15","maxWidth","bindEvents","pointerdown","button","ctrlKey","_setUpDragSession","_this$parent2","moveEditorInDOM","_setParentAndPosition","changeParent","getRect","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","_this$div2","_this$div3","deserialize","_classPrivateFieldGet5","removeEditor","isResizable","makeResizable","_createResizers","select","_this$div4","unselect","_classPrivateFieldGet6","_this$div5","_this$div6","activeElement","updateParams","disableEditing","enableEditing","enterInEditMode","contentDiv","isEditing","setActiveEditor","setAspectRatio","aspectRatio","MIN_SIZE","_ref16","angle","_getRotationMatrix","classes","_resizerPointerdown","prepend","boundResizerPointermove","_resizerPointermove","savedDraggable","pointerMoveOptions","savedX","savedY","savedWidth","savedHeight","savedParentCursor","cursor","savedCursor","pointerUpCallback","newX","newY","newWidth","newHeight","cmd","undo","mustExec","minHeight","rotationMatrix","transf","invRotationMatrix","getPoint","getOpposite","isDiagonal","isHorizontal","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","movementX","movementY","invTransf","oldDiag","hypot","_classPrivateFieldGet7","tooltip","DELAY_TO_SHOW_TOOLTIP","_eventBus","dispatch","subtype","_classPrivateFieldGet8","innerText","parentNode","isSelected","pointerMoveCallback","setUpDragSession","dragSelectedEditors","endDragSession","shiftKey","metaKey","toggleSelected","_AnnotationEditor","ColorManager","names","opacity","_id","IdManager","getId","_this$id","_this$id2","_baseId","_id2","_cache","_ImageManager_brand","ImageManager","getUuid","_isSVGFittingCanvas","image","Image","drawImage","getImageData","getFromFile","lastModified","_get","getFromUrl","getFromId","refCounter","getSvgUrl","isSvg","svgUrl","deleteId","isValidId","rawData","_data","_this$id3","_this$id4","response","ok","statusText","blob","mustRemoveAspectRatioPromise","fileReader","imageElement","imagePromise","onerror","readAsDataURL","createImageBitmap","_ImageManager","_commands","_locked","_maxSize","_position","CommandManager","maxSize","_ref17","overwriteIfSameType","keepUndo","splice","redo","hasSomethingToUndo","hasSomethingToRedo","_KeyboardManager_brand","KeyboardManager","callbacks","isMacKey","self","_serialize","bubbles","args","checker","altKey","_colors","colors","getColorValues","convert","rgb","getRGB","RGB","_colorsMapping","_activeEditor","_allEditors","_allLayers","_altTextManager","_annotationStorage","_commandManager","_currentPageIndex","_deletedAnnotationsElementIds","_draggingEditors","_editorTypes","_editorsToRescale","_filterFactory","_idManager","_isEnabled","_isWaiting","_lastActiveElement","_selectedEditors","_pageColors","_boundBlur","_boundFocus","_boundCopy","_boundCut","_boundPaste","_boundKeydown","_boundOnEditingAction","_boundOnPageChanging","_boundOnScaleChanging","_boundOnRotationChanging","_previousStates","_translation","_translationTimeoutId","_container","_viewer","_AnnotationEditorUIManager_brand","AnnotationEditorUIManager","_keyboardManager","proto","arrowChecker","hasSomethingToControl","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","selectAll","unselectAll","translateSelectedEditors","viewer","altTextManager","eventBus","pdfDocument","blur","cut","keydown","onEditingAction","onPageChanging","onScaleChanging","onRotationChanging","hasSelectedEditor","_on","PixelsPerInch","PDF_TO_CSS_UNITS","_removeKeyboardManager","_removeFocusManager","_off","layer","hcmFilter","addHCMFilter","foreground","_classPrivateFieldGet9","_ref18","focusMainContainer","findParent","layerX","layerY","disableUserSelect","addShouldRescale","removeShouldRescale","_ref19","_ref20","hasSelection","lastEditor","lastActiveElement","addEditListeners","_addKeyboardManager","_addCopyPasteListeners","removeEditListeners","_removeCopyPasteListeners","_classPrivateFieldGet10","editors","clipboardData","setData","parse","newEditors","deserializedEditor","_addEditorToLayer","_selectEditors","_this$getActive","getActive","setEditingState","_addFocusManager","_dispatchUpdateStates","_isEmpty","registerEditorTypes","types","_dispatchUpdateUI","getLayer","currentPageIndex","addLayer","enable","disable","removeLayer","updateMode","editId","_disableAll","_enableAll","updateToolbar","addNewEditor","enableWaiting","mustWait","disableClick","enableClick","getEditors","getEditor","addEditor","_classPrivateFieldGet11","addDeletedAnnotationElement","isDeletedAnnotationElement","removeDeletedAnnotationElement","ed","_classPrivateFieldGet12","totalX","totalY","savedPageIndex","newPageIndex","mustBeAddedInUndoStack","move","addOrRebuild","isActive","getMode","imageManager","some","_ref21","span","computedColor","getTransform","invertSelf","substring","lastIndexOf","defaultFilename","reFilename","splitURI","suggestedFilename","_unused9","xfaPage","_ref23","attributes","removeScriptElement","script","mustFlip","mustRotate","useRound","widthStr","heightStr","_base_factory","SVG_NS","_PixelsPerInch","PDF","_cache2","_defs","_docId2","_document2","_hcmFilter","_hcmKey","_hcmUrl","_hcmHighlightFilter","_hcmHighlightKey","_hcmHighlightUrl","_id3","_DOMFilterFactory_brand","BaseFilterFactory","addFilter","maps","_this$id5","_this$id6","tableR","tableG","tableB","_classPrivateGetter","_get_cache","mapR","mapG","mapB","bufferR","bufferG","bufferB","_createFilter","_addTransferMapConversion","fgColor","bgColor","_classPrivateFieldGet13","fgRGB","_getRGB","bgRGB","_get_defs","_addGrayConversion","getSteps","addHighlightHCMFilter","newFgColor","newBgColor","_classPrivateFieldGet14","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","_this","_this2","contain","svg","createElementNS","feColorMatrix","_appendFeFunc","feComponentTransfer","feFunc","rTable","gTable","bTable","BaseCanvasFactory","_createCanvas","fetchData","asTypedArray","arrayBuffer","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","BaseCMapReaderFactory","_fetchData","compressionType","cMapData","BaseStandardFontDataFactory","DOMSVGFactory","BaseSVGFactory","_createSVG","_ref22","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","_unused10","pdfDateStringRegex","colorRGB","started","times","outBuf","longest","padEnd","PDFDateString","toDateObject","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","reset","canvasAndContext","_ref24","_ref25","_ref26","_ref27","skipDimensions","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","_systemFonts","_ref28","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","loadSystemFont","loadedName","isFontLoadingAPISupported","fontFace","FontFace","load","_unused11","baseFontName","attached","missingFile","systemFontInfo","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","_this$_document","hasFonts","supported","userAgent","otherRequest","_loadTestFont","testFont","atob","int32","spliceString","called","XXXX_VALUE","checksum","string32","btoa","fontFamily","isFontReady","fillText","translatedData","_ref29","compiledGlyphs","_inspectFont","_this$_inspectFont","cssFontInfo","css","weight","fontWeight","italicAngle","_this$_inspectFont2","mimetype","getPathGenerator","character","cmds","jsBuf","readFile","createCanvas","_pattern_helper","_image_utils","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","CachedCanvases","cache","getCanvas","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","getCurrentTransform","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","setTransform","sign","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","Infinity","getClippedPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","thisChunkHeight","elemsInThisChunk","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","convertBlackAndWhiteToRGBA","nonBlackColor","copyCtxState","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","composeSMask","smask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","ceil","row","chunkHeight","genericComposeSMask","getImageSmoothingEnabled","interpolate","fround","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","_CanvasGraphics_brand","canvasCtx","_ref30","markedContentStack","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","_ref31","savedFillStyle","fillRect","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","_restoreInitialState","HTMLCanvasElement","_drawFilter","_scaleImage","img","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","getCurrentTransformInverse","imageSmoothingEnabled","inverse","getPattern","dashArray","dashPhase","flatness","states","checkSMaskState","inSMaskMode","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","compose","dirtyBox","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","_fontObj$systemFontIn","fontObj","fontDirection","isType3Font","typeface","fallbackName","bold","italic","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","scaledAccentX","scaledAccentY","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","matrix","getShadingPattern","SHADING","inv","bbox","group","currentCtx","isolated","knockout","canvasBounds","scaleX","scaleY","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","POINT_TYPES","width1","j0","lineSize","elem","sum","Path2D","p0","pp","compileType3Glyph","skewX","skewY","positions","trans","images","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","visible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","hcmFilterId","savedFilter","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","region","BaseShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","matrixScale","temporaryPatternCanvas","PaintType","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","MAX_PATTERN_SIZE","bboxWidth","bboxHeight","cssColor","_ref33","len32","src32","s3","jj","convertRGBToRGBA","_ref32","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","CallbackKind","StreamKind","wrapReason","_MessageHandler_brand","_createStreamSink","streamId","sourceName","targetName","comObj","actionHandler","streamSink","isCancelled","lastDesiredSize","desiredSize","sinkCapability","stream","streamSinks","_processStreamMessage","streamController","streamControllers","startCall","pullCall","_streamSink$onPull","isClosed","controller","_deleteStreamController","cancelCall","_streamSink$onCancel","_streamController$sta","_streamController$pul","_streamController$can","allSettled","callbackId","callbackCapabilities","_onComObjOnMessage","cbSourceName","cbTargetName","actionName","handler","ah","queueingStrategy","ReadableStream","startCapability","pull","pullCapability","cancelCapability","_metadataMap","_data2","_ref34","parsedData","getRaw","_classPrivateFieldGet15","INTERNAL","_visible","OptionalContentGroup","_setVisible","internal","_cachedGetHash","_groups","_initialHash","_order","_OptionalContentConfig_brand","_evaluateVisibilityExpression","operator","creator","groups","baseState","getHash","expression","policy","ids","hasInitialVisibility","getOrder","getGroups","getGroup","_ref35","pdfDataRangeTransport","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_ref36","_enqueue","found","_begin","_progressiveDataLength","_this$_fullRequestRea","_this$_fullRequestRea2","_loaded","_this$_rangeReaders$","_this$_rangeReaders$$","_this$_fullRequestRea3","_this$_fullRequestRea4","_this$_fullRequestRea5","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_this$_fullRequestRea6","_stream","_done","_filename","isPdfFile","_requests","_headersReady","requestCapability","_end","_queuedChunk","_network_utils","createFetchOptions","headers","abortController","signal","credentials","redirect","createHeaders","Headers","getArrayBuffer","isHttp","_rangeRequestReaders","_this$_fullRequestRea7","_this$_fullRequestRea8","PDFFetchStreamReader","PDFFetchStreamRangeReader","_this$_fullRequestRea9","_reader","_withCredentials","_headersCapability","_disableRange","_rangeChunkSize","_abortController","AbortController","_headers","validateResponseStatus","createResponseStatusError","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_this$onProgress","_this$_reader","_readCapability","_this$onProgress2","_this$_reader2","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","_unused12","_ref37","returnValues","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","contentDispositionStr","iter","quot","part","parts","rfc2231getparam","attributePattern","textdecode","_unused13","quotindex","extvalue","encodingend","charset","hex","_unused14","NetworkManager","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","_pendingRequest$onPro","_pendingRequest$onErr","xhrStatus","_pendingRequest$onErr2","rangeHeader","_pendingRequest$onErr3","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","_this$_fullRequestRea10","manager","_onHeadersReceived","_onDone","_onError","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_storedError","fullRequestXhrId","fullRequestXhr","_this$onProgress3","lengthComputable","_requestId","_close","_this$onClosed","_this$onProgress4","fileUriRegex","sourceUrl","parsedUrl","host","parseUrl","isFsUrl","_this$_fullRequestRea11","_this$_fullRequestRea12","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","_this$_fullRequestRea13","BaseFullReader","_readableStream","_this$onProgress5","_error","_setReadableStream","BaseRangeReader","_this$onProgress6","createRequestOptions","auth","hostname","handleResponse","statusCode","_request","http","https","_httpHeaders","Range","fs","lstat","stat","createReadStream","SVG_DEFAULTS","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","writePngChunk","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","pf","pm","acos","clipCount","maskCount","shadingCount","svgFactory","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","svgElement","convertOpList","operatorIdMapping","opList","fn","opTree","opListElement","opListToTree","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","fontStyle","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","_current$txtElement","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","_this$current$element","_this$current$element2","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","walk","_node$attributes","shouldBuildText","child","textContentStream","scaleFactor","TextLayerRenderTask","_render","_ref40","textDivs","textDivProperties","mustRescale","setLayerDimensions","getCtx","prevFontSize","prevFontFamily","layout","DEFAULT_FONT_SIZE","ascentCache","appendText","geom","textDiv","hasText","hasEOL","_textDivs","_transform","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","pixels","getAscent","_isOffscreenCanvasSupported","sin","cos","scaleFactorStr","divStyle","_rootContainer","_pageWidth","_pageHeight","dir","_fontInspectorEnabled","dataset","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_isReadableStream","_layoutText","_ref38","_globalThis$FontInspe2","textContentItemsStr","_textContentSource","_textContentItemsStr","_canceled","_layoutTextParams","_processItems","styleCache","br","_ref39","_freetext","_ink","_stamp","_accessibilityManager","_allowClick","_annotationLayer","_boundPointerup","_boundPointerdown","_editors","_hadPointerDown","_isCleaningUp","_isDisabling","_AnnotationEditorLayer_brand","AnnotationEditorLayer","_ref41","accessibilityManager","pointerup","editorTypes","FreeTextEditor","InkEditor","StampEditor","_initialized","_cleanup","addInkEditorIfNeeded","isCommitting","_createAndAddNewEditor","pointerEvents","annotationElementIds","editables","getEditableAnnotations","editable","hide","hiddenAnnotationIds","_this$getEditableAnno","getEditableAnnotation","show","_classPrivateFieldGet16","attach","detach","_classPrivateFieldGet17","removePointerInTextLayer","_editor$parent","_classPrivateFieldGet18","moveElementInDOM","addUndoableEditor","pasteEditor","_getCenterPoint","_createNewEditor","_objectSpread","_data$annotationType","annotationEditorType","_classPrivateFieldGet19","_classPrivateFieldGet20","_ref42","_ref43","_annotation_layer","_boundEditorDivBlur","_boundEditorDivFocus","_boundEditorDivInput","_boundEditorDivKeydown","_color","_content","_editorDivId","_fontSize","_initialData","_FreeTextEditor_brand","_translateEmpty","editorDivBlur","editorDivFocus","editorDivInput","editorDivKeydown","_defaultColor","_defaultFontSize","_internalPadding","_updateFontSize","_updateColor","overlayDiv","editorDiv","contentEditable","preventScroll","_this$_initialOptions","_cheatInitialRect","savedText","newText","_extractText","trimEnd","setText","_setContent","_setEditorDimensions","dblclick","baseX","baseY","_this$editorDiv","_this$editorDiv2","posX","posY","FreeTextAnnotationElement","defaultAppearanceData","fontColor","textPosition","isForCopying","padding","structTreeParentId","_hasElementChanged","setFontsize","savedFontsize","savedColor","divs","savedDisplay","replaceChildren","line","createTextNode","_FreeTextEditor","_scripting_utils","_displayL10n_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","_hasBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","enableScripting","_fieldObjects","fieldObjects","_createContainer","_createQuadrilaterals","_hasPopupData","_ref44","richText","hasPopupData","popupRef","noRotate","setRotation","horizontalRadius","verticalRadius","radius","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","detail","colorArray","ColorConverters","noView","noPrint","userName","readonly","disabled","required","_setRequired","textColor","_dispatchEventFromSandbox","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","_svgBuffer","rectWidth","rectHeight","backgroundImage","_createPopup","parentRect","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","getElementsByName","_this$popup","maybeShow","_this$popup2","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_editOnDoubleClick","_this$linkService$eve","_LinkAnnotationElement_brand","isTooltipOnly","link","isBound","addLinkAttributes","_bindNamedAction","attachment","_bindAttachment","setOCGState","_bindSetOCGState","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","destination","getDestinationHash","onclick","goToDestination","_setInternalLink","getAnchorUrl","executeNamedAction","_this$downloadManager","openOrDownloadData","_this$linkService$eve2","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","dispatchEvent","Event","_this$linkService$eve3","executeSetOCGState","alt","l10nId","l10nArgs","alternativeText","showElementAndHideCanvas","_element$previousSibl","previousSibling","nodeName","_getKeyModifier","_setEventListener","elementData","baseName","eventName","valueGetter","_this$linkService$eve4","modifier","_this$linkService$eve5","focused","_setEventListeners","getter","_this$data$actions","_this$data$actions2","_this$data$actions3","Blur","Focus","_setBackgroundColor","_setTextStyle","TEXT_ALIGNMENT","computedFontSize","roundToOneDecimal","multiLine","lineHeight","textAlignment","textAlign","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","_this$data$textConten","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","_this$data$defaultFie","defaultFieldValue","blurListener","_this$data$actions4","_event$detail$value","selRange","setSelectionRange","_this$linkService$eve6","willCommit","selStart","selectionStart","selEnd","selectionEnd","_this$linkService$eve7","_blurListener","_this$linkService$eve8","Keystroke","_this$linkService$eve9","inputType","change","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","isExport","selectedIndex","selectedValues","getItems","_removeEmptyEntry","multipleSelection","selectChild","before","indices","_this$linkService$eve10","changeEx","keyDown","PopupElement","elementIds","_dateTimePromise","_boundKeyDown","_boundHide","_boundShow","_boundToggle","_color2","_container2","_contentsObj","_elements","_parent","_parentRect","_pinned","_popup","_rect","_richText","_titleObj","_wasVisible","_PopupElement_brand","_ref45","_keyDown","_hide","_show","_toggle","dateObject","trigger","flatMap","_element$container","baseColor","outlineColor","BACKGROUND_ENLIGHT","localized","_formatContents","XfaLayer","xfaHtml","html","useParentRect","normalizedRect","popupLeft","popupTop","_ref46","lines","lineSpan","_line","_square","square","_circle","circle","_polyline","containerClassName","svgElementName","coordinate","polyline","_polylines","inkList","_trigger","_FileAttachmentAnnotationElement_brand","_this$linkService$eve11","getFilenameFromUrl","_download","_this$downloadManager2","_accessibilityManager2","_annotationCanvasMap","_editableAnnotations","_AnnotationLayer_brand","_appendElement","_classPrivateFieldGet21","contentElement","firstChild","_setAnnotationCanvasMap","replaceWith","AnnotationLayer","_ref47","NullL10n","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","_ref48","makeColorComp","scaleAndClamp","CMYK_G","_ref49","G_CMYK","_ref50","G_RGB","_ref51","G_rgb","_ref52","G_HTML","_ref53","RGB_G","_ref54","RGB_rgb","RGB_HTML","T_HTML","T_rgb","CMYK_RGB","_ref55","CMYK_rgb","_ref56","CMYK_HTML","components","RGB_CMYK","_ref57","DEFAULT_L10N_STRINGS","of_pages","page_of_pages","document_properties_kb","document_properties_mb","document_properties_date_string","document_properties_page_size_unit_inches","document_properties_page_size_unit_millimeters","document_properties_page_size_orientation_portrait","document_properties_page_size_orientation_landscape","document_properties_page_size_name_a3","document_properties_page_size_name_a4","document_properties_page_size_name_letter","document_properties_page_size_name_legal","document_properties_page_size_dimension_string","document_properties_page_size_dimension_name_string","document_properties_linearized_yes","document_properties_linearized_no","additional_layers","page_landmark","thumb_page_title","thumb_page_canvas","find_reached_top","find_reached_bottom","find_not_found","page_scale_width","page_scale_fit","page_scale_auto","page_scale_actual","page_scale_percent","loading_error","invalid_file_error","missing_file_error","unexpected_response_error","rendering_error","annotation_date_string","printing_not_supported","printing_not_ready","web_fonts_disabled","free_text2_default_content","editor_free_text2_aria_label","editor_ink2_aria_label","editor_ink_canvas_aria_label","editor_alt_text_button_label","editor_alt_text_edit_button_label","editor_alt_text_decorative_tooltip","getL10nFallback","print_progress_percent","getLanguage","getDirection","formatL10nValue","setupStorage","xfaOn","xfaOff","setAttributes","_ref58","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","stack","rootDiv","_child$attributes","childHtml","xmlns","el","_baseHeight","_baseWidth","_boundCanvasPointermove","_boundCanvasPointerleave","_boundCanvasPointerup","_boundCanvasPointerdown","_currentPath2D","_disableEditing","_hasSomethingToDraw","_isCanvasInitialized","_observer","_realWidth","_realHeight","_requestFrameCallback","_InkEditor_brand","canvasPointermove","canvasPointerleave","canvasPointerup","canvasPointerdown","thickness","bezierPath2D","allRawPaths","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","_updateThickness","_updateColor2","_updateOpacity","_this$opacity","_createObserver","_setCanvasDims","_fitToContent","setDimensions","_startDrawing","_draw","_endDrawing","_this$div7","_getInitialBBox","_redraw","roundedWidth","roundedHeight","_setScaleFactor","bezier","_fromPDFCoordinates","p10","p11","p20","p21","p30","p31","path2D","_buildPath2D","_getBbox","_serializePaths","savedThickness","savedOpacity","_setStroke","opacityToHex","_this$opacity2","_drawPoints","lastX","lastY","_makeBezierCurve","_endPath","lastPoint","_stopDrawing","_generateBezierPoints","xy","lastPoints","prevX","prevY","bezierPoints","control1","control2","_updateTransform","_this$canvas","_getPadding","scaleFactorW","scaleFactorH","_toPDFCoordinates","p40","p41","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","_InkEditor","_bitmap","_bitmapId","_bitmapPromise","_bitmapUrl","_bitmapFile","_canvas2","_observer2","_resizeTimeoutId","_isSvg","_hasBeenAddedInUndoStack","_StampEditor_brand","bitmapUrl","bitmapFile","supportedTypes","supportedTypesStr","getAsFile","_classPrivateFieldGet22","_classPrivateFieldGet23","_getBitmap","_createCanvas2","bitmapId","accessibilityData","_serializeBitmap","stamps","area","prevData","_getBitmapFetched","fromId","_getBitmapDone","accept","files","MAX_RATIO","factor","_drawBitmap","_createObserver2","_setDimensions","_this$_initialOptions2","_scaleBitmap","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","transferToImageBitmap","toUrl","toDataURL","_StampEditor","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","_api","_text_layer","_annotation_editor_layer","pdfjsLib","bigint","for","$$typeof","ForwardRef","isMemo","Scheduler","ReactDOM","formatProdErrorMessage","isValidContainer","nodeType","REACT_LEGACY_ELEMENT_TYPE","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONSUMER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","REACT_MEMO_CACHE_SENTINEL","MAYBE_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","REACT_CLIENT_REFERENCE","getComponentNameFromType","_context","innerType","_payload","_init","prefix","suffix","ReactSharedInternals","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","describeBuiltInComponentFrame","reentry","describeNativeComponentFrame","construct","previousPrepareStackTrace","prepareStackTrace","RunInRootFrame","DetermineComponentFrameRoot","Fake","Reflect","control","x$0","x$1","sample","namePropDescriptor","_RunInRootFrame$Deter","sampleStack","controlStack","sampleLines","controlLines","frame","describeFiber","fiber","getStackByFiberInDevAndProd","workInProgress","return","getNearestMountedFiber","nearestMounted","alternate","getSuspenseInstanceFromFiber","suspenseState","memoizedState","dehydrated","assertIsMounted","findCurrentHostFiberImpl","sibling","isArrayImpl","ReactDOMSharedInternals","__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","sharedNotPendingObject","valueStack","createCursor","contextStackCursor","contextFiberStackCursor","rootInstanceStackCursor","hostTransitionProviderCursor","pushHostContainer","nextRootInstance","namespaceURI","getOwnHostContext","tagName","getChildHostContextProd","popHostContainer","pushHostContext","JSCompiler_inline_result","popHostContext","HostTransitionContext","_currentValue","scheduleCallback$3","unstable_scheduleCallback","cancelCallback$1","unstable_cancelCallback","shouldYield","unstable_shouldYield","requestPaint","unstable_requestPaint","unstable_now","getCurrentPriorityLevel","unstable_getCurrentPriorityLevel","ImmediatePriority","unstable_ImmediatePriority","UserBlockingPriority","unstable_UserBlockingPriority","NormalPriority$1","unstable_NormalPriority","LowPriority","unstable_LowPriority","IdlePriority","unstable_IdlePriority","log$1","unstable_setDisableYieldValue","rendererID","injectedHook","setIsStrictModeForDevtools","newIsStrictMode","setStrictMode","clz32","LN2","nextTransitionLane","nextRetryLane","getHighestPriorityLanes","lanes","pendingSyncLanes","getNextLanes","wipLanes","pendingLanes","nextLanes","suspendedLanes","pingedLanes","warmLanes","finishedLanes","nonIdlePendingLanes","checkIfRootIsPrerendering","renderLanes","computeExpirationTime","lane","currentTime","claimNextTransitionLane","claimNextRetryLane","createLaneMap","initial","laneMap","markRootUpdated$1","updateLane","markSpawnedDeferredLane","spawnedLane","entangledLanes","spawnedLaneIndex","entanglements","markRootEntangled","rootEntangledLanes","index$8","lanesToEventPriority","resolveUpdatePriority","updatePriority","getEventPriority","randomKey","internalInstanceKey","internalPropsKey","internalContainerInstanceKey","internalEventHandlersKey","internalEventHandlerListenersKey","internalEventHandlesSetKey","internalRootNodeResourcesKey","internalHoistableMarker","detachDeletedInstance","getClosestInstanceFromNode","targetNode","targetInst","getParentSuspenseInstance","getInstanceFromNode","getNodeFromInstance","inst","stateNode","getResourcesFromRoot","resources","hoistableStyles","hoistableScripts","markNodeAsHoistable","allNativeEvents","registrationNameDependencies","registerTwoPhaseEvent","registrationName","registerDirectEvent","VALID_ATTRIBUTE_NAME_REGEX","illegalAttributeNameCache","validatedAttributeNameCache","setValueForAttribute","attributeName","prefix$10","setValueForKnownAttribute","setValueForNamespacedAttribute","namespace","getToStringValue","isCheckable","track","_valueTracker","valueField","descriptor","currentValue","stopTracking","trackValueOnNode","updateValueIfChanged","tracker","lastValue","getActiveElement","escapeSelectorAttributeValueInsideDoubleQuotesRegex","escapeSelectorAttributeValueInsideDoubleQuotes","ch","updateInput","lastDefaultValue","defaultChecked","setDefaultValue","initInput","isHydrating","updateOptions","propValue","setDefaultSelected","defaultSelected","updateTextarea","initTextarea","setTextContent","nodeValue","unitlessNumbers","setValueForStyle","isCustomProperty","cssFloat","setValueForStyles","prevStyles","styleName$16","styleName$17","isCustomElement","aliases","isJavaScriptProtocol","sanitizeURL","currentReplayingEvent","getEventTarget","nativeEvent","srcElement","correspondingUseElement","restoreTarget","restoreQueue","restoreStateOfTarget","internalInstance","otherNode","otherProps","isInsideEventHandler","batchedUpdates$1","flushSyncWork$1","getListener","passiveBrowserEventsSupported","startText","fallbackText","startValue","startLength","endValue","endLength","minEnd","getEventCharCode","keyCode","charCode","functionThatReturnsTrue","functionThatReturnsFalse","createSyntheticEvent","Interface","SyntheticBaseEvent","reactName","reactEventType","nativeEventTarget","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","lastMovementX","lastMovementY","lastMouseEvent","EventInterface","eventPhase","cancelable","timeStamp","isTrusted","SyntheticEvent","UIEventInterface","SyntheticUIEvent","MouseEventInterface","screenX","screenY","clientX","clientY","getModifierState","getEventModifierState","buttons","fromElement","toElement","SyntheticMouseEvent","SyntheticDragEvent","dataTransfer","SyntheticFocusEvent","SyntheticAnimationEvent","animationName","elapsedTime","pseudoElement","SyntheticClipboardEvent","SyntheticCompositionEvent","normalizeKey","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","translateToKey","modifierKeyToProp","Alt","Control","Meta","Shift","modifierStateGetter","keyArg","SyntheticKeyboardEvent","repeat","locale","which","SyntheticPointerEvent","pointerId","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","SyntheticTouchEvent","touches","targetTouches","changedTouches","SyntheticTransitionEvent","propertyName","SyntheticWheelEvent","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","SyntheticToggleEvent","newState","oldState","END_KEYCODES","canUseCompositionEvent","documentMode","canUseTextInputEvent","useFallbackCompositionData","SPACEBAR_CHAR","hasSpaceKeypress","isFallbackCompositionEnd","domEventName","getDataFromCustomEvent","isComposing","supportedInputTypes","datetime","email","search","tel","week","isTextInputElement","createAndAccumulateChangeEvent","dispatchQueue","accumulateTwoPhaseListeners","activeElement$1","activeElementInst$1","runEventInBatch","processDispatchQueue","getInstIfValueChanged","getTargetInstForChangeEvent","isInputEventSupported","JSCompiler_inline_result$jscomp$283","isSupported$jscomp$inline_418","element$jscomp$inline_419","oninput","stopWatchingForValueChange","detachEvent","handlePropertyChange","handleEventsForInputEventPolyfill","getTargetInstForInputEventPolyfill","getTargetInstForClickEvent","getTargetInstForInputOrChangeEvent","objectIs","is","shallowEqual","objA","objB","keysA","keysB","currentKey","getLeafNode","getNodeForCharacterOffset","nodeEnd","nextSibling","containsNode","outerNode","innerNode","compareDocumentPosition","getActiveElementDeep","containerInfo","defaultView","HTMLIFrameElement","contentWindow","hasSelectionCapabilities","restoreSelection","priorSelectionInformation","curFocusedElem","focusedElem","priorSelectionRange","selectionRange","getSelection","extend","endMarker","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","skipSelectionChangeEvent","activeElementInst","lastSelection","mouseDown","constructSelectEvent","makePrefixMap","styleProp","prefixes","vendorPrefixes","animationend","animationiteration","animationstart","transitionrun","transitionstart","transitioncancel","transitionend","prefixedEventNames","getVendorPrefixedEventName","prefixMap","animation","transition","ANIMATION_END","ANIMATION_ITERATION","ANIMATION_START","TRANSITION_RUN","TRANSITION_START","TRANSITION_CANCEL","TRANSITION_END","topLevelEventsToReactNames","simpleEventPluginEvents","registerSimpleEvent","concurrentQueues","concurrentQueuesIndex","concurrentlyUpdatedLanes","finishQueueingConcurrentUpdates","endIndex","queue","markUpdateLaneFromFiberToRoot","enqueueUpdate$1","enqueueConcurrentHookUpdate","getRootForUpdatedFiber","enqueueConcurrentRenderForLane","sourceFiber","isHidden","childLanes","_visibility","hiddenUpdates","nestedUpdateCount","rootWithNestedUpdates","emptyContextObject","CapturedStacks","createCapturedValueAtFiber","existing","forkStack","forkStackIndex","treeForkProvider","treeForkCount","idStack","idStackIndex","treeContextProvider","treeContextId","treeContextOverflow","pushTreeFork","totalChildren","pushTreeId","baseIdWithLeadingBit","baseLength","numberOfOverflowBits","pushMaterializedTreeId","popTreeContext","hydrationParentFiber","nextHydratableInstance","hydrationErrors","rootOrSingletonContext","HydrationMismatchException","throwOnHydrationMismatch","queueHydrationError","prepareToHydrateHostInstance","instance","memoizedProps","listenToNonDelegatedEvent","mediaEventTypes","suppressHydrationWarning","checkForUnmatchedText","popover","onScroll","onScrollEnd","noop$1","popToNextHostParent","popHydrationState","JSCompiler_temp","shouldClear","shouldSetTextContent","getNextHydratable","resetHydrationState","SuspenseException","SuspenseyCommitException","noopSuspenseyCommitThenable","isThenableResolved","thenable","noop$3","trackUsedThenable","thenableState","workInProgressRoot","shellSuspendCounter","fulfilledValue","fulfilledThenable","rejectedThenable","suspendedThenable","getSuspendedThenable","thenableState$1","thenableIndexCounter$1","unwrapThenable","coerceRef","throwOnInvalidObjectType","returnFiber","newChild","resolveLazy","lazyType","createChildReconciler","shouldTrackSideEffects","deleteChild","childToDelete","deletions","deleteRemainingChildren","currentFirstChild","mapRemainingChildren","existingChildren","useFiber","pendingProps","createWorkInProgress","placeChild","newFiber","lastPlacedIndex","newIndex","placeSingleChild","updateTextNode","createFiberFromText","updateElement","updateFragment","createFiberFromTypeAndProps","updatePortal","portal","implementation","createFiberFromPortal","fragment","createFiberFromFragment","createChild","readContextDuringReconciliation","updateSlot","oldFiber","updateFromMap","newIdx","reconcileChildFibersImpl","newChildren","resultingFirstChild","previousNewFiber","nextOldFiber","reconcileChildrenArray","reconcileChildrenIterator","firstChildFiber","createFiberImplClass","reconcileChildFibers","mountChildFibers","currentTreeHiddenStackCursor","prevEntangledRenderLanesCursor","pushHiddenContext","entangledRenderLanes","baseLanes","reuseHiddenContextOnStack","popHiddenContext","suspenseHandlerStackCursor","shellBoundary","pushPrimaryTreeSuspenseHandler","suspenseStackCursor","pushOffscreenSuspenseHandler","reuseSuspenseHandlerOnStack","popSuspenseHandler","findFirstSuspended","revealOrder","AbortControllerLocal","aborted","scheduleCallback$2","NormalPriority","CacheContext","Consumer","_currentValue2","_threadCount","createCache","refCount","releaseCache","currentEntangledListeners","currentEntangledPendingCount","currentEntangledLane","currentEntangledActionThenable","pingEngtangledActionScope","prevOnStartTransitionFinish","entangledListeners","requestTransitionLane","entangleAsyncAction","resumedCache","peekCacheFromPool","cacheResumedFromPreviousRender","pooledCache","pushTransition","offscreenWorkInProgress","prevCachePool","pool","getSuspendedCache","cacheFromPool","currentlyRenderingFiber$1","currentHook","workInProgressHook","didScheduleRenderPhaseUpdate","didScheduleRenderPhaseUpdateDuringThisPass","shouldDoubleInvokeUserFnsInHooksDEV","localIdCounter","thenableIndexCounter","globalClientIdCounter","throwInvalidHookError","areHookInputsEqual","nextDeps","prevDeps","renderWithHooks","Component","secondArg","nextRenderLanes","updateQueue","HooksDispatcherOnMount","HooksDispatcherOnUpdate","renderWithHooksAgain","finishRenderingHooks","ContextOnlyDispatcher","didRenderTooFewHooks","didReceiveUpdate","checkIfContextChanged","numberOfReRenders","lastEffect","events","stores","memoCache","HooksDispatcherOnRerender","TransitionAwareHostComponent","dispatcher","maybeThenable","useThenable","checkDidRenderIdHook","didRenderIdHook","bailoutHooks","resetHooksOnUnwind","mountWorkInProgressHook","hook","baseQueue","updateWorkInProgressHook","nextCurrentHook","nextWorkInProgressHook","use","usable","readContext","useMemoCache","basicStateReducer","updateReducer","reducer","updateReducerImpl","lastRenderedReducer","pendingQueue","baseFirst","newBaseQueueFirst","newBaseQueueLast","didReadFromEntangledAsyncAction$54","workInProgressRootRenderLanes","revertLane","hasEagerState","eagerState","workInProgressRootSkippedLanes","lastRenderedState","rerenderReducer","lastRenderPhaseUpdate","updateSyncExternalStore","subscribe","getSnapshot","getServerSnapshot","isHydrating$jscomp$0","snapshotChanged","updateEffect","subscribeToStore","pushEffect","updateStoreInstance","pushStoreConsistencyCheck","renderedSnapshot","nextSnapshot","checkIfSnapshotChanged","forceStoreRerender","latestGetSnapshot","nextValue","scheduleUpdateOnFiber","mountStateImpl","initialState","initialStateInitializer","updateOptimisticImpl","passthrough","dispatchActionState","actionQueue","setPendingState","setState","payload","isRenderPhaseUpdate","actionNode","isTransition","runActionStateAction","prevState","prevTransition","currentTransition","onStartTransitionFinish","handleActionReturnValue","onActionError","error$60","nextState","onActionSuccess","notifyActionListeners","actionStateReducer","mountActionState","initialStateProp","ssrFormState","formState","JSCompiler_inline_result$jscomp$0","inRootOrSingleton","dispatchSetState","dispatchOptimisticSetState","updateActionState","updateActionStateImpl","stateHook","currentStateHook","actionQueueHook","actionStateActionEffect","rerenderActionState","deps","updateRef","mountEffectImpl","fiberFlags","hookFlags","updateEffectImpl","mountEffect","updateInsertionEffect","updateLayoutEffect","imperativeHandleEffect","refCleanup","updateImperativeHandle","mountDebugValue","updateCallback","updateMemo","nextCreate","mountDeferredValueImpl","initialValue","requestDeferredLane","updateDeferredValueImpl","prevValue","startTransition","pendingState","finishedState","previousPriority","dispatchSetStateInternal","thenableWithOverride","chainThenableValue","requestUpdateLane","noop$2","startHostTransition","formFiber","formData","ensureFormComponentIsStateful","requestFormReset$1","existingStateHook","initialResetState","useHostTransitionStatus","updateId","updateRefresh","refreshCache","provider","root$63","enqueueUpdate","createUpdate","entangleTransitions","dispatchReducerAction","enqueueRenderPhaseUpdate","entangleTransitionUpdate","currentState","throwIfDuringRender","queueLanes","useImperativeHandle","useInsertionEffect","useDebugValue","useDeferredValue","useTransition","useSyncExternalStore","useId","useCacheRefresh","useFormState","useActionState","useOptimistic","initialArg","identifierPrefix","booleanOrThenable","applyDerivedStateFromProps","ctor","getDerivedStateFromProps","nextProps","classComponentUpdater","component","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","checkShouldComponentUpdate","oldProps","newProps","nextContext","shouldComponentUpdate","isPureReactComponent","callComponentWillReceiveProps","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","resolveClassComponentProps","baseProps","defaultProps","propName$67","reportGlobalError","reportError","ErrorEvent","emit","defaultOnUncaughtError","defaultOnCaughtError","defaultOnRecoverableError","logUncaughtError","errorInfo","onUncaughtError","componentStack","e$68","logCaughtError","boundary","onCaughtError","errorBoundary","e$69","createRootErrorUpdate","createClassErrorUpdate","initializeClassErrorUpdate","getDerivedStateFromError","componentDidCatch","legacyErrorBoundariesThatAlreadyFailed","SelectiveHydrationException","reconcileChildren","nextChildren","updateForwardRef","propsWithoutRef","prepareToReadContext","bailoutOnAlreadyFinishedWork","updateMemoComponent","shouldConstruct","compare","updateSimpleMemoComponent","checkScheduledUpdateOrContext","prevProps","updateFunctionComponent","updateOffscreenComponent","nextIsDetached","_pendingVisibility","markRef","deferHiddenOffscreenComponent","cachePool","nextBaseLanes","propagateParentContextChanges","replayFunctionComponent","updateClassComponent","contextType","updater","initializeUpdateQueue","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","processUpdateQueue","suspendIfUpdateReadFromEntangledAsyncAction","componentDidMount","unresolvedOldProps","oldContext","contextType$jscomp$0","hasForceUpdate","cloneUpdateQueue","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","mountHostRootWithoutHydrating","SUSPENDED_MARKER","treeContext","retryLane","mountSuspenseOffscreenState","getRemainingWorkInPrimaryTree","primaryTreeDidDefer","workInProgressDeferredLane","updateSuspenseComponent","showFallback","didSuspend","JSCompiler_temp$jscomp$0","nextInstance","mountWorkInProgressOffscreenFiber","mountSuspensePrimaryChildren","retrySuspenseComponentWithoutHydrating","digest","dgst","renderDidSuspendDelayIfPossible","retryDehydratedSuspenseBoundary","_reactRetry","subtreeFlags","primaryChildren","offscreenProps","createFiberFromOffscreen","scheduleSuspenseWorkOnFiber","propagationRoot","scheduleContextWorkOnParentPath","initSuspenseListRenderState","isBackwards","lastContentRow","tailMode","renderState","rendering","renderingStartTime","updateSuspenseListComponent","beginWork","pushProvider","didSuspendBefore","attemptEarlyBailoutIfNoScheduledUpdate","lazyComponent","propagateContextChanges","isDehydrated","getResource","getOwnerDocumentFromRootContainer","setInitialProperties","resolveSingletonInstance","anyProps","hasAttribute","crossOrigin","canHydrateInstance","canHydrateTextInstance","pooledCacheLanes","valueCursor","currentlyRenderingFiber","lastContextDependency","providerFiber","popProvider","contexts","forcePropagateEntireTree","list","nextFiber","firstContext","isInsidePropagationBailout","currentParent","currentDependencies","memoizedValue","readContextForConsumer","consumer","firstBaseUpdate","lastBaseUpdate","shared","hiddenCallbacks","executionContext","enqueueCapturedUpdate","capturedUpdate","newFirst","newLast","didReadFromEntangledAsyncAction","workInProgress$jscomp$0","instance$jscomp$0","lastPendingUpdate","firstPendingUpdate","isHiddenUpdate","callCallback","commitCallbacks","commitHookEffectListMount","finishedWork","firstEffect","captureCommitPhaseError","commitHookEffectListUnmount","nearestMountedAncestor$jscomp$0","nearestMountedAncestor","commitClassCallbacks","safelyCallComponentWillUnmount","componentWillUnmount","safelyAttachRef","instanceToUse","safelyDetachRef","error$112","commitHostMount","srcSet","srcset","commitHostUpdate","lastProps","propKey","lastProp","setProp","propKey$203","propKey$219","propKey$224","propKey$229","setPropOnCustomElement","propKey$234","updateProperties","isHostParent","getHostSibling","insertOrAppendPlacementNodeIntoContainer","insertBefore","_reactRootContainer","insertOrAppendPlacementNode","offscreenSubtreeIsHidden","offscreenSubtreeWasHidden","needsFormReset","PossiblyWeakSet","nextEffect","shouldFireAfterActiveInstanceBlur","commitLayoutEffectOnFiber","finishedRoot","recursivelyTraverseLayoutEffects","__reactInternalSnapshotBeforeUpdate","error$111","commitSuspenseHydrationCallbacks","prevOffscreenSubtreeIsHidden","prevOffscreenSubtreeWasHidden","recursivelyTraverseReappearLayoutEffects","detachFiberAfterEffects","hostParent","hostParentIsContainer","recursivelyTraverseDeletionEffects","commitDeletionEffectsOnFiber","deletedFiber","onCommitFiberUnmount","prevHostParent","prevHostParentIsContainer","removeAttributeNode","prevHostParentIsContainer$119","clearSuspenseBoundary","retryIfBlockedOn","attachSuspenseRetryListeners","wakeables","retryCache","_retryCache","getRetryCache","wakeable","retry","resolveRetryWakeable","recursivelyTraverseMutationEffects","root$jscomp$0","parentFiber","commitMutationEffectsOnFiber","currentHoistableRoot","commitReconciliationEffects","hoistableRoot","currentResource","maybeNodes","getHydratableHoistableCache","httpEquiv","charSet","mountHoistable","acquireResource","nextNode","tagCaches","getHoistableRoot","recursivelyResetForms","globalMostRecentFallbackTime","_current","recursivelyTraverseDisappearLayoutEffects","retryQueue","parent$jscomp$0","parent$113","parent$115","finishedRoot$jscomp$0","includeWorkInProgressEffects","commitOffscreenPassiveMountEffects","previousCache","commitCachePassiveMountEffect","recursivelyTraversePassiveMountEffects","committedLanes","committedTransitions","commitPassiveMountOnFiber","_finishedWork$memoize2","onPostCommit","passiveEffectDuration","recursivelyTraverseAtomicPassiveEffects","recursivelyTraverseReconnectPassiveEffects","committedLanes$jscomp$0","committedTransitions$jscomp$0","suspenseyCommitFlag","recursivelyAccumulateSuspenseyCommit","accumulateSuspenseyCommitOnFiber","resource","suspendedState","media","getStyleKey","getStylesheetSelectorFromKey","_p","onUnsuspend","stylesheetPropsFromRawProps","preloadPropsMap","adoptPreloadPropsForStylesheet","linkInstance","stylesheets","preload","suspendResource","previousHoistableRoot","detachAlternateSiblings","previousFiber","recursivelyTraversePassiveUnmountEffects","commitPassiveUnmountEffectsInsideOfDeletedTree_begin","commitPassiveUnmountOnFiber","recursivelyTraverseDisconnectPassiveEffects","deletedSubtreeRoot","FiberNode","isReactComponent","resetWorkInProgress","fiberTag","hostContext","itemProp","precedence","onLoad","isHostHoistableType","primaryChildInstance","_pendingMarkers","_transitions","pendingChildren","markUpdate","preloadResourceAndSuspendIfNeeded","preloadResource","scheduleRetryEffect","workInProgressSuspendedRetryLanes","cutOffTailIfNeeded","hasRenderedATailFallback","lastTailNode","lastTailNode$131","bubbleProperties","completedWork","didBailout","newChildLanes","child$132","completeWork","pendingContext","queueRecoverableErrors","cache$144","listenToAllSupportedEvents","workInProgressRootExitStatus","workInProgressRootRenderTargetTime","unwindWork","unwindInterruptedWork","interruptedWork","DefaultAsyncDispatcher","getCacheForType","resourceType","cacheForType","PossiblyWeakMap","workInProgressSuspendedReason","workInProgressThrownValue","workInProgressRootDidSkipSuspendedSiblings","workInProgressRootIsPrerendering","workInProgressRootDidAttachPingListener","workInProgressRootInterleavedUpdatedLanes","workInProgressRootPingedLanes","workInProgressRootConcurrentErrors","workInProgressRootRecoverableErrors","workInProgressRootDidIncludeRecursiveRenderUpdate","workInProgressTransitions","rootDoesHavePassiveEffects","rootWithPendingPassiveEffects","pendingPassiveEffectsLanes","pendingPassiveEffectsRemainingLanes","pendingPassiveTransitions","suspenseHandler","cancelPendingCommit","prepareFreshStack","markRootSuspended","ensureRootIsScheduled","performWorkOnRoot","forceSync","shouldTimeSlice","expiredLanes","exitStatus","prevExecutionContext","prevDispatcher","pushDispatcher","prevAsyncDispatcher","pushAsyncDispatcher","thrownValue","throwAndUnwindWorkLoop","replaySuspendedUnitOfWork","hostFiber","completeUnitOfWork","resetWorkInProgressStack","workLoopConcurrent","thrownValue$166","handleThrow","renderRootConcurrent","renderRootSync","renderWasConcurrent","isRenderConsistentWithExternalStores","errorRecoveryDisabledLanes","wasRootDehydrated","timeoutHandle","scheduleTimeout","commitRootWhenReady","errors","recoverableErrors","transitions","didIncludeRenderPhaseUpdate","updatedLanes","suspendedRetryLanes","didSkipSuspendedSiblings","suspendedCommitReason","completedRenderStartTime","completedRenderEndTime","unsuspend","noop","insertSuspendedStylesheets","stylesheetTimer","waitForCommitToBeReady","commitRoot","didAttemptEntireTree","expirationTimes","index$6","flushSyncWorkAcrossRoots_impl","cancelTimeout","allEntangledLanes","index$4","shouldYieldForPrerendering","unitOfWork","workLoopSync","thrownValue$164","performUnitOfWork","suspendedReason","rootRenderLanes","attachPingListener","markerInstances","cause","wrapperError","throwException","unwindUnitOfWork","skipSiblings","previousUpdateLanePriority","renderPriorityLevel","flushPassiveEffects","callbackNode","callbackPriority","remainingLanes","previouslyPendingLanes","index$7","hiddenUpdatesForLane","markRootFinished","priorityLevel","scheduleCallback$1","eventsEnabled","_enabled","selection","e$20","indexWithinAnchor","indexWithinFocus","selectionInformation","resolvedPrevProps","clearContainerSparingly","commitBeforeMutationEffects","releaseRootPooledCache","onCommitFiberRoot","onCommitRoot","onRecoverableError","commitRootImpl","root$170","renderPriority","onPostCommitFiberRoot","captureCommitPhaseErrorOnRoot","rootFiber","pingCache","threadIDs","pingSuspendedRoot","retryTimedOutBoundary","boundaryFiber","firstScheduledRoot","lastScheduledRoot","didScheduleMicrotask","mightHavePendingSyncWork","isFlushingWork","currentEventTransitionLane","processRootScheduleInMicrotask","scheduleMicrotask","syncTransitionLanes","onlyLegacy","didPerformSomeWork","root$172","performSyncWorkOnRoot","currentPopstateTransitionEvent","shouldAttemptEagerTransition","scheduleTaskForRootDuringMicrotask","index$5","expirationTime","performWorkOnRootViaSchedulerTask","didTimeout","originalCallbackNode","workInProgressRootRenderLanes$jscomp$0","coerceFormActionProp","actionProp","createFormDataWithSubmitter","submitter","FormData","i$jscomp$inline_1439","eventName$jscomp$inline_1440","nonDelegatedEvents","eventSystemFlags","_dispatchQueue$i","previousInstance","i$jscomp$0","_dispatchListeners$i","targetElement","listenerSetKey","addTrappedEventListener","listenToNativeEvent","isCapturePhaseListener","listeningMarker","rootContainerElement","targetContainer","listenerWrapper","dispatchDiscreteEvent","dispatchContinuousEvent","dispatchEventForPluginEventSystem","targetInst$jscomp$0","ancestorInst","nodeTag","grandTag","SyntheticEventCtor","inCapturePhase","accumulateTargetOnly","reactEventName","lastHostComponent","_instance","createDispatchListener","parentWindow","getParent","accumulateEnterLeaveListenersForEvent","getTargetInstFunc","handleEventFunc","fallbackData","eventType","getNativeBeforeInputChars","char","getFallbackBeforeInputChars","maybeTargetInst","formAction","extractEvents$1","targetFiber","captureName","_instance2","unshift","common","_instance3","NORMALIZE_NEWLINES_REGEX","NORMALIZE_NULL_AND_REPLACEMENT_REGEX","normalizeMarkupForTextOrAttribute","markup","serverText","clientText","formEncType","formMethod","formTarget","encType","__html","muted","hasSrc","hasSrcSet","propValue$186","parentNamespace","dangerouslySetInnerHTML","localPromise","queueMicrotask","handleErrorInNextTick","parentInstance","suspenseInstance","targetInstance","rootContainerInstance","preconnectsSet","getRootNode","previousDispatcher","previousWasRendering","wasRendering","formInst","preconnectAs","as","globalDocument","preloadSelector","imageSrcSet","imageSizes","getScriptKey","getScriptSelectorFromKey","scripts","adoptPreloadPropsForScript","insertStylesheet","limitedEscapedHref","currentProps","preloadProps","styles$242","resource$243","integrity","hrefLang","referrerPolicy","rawProps","styleProps","instance$248","nodes","prior","stylesheetProps","scriptProps","keyAttribute","caches","nodeKey","precedencesByRoot","insertStylesheetIntoRoot","precedences","FiberRootNode","hydrate","incompleteTransitions","createFiberRoot","initialChildren","hydrationCallbacks","isStrictMode","transitionCallbacks","getContextForSubtree","parentComponent","updateContainerImpl","markRetryLaneImpl","markRetryLaneIfNotHydrated","attemptContinuousHydration","blockedOn","findInstanceBlockingEvent","return_targetInst","clearIfContinuousEvent","queuedFocus","accumulateOrCreateContinuousQueuedReplayableEvent","queuedDrag","queuedMouse","queuedPointers","queuedPointerCaptures","queueIfContinuousEvent","discreteReplayableEvents","findInstanceBlockingTarget","hasScheduledReplayAttempt","queuedExplicitHydrationTargets","existingQueuedEvent","targetContainers","attemptExplicitHydrationTarget","queuedTarget","priority","runWithPriority","attemptReplayContinuousQueuedEvent","queuedEvent","nextBlockedOn","nativeEventClone","attemptReplayContinuousQueuedEventInMap","replayUnblockedEvents","scheduleCallbackIfUnblocked","unblocked","lastScheduledReplayQueue","scheduleReplayQueueIfNeeded","formReplayingQueue","submitterOrAction","unblock","$$reactFormReplay","formProps","ReactDOMRoot","internalRoot","_internalRoot","ReactDOMHydrationRoot","unstable_scheduleHydration","isomorphicReactPackageVersion$jscomp$inline_1686","findDOMNode","componentOrElement","parentA","parentB","didFindChild","child$2","findCurrentFiberUsingSlowPath","internals$jscomp$inline_2165","bundleType","rendererPackageName","currentDispatcherRef","findFiberByHostInstance","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","hook$jscomp$inline_2166","isDisabled","supportsFiber","inject","createRoot","unstable_strictMode","unstable_transitionCallbacks","hydrateRoot","Internals","getCrossOriginStringAs","createPortal","createPortal$1","flushSync","previousTransition","previousUpdatePriority","preconnect","prefetchDNS","preinit","fetchPriority","nonce","preinitModule","preloadModule","requestFormReset","unstable_batchedUpdates","permalink","useFormStatus","checkDCE","__reactInternalSnapshotFlag","__reactInternalSnapshot","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","bodyOpenClassName","portalClassName","_extends","_createClass","Constructor","protoProps","staticProps","_react","_react2","_interopRequireDefault","_reactDom2","_propTypes2","_ModalPortal2","ariaAppHider","newObj","_interopRequireWildcard","_safeHTMLElement","_safeHTMLElement2","_reactLifecyclesCompat","_possibleConstructorReturn","ReferenceError","isReact16","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","parentSelector","Modal","_Component","_temp","_classCallCheck","_len","_key","removePortal","unmountComponentAtNode","portalRef","renderPortal","defaultStyles","subClass","superClass","_inherits","prevParent","nextParent","_props","isOpen","closesAt","closeTimeoutMS","beforeClose","closeWithTimeout","overlay","htmlOpenClassName","afterOpen","overlayClassName","appElement","SafeHTMLCollection","SafeNodeList","onAfterOpen","onRequestClose","ariaHideApp","shouldFocusAfterRender","shouldCloseOnOverlayClick","shouldReturnFocusAfterClose","aria","contentLabel","shouldCloseOnEsc","overlayRef","overlayElement","contentEl","border","WebkitOverflowScrolling","outline","focusManager","_scopeTab2","_portalOpenInstances2","CLASS_NAMES","ariaHiddenInstances","ModalPortal","setOverlayRef","setContentRef","afterClose","_this$props","parentDocument","returnFocus","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","beforeOpen","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","overlayEl","closeWithoutTimeout","focusContent","contentHasFocus","handleKeyDown","isTabKey","isEscKey","requestClose","handleOverlayOnClick","shouldClose","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","shouldBeClosed","buildClassName","additional","classNames","attributesFromObject","acc","moveFromContentToOverlay","register","_props2","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","onMouseUp","modal","resetState","globalElement","assertNodeList","useElement","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","selector","HTMLCollection","NodeList","after","instances","_arr2","_i2","_portalOpenInstances","openInstances","htmlElement","cls","htmlClassList","removeClass","_cls","docBodyClassList","classString","classListRef","poll","incrementReference","decrementReference","focusLaterElements","handleBlur","handleFocus","toFocus","modalElement","_tabbable","_tabbable2","needToFocus","portalOpenInstances","PortalOpenInstances","openInstance","subscribers","subscriber","_exenv","EE","SafeHTMLElement","tabbable","checkSafari","findTabbableDescendants","descendants","finished","DISPLAY_NONE","DISPLAY_CONTENTS","tabbableNode","hidesContents","zeroSize","offsetWidth","offsetHeight","scrollWidth","scrollHeight","isNotOverflowing","isTabIndexNotNaN","rootNode","isTabIndexNaN","_Modal","_Modal2","cookieNameRegExp","cookieValueRegExp","domainValueRegExp","pathValueRegExp","__toString","NullObject","startIndex","jsxProd","config","maybeKey","jsx","jsxs","ReactNoopUpdateQueue","emptyObject","ComponentDummy","PureComponent","partialState","forceUpdate","pureComponentPrototype","ReactElement","isValidElement","userProvidedKeyEscapeRegex","getElementKey","escaperLookup","mapIntoArray","escapedPrefix","nameSoFar","oldElement","newKey","invokeCallback","nextNamePrefix","resolveThenable","mapChildren","lazyInitializer","_status","_result","moduleObject","Children","forEachFunc","forEachContext","toArray","only","Profiler","StrictMode","Suspense","act","cloneElement","childArray","childrenLength","createRef","forwardRef","lazy","memo","scope","unstable_useCacheRefresh","Context","_getStorage","getItem","setItem","removeItem","storageType","testKey","hasStorage","noopStorage","_default","parentIndex","peek","halfLength","leftIndex","rightIndex","diff","sortIndex","performance","localPerformance","localDate","initialTime","taskQueue","timerQueue","taskIdCounter","currentTask","currentPriorityLevel","isPerformingWork","isHostCallbackScheduled","isHostTimeoutScheduled","localSetTimeout","localClearTimeout","localSetImmediate","setImmediate","advanceTimers","timer","startTime","handleTimeout","requestHostCallback","firstTimer","requestHostTimeout","schedulePerformWorkUntilDeadline","isMessageLoopRunning","taskTimeoutID","frameInterval","shouldYieldToHost","performWorkUntilDeadline","hasMoreWork","previousPriorityLevel","continuationCallback","MessageChannel","channel","port2","port1","onmessage","ms","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","fps","unstable_getFirstCallbackNode","unstable_next","eventHandler","unstable_pauseExecution","unstable_runWithPriority","timeout","unstable_wrapCallback","parentPriorityLevel","useSyncExternalStoreWithSelector","instRef","hasValue","memoizedSelector","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","warning","assertClassBrand","checkPrivateRedeclaration","toPropertyKey","toPrimitive","hasOwn","arg","appendClass","parseValue","newClass","__webpack_require__","leafPrototypes","getProto","ns","def","getOwnPropertyNames","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","needAttach","nc","onScriptComplete","doneFns","toStringTag","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","PopStateEventType","createBrowserHistory","getUrlBasedHistory","window2","globalHistory","pathname","createLocation","usr","createPath","invariant","getHistoryState","idx","parsePath","parsedPath","hashIndex","searchIndex","getLocation","createHref2","validateLocation","v5Compat","history","getIndex","handlePop","nextIndex","delta","createURL","replaceState","listen","createHref","encodeLocation","historyState","pushState","DOMException","go","matchRoutes","routes","locationArg","matchRoutesImpl","basename","allowPartial","stripBasename","branches","flattenRoutes","sort","score","siblings","compareIndexes","routesMeta","meta","childrenIndex","rankRouteBranches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","rest","isOptional","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","segment","branch","matchedParams","matchedPathname","remainingPathname","matchPath","pathnameBase","normalizePathname","matcher","compiledParams","regexpSource","paramName","compilePath","captureGroups","memo2","splatValue","nextChar","getInvalidPathError","getPathContributingMatches","getResolveToMatches","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","ViewTransitionContext","isTransitioning","FetchersContext","AwaitContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","React2","useLocation","navigateEffectWarning","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","useCurrentRouteId","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","navigator2","routePathnamesJson","relative","useNavigateUnstable","OutletContext","useParams","routeMatch","useResolvedPath","useRoutesImpl","dataRouterState","future","parentMatches","parentParams","parentPathname","parentPathnameBase","parentRoute","warningOnce","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","useRouteError","lightgrey","preStyles","codeStyles","devInfo","defaultErrorElement","RenderErrorBoundary","revalidation","routeContext","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","initialized","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","errors2","needsToRunLoader","reduceRight","shouldRenderHydrateFallback","matches2","getChildren","getDataRouterConsoleError","hookName","useDataRouterState","useRouteContext","thisRoute","_state$errors","routeId","alreadyWarned","React3","Navigate","replace2","isStatic","jsonPath","Outlet","useOutlet","Route","Router","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","defaultMethod","defaultEncType","isHtmlElement","_formDataSupportsSubmitter","supportedFormEncTypes","getFormEncType","getFormSubmissionInfo","isFormElement","attr","isButtonElement","isInputElement","isFormDataSubmitterSupported","invariant2","loadRouteModule","routeModulesCache","routeModule","import","__reactRouterContext","isSpaMode","reload","isPageLinkDescriptor","isHtmlLinkDescriptor","getNewMatchesForLinks","nextMatches","currentMatches","manifest","isNew","matchPathChanged","_currentMatches$index","manifestRoute","hasLoader","_currentMatches$","routeChoice","currentUrl","currentParams","nextUrl","nextParams","defaultShouldRevalidate","dedupeHrefs","hrefs","dedupeLinkDescriptors","descriptors","preloads","preloadsSet","deduped","sorted","sortKeys","createHtml","singleFetchUrl","reqUrl","React5","RemixRootDefaultErrorBoundary","isOutsideRemixApp","errorInstance","heyDeveloper","BoundaryShell","errorString","_routeModules$root","renderScripts","routeModules","useFrameworkContext","Layout","lang","Scripts","isFogOfWarEnabled","useDataRouterContext2","React9","useDataRouterStateContext","FrameworkContext","composeEventHandlers","theirHandler","ourHandler","getActiveMatches","isHydrated","errorIdx","PrefetchPageLinks","dataLinkProps","PrefetchPageLinksImpl","useKeyedPrefetchLinks","keyedPrefetchLinks","setKeyedPrefetchLinks","interrupted","links","mod","flat","getKeyedPrefetchLinks","linkProps","_excluded2","newMatchesForData","newMatchesForAssets","dataHrefs","routesParams","foundOptOutRoute","_routeModules$m$route2","hasClientLoader","searchParams","moduleHrefs","manifestPatch","imports","getModuleLinkHrefs","serverHandoffString","renderMeta","routerMatches","enableFogOfWar","didRenderScripts","initialScripts","_manifest$hmr","contextScript","routeModulesScript","hmr","routeIds","Boolean","initialRoutes","getPartialManifest","routePreloads","dedupe","mergeRefs","_len3","_key3","isBrowser","__reactRouterVersion","BrowserRouter","historyRef","React10","setStateImpl","ABSOLUTE_URL_REGEX2","forwardedRef","absoluteHref","discover","prefetch","reloadDocument","preventScrollReset","viewTransition","_excluded4","isAbsolute","isExternal","targetUrl","joinedPathname","useHref","shouldPrefetch","prefetchRef","prefetchHandlers","theirElementProps","frameworkContext","maybePrefetch","setMaybePrefetch","setShouldPrefetch","onTouchStart","observer","setIntent","cancelIntent","usePrefetchBehavior","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","NavLink","ariaCurrentProp","classNameProp","_excluded5","routerState","vtContext","useDataRouterContext3","currentLocation","nextPath","nextLocation","useViewTransitionState","nextLocationPathname","navigation","endSlashPosition","isPending","renderProps","ariaCurrent","Form","fetcherKey","onSubmit","_excluded6","useSubmit","URLSearchParams","indexValues","qs","useFormAction","submitMethod","getDataRouterConsoleError2","fetcherId","getUniqueFetcherId","currentRouteId","TextEncoder","thisArg","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isString","isFunction","isNumber","isObject","isPlainObject","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","token","asap","nextTick","isBuffer","isFormData","isArrayBufferView","isView","isBoolean","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","searchString","lastIndex","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","delimiter","toCamelCase","toFiniteNumber","isFinite","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isThenable","AxiosError","captureStackTrace","toJSON","description","fileName","lineNumber","columnNumber","customProps","axiosError","isVisitable","removeBrackets","renderKey","predicates","metaTokens","indexes","visitor","defaultVisitor","useBlob","convertValue","toISOString","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","handlers","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokens","tokensRE","parseTokens","deleteHeader","format","normalized","formatHeader","targets","asStrings","computed","_len2","_key2","accessor","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","freq","lastArgs","timestamp","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","throttle","progressBytes","rate","progress","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","write","expires","domain","secure","cookie","toGMTString","buildFullPath","baseURL","requestedURL","isAbsoluteURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","username","isURLSameOrigin","xsrfValue","cookies","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","unsubscribe","onloadend","responseHeaders","getAllResponseHeaders","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","upload","parseProtocol","composeSignals","signals","_OverloadYield","_wrapAsyncGenerator","AsyncGenerator","resume","_invoke","_awaitAsyncGenerator","_asyncGeneratorDelegate","_asyncIterator","asyncIterator","AsyncFromSyncIterator","AsyncFromSyncIteratorContinuation","streamChunk","readBytes","iterable","_iteratorAbruptCompletion","readStream","_x","_x2","_x3","trackStream","onFinish","_onFinish","loadedBytes","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","getBodyLength","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","knownAdapters","xhrAdapter","fetchAdapter","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","dummy","boolean","function","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","Cancel","spread","isAxiosError","formToJSON","getAdapter","cssText","getAutoCloseDelay","$t","enter","exit","appendPosition","collapse","collapseDuration","preventExitTransition","nodeRef","isIn","playToast","onExited","margin","containerId","toastId","isLoading","icon","removalReason","Ut","closeToast","toastProps","isPaused","isRunning","controlledProgress","rtl","animationDuration","animationPlayState","defaultClassName","Xt","genToastId","notify","staleId","onOpen","removeToast","toasts","clearQueue","buildToast","toastStyle","fromEntries","toastClassName","progressClassName","autoClose","deleteToast","closeButton","setProps","setToggle","isToastActive","hasContainers","Wt","removalDistance","canCloseOnClick","canDrag","didMove","pauseOnHover","closeOnClick","draggableDirection","collapseAll","Zt","pauseOnFocusLoss","hasFocus","onPointerDown","draggable","draggablePercent","onPointerUp","stacked","pauseToast","toastRef","eventHandlers","resolver","dismiss","dark","clearWaitingQueue","getToast","play","pause","Jt","spinner","eo","oo","lo","hideProgressBar","fo","co","customProgressBar","_o","hotKeys","To","getToastToRender","Kt","Yt","newestOnTop","reverse","collapsed","yo","defaultNoopBatch","nullListeners","createSubscription","store","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","subscription","trySubscribe","addNestedSub","isSubscribed","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","isDOM","isReactNative","isRunningInReactNative","getUseIsomorphicLayoutEffect","ContextKey","gT","_gT$ContextKey","contextMap","realContext","ReactReduxContext","Provider_default","providerProps","serverState","contextValue","getServerState","previousState","getState","createReduxContextHook","useReduxContext","createStoreHook","useReduxContext2","useStore2","useStore","withTypes","createDispatchHook","useDispatch2","useDispatch","refEquality","createSelectorHook","useSelector2","equalityFnOrOptions","equalityFn","reduxContext","wrappedSelector","selectedState","useSelector","symbol_observable_default","observable","randomString","actionTypes_default","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","listenerId","replaceReducer","nextReducer","outerSubscribe","observeState","observerAsObserver","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","funcs","createThunkMiddleware","extraArgument","thunk","withExtraArgument","NOTHING","DRAFTABLE","DRAFT_STATE","die","isDraft","isDraftable","_value$constructor","isMap","isSet","objectCtorString","Ctor","each","getArchtype","type_","propOrOldValue","latest","copy_","base_","shallowCopy","strict","isPlain","deep","isFrozen","dontMutateFrozenCollections","currentScope","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","assigned_","autoFreeze_","objectTraps","_desc$get","getDescriptorFromProto","draft_","readPropFromProto","prepareCopy","createProxy","current2","markChanged","deleteProperty","arrayTraps","useStrictShallowCopy_","proxyMap_","proxySet_","isManual_","traps","revoke","proxy","Proxy","revocable","createProxyProxy","currentImpl","immer","produce","recipe","defaultBase","base2","hasError","ip","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","applyPatchesImpl","applyPatches_","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","createAction","prepareAction","actionCreator","prepared","isAction","Tuple","_Tuple","species","freezeDraftable","createNextState","getOrInsertComputed","compute","SHOULD_AUTOBATCH","createQueueWithTimer","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","notifying","shouldNotifyAtEndOfTick","notificationQueued","queueCallback","queueNotification","notifyListeners","listener2","wrappedListener","_action$meta","autoBatchEnhancer","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","addCase","typeOrActionCreator","addMatcher","addDefaultCase","asyncThunkSymbol","getType","actionKey","buildCreateSlice","_creators$asyncThunk","creators","cAT","asyncThunk","reducerPath","payloadCreator","_reducerDefinitionType","caseReducer","preparedReducer","prepare","buildReducerCreators","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","sliceMatchers","contextMethods","reducer2","exposeAction","name2","exposeCaseReducer","buildReducer","extraReducers","finalCaseReducers","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","frozenInitialState","caseReducers","cr","isDraft2","isDraftable2","createNextState2","createReducer","sM","reducerName","reducerDefinition","reducerDetails","createNotation","isAsyncThunkSliceReducerDefinition","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","handleNormalReducerDefinition","handleThunkCaseReducerDefinition","selectSelf","injectedSelectorCache","_reducer","makeSelectorProps","reducerPath2","injected","selectSlice","sliceState","getSelectors","selectState","selectorCache","_options$selectors","selectors","wrapSelector","injectInto","injectable","pathOpt","newReducerPath","rootState","_len11","_key11","unwrapped","createSlice","alm","addListener","removeListener","userSlice","userEmail","isVerified","setUser","localStorage","setVerified","clearUser","Loadertext","_jsx","_jsxs","class","cx","setForm","relation","firstName","errorMessage","setErrorMessage","setIsLoading","notificationSound","Audio","toastNotification","handleChange","ToastContainer","Loader","post","user","toast","_error$response","_error$response$data","FooterFront","IconContext","mirrored","renderPathForWeight","pathsByWeight","IconBase","renderPath","restProps","contextColor","_useContext$color","contextSize","_useContext","contextWeight","_useContext$weight","contextMirrored","_useContext$mirrored","restContext","strokeLinecap","strokeLinejoin","EyeSlash","Eye","dateOfBirth","gender","motherTongue","userProfie","setUserProfile","showPassword","setShowPassword","dataBinding","prevForm","passwordVisibility","mainContainer","progressDiv","progressHeading","progressHeading2","formContainer","formHeading","updatedForm","notifyError","formGroup","fieldGroup","labelGroup","starHead","inputGroup","helperTextDiv","helperText","PasswordEyeIcon","btnDiv","submitButton","mandatoryField","footer","isModalOpen","setIsModalOpen","setEmail","emailResendTimer","setEmailResendTimer","interval","setInterval","clearInterval","userId","_error$response2","_error$response2$data","autoComplete","togglePasswordVisibility","selectedJathakam","setSelectedJathakam","renderOptionButtons","selectedOption","setSelectedOption","optionSingleButton","religion","caste","subCaste","gothram","suddhaJathakam","dosham","optionalDiv","optionalDivText","optionButtonOuterDiv","imageFile","setImageFile","preview","setPreview","showModal","setShowModal","notifySuccess","about","age","phoneNumber","hobbies","textAreaDiv","leftLabel","textArea","imageUploadDiv","imageUploadLabel","imageUploadInput","modalContent","objectFit","modalButtons","maritalStatus","setMaritalStatus","familyStatus","setFamilyStatus","familyType","setFamilyType","familyValues","setFamilyValues","physicallyChallenged","setPhysicallyChallenged","setErrors","newErrors","alert","inputGroupButtons","employmentStatus","setEmploymentStatus","residentStatus","setResidentStatus","city","education","educationDetails","annualIncome","occupation","citizenship","countryCities","England","Scotland","Wales","country","residentStatusStatus","Pen","Heart","strokeMiterlimit","User","Gear","Question","ShieldCheck","SignOut","HeartStraight","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","encodePacket","supportsBinary","encodeBlobAsBase64","byteOffset","TEXT_ENCODER","lookup","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","SEPARATOR","createPacketEncoderStream","TransformStream","packet","encoded","encodePacketToBinary","payloadLength","DataView","setUint8","setUint16","setBigUint64","BigInt","TEXT_DECODER","totalLength","concatChunks","Emitter","mixin","_callbacks","removeAllListeners","emitReserved","hasListeners","setTimeoutFn","globalThisShim","pick","NATIVE_SET_TIMEOUT","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","useNativeTimers","clearTimeoutFn","TransportError","Transport","socket","forceBase64","doOpen","doClose","packets","onPacket","onPause","createUri","_hostname","_query","encodedQuery","Polling","_polling","_poll","doPoll","decodePayload","encodedPayload","encodedPackets","decodedPacket","encodePayload","doWrite","uri","timestampRequests","timestampParam","sid","b64","hasCORS","empty","BaseXHR","isSSL","xd","req","pollXhr","createRequest","_opts","_method","_uri","_create","_a","xdomain","_xhr","extraHeaders","setDisableHeaderCheck","cookieJar","addCookies","requestTimeout","parseCookies","_onLoad","_index","requestsCount","requests","fromError","unloadHandler","hasXHR2","newRequest","BaseWS","ws","createSocket","addEventListeners","onopen","autoUnref","_socket","unref","onclose","closeEvent","ev","lastPacket","WebSocketCtor","WebSocket","MozWebSocket","transports","websocket","_packet","webtransport","WebTransport","transportOptions","closed","createBidirectionalStream","decoderStream","maxPayload","expectedLength","isBinary","headerArray","getUint16","getUint32","createPacketDecoderStream","MAX_SAFE_INTEGER","readable","pipeThrough","encoderStream","pipeTo","_writer","getWriter","polling","authority","ipv6uri","pathNames","regx","queryKey","$0","$1","$2","withEventListeners","OFFLINE_EVENT_LISTENERS","SocketWithoutUpgrade","writeBuffer","_prevBufferLen","_pingInterval","_pingTimeout","_maxPayload","_pingTimeoutTime","parsedUri","_transportsByName","transportName","agent","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","perMessageDeflate","closeOnBeforeunload","qry","pairs","_beforeunloadEventListener","_offlineEventListener","_onClose","_cookieJar","createCookieJar","_open","createTransport","EIO","priorWebsocketSuccess","setTransport","_onDrain","_onPacket","onHandshake","_sendPacket","_resetPingTimeout","pingInterval","pingTimeout","_pingTimeoutTimer","upgrading","_getWritablePackets","payloadSize","utf8Length","_hasPingExpired","hasExpired","compress","cleanupAndClose","waitForUpgrade","tryAllTransports","SocketWithUpgrade","_upgrades","_probe","failed","onTransportOpen","freezeTransport","onTransportClose","onupgrade","_filterUpgrades","upgrades","filteredUpgrades","Socket","DEFAULT_TRANSPORTS","withNativeFile","File","hasBinary","deconstructPacket","buffers","packetData","pack","_deconstructPacket","attachments","_placeholder","newData","reconstructPacket","_reconstructPacket","RESERVED_EVENTS","PacketType","Encoder","replacer","EVENT","ACK","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","deconstruction","Decoder","reviver","reconstructor","decodeString","isBinaryEvent","BinaryReconstructor","takeBinaryData","tryParse","substr","isPayloadValid","CONNECT","DISCONNECT","CONNECT_ERROR","finishedReconstruction","reconPack","binData","connect","connect_error","disconnecting","newListener","io","connected","recovered","receiveBuffer","sendBuffer","_queue","_queueSeq","acks","_autoConnect","disconnected","subEvents","subs","onpacket","active","_readyState","_b","_c","retries","fromQueue","volatile","_addToQueue","ack","_registerAckCallback","isTransportWritable","engine","isConnected","notifyOutgoingListeners","ackTimeout","withError","emitWithAck","_len4","_key4","tryCount","_len5","responseArgs","_key5","_drainQueue","_sendConnectPacket","_pid","pid","_lastOffset","_clearAcks","onconnect","onevent","onack","ondisconnect","emitEvent","_anyListeners","sent","_len6","_key6","emitBuffered","subDestroy","onAny","prependAny","offAny","listenersAny","onAnyOutgoing","_anyOutgoingListeners","prependAnyOutgoing","offAnyOutgoing","listenersAnyOutgoing","Backoff","jitter","attempts","duration","rand","deviation","setMin","setMax","setJitter","Manager","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","_parser","autoConnect","_reconnection","skipReconnect","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_timeout","maybeReconnectOnOpen","_reconnecting","reconnect","Engine","openSubDestroy","errorSub","onping","ondata","ondecoded","onreconnect","attempt","loc","sameNamespace","forceNew","multiplex","notifications","setNotifications","showNotifications","setShowNotifications","selectedSenderId","setSelectedSenderId","notificationAudio","likeNotification","volume","unlockAudio","timeoutId","fetchNotifications","newNotifications","prevIds","notified","handleNotification","newNotification","hasUnreadMessages","notification","senderId","hideAlert","liked","setLiked","getLike","setGetLike","setIsOpen","allMatches","setAllMatches","topMatches","setTopMatches","greeting","setGreeting","setFile","pdfModal","setPdfModal","pdfFile","setPdfFile","fileInputRef","pdfInputRef","getLikedProfiles","likedProfilesMap","likedUsers","likedProfile","likedId","userDetails","shuffledUsers","TopMatch","AllMatches","handleScrollHam","getElementsByClassName","DashStyles","ham1","ham2","ham3","open1","open2","open3","profileView","getGreeting","getHours","handleFileChange","selectedFile","handleUpload","handlePdfChange","selectedPdfFile","DropdownMenuSecondSmall","show2","handlePdfUpload","dropdownMenu","adsData","price","discount","comingSoon","currentAdIndex","setCurrentAdIndex","prevIndex","myRef","observerRef","headingRef","animateIn","setElementRef","setHeadingRef","mainContainerSub","Nav","SubContainer","sideBar","ProfileDiv","ProfileCard","ProfileImage","profilePicture","ProfileDetails","Greeting","UserName","MemberId","MembershipStatus","UpgradeButton","ProfileCompletion","LinkIcon","Icon","penIcon","DropdownSecond","DropdownMenuSecond","DropdownItemSecond","getElementById","PdfModalOverlay","PdfModalContent","FileName","PdfModalActions","PdfYesButton","PdfNoButton","SettingsMain","HelpButton","Adsplacement","AdsCarousel","heart","ad","AdplacementCard","AdImgDiv","AdTitle","silverHeader","goldHeader","platinumHeader","Adplacement2","HamburgerMain","Hamburger","drawer","drawerOpen","drawerClosed","Container","contentDimmed","AdOffers","AdOffersHead","AdOffersMain","AdOffersPrice","AdOffersPara","AdOffersBtn","paymentButtonAds","handlePayment","TopRecommendation","trHeading","TrHead","TrContent","trContentDisplay","trCard","trCardImg","avatarImg","cardImage","trCardDetails","trCardDetailSub","trUserName","trUserDetails","LikeButton","likedHeartBefore","likedHeart","SeeAll","seeAllButton","behavior","seeAllLink","Footer","OtpPage","otp","setMessage","setError","_err$response","_err$response$data","_err$response2","_err$response2$data","omit","condition","shouldUpdate","cacheRef","REACT_ELEMENT_TYPE_18","REACT_ELEMENT_TYPE_19","isFragment","fillRef","composeRef","refList","useComposeRef","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isReactElement","getNodeRef","offsetParent","getBBox","_getBBox","_element$getBoundingC","_width","_height","defaultPrefixCls","defaultIconPrefixCls","Variants","ConfigContext","getPrefixCls","defaultGetPrefixCls","suffixCls","customizePrefixCls","iconPrefixCls","ConfigConsumer","replaceElement","replacement","_iterableToArray","_toConsumableArray","canUseDom","APPEND_ORDER","APPEND_PRIORITY","containerCache","getMark","mark","getContainer","attachTo","findStyles","injectCSS","csp","_option$priority","mergedOrder","isPrependQueue","styleNode","existStyle","nodePriority","findExistNode","removeCSS","existNode","updateCSS","originOption","cachedRealContainer","placeholderStyle","syncRealContainer","_option$csp","_option$csp2","_option$csp3","newNode","warned","preWarningFns","valid","note","preMessage","resetWarned","noteOnce","obj1","obj2","shallow","refSet","deepEqual","circular","newLevel","_defineProperties","pathKey","Entity","instanceId","opGet","keyPathStr","valueFn","opUpdate","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","cssinjsInstanceId","styleHash","_style$parentNode","CacheEntity","StyleContext","hashPriority","defaultCache","CALC_UNIT","ThemeCache","cacheCallTimes","derivativeOption","_cache3","updateCallTimes","derivative","_this$internalGet","internalGet","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","callTimes","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","sameDerivativeOption","uuid","Theme","cacheThemes","createTheme","derivativeArr","resultCache","RESULT_VALUE","flattenTokenCache","flattenToken","token2key","salt","isClientSide","unit","toStyleStr","tokenKey","styleId","attrStr","token2CSSVar","serializeCSSVar","cssVars","hashId","transformToken","themeKey","_config$preserve","_config$ignore","preserve","ignore","_config$unitless","cssVar","unitless","useInternalLayoutEffect","firstMountRef","useLayoutUpdateEffect","firstMount","renderEffect","effect","effectCleanups","cleanupFlag","useGlobalCache","keyPath","cacheFn","onCacheRemove","onCacheEffect","globalCache","fullPathStr","useEffectCleanupRegister","buildCache","useHMR","prevCache","_ref2$","cacheContent","useCompatibleInsertionEffect","_ref6$","EMPTY_OVERRIDE","tokenKeys","cleanTokenStyle","tokenKeyList","cleanableKeyList","removeStyleTags","TOKEN_PREFIX","useCacheToken","_option$salt","_option$override","override","formatToken","getComputedToken","mergedToken","dep","memoResult","tokenStr","overrideTokenStr","cssVarStr","cachedToken","_cssVar$key","mergedDerivativeToken","originToken","overrideToken","getDerivativeToken","actualToken","cssVarsStr","_transformToken2","_tokenKey","_themeKey","recordCleanToken","_hashId","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","orphans","tabSize","widows","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeOpacity","COMMENT","RULESET","DECLARATION","indexof","charat","strlen","column","characters","caret","alloc","dealloc","delimit","whitespace","escaping","commenter","identifier","compile","rules","rulesets","pseudo","declarations","atrule","previous","variable","scanning","ampersand","reference","declaration","ruleset","sizeof","cachePathMap","ATTR_CACHE_MAP","CSS_FILE_STYLE","fromCSSFile","existPath","_item$split2","_inlineMapStyle$paren","inlineMapStyle","MULTI_VALUE","normalizeStyle","styleStr","injectSelectorHash","hashClassName","hashSelector","_firstPath$match","fullPath","firstPath","parseStyle","interpolation","parentSelectors","injectHash","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","getName","_parsedStr","flattenStyleList","flattenList","fullList","originStyle","_keyframe","mergedStyle","_trans$visit","isCompoundCSSProperty","appendStyle","cssKey","cssValue","formatValue","actualValue","subInjectHash","mergedKey","nextRoot","_parseStyle4","_parsedStr2","childEffectStyle","uniqueHash","Empty","STYLE_PREFIX","useStyleRegister","styleFn","clientOnly","_info$order","_React$useContext","autoClear","mock","ssrInline","enableLayer","isMergedClientSide","_useGlobalCache","cachePath","_getStyleAndHash","_style","getStyleAndHash","_getStyleAndHash2","inlineCacheStyleStr","styleObj","_parseStyle6","parsedStyle","fromHMR","mergedCSSConfig","nonceStr","effectLayerKeys","effectRestKeys","effectKey","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","CSS_VAR_PREFIX","_config$scope","stylePath","_ExtractStyleFns","effectStyles","plain","keyStyleText","sharedAttrs","effectStyleHTML","realToken","cssVarKey","Keyframe","noSplit","notSplit","_setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","valueOf","AbstractCalculator","regexp","CSSCalculator","_AbstractCalculator","_super","_createSuper","unitlessCssVar","_assertThisInitialized","numType","getResult","lowPriority","cssUnit","mergedUnit","NumCalculator","Calculator","useEvent","fnRef","memoFn","_fnRef$current","useSafeState","destroyRef","ignoreDestroy","useMergedState","defaultStateValue","postState","_useState2","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","_useState4","setPrevValue","_toArray","entity","internalSet","removeIfUndefined","_paths","restPath","createEmpty","internalMerge","parentLoopSet","loopSet","isArr","originValue","defaultToken","customToken","deprecatedTokens","_customToken$newToken","oldTokenKey","newTokenKey","enableStatistic","CSSINJS_STATISTIC","recording","statistic","_tokenKeys","componentToken","_statistic$componentN","getDefaultToken","_token$component","mergeToken","ArrayKeyMap","compositeKey","getCompositeKey","lastAccessBeat","accessBeat","getObjectID","objectIDMap","nextID","beat","uniqueMap","cachedValue","newValue","_config$useCSP","useCSP","useDefaultCSP","useToken","usePrefix","getResetStyles","getCommonStyle","getCompUnitless","genComponentStyleHook","cells","concatComponent","mergedLayer","prefixCls","rootCls","_useToken3","_usePrefix","rootPrefixCls","calc","useUniqueMemo","getCompVarPrefix","genCalc","_genMaxMin","genMaxMin","sharedConfig","injectStyle","_statisticToken","statisticToken","proxyToken","defaultComponentToken","getDefaultComponentToken","componentCls","getComponentToken","iconCls","antCls","styleInterpolation","commonStyle","resetFont","resetStyle","genStyleHooks","prefixToken","originUnitless","compUnitless","mergedOptions","useStyle","useCSSVar","_options$injectStyle","CSSVarRegister","_ref$cssVar","useCSSVarRegister","genCSSVarRegister","_useCSSVar2","genSubStyleComponent","_ref2$rootCls","textEllipsis","whiteSpace","textOverflow","resetComponent","needInheritFontFamily","boxSizing","colorText","listStyle","genLinkStyle","colorLink","textDecoration","linkDecoration","motionDurationSlow","colorLinkHover","colorLinkActive","linkHoverDecoration","linkFocusDecoration","colorTextDisabled","genFocusOutline","lineWidthFocus","colorPrimaryBorder","outlineOffset","genFocusStyle","genIconStyle","alignItems","textTransform","textRendering","defaultPresetColors","blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","gold","lime","colorPrimary","colorSuccess","colorWarning","colorError","colorInfo","colorTextBase","colorBgBase","fontFamilyCode","lineType","motionUnit","motionBase","motionEaseOutCirc","motionEaseInOutCirc","motionEaseOut","motionEaseInOut","motionEaseOutBack","motionEaseInBack","motionEaseInQuint","motionEaseOutQuint","sizeUnit","sizeStep","sizePopupArrow","controlHeight","zIndexBase","zIndexPopupBase","opacityImage","wireframe","motion","defaultSeedToken","hashed","DesignTokenContext","splitColorStr","parseNum","numList","parseHSVorHSL","limitRange","mergedMax","FastColor","matchFormat","trimStr","matchPrefix","fromHexString","fromRgbString","fromHslString","fromHsvString","_h","_l","_v","fromHsl","fromHsv","setR","_sc","setG","setB","setA","setHue","hsv","toHsv","getLuminance","adjustGamma","getHue","getMax","getMin","getSaturation","getLightness","getBrightness","_brightness","darken","amount","lighten","mix","rgba","tint","shade","onBackground","isDark","isLight","equals","toHexString","rHex","gHex","bHex","aHex","toHsl","toHslString","toRgb","toRgbString","_max","_min","withoutPrefix","connectNum","index1","index2","huePrime","chroma","secondComponent","lightnessModification","vv","hh","ff","txt","darkColorMap","light","hue","saturation","generate","patterns","pColor","presetPrimaryColors","primary","grey","presetPalettes","redDark","volcanoDark","orangeDark","goldDark","yellowDark","limeDark","greenDark","cyanDark","blueDark","geekblueDark","purpleDark","magentaDark","greyDark","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","borderRadiusXS","borderRadiusSM","borderRadiusLG","borderRadiusOuter","controlHeightSM","controlHeightXS","controlHeightLG","getLineHeight","fontSizePairs","fontSizes","baseSize","intSize","genFontSizes","lineHeights","fontSizeMD","fontSizeSM","fontSizeLG","lineHeightSM","lineHeightLG","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","fontHeightLG","fontHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","getAlphaColor","getSolidColor","brightness","generateColorPalettes","generateNeutralColorPalettes","bgBaseColor","textBaseColor","colorTextSecondary","colorTextTertiary","colorTextQuaternary","colorFill","colorFillSecondary","colorFillTertiary","colorFillQuaternary","colorBgSolid","colorBgSolidHover","colorBgSolidActive","colorBgLayout","colorBgContainer","colorBgElevated","colorBgSpotlight","colorBgBlur","colorBorder","colorBorderSecondary","defaultTheme","colorPalettes","colorKey","cur","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorErrorBgFilledHover","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorderHover","colorPrimaryHover","colorPrimaryActive","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBg","colorErrorBgHover","colorErrorBgActive","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBg","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","colorBgMask","colorWhite","genColorMapToken","genFontMapToken","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","genSizeMapToken","genControlHeight","motionDurationFast","motionDurationMid","lineWidthBold","genRadius","genCommonMapToken","isStableColor","frontColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","__rest","derivativeToken","restToken","overrideTokens","seedToken","screenXL","screenXXL","fastDuration","colorFillContent","colorFillContentHover","colorFillAlter","colorBgContainerDisabled","colorBorderBg","colorSplit","colorTextPlaceholder","colorTextHeading","colorTextLabel","colorTextDescription","colorTextLightSolid","colorHighlight","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorWarningOutline","fontSizeIcon","controlOutlineWidth","controlInteractiveSize","controlItemBgHover","controlItemBgActive","controlItemBgActiveHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","fontWeightStrong","opacityLoading","controlPaddingHorizontal","controlPaddingHorizontalSM","paddingXXS","paddingXS","paddingSM","paddingMD","paddingLG","paddingXL","paddingContentHorizontalLG","paddingContentVerticalLG","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginXXS","marginXS","marginSM","marginMD","marginLG","marginXL","marginXXL","boxShadow","boxShadowSecondary","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenSMMax","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","componentTheme","componentTokens","mergedComponentToken","rootDesignToken","mergedTheme","genStyleUtils","useLocalToken","genCommonStyle","componentPrefixCls","prefixSelector","rootPrefixSelector","resetFontStyle","genWaveStyle","raf","caf","rafUUID","rafIds","wrapperRaf","callRef","leftTimes","realId","TARGET_CLS","SVGElement","_ReactDOM$findDOMNode","nativeElement","getDOM","MotionProvider","_React$Component","DomWrapper","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","domSupport","win","getVendorPrefixes","_document$createEleme","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","prepareOnly","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","STEP_QUEUE","nextStep","doNext","useStatus","supportMotion","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useSyncState","currentValueRef","useSyncState","_useSyncState2","getStatus","setStatus","setStyle","currentStatus","mountedRef","deadlineRef","getDomElement","updateMotionEndStatus","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","_useStepQueue2","useStepQueue","onPrepare","_eventHandlers$step","startStep","visibleRef","nextStatus","nextEventHandlers","firstMountChangeRef","transitionSupport","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","motionName","leavedClassName","eventProps","contextMotion","isSupportTransition","wrapperNodeRef","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","mergedProps","statusSuffix","motionCls","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","onAllRemoved","_onVisibleChanged","motionProps","changedVisible","parsedKeyObjects","mixedKeyEntities","prevKeys","currentKeys","currentIndex","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","matchKey","diffKeys","prevEntity","_regeneratorRuntime","Generator","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","AsyncIterator","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","rval","finish","delegateYield","asyncGeneratorStep","_asyncToGenerator","_throw","fullClone","reactRender","toggleWarning","skip","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_callee","_container$MARK","legacyUnmount","_unmount","_callee2","_context2","unstableRender","defaultReactRender","isValidWaveColor","validateNum","WaveEffect","registerUnmount","divRef","unmountRef","setWaveColor","setBorderRadius","setLeft","setTop","setWidth","setHeight","setEnabled","waveStyle","syncPos","nodeStyle","borderTopColor","getTargetWaveColor","borderLeftWidth","borderTopWidth","offsetLeft","offsetTop","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","resizeObserver","isSmallComponent","holder","motionClassName","showWaveEffect","unmountCallback","useWave","wave","showWave","showEffect","rafId","DisabledContext","DisabledContextProvider","originDisabled","SizeContext","SizeContextProvider","originSize","customSize","keepEmpty","SpaceCompactItemContext","useCompactItemContext","compactItemContext","compactItemClassnames","compactDirection","isFirstItem","isLastItem","separator","compactSize","NoCompactStyle","GroupSizeContext","others","sizeCls","PresetColors","rxTwoCNChar","isTwoCNChar","isUnBorderedButtonVariant","spaceChildren","needInserted","isPrevChildPure","childList","isCurrentChildPure","SPACE","splitCNCharsBySpace","IconWrapper","iconWrapperCls","getRoot","_ele$getRootNode","getShadowRoot","ShadowRoot","inShadow","isIconDefinition","normalizeAttrs","rootProps","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","twoToneColorPalette","secondaryColor","calculated","svgRef","eleRef","mergedStyleStr","useInsertStyles","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo2","ReactIcon","spin","_React$useContext$pre","rootClassName","iconTabIndex","svgStyle","msTransform","getTwoToneColor","LoadingOutlined","AntdIcon","LoadingOutlinedSvg","InnerLoadingIcon","iconClassName","mergedIconCls","getCollapsedWidth","getRealWidth","existIcon","motionStyle","genButtonBorderStyle","buttonTypeCls","borderInlineEndColor","borderInlineStartColor","groupBorderColor","borderStartEndRadius","borderEndEndRadius","marginInlineStart","mul","equal","borderStartStartRadius","borderEndStartRadius","getRoundNumber","Color","_FastColor","convertHsb2Hsv","hsb","toHsb","lightness","hsbString","hsbaString","_this$toHsv","AggregationColor","cleared","metaColor","percent","RcColor","toHsbString","getHex","toHexFormat","colorsStr","isGradient","isBright","bgColorToken","prepareToken","paddingInline","onlyIconSize","buttonPaddingHorizontal","buttonPaddingVertical","buttonIconOnlyFontSize","prepareComponentToken","_f","contentFontSize","contentFontSizeSM","contentFontSizeLG","contentLineHeight","contentLineHeightSM","contentLineHeightLG","solidTextColor","defaultShadow","primaryShadow","dangerShadow","dangerColor","borderColorDisabled","defaultGhostColor","ghostBg","defaultGhostBorderColor","paddingInlineLG","paddingInlineSM","onlyIconSizeSM","onlyIconSizeLG","linkHoverBg","textTextColor","textTextHoverColor","textTextActiveColor","textHoverBg","defaultColor","defaultBg","defaultBorderColor","defaultBorderColorDisabled","defaultHoverBg","defaultHoverColor","defaultHoverBorderColor","defaultActiveBg","defaultActiveColor","defaultActiveBorderColor","paddingBlock","paddingBlockSM","paddingBlockLG","genSharedButtonStyle","gap","justifyContent","userSelect","touchAction","marginInlineEnd","flexDirection","genHoverActiveButtonStyle","btnCls","hoverStyle","activeStyle","genCircleButtonStyle","paddingInlineStart","paddingInlineEnd","genRoundButtonStyle","genDisabledStyle","genGhostButtonStyle","textColorDisabled","genSolidDisabledButtonStyle","genPureDisabledButtonStyle","genVariantButtonStyle","variant","genDisabledButtonStyle","genSolidButtonStyle","genOutlinedDashedButtonStyle","genDashedButtonStyle","genFilledButtonStyle","genTextLinkButtonStyle","genDefaultButtonStyle","genPrimaryButtonStyle","genDangerousStyle","genColorButtonStyle","darkColor","lightColor","hoverColor","lightHoverColor","lightBorderColor","activeColor","genPresetColorStyle","genCompatibleButtonStyle","genButtonStyle","genSizeBaseButtonStyle","baseToken","genSizeSmallButtonStyle","smallToken","genSizeLargeButtonStyle","largeToken","genBlockButtonStyle","buttonToken","genGroupStyle","compactItemBorder","parentCls","focusElCls","borderElCls","childCombinator","hoverEffects","compactItemBorderRadius","genCompactItemStyle","compactCls","compactItemVerticalBorder","marginBottom","genCompactItemVerticalStyle","genButtonCompactStyle","insetOffset","getCompactBorderStyle","insetInlineStart","ButtonTypeMap","dashed","InternalCompoundedButton","danger","customizeSize","customDisabled","iconPosition","ghost","htmlType","customClassNames","customStyle","autoInsertSpace","mergedType","mergedColor","mergedVariant","colorVariantPair","mergedColorText","mergedInsertSpace","wrapCSSVar","cssVarCls","mergedDisabled","groupSize","loadingOrDelay","getLoadingConfig","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","buttonRef","mergedRef","isMountRef","delayTimer","buttonText","handleClick","sizeClassNameMap","large","middle","sizeFullName","useSize","ctxSize","iconType","linkButtonRestProps","fullStyle","iconClasses","iconStyle","iconNode","DefaultLoadingIcon","kids","buttonNode","Compact","Wave","Button","Group","__ANT_BUTTON","CollectionContext","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","lastCallTime","resolvePending","timeoutCallback","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","elementListeners","entities","_elementListeners$get","SingleObserver","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","canRef","originRef","getDom","_elementRef$current","propsRef","onInternalResize","_propsRef$current","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","currentElement","RefResizeObserver","Collection","onBatchResize","resizeIdRef","resizeInfosRef","currentId","UNDEFINED","InternalItem","invalidate","renderItem","responsive","responsiveDisabled","registerSize","itemKey","_props$component","mergedHidden","internalRegisterSize","overflowStyle","childNode","overflowProps","itemNode","Item","useBatcher","updateFuncRef","channelUpdate","useEffectState","notifyEffectUpdate","stateValue","setStateValue","OverflowContext","_excluded3","InternalRawItem","_restProps","contextClassName","RawItem","RESPONSIVE","INVALIDATE","defaultRenderRest","omittedItems","Overflow","_props$prefixCls","_props$data","renderRawItem","_props$itemWidth","itemWidth","ssr","maxCount","renderRest","renderRawRest","itemComponent","onVisibleChange","fullySSR","_useEffectState2","containerWidth","setContainerWidth","mergedContainerWidth","_useEffectState4","itemWidths","setItemWidths","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState8","restWidth","setRestWidth","_useEffectState10","suffixWidth","setSuffixWidth","suffixFixedStart","setSuffixFixedStart","displayCount","setDisplayCount","mergedDisplayCount","_useState6","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedData","getKey","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","restNode","overflowNode","ForwardOverflow","IdContext","getMenuId","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","mergeProps","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","PathUserContext","includePositive","isFocusableElement","isContentEditable","tabIndexAttr","tabIndexNum","getFocusNodeList","KeyCode","MAC_ENTER","BACKSPACE","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","DELETE","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","QUESTION_MARK","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","SEMICOLON","DASH","EQUALS","COMMA","PERIOD","SLASH","APOSTROPHE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","isCharacterKey","ArrowKeys","getFocusableElements","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","refreshElements","key2element","element2key","useAccessibility","activeKey","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","cleanRaf","refreshedElements","_refreshedElements","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_offsets","inlineTrigger","inline","horizontal","inlineSub","horizontalSub","verticalSub","getOffset","tryFocus","menuElement","focusTargetElement","focusableElements","findContainerUL","controlId","parentKey","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","overflowKeys","setOverflowKeys","registerPath","connectedPath","unregisterPath","refreshOverflowKeys","includeOverflow","isSubPathKey","pathKeys","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","useActive","onActive","onInactive","domEvent","useDirectionStyle","inlineIndent","paddingRight","paddingLeft","warnItemProp","restInfo","LegacyMenuItem","attribute","passedProps","InternalMenuItem","warnKey","itemIcon","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","_internalRenderMenuItem","PrivateContext","itemCls","legacyMenuItemRef","mergedEleRef","connectedKeys","getEventInfo","mergedItemIcon","_useActive","activeProps","directionStyle","optionRoleProps","renderNode","MenuItem","measure","connectedKeyPath","InternalSubMenuList","SubMenuList","parseChildren","_eventKey","_child$props","cloneProps","EMPTY_LIST","measureScrollbarSize","randomId","measureEle","fallbackWidth","fallbackHeight","measureStyle","targetStyle","scrollbarColor","scrollbarWidth","webkitScrollbarStyle","widthStyle","heightStyle","UNIQUE_ID","useScrollLocker","lock","mergedLock","scrollbarSize","isOverflow","getPortalContainer","Portal","autoLock","_props$autoDestroy","debug","autoDestroy","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","appendedRef","queueCreate","OrderContext","setQueue","mergedQueueCreate","appendFn","_ele$parentElement","useDom","_useDom2","defaultContainer","mergedContainer","childRef","nextInline","renderInline","reffedChildren","useOriginId","reactId","innerId","setInnerId","nextId","vendor","opera","Arrow","align","arrow","arrowPos","_arrowPos$x","_arrowPos$y","arrowRef","alignStyle","autoArrow","popupPoints","targetPoints","popupTB","popupLR","targetTB","targetLR","Mask","PopupContent","keepDom","fresh","maskMotion","getPopupContainer","onPointerEnter","onPointerDownCapture","offsetR","offsetB","onAlign","stretch","targetWidth","targetHeight","isNodeVisible","getPopupContainerNeedParams","setShow","AUTO","offsetStyle","_experimental","dynamicInset","alignRight","alignBottom","miscStyle","resizeObserverRef","nextVisible","_motion$onVisibleChan","motionRef","TriggerWrapper","getTriggerDOMNode","canUseRef","setRef","isPointsEq","a1","a2","getMotion","getWin","collectScroller","scrollerList","scrollStyle","_getWin$getComputedSt","toNum","getPxValue","getVisibleArea","initArea","visibleArea","HTMLBodyElement","HTMLHtmlElement","_getWin$getComputedSt2","overflowClipMargin","borderBottomWidth","borderRightWidth","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleTop","eleRight","eleBottom","getUnitOffset","offsetStr","getNumberOffset","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","PortalComponent","Trigger","_props$action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","focusDelay","blurDelay","_props$maskClosable","maskClosable","destroyPopupOnHide","popupClassName","popupStyle","popupPlacement","_props$builtinPlaceme","builtinPlacements","popupAlign","getPopupClassNameFromAlign","alignPoint","onPopupClick","onPopupAlign","popupMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","mergedAutoDestroy","mobile","setMobile","isMobile","subPopupElements","parentContext","TriggerContext","registerSubPopup","subPopupEle","popupEle","setPopupEle","externalPopupRef","setPopupRef","_React$useState6","targetEle","setTargetEle","externalForwardRef","setTargetRef","originChildProps","inPopupOrChild","_getShadowRoot","_getShadowRoot2","childDOM","mergePopupMotion","mergeMaskMotion","_React$useState8","internalOpen","setInternalOpen","mergedOpen","setMergedOpen","nextOpen","openRef","lastTriggerRef","internalTriggerOpen","_lastTriggerRef$curre","delayRef","clearDelay","triggerOpen","_React$useState10","inMotion","setInMotion","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState14","mousePos","setMousePos","setMousePosByEvent","_useAlign","placement","arrowX","arrowY","offsetInfo","setOffsetInfo","alignCountRef","prevFlipRef","_popupElement$parentE","_popupRect$x","_popupRect$y","_popupElement$parentE2","targetRect","popupElement","_win$getComputedStyle","popupPosition","originLeft","originTop","originRight","originBottom","originOverflow","placementInfo","placeholderElement","_rect$x","_rect$y","popupRect","_doc$documentElement","popupHeight","popupWidth","visibleRegion","scrollRegion","htmlRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","targetOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset4","targetOffsetX","targetOffsetY","popupPoint","targetAlignPoint","popupAlignPoint","nextAlignInfo","nextOffsetX","nextOffsetY","getIntersectionVisibleArea","visibleL","visibleT","visibleR","visibleB","nextPopupY","nextPopupBottom","nextPopupX","nextPopupRight","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","adjustX","adjustY","supportAdjust","syncNextPopupPosition","needAdjustY","sameTB","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","tb","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","rl","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","lr","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupRight","popupBottom","targetLeft","targetRight","targetTop","targetBottom","nextArrowX","nextArrowY","offsetX4Right","offsetY4Bottom","resetReady","ori","useAlign","_useAlign2","alignInfo","_useAction","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","useAction","_useAction2","showActions","hideActions","clickToShow","clickToHide","triggerAlign","targetScrollList","popupScrollList","mergedList","notifyScroll","scroller","useWatch","alignedClassName","baseClassName","isAlignPoint","placements","_builtinPlacements$pl","getAlignPopupClassName","forceAlign","_React$useState16","setTargetWidth","_React$useState18","setTargetHeight","syncTargetSize","wrapperAction","preEvent","_originChildProps$eve","_originChildProps$onC","onPopupMouseEnter","onPopupMouseLeave","onPopupPointerDown","popupPointerDownRef","onTriggerClose","_e$composedPath","targetShadowRoot","useWinClick","hoverToShow","hoverToHide","onMouseMove","_originChildProps$onM","onContextMenu","_originChildProps$onC2","mergedChildrenProps","_mergedChildrenProps$","triggerNode","innerArrow","autoAdjustOverflow","topRight","bottomLeft","leftTop","leftBottom","rightTop","rightBottom","placementsRtl","defaultMotions","popupPlacementMap","PopupTrigger","popupOffset","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","innerVisible","setInnerVisible","targetMotion","targetMotionRef","mergedMotion","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","originOnVisibleChanged","newVisible","MenuContextProvider","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","_internalRenderSubMenuItem","subMenuPrefixCls","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isSubMenu","triggerModeRef","triggerMode","listNode","Divider","InternalMenuItemGroup","groupPrefixCls","convertItemsToNodes","MergedMenuItem","MergedMenuItemGroup","MergedSubMenu","submenu","MergedDivider","divider","parseItems","mergedComponents","MenuItemGroup","SubMenu","_childList$","_ref$prefixCls","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","_internalComponents","_React$useMemo2","measureChildList","mounted","setMounted","_useMergedState2","setUUID","newId","useUUID","_useMergedState","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","doUpdate","inlineCacheOpenKeys","setInlineCacheOpenKeys","mountRef","_React$useMemo4","mergedMode","mergedInlineCollapsed","isInlineMode","internalMode","setInternalMode","internalInlineCollapsed","setInternalInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState4","mergedActiveKey","setMergedActiveKey","_childList$find","_elementToFocus$focus","_refreshElements","shouldFocusKey","elementToFocus","_useMergedState5","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","exist","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","onInternalKeyDown","privateContext","wrappedChildList","omitItems","originOmitItems","newLastIndex","ExportMenu","ItemGroup","SiderContext","EllipsisOutlined","EllipsisOutlinedSvg","getCollapsedHeight","getRealHeight","getCurrentHeight","skipOpacityTransition","firstLevel","innerStyle","overlayInnerStyle","bodyClassName","autoAdjustOverflowTopBottom","autoAdjustOverflowLeftRight","Tooltip","_props$trigger","_props$mouseEnterDela","overlayStyle","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","arrowContent","_props$showArrow","showArrow","tooltipClassNames","tooltipStyles","triggerRef","extraProps","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","newMessages","enum","invalid","integer","float","mismatch","cloned","messages","_wrapNativeSuper","Wrapper","formatRegExp","convertFieldsError","template","isEmptyValue","isNativeStringType","asyncSerialArray","arrLength","original","AsyncValidationError","_Error","asyncMap","objArr","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","fullFields","fullField","deepMerge","ENUM","urlReg","getTime","getMonth","getYear","word","includeBoundaries","v4","v6seg","v6List","v6","v46Exact","v4exact","v6exact","ipv4","ipv6","regex","getUrlRegex","ruleType","enumRule","enumValidator","Schema","defaultMessages","_messages","source_","series","getValidationMethod","errorFields","doIt","defaultField","addFullField","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","validate","errs","finalErrors","asyncValidator","_console$error","_console","suppressValidatorError","_errors","messageIndex","typeTemplate","defaultValidateMessages","AsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x4","_x5","_validateRule","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","ruleIndex","validateMessages","t0","mergedMessage","subValue","validateRules","namePath","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w1","warningOnly","i1","w2","i2","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","_context4","ruleError","getNamePath","cloneByNamePathList","namePathList","newStore","containsNamePath","partialMatch","matchNamePath","subNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","moveIndex","toIndex","EMPTY_ERRORS","requireUpdate","Field","resetCount","isListField","cancelRegisterFunc","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","_this$props3","_this$props3$rules","onMetaChange","_meta","getMeta","metaCache","prevStore","_this$props4","_this$props4$dependen","onReset","curValue","namePathMatch","touched","dirty","validatePromise","warnings","triggerMetaEvent","reRender","validating","relatedFields","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateDebounce","filteredRules","getRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref4$errors","isList","prevValidating","validated","_meta2","getOnlyChild","getControlled","toChildrenArray","childProps","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","mergedGetValueProps","originTriggerFunc","valueProps","originTrigger","_this$props7","cancelRegister","returnChildNode","_this$getOnlyChild","FieldContext","_restProps$isListFiel","listContext","ListContext","isMergedListField","wrapperListContext","keyManager","parentPrefixName","pathName","_ref3$value","getNewValue","operations","indexSet","keysIndex","valueIndex","_move","listValue","SPLIT","cell","NameMap","kvs","_cell$match2","json","FormStore","forceRootUpdate","formHooked","subscribable","initialValues","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","clearOnDestroy","getFieldEntities","isMergedPreserve","isPreserve","initValue","watchList","allValues","fieldEntities","pure","nameList","getFieldsMap","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","records","requiredFieldEntities","_requiredFieldEntitie","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","onStoreChange","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","onFieldsChange","changedFields","provideNameList","promiseList","TMP_SPLIT","validateNamePathList","recursive","mergedErrors","mergedWarnings","allPromiseFinish","lastValidatePromise","resultNamePathList","returnPromise","outOfDate","triggerNamePathList","onFinishFailed","formRef","formStore","getForm","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","_ref$component","_ref$validateTrigger","_onFieldsChange","nativeElementRef","formContext","formInstance","useForm","_getInternalHooks","childrenNode","childrenRenderProps","prevFieldsRef","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","_restProps$onReset","useWatchWarning","_args$","_form","isFormInstance","valueStr","valueStrRef","isValidForm","namePathRef","getWatchValue","watchValue","nextValueStr","RefForm","FieldForm","FormProvider","onFormChange","onFormFinish","formsRef","forms","newForms","List","FormItemInputContext","NoFormStyle","formItemInputContext","newFormItemInputContext","newContext","isFormItemInput","hasFeedback","feedbackIcon","VariantContext","space","CONTAINER_OFFSET","containerBaseZIndexOffset","Drawer","Popover","Popconfirm","Tour","FloatButton","consumerBaseZIndexOffset","SelectLike","Dropdown","DatePicker","ImagePreview","useZIndex","componentType","customZIndex","parentZIndex","zIndexContext","isContainer","isContainerType","genRoundedArrow","arrowPolygon","arrowPath","arrowShadowWidth","_multi_value_","insetInline","_skip_check_","getArrowOffsetToken","contentRadius","limitVerticalRadius","arrowOffset","arrowOffsetHorizontal","arrowOffsetVertical","isInject","getArrowStyle","colorBg","arrowDistance","arrowPlacement","PlacementAlignMap","ArrowCenterPlacementAlignMap","DisableAutoArrowList","getPlacements","arrowWidth","arrowPointAtCenter","visibleFirst","halfArrowWidth","placementMap","baseOverflow","mergedOverflow","getOverflowOptions","WarningContext","devUseWarning","noopWarning","initMotionCommon","animationFillMode","initMotionCommonLeave","initMotion","inKeyframes","outKeyframes","sameLevelPrefix","zoomIn","Keyframes","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","zoomUpOut","zoomMotion","initZoomMotion","animationTimingFunction","genPresetColor","genCss","genTooltipStyle","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","zIndexPopup","edgeAlignMinWidth","centerAlignMinWidth","wordWrap","unitWidth","ay","dx","dy","ey","fx","fy","shadowWidth","polygonOffset","getArrowToken","TooltipToken","inverseColors","parseColor","isInternalColor","isPresetColor","arrowStyle","arrowContentStyle","formattedOverlayInnerStyle","InternalTooltip","openClassName","afterOpenChange","mergedShowArrow","getContextPopupContainer","tooltipRef","forcePopupAlign","setOpen","defaultOpen","noTitle","tooltipPlacements","mergedArrowPointAtCenter","pointAtCenter","memoOverlay","memoOverlayWrapper","ContextIsolator","injectFromPopover","tempOpen","childCls","rootClassNames","bodyClassNames","contextZIndex","RcTooltip","vis","_InternalPanelDoNotUseOrYouWillBeFired","PurePanel","disableMenuItemTitleTooltip","isInlineCollapsed","siderCollapsed","tooltipTitle","tooltipProps","returnNode","wrapNode","renderItemChildren","OverrideContext","slideUpIn","slideUpOut","slideDownIn","slideDownOut","slideLeftIn","slideLeftOut","slideRightIn","slideRightOut","slideMotion","initSlideMotion","horizontalLineHeight","itemPaddingInline","borderBottom","menuArrowOffset","accessibilityFocus","getThemeStyle","themeSuffix","itemColor","itemSelectedColor","subMenuItemSelectedColor","groupTitleColor","itemBg","subMenuItemBg","itemSelectedBg","activeBarHeight","activeBarWidth","activeBarBorderWidth","itemHoverColor","itemDisabledColor","dangerItemColor","dangerItemHoverColor","dangerItemSelectedColor","dangerItemActiveBg","dangerItemSelectedBg","popupBg","itemHoverBg","itemActiveBg","menuSubMenuBg","horizontalItemSelectedColor","horizontalItemSelectedBg","horizontalItemBorderRadius","horizontalItemHoverBg","marginTop","borderBottomColor","borderInlineEnd","insetBlock","insetInlineEnd","getVerticalInlineStyle","itemHeight","itemMarginInline","menuArrowSize","itemMarginBlock","paddingWithArrow","marginInline","marginBlock","dropdownWidth","collapsedWidth","collapsedIconSize","inlineItemStyle","listStylePosition","listStyleType","genMenuItemStyle","iconSize","iconMarginInlineEnd","genSubMenuArrowStyle","getBaseStyle","subMenuItemBorderRadius","groupTitleLineHeight","groupTitleFontSize","itemBorderRadius","inset","paddingBottom","paddingTop","colorTextDark","radiusItem","radiusSubMenuItem","colorItemText","colorItemTextHover","colorItemTextHoverHorizontal","horizontalItemHoverColor","colorGroupTitle","colorItemTextSelected","colorItemTextSelectedHorizontal","colorItemBg","colorItemBgHover","colorItemBgActive","colorSubItemBg","colorItemBgSelected","colorItemBgSelectedHorizontal","colorActiveBarWidth","colorActiveBarHeight","colorActiveBarBorderSize","colorItemTextDisabled","colorDangerItemText","colorDangerItemTextHover","colorDangerItemTextSelected","colorDangerItemBgActive","colorDangerItemBgSelected","darkItemDisabledColor","darkItemColor","darkDangerItemColor","darkItemBg","darkPopupBg","darkSubMenuItemBg","darkItemSelectedColor","darkItemSelectedBg","darkDangerItemSelectedBg","darkItemHoverBg","darkGroupTitleColor","darkItemHoverColor","darkDangerItemHoverColor","darkDangerItemSelectedColor","darkDangerItemActiveBg","menuToken","menuHorizontalHeight","menuDarkToken","getHorizontalStyle","getVerticalStyle","getRTLStyle","genCollapseMotion","customTheme","contextTheme","titleIsSpan","RcSubMenu","isEmptyIcon","MENU_COMPONENTS","InternalMenu","overrideObj","menu","_internalDisableMenuItemTitleTooltip","mergedSelectable","initCollapseMotion","useCSSVarCls","menuClassName","mergedIcon","RcMenu","menuRef","MenuDivider","HomeOutlined","HomeOutlinedSvg","UserOutlined","UserOutlinedSvg","ContainerOutlined","ContainerOutlinedSvg","SettingOutlined","SettingOutlinedSvg","LogoutOutlined","LogoutOutlinedSvg","PushpinFilled","PushpinFilledSvg","PushpinOutlined","PushpinOutlinedSvg","isPinned","setIsPinned","handleLogout","menuItems","matchingItem","handleResize","savedState","togglePin","userData","setUserData","showData","fetchUserData","Sidebar","verification","Profilebox","UserData","reportedUser","fetchReportData","SlidersHorizontal","DoubleLeftOutlined","DoubleLeftOutlinedSvg","DoubleRightOutlined","DoubleRightOutlinedSvg","LeftOutlined","LeftOutlinedSvg","RightOutlined","RightOutlinedSvg","propList","pickAttrs","mergedConfig","ariaOnly","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","defaultPageSizeOptions","_props$pageSizeOption","pageSizeOptions","changeSize","goButton","quickGo","buildOptionText","showSizeChanger","sizeChangerRender","goInputText","setGoInputText","getValidValue","mergeBuildOptionText","KEYCODE","changeSelect","goInput","gotoButton","onSizeChange","onKeyUp","_classNames","showTitle","onKeyPress","itemRender","pager","defaultItemRender","calculatePage","_pageSize","_classNames5","_props$selectPrefixCl","selectPrefixCls","currentProp","_props$defaultCurrent","defaultCurrent","_props$total","pageSizeProp","_props$defaultPageSiz","defaultPageSize","_props$onChange","hideOnSinglePage","_props$showPrevNextJu","showPrevNextJumpers","showQuickJumper","showLessItems","_props$showTitle","_props$onShowSizeChan","onShowSizeChange","_props$locale","zhCN","_props$totalBoundaryS","totalBoundaryShowSizeChanger","simple","showTotal","_props$showSizeChange","_props$itemRender","jumpPrevIcon","jumpNextIcon","prevIcon","nextIcon","paginationRef","setPageSize","setCurrent","internalInputVal","setInternalInputVal","jumpPrevPage","jumpNextPage","getItemIcon","inputValue","allPages","shouldDisplayQuickJumper","handleKeyUp","isValid","newPage","hasPrev","hasNext","prevHandle","nextHandle","jumpPrevHandle","jumpNextHandle","runIfEnter","restParams","handleGoTO","jumpPrev","dataOrAriaAttributeProps","totalText","jumpNext","pagerList","pagerProps","prevPage","nextPage","isReadOnly","simplePager","pageBufferSize","Pager","prevItemTitle","nextItemTitle","jumpPrevContent","jumpNextContent","lastOne","prevButton","renderPrev","prevDisabled","nextDisabled","nextTabIndex","nextButton","renderNext","Options","newCurrent","nextCurrent","responsiveArray","useResponsiveObserver","responsiveMap","xs","sm","md","lg","xl","xxl","getResponsiveMap","indexableToken","revBreakpoints","breakpoint","breakpointUpper","screenMin","screenMax","nextBreakpointUpperMin","nextScreenMin","validateBreakpoints","subUid","screens","matchHandlers","pointMap","paramToken","unregister","matchMediaQuery","mql","refreshOnChange","screensRef","useForceUpdate","responsiveObserver","supportScreens","yearFormat","dayFormat","cellMeridiemFormat","monthBeforeYear","today","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","dateFormat","dateTimeFormat","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","rangePlaceholder","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","Pagination","TimePicker","Calendar","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectInvert","selectNone","selectionAll","sortTitle","expand","triggerDesc","triggerAsc","cancelSort","Next","Previous","Finish","okText","cancelText","justOkText","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","deselectAll","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","edit","copied","optional","QRCode","expired","scanned","ColorPicker","presetEmpty","transparent","singleColor","gradientColor","useLocale","defaultLocale","fullLocale","LocaleContext","getLocale","defaultLocaleData","localeFromContext","localeCode","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","unselectable","BaseSelectContext","useLock","lockRef","timeoutRef","Input","_inputNode2","inputElement","activeDescendantId","_onKeyDown","_onChange","onPaste","_onCompositionStart","onCompositionStart","_onCompositionEnd","onCompositionEnd","_onBlur","inputNode","_inputNode","originProps","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","onOriginBlur","isBrowserClient","isTitleType","getTitle","_value$key","onPreventMouseDown","searchValue","autoClearSearchValue","inputRef","showSearch","removeIcon","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onToggleOpen","onRemove","onInputChange","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","onInputBlur","inputWidth","setInputWidth","setFocused","selectionPrefixCls","inputEditable","defaultRenderSelector","itemDisabled","closable","TransBtn","customizeRenderSelector","isMaxTag","selectionNode","valueItem","displayLabel","strLabel","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","selectionTitle","placeholderNode","Selector","compositionStatusRef","tokenWithEnter","onSearch","onSearchSubmit","domRef","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","isTextAreaElement","HTMLTextAreaElement","replacedText","selectNode","MultipleSelector","SingleSelector","msTouchAction","inputMouseDown","SelectTrigger","dropdownStyle","dropdownClassName","_props$direction","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","dropdownPrefixCls","popupNode","mergedBuiltinPlacements","getBuiltInPlacements","mergedTransitionName","isNumberPopupWidth","triggerPopupRef","getPopupElement","_triggerPopupRef$curr","isValidCount","fillFieldNames","fieldNames","childrenAsData","mergedLabel","groupLabel","injectPropsWithOption","newOption","Polite","DEFAULT_OMIT_PROPS","isMultiple","BaseSelect","_customizeRawInputEle","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","_props$notFoundConten","notFoundContent","onClear","getInputElement","getRawInputElement","onDropdownVisibleChange","onActiveValueChange","onSearchSplit","tokenSeparators","allowClear","suffixIcon","clearIcon","OptionList","_props$showAction","mergedShowSearch","domProps","selectorDomRef","selectorRef","listRef","blurRef","_useDelayReset","setBool","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","_selectorRef$current","_selectorRef$current2","_listRef$current","mergedSearchValue","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","setRendered","innerOpen","setInnerOpen","emptyListContent","newOpen","tokenSeparator","SelectContext","rawValues","onInternalSearch","searchText","fromTyping","isCompositing","newSearchText","separatedList","separate","restTokens","prevList","unitStr","getSeparatedContent","patchLabels","getClearLock","setClearLock","keyLockRef","focusRef","activeTimeoutIds","onTriggerVisibleChange","customizedTrigger","onGlobalMouseDown","composed","useSelectTriggerControl","_triggerRef$current2","arrowNode","baseSelectContext","toggleOpen","showSuffixIcon","_useAllowClear","onClearMouseDown","mergedClearIcon","useAllowClear","_selectorRef$current4","mergedAllowClear","clearNode","optionList","mergedClassName","selectorNode","newValues","_triggerRef$current","_selectorRef$current3","restArgs","_listRef$current2","clearLock","isEnterKey","cloneDisplayValues","removedDisplayValue","_listRef$current3","OptGroup","isSelectOptGroup","Option","isSelectOption","Filler","onInnerResize","innerProps","outerStyle","refFunc","useDiffItem","onDiff","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","isScrollAtTop","isScrollAtBottom","isScrollAtLeft","isScrollAtRight","lockTimeoutRef","scrollPingRef","smoothOffset","originScroll","useFrameWheel","inVirtual","horizontalScroll","onWheelDelta","offsetRef","wheelValueRef","isMouseScrollRef","useOriginScroll","wheelDirectionRef","wheelDirectionCleanRef","mergedDeltaX","mergedDeltaY","absX","absY","_virtualHandled","isFF","patchMultiple","onWheelY","onWheelX","CacheMap","parseNumber","SMOOTH_PTG","smoothScrollOffset","getPageXY","ScrollBar","scrollRange","onStartMove","onStopMove","spinSize","containerSize","propsThumbStyle","thumbStyle","showScrollBar","dragging","setDragging","pageXY","setPageXY","startTop","setStartTop","isLTR","scrollbarRef","thumbRef","setVisible","visibleTimeoutRef","delayHidden","enableScrollRange","enableOffsetRange","stateRef","onThumbMouseDown","onScrollbarTouchStart","scrollbarEle","thumbEle","enableScrollRangeRef","enableOffsetRangeRef","moveRafId","_stateRef$current","stateDragging","statePageY","stateStartTop","newTop","tmpEnableScrollRange","tmpEnableOffsetRange","ptg","newScrollTop","scrollbarPrefixCls","containerStyle","getSpinSize","EMPTY_DATA","ScrollStyle","overflowAnchor","RawList","_props$fullHeight","fullHeight","virtual","onVirtualScroll","extraRender","_props$showScrollBar","_useHeights","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","promiseIdRef","cancelRaf","collectHeight","sync","doCollect","changed","_getComputedStyle","totalHeight","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","useVirtual","containerHeight","isRTL","componentRef","fillerInnerRef","setOffsetTop","setOffsetLeft","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_React$useMemo","_fillerInnerRef$curre","startOffset","itemTop","dataLen","_item","cacheHeight","currentItemBottom","fillerOffset","changedRecord","getRecord","recordKey","diffHeight","resetRecord","setSize","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","getVirtualScrollInfo","lastVirtualScrollInfoRef","triggerScroll","nextInfo","onScrollBar","newScrollOffset","newOffset","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","offsetXY","fromHorizontal","_useFrameWheel2","onRawWheel","onFireFoxScroll","cleanUpEvents","touchedRef","touchXRef","touchYRef","intervalRef","onTouchMove","currentX","currentY","_isHorizontal","scrollHandled","onTouchEnd","useMobileTouchMove","onScrollOffset","_offset","mouseDownLock","stopScroll","continueScroll","mouseY","_ele$getBoundingClien","useScrollDrag","onMozMousePixelScroll","scrollingUpAtTop","scrollingDownAtBottom","componentEle","newOffsetLeft","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","_scrollTo","triggerFlash","scrollRef","syncState","setSyncState","targetAlign","originAlign","needCollectHeight","newTargetAlign","mergedAlign","stackTop","itemBottom","leftHeight","_cacheHeight","lastTop","_arg$offset","useScrollTo","getScrollInfo","renderList","getSize","key2Index","bottomList","startKey","endKey","_heights$get","useGetSize","extraContent","listChildren","renderFunc","useChildren","componentStyle","containerProps","verticalScrollBar","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","_useBaseProps","onPopupScroll","flattenOptions","onActiveValue","defaultActiveFirstOption","menuItemSelectedIcon","listHeight","listItemHeight","optionRender","memoFlattenOptions","overMaxCount","onListMouseDown","getEnabledActiveIndex","activeIndex","setActiveIndex","setActive","fromKeyboard","flattenItem","isAriaSelected","onSelectValue","appVersion","nextActiveIndex","_item$data","omitFieldNameList","getLabel","getItemAriaProps","itemData","a11yProps","itemIndex","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","retId","getUUID","convertChildrenToData","optionOnly","_ref2$props","_ref$props","convertNodeToOption","optionFilterProp","optionLabelProp","valueOptions","labelOptions","setLabelOptions","labelOptionsMap","dig","isChildren","useRefFunc","funcRef","OMIT_DOM_PROPS","Select","backfill","_props$autoClearSearc","_props$dropdownMatchS","filterOption","filterSort","_props$listHeight","_props$listItemHeight","labelRender","labelInValue","mergedId","mergedFilterOption","mergedFieldNames","setSearchValue","parsedOptions","useOptions","convert2LabelValues","draftValues","rawLabel","rawKey","rawDisabled","rawTitle","_val$value","isRawValue","_option$key","internalValue","setInternalValue","rawLabeledValues","_values$","isComboNoValue","_useCache","labeledValues","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","_prevValueCache$get","valueCache","optionCache","useCache","_useCache2","mergedValues","getMixedOption","firstValue","_mergedValues$","strValue","createTagOption","filteredOptions","fieldOptions","fieldLabel","customizeFilter","upperSearch","wrapOption","subOptions","subItem","useFilterOptions","cloneOptions","existOptions","filledSearchOptions","sorter","inputOptions","orderedFilteredOptions","displayOptions","_fillFieldNames","isGroupOption","grpLabel","triggerChange","newVal","_mergedValues$index","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref3$source","triggerSelect","getSelectEnt","_option$key2","_getSelectEnt2","wrappedValue","_option","_getSelectEnt4","_wrappedValue","_option2","onInternalSelect","cloneValues","mergedSelect","selectContext","realVirtual","nextValues","formatted","newRawValues","words","patchValues","newRawValue","TypedSelect","runtimeLocale","localeList","generateLocale","_ANT_MARK__","clearLocale","newLocale","cloneLocale","changeConfirmLocale","getMemoizedContextValue","dynamicStyleMark","registerTheme","globalPrefixCls","variables","formatColor","colorVal","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","getStyle","componentDisabled","componentSize","useEmptyId","MotionWrapper","needWrapMotionProviderRef","useResetIconStyle","PASSED_PROPS","globalIconPrefixCls","globalTheme","globalHolderRender","getGlobalPrefixCls","ProviderChildren","customCsp","autoInsertSpaceInButton","anchor","splitter","popupMatchSelectWidth","popupOverflow","legacyLocale","customIconPrefixCls","segmented","calendar","carousel","cascader","typography","descriptions","skeleton","mentions","slider","breadcrumb","pagination","badge","switch","SWITCH","avatar","card","tabs","timeline","timePicker","colorPicker","datePicker","rangePicker","dropdown","warningConfig","tour","popconfirm","floatButtonGroup","inputNumber","treeSelect","mergedPrefixCls","parentTheme","themeConfig","parentThemeConfig","inherit","useThemeKey","mergedCssVar","prevTheme","nextTheme","useTheme","baseConfig","memoedConfig","prevConfig","currentConfig","CssInJsStyleContext","memoIconContextValue","PropWarning","ValidateMessagesContext","LocaleProvider","memoTheme","algorithm","themeObj","parsedComponents","parsedToken","ConfigProvider","antLocale","holderRender","isLegacyTheme","useConfig","genPurePanel","alignPropName","postProps","getDropdownCls","withPureRenderTheme","holderRef","setPopupHeight","setPopupWidth","dropdownCls","themeStyle","Simple","shadowColor","contentColor","genSharedEmptyStyle","emptyImgHeight","emptyImgHeightMD","emptyImgHeightSM","emptyToken","emptyImgCls","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","_g","imageStyle","emptyClassNames","des","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","legacyBordered","configVariant","componentConfig","ctxVariant","configComponentVariant","buildInPlacements","moveDownIn","moveDownOut","moveLeftIn","moveLeftOut","moveRightIn","moveRightOut","moveMotion","initMoveMotion","genItemStyle","optionHeight","optionFontSize","optionLineHeight","optionPadding","selectItemCls","slideUpEnterActive","slideUpAppearActive","slideUpLeaveActive","dropdownPlacementCls","selectedItemCls","fontVariant","optionActiveBg","optionSelectedColor","optionSelectedFontWeight","optionSelectedBg","genOverflowStyle","multipleItemColorDisabled","multipleItemBorderColorDisabled","INTERNAL_FIXED_ITEM_MARGIN","selectOverflowPrefixCls","flexWrap","alignSelf","genSelectionStyle","selectItemHeight","multipleSelectItemHeight","selectItemDist","selectHeight","sub","getSelectItemStyle","multipleSelectorUnit","basePadding","containerPadding","itemLineHeight","getMultipleSelectorUnit","multipleSelectorBgDisabled","inputPaddingHorizontalBase","genSizeStyle","rawStyle","multipleItemHeightSM","multipleItemHeightLG","selectHeightWithoutBorder","WebkitAppearance","showArrowPaddingInlineEnd","genSingleStyle","inputPaddingHorizontalSM","singleItemHeightLG","genBaseOutlinedStyle","selectorBg","hoverBorderHover","activeBorderColor","activeOutlineColor","genOutlinedStatusStyle","genOutlinedStyle","hoverBorderColor","multipleItemBg","multipleItemBorderColor","genBaseFilledStyle","hoverBg","genFilledStatusStyle","genFilledStyle","genBorderlessStyle","genSelectorStyle","getSearchInputWithoutBorderStyle","genBaseStyle","selectAffixPadding","genSelectStyle","genMultipleStyle","genDropdownStyle","selectToken","multipleItemHeight","genVariantsStyle","dblPaddingXXS","dblLineWidth","clearBg","CheckOutlined","CheckOutlinedSvg","CloseCircleFilled","CloseCircleFilledSvg","CloseOutlined","CloseOutlinedSvg","DownOutlined","DownOutlinedSvg","SearchOutlined","SearchOutlinedSvg","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","bordered","customListItemHeight","customStatus","propDirection","customizeVariant","renderEmpty","contextDirection","contextPopupMatchSelectWidth","enableVariantCls","useVariants","useShowArrow","mergedPopupMatchSelectWidth","contextStatus","mergedStatus","getMergedStatus","mergedNotFound","DefaultRenderEmpty","getSuffixIconNode","arrowIcon","mergedSuffixIcon","mergedRemoveIcon","useIcons","selectProps","mergedPopupClassName","mergedSize","getStatusClassNames","memoPlacement","RcSelect","initInputToken","inputAffixPadding","initComponentToken","addonBg","activeShadow","errorActiveShadow","warningActiveShadow","activeBg","inputFontSize","inputFontSizeLG","inputFontSizeSM","genHoverStyle","affixColor","extraStyles","genOutlinedGroupStatusStyle","addonBorderColor","addonColor","genOutlinedGroupStyle","borderInlineStart","inputColor","genFilledGroupStatusStyle","genFilledGroupStyle","borderTop","genInputLargeStyle","genInputSmallStyle","genBasicInputStyle","resize","genInputGroupStyle","borderCollapse","borderSpacing","borderInlineEndWidth","genInputStyle","colorSmallPadding","genAllowClearStyle","genAffixStyle","affixCls","affixClsDisabled","genSearchInputStyle","searchPrefixCls","insetBlockStart","insetBlockEnd","genTextAreaStyle","textareaPrefixCls","genRangeStyle","genPaginationDisabledStyle","inputToken","itemActiveBgDisabled","itemActiveColorDisabled","genPaginationMiniStyle","itemSizeSM","paginationMiniOptionsMarginInlineStart","miniOptionsSizeChangerTop","paginationMiniQuickJumperInputWidth","genPaginationSimpleStyle","paginationItemPaddingInline","itemInputBg","inputOutlineOffset","genPaginationJumpStyle","paginationEllipsisLetterSpacing","textIndent","paginationEllipsisTextIndent","itemSize","paginationSlashMarginInlineEnd","paginationSlashMarginInlineStart","genPaginationItemStyle","genPaginationStyle","genPaginationFocusStyle","itemLinkBg","paginationToken","genBorderedStyle","useShowSizeChanger","customizeSelectPrefixCls","customLocale","selectComponentClass","useBreakpoint","isSmall","contextLocale","enUS","propShowSizeChanger","propSizeChangerSelectProps","contextShowSizeChanger","contextSizeChangerSelectProps","mergedShowSizeChanger","mergedShowSizeChangerSelectProps","SizeChanger","mergedPageSizeOptions","iconsProps","ellipsis","extendedClassName","BorderedStyle","RcPagination","sizeChangerClassName","propSizeChangerClassName","propSizeChangerOnChange","selectedValue","nextSize","itemsPerPage","setCurrentPage","activeTab","setActiveTab","filteredMatches","setFilteredMatches","setItemsPerPage","filtersApplied","setFiltersApplied","currentData","indexOfLastItem","indexOfFirstItem","paginatedData","filters","setFilters","FilterIcon","FilterCloseIcon","handleFilterChange","prevFilters","applyFilters","isFiltersApplied","filteredData","_item$maritalStatus","_filters$maritalStatu","_item$occupation","_filters$occupation","_item$annualIncome","_filters$annualIncome","_item$education","_filters$education","_item$location","_filters$location","numericHeight","minAge","maxAge","resetFilters","PageSelection","heading","tabSelected","FilterDivMain","FilterDiv","FilterProfiles","FilterProfilesHeading","BasicDetailsMainDiv","BasicDetailsHead","BasicDetailsDiv","bdSelect","ProfessionalDetailsMainDiv","ProfessionalDetailsHead","ProfessionalDetailsDiv","pdSelect","FilterDivButtonsMain","FilterDivButtonOne","FilterHam","PaginationAdmin","pic","newPassword","animating","autoplaying","currentDirection","currentLeft","currentSlide","edgeDragged","lazyLoadedList","listWidth","scrolling","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","curX","curY","trackStyle","trackWidth","targetSlide","debounce","_ref$atBegin","atBegin","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","lastExec","clearExistingTimeout","arguments_","elapsed","_ref2$upcomingOnly","upcomingOnly","accessibility","adaptiveHeight","afterChange","appendDots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","easing","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","nextArrow","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","prevArrow","slide","slidesPerRow","slidesToScroll","slidesToShow","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","asNavFor","clamp","lowerBound","upperBound","safePreventDefault","getOnDemandLazySlides","spec","onDemandSlides","lazyStartIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","getWidth","getHeight","getSwipeDirection","xDist","yDist","swipeAngle","verticalSwiping","canGoNext","canGo","extractObject","newObject","checkNavigable","navigables","counter","getNavigableIndexes","prevNavigable","getSlideCount","centerOffset","swipedSlide","slickList","slides","checkSpecKeys","keysArray","getTrackCSS","trackHeight","unslick","getTotalSlides","WebkitTransition","WebkitTransform","marginLeft","getTrackAnimateCSS","getTrackLeft","trackRef","slidesToOffset","getPreClones","targetSlideIndex","trackElem","getPostClones","siblingDirection","slidesOnRight","slidesOnLeft","validSettings","getSlideClasses","slickActive","slickCenter","slickCloned","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","classnames","preCloneNo","Track","_React$PureComponent","mouseEvents","onMouseOver","handleRef","Dots","clickHandler","dotCount","_rightBound","rightBound","_leftBound","leftBound","dotOptions","_callSuper","PrevArrow","prevClasses","prevHandler","prevArrowProps","NextArrow","_React$PureComponent2","nextClasses","nextHandler","nextArrowProps","InnerSlider","slidesToLoad","onLazyLoad","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","autoplayTimer","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","debouncedResize","resizeWindow","updatedState","trackNode","centerPaddingAdj","initializedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_trackStyle","currentWidth","trackLeft","imagesCount","loadedCount","prevClickHandler","dontAnimate","_slideHandler","finalSlide","animationLeft","finalLeft","animationSlide","slideHandler","asNavForIndex","innerSlider","firstBatch","indexOffset","previousInt","slideOffset","previousTargetSlide","clickable","keyHandler","ontouchmove","disableBodyScroll","swipeStart","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeMove","onSwipe","minSwipe","newSlide","activeSlide","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","pauseType","trackProps","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listProps","touchEnd","onTouchCancel","innerSliderProps","listRefHandler","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpoints","breakpt","bQuery","json2mq","settings","_this3","resp","innerSliderRefHandler","settingName","filterSettings","genCarouselStyle","WebkitTouchCallout","WebkitTapHighlightColor","genArrowsStyle","arrowSize","arrowLength","SQRT2","borderInlineWidth","borderBlockWidth","genDotsStyle","dotOffset","dotWidth","dotHeight","dotGap","li","dotActiveWidth","genCarouselVerticalStyle","reverseSizeOfDot","marginBlockStart","genCarouselRtlStyle","dotWidthActive","ArrowButton","Carousel","dotPosition","slickRef","goTo","prevCount","enableDots","dsClass","SlickCarousel","Trash","uploadimage","setUploadimage","showItem","matchedProfiles","getAllMatches","autocomplete","setFormData","subject","complaint","abuseCategory","complainstAgainst","htmlFor","showDetails","setShowDetails","setPhoneNumber","unlockedProfiles","setUnlockedProfiles","setIsSubscribed","unlockedProfile","fetchMainUserData","setUsername","setPassword","newUsername","setNewUsername","profilePic","setProfilePic","defaultPic","likedProfiles","setLikedProfiles","currentLikedProfiles","fetchLikedUsers","prevProfiles","profile","DefaultContext","_toPrimitive","_toPropertyKey","Tree2Element","GenIcon","conf","svgProps","computedSize","FaEyeSlash","FaEye","showConfirmPassword","setShowConfirmPassword","minLength","_userData$image","selectedFiles","prevFiles","hobby","_userData$data","_userData$data2","_userData$data3","_userData$data4","_userData$data5","setuserData","unverfiedUser","fetchuserData","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","injectScript","queryString","advancedFraudSignals","headOrBody","stripePromise$1","onErrorListener","onLoadListener","Stripe","findScript","_script$parentNode","loadCalled","getStripePromise","CheckoutForm","confirmPayment","confirmParams","return_url","setClientSecret","registerWrapper","initStripe","loadStripe","Checkout","CheckoutWrapper","extendStatics","__extends","__assign","__awaiter","_arguments","generator","adopt","__generator","trys","verb","__spreadArrays","il","jl","ByteOrder","decodeFromBase64","DATA_URI_PREFIX_REGEX","toCharCode","toCodePoint","codePointAt","toHexStringOfMinLength","charFromCode","padChar","copyStringIntoBuffer","cleanText","escapedNewlineChars","isNewlineChar","lineSplit","mergeLines","charAtIndex","cuSecond","cuFirst","breakTextIntoLines","wordBreaks","computeWidthOfText","newlineCharUnion","escapedRules","wordBreak","breakRules","buildWordBreakRegex","currLine","currWidth","pushCurrLine","dateRegex","parseDate","dateStr","hours","mins","secs","offsetSign","offsetHours","findLastMatch","lastMatch","typedArrayFor","typedArray","mergeIntoTypedArray","arrays","arrayCount","typedArrays","totalSize","arrIdx","byteIdx","arrLen","arrayAsString","byAscendingId","reverseArray","arrayLen","leftIdx","rightIdx","toUint8Array","dataUri","trimmedUri","fullMatch","decodeFromBase64DataUri","waitForTick","highSurrogate","codePoint","lowSurrogate","REPLACEMENT","utf16Decode","byteOrderMark","fromCodePoint","byteOrder","readBOM","BigEndian","codePoints","decodeValues","isHighSurrogate","isLowSurrogate","LittleEndian","hasUtf16BigEndianBOM","hasUtf16LittleEndianBOM","hasUtf16BOM","sizeInBytes","bytesFor","decompressJson","compressedJson","arrayToString","FontNames","compressedJsonForFontName","fontCache","Font","getWidthOfGlyph","glyphName","CharWidths","getXAxisKerningForPair","leftGlyphName","rightGlyphName","KernPairXAmounts","cachedFont","CharMetrics","metric","WX","KernPairs","name1","decompressedEncodings","allUnicodeMappings","Encoding","unicodeMappings","canEncodeUnicodeCodePoint","encodeUnicodeCodePoint","hexCode","supportedCodePoints","Encodings","ZapfDingbats","zapfdingbats","WinAnsi","win1252","StandardFontValues","isStandardFont","rectanglesAreEqual","backtick","assertIsOneOf","valueName","allowedValues","objectValues","joinedValues","createValueErrorMsg","assertIsOneOfOrUndefined","isType","createTypeErrorMsg","allowedTypes","joinedTypes","assertIs","assertOrUndefined","assertEachIs","assertRange","assertRangeOrUndefined","assertMultiple","multiplier","assertPositive","pdfDocEncodingToUnicode","pdfDocEncodingDecode","Cache","populate","access","populatedBy","CharCodes","MethodNotImplementedError","PrivateConstructorError","UnexpectedObjectTypeError","expected","actual","UnsupportedEncodingError","ReparseError","MissingPageContentsEmbeddingError","MissingCatalogError","UnrecognizedStreamTypeError","contructor","PageEmbeddingMismatchedContextError","PDFArrayIsNotRectangleError","InvalidPDFDateStringError","InvalidTargetIndexError","targetIndex","Count","CorruptPageTreeError","operation","IndexOutOfBoundsError","InvalidAcroFieldValueError","MultiSelectValueError","MissingDAEntryError","MissingTfOperatorError","NumberParsingError","PDFParsingError","NextByteAssertionError","expectedByte","actualByte","PDFObjectParsingError","byte","PDFInvalidObjectParsingError","PDFStreamParsingError","UnbalancedParenthesisError","StalledParserError","MissingPDFHeaderError","MissingKeywordError","keyword","PDFHeader","major","minor","bc","copyBytesInto","initialOffset","Percent","Dash","Period","Newline","forVersion","PDFObject","_buffer","PDFNumber","numberValue","stringValue","numStr","negative","numberToString","asNumber","of","PDFArray","lookupMaybe","asRectangle","lowerLeftX","lowerLeftY","asArray","withContext","arrayString","LeftSquareBracket","Space","RightSquareBracket","scalePDFNumbers","ENFORCER","PDFBool","enforcer","asBoolean","True","False","IsDelimiter","LeftParen","RightParen","LessThan","GreaterThan","LeftCurly","RightCurly","ForwardSlash","IsWhitespace","Null","Tab","FormFeed","CarriageReturn","IsIrregular","Hash","decodeName","charFromHexCode","PDFName","encodedName","ExclamationPoint","Tilde","asBytes","escaped","pushByte","Zero","Nine","decodeText","asString","decodedValue","Length","FlateDecode","Resources","XObject","ExtGState","Contents","Type","Parent","MediaBox","Annots","TrimBox","ArtBox","BleedBox","CropBox","Rotate","Title","Author","Subject","Creator","Keywords","Producer","CreationDate","ModDate","PDFNull","asNull","PDFDict","preservePDFNull","asMap","uniqueKey","existingKeys","addRandomSuffix","dictString","fromMapWithContext","PDFStream","getContentsString","getContents","getContentsSize","updateDict","contentsSize","streamString","PDFRawStream","asUint8Array","PDFRef","objectNumber","generationNumber","PDFOperator","PDFOperatorNames","PDFFlateStream","computeContents","unencodedContents","getUnencodedContents","contentsCache","PDFContentStream","operators","getUnencodedContentsSize","SimpleRNG","nextInt","withSeed","byAscendingObjectNumber","PDFContext","largestObjectNumber","trailerInfo","indirectObjects","rng","nextRef","getObjectRef","pdfObject","enumerateIndirectObjects","literal","flateStream","Filter","contentStream","formXObject","BBox","Matrix","Subtype","getPushGraphicsStateContentStream","pushGraphicsStateContentStreamRef","Ops","PushGraphicsState","getPopGraphicsStateContentStream","popGraphicsStateContentStreamRef","PopGraphicsState","suffixLength","PDFPageLeaf","autoNormalizeCTM","dictOrRef","getInheritableAttribute","arrayOrRef","numberOrRef","ascend","addContentStream","contentStreamRef","normalizedEntries","wrapContentStreams","startStream","endStream","addAnnot","annotRef","removeAnnot","setFontDictionary","fontDictRef","newFontDictionaryKey","newFontDictionary","setXObject","xObjectRef","newXObjectKey","newXObject","setExtGState","extGStateRef","newExtGStateKey","newExtGState","contentsRef","InheritableEntries","withContextAndParent","PDFObjectCopier","traversedObjects","copyPDFPage","copyPDFDict","copyPDFArray","copyPDFStream","copyPDFIndirectObject","originalPage","clonedPage","originalDict","clonedDict","originalArray","clonedArray","originalStream","clonedStream","newRef","dereferencedValue","PDFCrossRefSection","firstEntry","subsections","chunkIdx","addEntry","addDeletedEntry","nextFreeObjectNumber","section","rangeIdx","rangeLen","entryIdx","entryLen","subsection","subsectionLength","copySubsectionsIntoBuffer","firstObjectNumber","rangeLength","copyEntriesIntoBuffer","entryOffset","entryGen","currEntry","prevEntry","PDFTrailer","lastXRefOffset","forLastCrossRefSectionOffset","PDFTrailerDict","PDFObjectStream","objects","offsets","computeObjectOffsets","offsetsString","computeOffsetsString","getObjectsCount","withContextAndObjects","PDFWriter","objectsPerTick","parsedObjects","shouldWaitForTick","serializeToBuffer","computeBufferSize","xref","trailerDict","trailer","computeIndirectObjectSize","createTrailerDict","Size","Root","Encrypt","Info","ID","indirectObject","xrefOffset","forContext","PDFInvalidObject","EntryType","PDFCrossRefStream","computeIndex","computeEntryTuples","entryTuples","Deleted","Uncompressed","Compressed","objectStreamRef","computeMaxEntryByteWidths","entryTuplesCache","widths","third","firstSize","secondSize","thirdSize","maxByteWidthsCache","indexCache","addUncompressedEntry","addCompressedEntry","byteWidths","entriesLen","firstBytes","secondBytes","thirdBytes","entryWidth","PDFStreamWriter","encodeStreams","objectsPerStream","xrefStream","uncompressedObjects","compressedObjects","objectStreamRefs","objectStream","xrefStreamRef","PDFHexString","hexLength","hexOffset","bytesOffset","decodeDate","fromText","utf16Encode","StandardFontEmbedder","customName","FontName","encodeTextAsGlyphs","hexCodes","widthOfTextAtSize","kernAmount","widthOfGlyph","heightOfFontAtSize","descender","Ascender","Descender","FontBBox","sizeOfFontAtHeight","embedIntoContext","fontDict","BaseFont","fillCmapTemplate","bfChars","cmapHexFormat","cmapHexString","cmapCodePointFormat","isWithinBMP","hasSurrogates","hs","ls","deriveFontFlags","familyClass","sFamilyClass","flipBit","bit","fixedPitch","serif","symbolic","nonsymbolic","allCap","smallCap","forceBold","makeFontFlags","isFixedPitch","macStyle","PDFString","octal","Backspace","BackSlash","Seven","fromDate","CustomFontEmbedder","fontData","fontFeatures","allGlyphsInFontSortedById","characterSet","glyphForCodePoint","indexer","uniq","sortedUniq","unitsPerEm","postscriptName","glyphCache","fontkit","advanceWidth","embedFontDict","embedCIDFontDict","cidFontDictRef","unicodeCMapRef","embedUnicodeCmap","DescendantFonts","ToUnicode","isCFF","cff","embedFontDescriptor","fontDescriptorRef","cidFontDict","CIDToGIDMap","CIDSystemInfo","Registry","Ordering","Supplement","FontDescriptor","computeWidths","embedFontStream","fontStreamRef","capHeight","xHeight","fontDescriptor","Flags","ItalicAngle","Ascent","Descent","CapHeight","XHeight","StemV","serializeFont","fontStream","cmap","glyphId","createCmap","cmapStream","currSection","currGlyph","prevGlyph","currGlyphId","prevGlyphId","CustomFontSubsetEmbedder","customFontName","subset","createSubset","glyphIdMap","subsetGlyphId","includeGlyph","encodeStream","mergedBuffer","mergeUint8Arrays","AFRelationship","FileEmbedder","fileData","mimeType","creationDate","afRelationship","embeddedFileStream","Params","embeddedFileStreamRef","fileSpecDict","UF","EF","Desc","ColorSpace","MARKERS","ChannelToColorSpace","DeviceGray","DeviceRGB","DeviceCMYK","JpegEmbedder","bitsPerComponent","colorSpace","dataView","marker","getUint8","channelByte","channelName","xObject","BitsPerComponent","Width","Height","Decode","UPNG","acTL","toRGBA8","decodeImage","frms","frames","frm","fw","fh","fdata","blend","_copyTile","dispose","bpp","_getBPP","bpl","bf","bf32","ctype","rs","_bin","readUshort","qarea","ts","ti","tr","tg","qi","ap","tl","s0","cj","gr","di","al","buff","fd","bin","rUs","rUi","readUint","dd","doff","foff","mgck","readASCII","_IHDR","num_frames","num_plays","fr","_decompress","rct","del","nz","nextZero","keyw","readUTF8","pl","interlace","_inflate","_filterZero","_readInterlace","cbpp","starting_row","starting_col","row_increment","col_increment","pass","ri","ci","sw","sh","cc","bpll","col","cdi","paeth","_paeth","pa","pb","pc","writeUshort","writeUint","writeASCII","pad","sb","tw","th","xoff","yoff","si","fa","fb","ba","bb","ifa","oa","ioa","bufs","dels","forbidPlte","nimg","compressPNG","_main","encodeLL","ac","bipp","bipl","wUi","wUs","wAs","anim","pltAlpha","leng","dl","plte","cimg","wr","fi","imgd","ioff","levelZero","nh","prms","onlyBlend","evenCrd","forbidPrev","minBits","alphaAnd","ilen","gotAlpha","framize","inds","nbufs","abuf","concatRGBA","qres","quantize","cof","bln","est","img32","ind","cmc","inj","alwaysBlend","cimg32","nx","ny","tlim","tstp","tarea","pimg","p32","miy","may","sarea","_prepareDiff","r1","miX","miY","_updateFrame","U8","U32","pimg32","rec","fls","ftry","CMPR","UZIP","_filterLine","tsize","tab","oimg","nimg32","KD","getKDtree","leafs","planeDst","nd","getNearest","i0","bst","tdst","estats","maxL","mi","splitPixels","eMq255","ln","rn","node0","node1","eMq","d0","d1","d2","d3","vecDot","m0","m3","iN","Rj","M4","tmi","multVec","dot","sml","Cov","tlen","noff","PngType","PNG","pngData","upng","rgbaChannel","pixelCount","rgbChannel","alphaChannel","rgbaOffset","rgbOffset","alphaOffset","splitAlphaChannel","Greyscale","Truecolour","IndexedColour","GreyscaleWithAlpha","TruecolourWithAlpha","getImageType","PngEmbedder","png","SMask","embedAlphaChannel","Stream","getByte","getInt32","getBytes","forceClamped","strEnd","Uint8ClampedArray","peekByte","peekedByte","peekBytes","moveStart","makeSubStream","emptyBuffer","DecodeStream","maybeMinBufferLength","eof","minBufferLength","readBlock","ensureBuffer","bufEnd","requested","buffer2","Ascii85Stream","maybeLength","AsciiHexStream","firstDigit","maxDecodeLength","digit","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","FlateStream","cmf","flg","codeSize","codeBuf","hdr","getBits","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","generateHuffmanTable","codeLengths","bitsLength","bitsOffset","what","getCode","repeatLength","code1","code2","blockLen","codeLen","codeVal","lengths","LZWStream","earlyChange","cachedData","bitsCached","maxLzwDictionarySize","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","estimatedDecodedSize","blockSize","prevCode","decodedLength","currentBufferLength","readBits","RunLengthStream","repeatHeader","decodeStream","EarlyChange","decodePDFRawStream","DecodeParms","PDFPageEmbedder","boundingBox","transformationMatrix","mediaBox","fullPageBoundingBox","boundingBoxAdjustedMatrix","decodedContents","decodeContents","FormType","newline","NonFullScreenPageMode","ReadingDirection","PrintScaling","Duplex","asEnum","enumType","ViewerPreferences","lookupBool","returnObj","lookupName","HideToolbar","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","Direction","PickTrayByPDFSize","PrintPageRange","NumCopies","getHideToolbar","getHideMenubar","getHideWindowUI","getFitWindow","getCenterWindow","getDisplayDocTitle","getNonFullScreenPageMode","UseNone","getReadingDirection","L2R","getPrintScaling","scaling","AppDefault","getDuplex","getPickTrayByPDFSize","getPrintPageRange","pageRanges","getNumCopies","setHideToolbar","hideToolbar","setHideMenubar","hideMenubar","setHideWindowUI","hideWindowUI","setFitWindow","fitWindow","setCenterWindow","centerWindow","setDisplayDocTitle","displayTitle","setNonFullScreenPageMode","nonFullScreenPageMode","setReadingDirection","readingDirection","setPrintScaling","printScaling","setDuplex","dup","setPickTrayByPDFSize","pickTrayByPDFSize","setPrintPageRange","printPageRange","flatRange","setNumCopies","numCopies","MAX_VALUE","assertInteger","fromDict","tfRegex","PDFAcroField","Ff","valueOrRef","Kids","DA","da","setKids","getFullyQualifiedName","getPartialName","setPartialName","partialName","setDefaultAppearance","getDefaultAppearance","setFontSize","daMatch","daStart","daEnd","modifiedDa","getFlags","setFlags","hasFlag","flag","setFlag","clearFlag","setFlagTo","BorderStyle","PDFAnnotation","Rect","AP","getRectangle","setRectangle","getAppearanceState","AS","setAppearanceState","setAppearances","appearances","ensureAP","getNormalAppearance","setNormalAppearance","setRolloverAppearance","setDownAppearance","removeRolloverAppearance","removeDownAppearance","getAppearances","normal","rollover","down","AppearanceCharacteristics","BC","BG","CA","RC","AC","getRotation","getBorderColor","getBackgroundColor","getCaptions","setBorderColor","setBackgroundColor","setCaptions","captions","PDFWidgetAnnotation","MK","BS","setP","getAppearanceCharacteristics","getOrCreateAppearanceCharacteristics","getBorderStyle","getOrCreateBorderStyle","bs","getOnValue","PDFAcroTerminal","FT","nameOrRef","getWidgets","kidDicts","widgets","addWidget","removeWidget","PDFAcroButton","Opt","setOpt","getExportValues","removeExportValue","normalizeExportValues","widget","exportVal","addOpt","useExistingOptIdx","existingIdx","optText","addWidgetWithOpt","optIdx","apStateValue","PDFAcroCheckBox","AcroFieldFlags","AcroButtonFlags","AcroTextFlags","AcroChoiceFlags","bitIndex","PDFAcroChoice","setValues","Combo","Edit","valuesAreValid","MultiSelect","updateSelectedIndices","getOptions","getValues","setOptions","newOpt","PDFAcroComboBox","PDFAcroNonTerminal","addField","PDFAcroSignature","PDFAcroText","MaxLen","setMaxLength","removeMaxLength","getMaxLength","setQuadding","quadding","getQuadding","removeValue","PDFAcroPushButton","PushButton","PDFAcroRadioButton","getOnValues","onValues","onValue","Radio","PDFAcroListBox","createPDFAcroFields","createPDFAcroField","isNonTerminalAcroField","createPDFAcroTerminal","kid","ftNameOrRef","createPDFAcroButton","createPDFAcroChoice","ffNumberOrRef","ffNumber","flagIsSet","startNode","PDFAcroForm","Fields","getAllFields","pushFields","fieldModel","removeField","PDFCatalog","Pages","AcroForm","getAcroForm","getOrCreateAcroForm","acroForm","acroFormRef","getOrCreateViewerPreferences","viewerPrefs","viewerPrefsRef","insertLeafNode","leafRef","pagesRef","removeLeafNode","withContextAndPages","pages","PDFPageTree","pushTreeNode","treeRef","pushLeafNode","insertLeafKid","leafsRemainingUntilTarget","kidRef","prune","removeKid","traverse","kidIdx","newCount","IsDigit","One","Two","Three","Four","Five","Six","Eight","IsNumericPrefix","Plus","Minus","IsNumeric","BaseParser","capNumbers","parseRawInt","parseRawNumber","skipWhitespace","skipLine","skipComment","skipWhitespaceAndComments","matchKeyword","ByteStream","assertNext","peekAhead","peekAt","fromPDFRawStream","rawStream","endstream","endobj","startxref","true","false","null","streamEOF1","streamEOF2","streamEOF3","streamEOF4","EOF1endstream","EOF2endstream","EOF3endstream","PDFObjectParser","byteStream","parseObject","parseDictOrStream","parseHexString","parseString","parseName","parseArray","parseNumberOrRef","firstNum","lookaheadStart","secondNum","nestingLvl","isEscaped","pdfArray","parseDict","startPos","findEndOfStreamFallback","forBytes","forByteStream","PDFObjectStreamParser","alreadyParsed","firstOffset","objectCount","parseIntoContext","offsetsAndObjectNumbers","parseOffsetsAndObjectNumbers","forStream","PDFXRefStreamParser","Index","length_1","parseEntries","typeFieldWidth","offsetFieldWidth","genFieldWidth","subsectionIdx","subsectionLen","length_2","objIdx","inObjectStream","PDFParser","pdfBytes","throwOnInvalidObject","parseDocument","parseHeader","parseDocumentSection","prevOffset","maybeRecoverRoot","isValidCatalog","skipBinaryHeaderComment","parseIndirectObjectHeader","matchIndirectObjectHeader","parseIndirectObject","tryToParseInvalidIndirectObject","parseIndirectObjects","skipJibberish","maybeParseCrossRefSection","firstInt","secondInt","maybeParseTrailerDict","maybeParseTrailer","forBytesWithOptions","AnnotationFlags","RotationTypes","asPDFName","asPDFNumber","LineCapStyle","degrees","degreeAngle","Degrees","Radians","degreesToRadians","degree","toRadians","toDegrees","reduceRotation","quadrants","adjustDimsForRotation","dims","ClipNonZero","tan","concatTransformationMatrix","ConcatTransformationMatrix","xPos","yPos","rotateRadians","rotateDegrees","skewRadians","xSkewAngle","ySkewAngle","setDashPattern","SetLineDashPattern","LineJoinStyle","SetLineCapStyle","setGraphicsState","SetGraphicsStateParams","pushGraphicsState","popGraphicsState","SetLineWidth","appendBezierCurve","AppendBezierCurve","appendQuadraticCurve","CurveToReplicateInitialPoint","ClosePath","MoveTo","LineTo","StrokePath","FillNonZero","fillAndStroke","FillNonZeroAndStroke","EndPath","ShowText","BeginText","EndText","setFontAndSize","SetFontAndSize","ColorTypes","rotateAndSkewTextRadiansAndTranslate","rotationAngle","SetTextMatrix","drawObject","DrawObject","BeginMarkedContent","EndMarkedContent","TextAlignment","grayscale","gray","Grayscale","cmyk","CMYK","setFillingColor","NonStrokingColorGray","setFillingGrayscaleColor","NonStrokingColorRgb","setFillingRgbColor","NonStrokingColorCmyk","setFillingCmykColor","setStrokingColor","StrokingColorGray","setStrokingGrayscaleColor","StrokingColorRgb","setStrokingRgbColor","StrokingColorCmyk","setStrokingCmykColor","componentsToColor","comps","colorToComponents","px","py","runners","solveArc","rot","sweep","segs_1","arcToSegments","seg","bez","segmentToBezier","rotateX","ox","oy","sinTh","cosTh","a00","a01","a10","a11","sfactorSq","sfactor","xc","yc","th0","thArc","th2","th3","cx1","cy1","th1","thHalf","svgPathToOperators","commands","curArg","foundDecimal","path_1","graphicsState","xSkew","ySkew","drawRectangle","borderLineCap","borderDashArray","borderDashPhase","KAPPA","drawEllipse","xScale","yScale","xm","ym","drawEllipsePath","drawEllipseCurves","rotateInPlace","drawCheckBox","filled","checkMark","p2x","p2y","p1x","p1y","drawCheckMark","markColor","drawRadioButton","outlineScale","dotColor","drawButton","drawTextLines","textLines","drawTextField","clipX","clipY","clipWidth","clipHeight","clippingArea","markedContent","EncryptedPDFError","FontkitNotRegisteredError","ForeignPageError","RemovePageFromEmptyDocumentError","NoSuchFieldError","UnexpectedFieldTypeError","FieldAlreadyExistsError","MissingOnValueCheckError","InvalidFieldNamePartError","namePart","RichTextFieldReadError","FieldExistsAsNonTerminalError","CombedTextLayoutError","lineLength","cellCount","ExceededMaxLengthError","textLength","InvalidMaxLengthError","computeFontSize","multiline","linesUsed","lineIdx","lineLen","spaceInLineRemaining","widthOfWord","heightAtSize","computeCombedFontSize","cellWidth","cellHeight","cLen","charSplit","lastIndexOfWhitespace","splitOutLines","lastWhitespaceIdx","remainder","layoutMultilineText","alignment","prevRemainder","Center","layoutSinglelineText","normalizeAppearance","getDefaultFontSize","defaultFontSize","colorRegex","getDefaultColor","c4","updateDefaultAppearance","defaultCheckBoxAppearanceProvider","widgetColor","fieldColor","acroField","normalBackgroundColor","downBackgroundColor","defaultRadioGroupAppearanceProvider","radioGroup","defaultButtonAppearanceProvider","widgetFontSize","fieldFontSize","normalText","downText","normalLayout","downLayout","defaultTextFieldAppearanceProvider","textField","getText","isCombed","isMultiline","getAlignment","cellOffset","charOffset","charLength","layoutCombedText","defaultDropdownAppearanceProvider","getSelected","defaultOptionListAppearanceProvider","isSorted","selectedLines","highlights","selectedColor","drawOptionList","PDFEmbeddedPage","embedder","alreadyEmbedded","PDFDocument","embed","PDFFont","sizeAtHeight","getCharacterSet","PDFImage","scaleToFit","imgWidthScale","imgHeightScale","embedTask","ImageAlignment","assertFieldAppearanceOptions","PDFField","ReadOnly","enableReadOnly","disableReadOnly","Required","enableRequired","disableRequired","isExported","NoExport","enableExporting","disableExporting","needsAppearancesUpdate","defaultUpdateAppearances","_font","markAsDirty","markFieldAsDirty","markAsClean","markFieldAsClean","isDirty","fieldIsDirty","createWidget","degreesAngle","caption","pageRef","rotateRectangle","Print","Hidden","Invisible","newDa","updateWidgetAppearanceWithFont","updateWidgetAppearances","createAppearanceStream","updateOnOffWidgetAppearance","createAppearanceDict","createImageAppearanceStream","adj","imageDims","imageName","onStreamRef","offStreamRef","appearanceDict","PDFCheckBox","acroCheckBox","uncheck","isChecked","addToPage","PDFPage","widgetRef","updateWidgetAppearance","updateAppearances","PDFDropdown","acroComboBox","rawOptions","optionObjects","addOptions","optionsArr","existingOptions","validOptions","enableMultiselect","existingValues","isEditable","Sort","enableSorting","disableSorting","isMultiselect","disableMultiselect","isSpellChecked","DoNotSpellCheck","enableSpellChecking","disableSpellChecking","isSelectOnClick","CommitOnSelChange","enableSelectOnClick","disableSelectOnClick","getDefaultFont","PDFOptionList","acroListBox","assertIsSubset","PDFRadioGroup","acroRadioButton","exportOptions","onOptions","isOffToggleable","NoToggleToOff","enableOffToggling","disableOffToggling","isMutuallyExclusive","RadiosInUnison","enableMutualExclusion","disableMutualExclusion","addOptionToPage","_j","PDFSignature","acroSignature","PDFTextField","acroText","isRichFormatted","disableRichFormatting","setAlignment","setImage","fieldAlignment","streamRef","Multiline","enableMultiline","disableMultiline","isPassword","Password","enablePassword","disablePassword","isFileSelector","FileSelect","enableFileSelection","disableFileSelection","isScrollable","DoNotScroll","enableScrolling","disableScrolling","Comb","enableCombing","disableCombing","RichText","enableRichFormatting","StandardFonts","PDFForm","embedDefaultFont","embedStandardFont","Helvetica","dirtyFields","defaultFontCache","hasXFA","deleteXFA","convertToPDFField","getFieldMaybe","getField","getButton","PDFButton","getCheckBox","getDropdown","getOptionList","getRadioGroup","getSignature","getTextField","createButton","nameParts","splitFieldName","findOrCreateNonTerminals","nonTerminal","terminal","addFieldToParent","createCheckBox","createDropdown","comboBox","createOptionList","listBox","createRadioGroup","createTextField","flatten","updateFieldAppearances","lenFields","lenWidgets","findWidgetPage","findWidgetAppearanceRef","xObjectKey","pushOperators","fieldKids","kidsCount","childIndex","fieldRef","getPages","findPageForAnnotationRef","refOrDict","name_1","partialNames","parent_1","findNonTerminal","ParseSpeeds","fullyQualifiedName","PageSizes","A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","B0","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","C0","C3","C4","C5","C6","C7","C8","C9","C10","RA0","RA1","RA2","RA3","RA4","SRA0","SRA1","SRA2","SRA3","SRA4","Executive","Folio","Legal","Letter","Tabloid","PDFEmbeddedFile","catalog","Names","EmbeddedFiles","EFNames","PDFJavaScript","Javascript","JSNames","scriptName","JavaScriptEmbedder","jsActionDict","JS","ignoreEncryption","updateMetadata","defaultWordBreaks","computePages","pageMap","getOrCreateForm","isEncrypted","pageCache","formCache","embeddedPages","embeddedFiles","javaScripts","updateInfoDict","pdf","parseSpeed","Slow","pageTree","pageTreeRef","registerFontkit","getInfoDict","assertIsLiteralOrHexString","getAuthor","author","getSubject","getKeywords","keywords","getCreator","getProducer","producer","getCreationDate","getModificationDate","setTitle","showInWindowTitleBar","setAuthor","setSubject","setKeywords","setCreator","setProducer","setLanguage","language","setCreationDate","setModificationDate","getPageCount","pageCount","getPageIndices","removePage","addPage","insertPage","copyPages","srcDoc","copier","srcPages","copiedPages","srcPage","copiedPage","pdfCopy","contentPages","addJavaScript","javaScript","embeddedFile","embedFont","assertFontkit","pdfFont","embedJpg","jpg","pdfImage","embedPng","embedPdf","plucked","pluckIndices","embedPages","embedPage","boundingBoxes","transformationMatrices","currPage","maybeCopyPage","embedAll","useObjectStreams","addDefaultPage","saveAsBase64","otherOptions","encodeToBase64","embeddables","pdfLib","existingInfo","newInfo","BlendMode","leafNode","getMediaBox","setMediaBox","cropBox","getCropBox","bleedBox","getBleedBox","trimBox","getTrimBox","artBox","getArtBox","hasCropBox","hasBleedBox","hasTrimBox","hasArtBox","setCropBox","setBleedBox","setTrimBox","setArtBox","translateContent","getContentStream","createContentStream","startRef","endRef","scaleContent","scaleAnnotations","annots","annot","scaleAnnot","resetPosition","fontKey","setFontColor","setLineHeight","getPosition","getX","getY","moveDown","yDecrease","moveUp","yIncrease","moveLeft","xDecrease","moveRight","xIncrease","drawText","blendMode","setOrEmbedFont","oldFont","newFont","newFontKey","encodedLines","graphicsStateKey","maybeEmbedGraphicsState","SetTextLineHeight","NextLine","drawLinesOfText","drawPage","embeddedPage","drawSvgPath","borderOpacity","drawLine","_k","_m","drawSquare","drawCircle","oldFontKey","getFont","useExisting","ca","BM","dummyRef","pageLeaf","acroPushButton","PaymentSuccess","queryParams","paymentIntent","redirectStatus","datapusher","handleContinueShopping","userResponse","pdfDoc","boldFont","HelveticaBold","regularFont","titleSize","sectionTitleSize","download","allowedRoles","parsedRole","LandingPage","LoginPAge","UserPasswordReset","ProtectedRoute","FormPage1","FormPage2","FormPage3","Formpage5","FormPage4","Dashboard","Report1","UserMain","UserSettings","LikedProfiles","MyProfile","AdminProfile","Report","Settings","AdminUserProfileView","AdminSideUserReport","GetFullUser","ResetPassword","AdminFullReport","ProfileVerification","UnverifiedUsers","AdminUserVerification","AdminLanding","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","PersistGate","_PureComponent","_getPrototypeOf2","bootstrapped","persistor","onBeforeLift","_unsubscribe","handlePersistorState","KEY_PREFIX","FLUSH","REHYDRATE","PERSIST","PURGE","REGISTER","autoMergeLevel1","inboundState","originalState","reducedState","createPersistoid","blacklist","whitelist","transforms","storageKey","keyPrefix","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","endState","subState","transformer","in","onWriteFail","passWhitelistBlacklist","getStoredState","defaultDeserialize","rawState","serial","warnIfRemoveError","_arrayWithoutHoles","_nonIterableSpread","registry","persistorReducer","firstIndex","persistedUserReducer","baseReducer","stateReconciler","defaultGetStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","restState","_sealed","_rehydrate","rehydrate","restoredState","migrate","migratedState","migrateErr","purgeStoredState","_newState","persistReducer","userReducer","getDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","middleware","devTools","enhancers","rootReducer","finalMiddleware","isPlainObject2","finalCompose","compose2","trace","middlewares","createStore2","middlewareAPI","applyMiddleware","getDefaultEnhancers","configureStore","boostrappedCb","_pStore","rehydrateAction","purge","purgeResult","flushResult","manualPersist","persistStore","App","reportWebVitals"],"sourceRoot":""}